99 %의 사용자와 마찬가지로 기성품 바이너리에서 Ubuntu를 설치합니다.
이 바이너리가 실제로 Ubuntu의 원래 소스 코드에서 온 것인지 어떻게 확인할 수 있습니까?
NSA / 누군가가 이진 파일을 망치기 위해 Ubuntu 또는 Linode (내 VPS 공급자)와 협력하지 않았는지 확인하는 것이 좋습니다. 바이너리를 검증 할 수 있다면, 그것들을 쉽게 불러 낼 수 있기 때문에 처음부터 시도하지 않을 것입니다.
99 %의 사용자와 마찬가지로 기성품 바이너리에서 Ubuntu를 설치합니다.
이 바이너리가 실제로 Ubuntu의 원래 소스 코드에서 온 것인지 어떻게 확인할 수 있습니까?
NSA / 누군가가 이진 파일을 망치기 위해 Ubuntu 또는 Linode (내 VPS 공급자)와 협력하지 않았는지 확인하는 것이 좋습니다. 바이너리를 검증 할 수 있다면, 그것들을 쉽게 불러 낼 수 있기 때문에 처음부터 시도하지 않을 것입니다.
답변:
소스 코드를 다운로드하여 직접 컴파일 할 수 있습니다. 그러나 Canonical이 NSA와 공동 작업 한 경우 키로거 또는 원격으로 활성화 할 수있는 코드를 입력 할 수 있기 때문에 먼저 소스 코드를 확인해야합니다.
그래서...
그러나 기다려- 컴파일러를 신뢰할 수 있습니까?
우분투는 자신의 컴퓨터에서 패키지를 컴파일 할 수있는 편리한 수단을 제공합니다. 그러나 다운로드 한 이진 패키지의 실행 파일이 해당 소스 코드에서 얻어 졌는지 확인할 방법이 없습니다. Ubuntu에서 사용하는 서명 프로세스는 타사에서 패키지를 변경하는 위험을 크게 줄이지 만 다운로드 전에 소스 코드에 반영되지 않은 컴파일 전에 유해한 코드가 추가되지 않았다는 것을 여전히 신뢰해야합니다.
그 이유는 정확한 컴파일러 버전, 옵션 및 바이너리에 컴파일 된 경로 또는 환경 변수가 있기 때문에 컴파일 된 패키지에있는 것과 정확히 같은 바이너리를 얻는 것이 매우 어렵 기 때문입니다. 따라서 자신을 컴파일 할 때 정확하게 동일한 바이너리를 얻을 수 없으므로 다운로드 한 바이너리를 "확인"할 수 있습니다.
실제로 정확하게이 문제를 둘러싼 작은 연구 커뮤니티가 있습니다-컴파일을 재현 할 수있게 만드는 방법.
그러나 다운로드 한 바이너리와 자체 컴파일 된 바이너리를 수동으로 비교하면 추가 / 수정 된 코드를 감지 할 수 있으므로 바이너리를 제공하는 누군가와 소스 코드가 감지되면 바이너리에 무언가를 숨기는 것이 위험 할 수 있습니다.
그러나 이미 언급했듯이 컴파일러를 신뢰하는 문제도 있습니다 ...
두 개의 다른 머신에서 정확히 동일한 바이너리를 작성하는 것은 어려운 문제입니다. TOR 프로젝트는이를 빌드의 정기적 인 부분으로 수행합니다. 그들이하는 방법에 대한 설명 이 있습니다. 데비안 과 페도라 는이 배포판에서이를 가능하게하는 프로젝트를 갖고있는 것으로 보이지만 초기 단계에 있습니다. 그것은 우분투에서 수행 어떤 일이 아닌 것 같아 .
우분투 바이너리 꾸러미를 재현하려면 가능한 한 밀접하게 작성된 환경을 재현해야합니다. 시작하려면 먼저이 패키지가 컴파일 된 위치와 방법을 찾아야합니다. 그 정보를 찾기가 쉽지 않은 것 같습니다.
우분투의 MD5 확인. 파일에서 가져온 MD5가 Ubuntu에서 게시 한 MD5와 일치하면 아무도 이진 파일을 변조하지 않은 것입니다.
그것은 어려운 일입니다. 저는이 복잡한 일보다 신뢰가 더 낫습니다. 그러나 질문 당신은 믿을 수 있습니까?
오픈 소스 소프트웨어는 사용자가 코드를 자유롭게 변경할 수 있기 때문에 누구도 신뢰할 수 없습니다.
이 목적을위한 시나리오를 만들어 Ubuntu == source code
보겠습니다. 저를 확인하고 싶습니다 . 왜 패키지를 소스와 비교하려고하지 않습니까?
그러나 나를 비교해 보면 타임 스탬프, 환경이 다르기 때문에 약간 다른 결과를 얻을 수 있지만 소스 코드가 아니라는 것을 증명합니다!
apt-get source
를 보거나 직접 컴파일 할 수 있습니다. 이 질문을보십시오 : askubuntu.com/questions/28372/…