다양한 프로젝트의 다운로드에 해시코드나 체크섬이 있는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/671755

  •  21-08-2019
  •  | 
  •  

문제

나는 인터넷에서 다양한 실행 파일이나 zip 파일을 다운로드할 때 체크섬을 사용한 적이 없습니다.일관성을 확인하고 약간의 보안을 추가하는 데 사용된다는 것을 알고 있습니다.하지만 Apache나 Microsoft와 같은 존경받는 프로젝트에서 다운로드할 경우에는 이것이 필요합니까?우리 중 실제로 체크섬이나 해시코드를 사용하여 내용을 확인하는 사람은 몇 명이나 됩니까?

참고로, 제가 StackOverflow의 허용 가능한 콘텐츠에서 너무 멀리 벗어난 경우 알려 주시기 바랍니다.

도움이 되었습니까?

해결책

무결성이 중요한 파일을 다운로드 할 때 (예 : Linux 배포의 ISO)는 만일을 대비하여 다운로드를 MD5SUM으로 만드는 경향이 있습니다.

소스는 신뢰할 수 있지만 자신의 NIC 하드웨어가 오작동하기 시작할 수있는시기를 결코 알 수 없습니다.

다른 팁

또 다른 용도는 이미 가지고있는 파일이 신뢰할 수있는 소스에서 다운로드 할 수있는 파일과 동일하다 (즉, 변경되지 않은, 부패하지 않고 현재)인지 확인하는 것입니다.

이 경우 발생할 수 있습니다

  • 이전에 파일을 다운로드했습니다
  • 다른 사이트에서 파일을 얻었습니다
  • 네트워크 공유에서 파일을 얻었습니다
  • 누군가 CD / 플래시 드라이브 / etc의 파일을 주었다.
  • 잠재적으로 긴 다운로드를 피하는 다른 방법을 사용했습니다.

파일의 무결성을 확인할 수 있습니다. 나는 항상 그것을 사용합니다. 기본적으로 파일에서 MD5 체크섬을 생성하거나 해싱 방법이 사용되는 모든 프로그램을 실행하고 두 체크섬이 일치하는지 확인합니다. 그렇지 않다면 파일이 다릅니다. 그러나 동일한 체크섬을 생성하는 두 개의 파일을 가질 수 있지만 예제를 기부하지 않는 한 동일한 크기의 두 파일을 비교하는 가능성은 상당히 낮습니다.

이것은 매우 유용합니다. 최근 CD 연소 프로그램에서 버그를 찾았습니다. 특정 컴퓨터의 특정 파일에 문제가 계속되었습니다. 마침내 CD의 파일의 체크섬과 원래 컴퓨터의 파일 체크섬을 비교했습니다. 그들은 다르며 문제를 해결할 수있었습니다!

IMHO 큰 파일을 다운로드하고 다시 다운로드하기 전에 손상되었는지 확인하려는 경우에만 유용합니다 (즉, 응용 프로그램이 올바르게 설치되지 않은 경우).

다운로드 한 파일이 좋은 하나의 파일이며 악의적 인 의도를 가진 다른 파일에 의해 수정되지 않은 것입니다. 처럼 이것 Apache의 정보는 다음과 같이 말합니다.

"모든 공격자는 공개 키를 만들어 공개 키 서버에 업로드 할 수 있습니다. 그런 다음이 가짜 키로 서명 한 악의적 인 릴리스를 만들 수 있습니다. 그런 다음이 손상된 릴리스의 서명을 확인하려고하면 키가 '실제'키가 아니기 때문에 성공합니다. 따라서이 키의 진위를 검증해야합니다."

단계를 따라갈 수 있는지 확인하십시오 여기.

신뢰할 수 있는 소스(예:Apache.org) 귀하의 다운로드 요청은 거울 대지.문제의 신뢰할 수 있는 사이트에는 모든 요청을 처리할 수 있는 리소스가 있으므로 미러는 귀중한 기능을 수행합니다.그러나 신뢰할 수 있는 사이트가 반드시 미러 사이트를 완전히 제어할 수 있는 것은 아니며 미러 사이트의 소유자(또는 제3자)가 미러된 실행 파일을 악성 코드로 대체할 수도 있습니다.다운로드한 파일에 대해 신뢰할 수 있는 소스의 해시를 확인함으로써 (어떤 이유로든) 전송 중에 변경되지 않았음을 보장할 수 있습니다.

무결성 이유 모두 (특히 ASCII 모드로 실수로 다운로드했을 수있는 FTP 사이트에서) 모두에 사용됩니다. 또한 위치 A에서 다운로드하고 위치 B에서 체크섬을 얻는다고 가정 할 때 다운로드가 변경되지 않았는지 확인하는 데 사용될 수 있습니다 (종종 다운로드는 거울에서, 공식 사이트에서 해시).

그러나 무결성 목적으로 파일에 서명하는 것이 단순히 해싱하는 것보다 더 유용 할 것입니다.

나는 사용한다 맥 포트 소스 기반 패키지 관리자 인 Mac OS X에서; 각 PortFile에는 Mac OS X에 소프트웨어를 다운로드, 패치, 컴파일 및 설치하는 방법에 대한 설명이 포함되어 있습니다. PortFile에 포함 된 Tarball의 특정 버전의 체크섬은 다운로드 할 수 있습니다. 이것은 많은 가능한 문제로부터 파일의 무결성을 보장하는 데 도움이됩니다. 때로는 사람들이 버전 번호를 증가시키지 않고 타르볼을 업데이트하여 패치가 적용되지 않거나 특정 조건에서 코드가 파손되거나 때때로 패키지가 손상 될 수 있거나 공격자가 희망으로 소프트웨어를 조작 할 수 있습니다. 당신이 그것을 설치할 것입니다.

그래서 나는 예, 소프트웨어를 설치할 때마다 체크섬을 사용한다고 말해야합니다 (패키지 관리자가 자동으로 수행하지만 직접 수행하지는 않습니다). 그리고 존경할만한 프로젝트에서 수동으로 다운로드하는 경우에도 많은 사람들이 더 빠르고 가까운 거울에서 코드 자체를 다운로드 한 다음 더 신뢰할 수있는 마스터 서버에서 다운로드 한 사본에 대해 체크섬을 확인하려고합니다. 이는 여러 서버가 하나의 거울보다는 타협되어야하므로 공격하기가 더 어려워집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top