바이너리가 실제로 특정 버전의 git 커밋/릴리스를 사용하여 빌드되었으며 수정된 버전에서 빌드되지 않았는지 확인하는 방법입니다.
소규모 프로젝트의 경우 직접 빌드할 수 있지만 Android 맞춤 ROM과 같은 대규모 프로젝트의 경우 빌드가 실제로 git 릴리스에서 나온 것인지 확인하는 방법은 무엇입니까?
편집: 오픈 소스 바이너리는 무료이므로 서명될 것이라고 기대할 수 없습니다. 다운로드는 제3자 위치에서 이루어집니다.
답변1
오픈 소스 바이너리는 무료이므로 서명을 기대할 수 없습니다.
여기에는 모순이 없습니다. 서명도 무료입니다. 하지만 누군가가 수정된 소스에서 악의적으로 빌드한 다음 바이너리에 서명할 수 있기 때문에 이것이 도움이 된다고 생각하지 않습니다. 따라서 서명은 원래 빌더를 신뢰하고 바이너리가 변경된 버전이 아니라 실제로 제공한 것인지 확인하려는 경우에만 작동합니다.
찾고 있는 것 같군요재현 가능한 빌드. 이것이 작동하려면 프로젝트는 재현 가능한 빌드를 지원하는 기술 스택과 툴체인을 기반으로 해야 합니다. 그렇지 않다면 운이 없는 것입니다. 그렇다면 직접 빌드하고 결과를 비교할 수 있습니다. 대규모 프로젝트에서는 이것이 실용적이지 않을 수도 있다는 말이 맞습니다. 불행히도 보안은 종종 편의성을 희생하여 발생합니다.
궁극적으로 당신은 또한툴체인은 악성이 아닙니다. 구축 중인 하드웨어도 마찬가지입니다. 하드웨어를 직접 구축하고 전체 툴체인을 리버스 엔지니어링하려는 의지가 없다면 누군가를 신뢰해야 합니다.