다운로드한 파일의 체크섬을 계산해야 하는 이유는 무엇입니까?

다운로드한 파일의 체크섬을 계산해야 하는 이유는 무엇입니까?

다운로드할 수 있는 파일 옆에 체크섬이 표시되는 경우가 종종 있습니다. 이 접근 방식의 목적을 이해하지 못합니다. 분명히 손상된 파일을 감지하지만이러한 부패의 원인은 무엇일까요? 가능합니까?

물론 전송 오류는 네트워크 프로토콜에 의해 감지되므로 전송 오류로 인해 파일이 손상될 수 없습니다. 물론, 악의적인 목적으로 파일을 변경할 수 있는 공격자는 주어진 체크섬도 변경할 수 있습니다. 하드 드라이브 오류를 확인하고 있나요? 이러한 상황은 읽을 때보다 쓸 때 발생할 가능성이 더 높습니까? 제가 뭔가 중요한 것을 놓쳤나요?

답변1

물론, 악의적인 목적으로 파일을 변경할 수 있는 공격자는 주어진 체크섬도 변경할 수 있습니다.

항상 그런 것은 아닙니다.

HTTPS를 통해 콘텐츠 링크와 체크섬을 제공할 수 있습니다. 링크는 암호화되지 않은 링크(일반 HTTP, FTP 또는 기타 링크)일 수 있습니다.

단점은 암호화되지 않은 연결을 중개인이 쉽게 관리할 수 있다는 것이고, 장점은 웹 사이트 관리자에게 더 빠르고 편리할 수 있다는 것입니다(컴퓨팅 리소스가 덜 필요하고 네트워크에서 이러한 콘텐츠를 캐시할 기회가 있음).

중단 없이 신뢰할 수 있는 연결을 통해 체크섬이 제공되고 페이로드가 체크섬과 일치하는 경우 두 가지 장점을 모두 얻을 수 있습니다(체크섬이 암호화되어 안전한 경우).


즉, "안전하다"고 주장하는 일부 배포판이 있지만 해당 사이트는 이미지 링크와 마찬가지로 HTTP 기반만 있다는 점을 상기시켜 주셨습니다.

예:

그것보다 더 불안해질 수는 없기 때문에 그것은 일종의 재미 있습니다. 자체적으로 악성이 아니더라도 모든 ISP는 쉽게 웹사이트와 이미지를 가짜로 교체하고 누군가가 "안전한" Linux 배포판을 받는 것처럼 보이게 하면서 조작된 운영 체제를 설치하도록 할 수 있습니다. 이것이 최종 결과입니다.

답변2

손상을 감지하는 것이 완전히 정확하지는 않습니다. 소프트웨어의 무결성을 확인하는 것이 더 올바른 사용법입니다. 일반적으로 소프트웨어는 단일 서버에서 배포되지 않습니다. 동일한 소프트웨어를 여러 서버에서 배포할 수 있습니다. 따라서 특정 소프트웨어를 다운로드할 때 대상에 가장 가까운 서버가 다운로드 소스로 선택되어 다운로드 속도를 높입니다. 그러나 이러한 "비공식"(제3자) 서버는 항상 신뢰할 수 있는 것은 아닙니다. 프로그램에 트로이 목마/바이러스/애드웨어/백도어가 포함될 수 있습니다.안좋다.

따라서 다운로드한 소프트웨어가 관련 기관에서 출시한 "공식" 소프트웨어와 정확히 동일한지 확인하기 위해 체크섬을 사용해야 합니다. 체크섬을 생성하는 데 사용되는 알고리즘은 프로그램의 작은 변경이라도 완전히 다른 체크섬을 초래할 수 있습니다.

에서 가져온 예실용적인 유닉스와 인터넷 보안

MD5 (파란색 상자에 $1500가 있습니다.) = 05f8cfc03f4e58cbee731aa4a14b3f03

MD5 (파란색 상자에는 $1100가 있습니다.) = d6dee11aae89661a45eb9d21e30d34cb

이러한 메시지는 단 하나의 문자만 다르며(해당 문자 내에서는 단 하나의 이진 비트만) 메시지 다이제스트가 완전히 다릅니다.

다운로드한 파일의 체크섬이 "공식" 웹사이트에 제공된 것과 동일한 경우 소프트웨어가 수정되지 않은 것으로 간주할 수 있습니다.

참고 사항:이론적으로는 서로 다른 두 파일이 동일한 해시 값을 가질 수 있습니다. 해시/체크섬 알고리즘이 안전한 것으로 간주되려면 동일한 체크섬을 생성하는 다른 파일을 찾는 데 계산 비용이 매우 많이 듭니다.

답변3

TCP/IP 오류 검사가 모든 것을 포착하지 못하는 이유는 다음과 같습니다.https://stackoverflow.com/a/17083365/2551539

다양한 오류가 발생할 수 있습니다(TCP가 이를 감지합니다) [Jacob Krall이 지적한 바와 같이]:

  • 잘못된 순서의 패킷
  • 패킷 손실
  • 패킷 내의 데이터가 손상되었습니다.
  • 팬텀 패킷(수신자는 전송되지 않은 패킷을 수신함)

몇 가지 추가 정보로 편집하세요.

본 연구의 9페이지:http://paperhub.s3.amazonaws.com/8ff1e4414c070e900da8ab3885593085.pdfTCP가 감지할 수 없는 오류를 나타냅니다. 제가 이해하기로는 잘못된 데이터그램(연구에서는 "나쁜 쌍둥이"라고 함)이 예상되는 데이터그램(연구에서는 "좋은 쌍둥이"라고 함)과 동일한 체크섬을 가질 때 이런 일이 발생한다는 것입니다.

답변4

이론적으로 네트워크는 각 조각을 올바르게 전달하고 문제 없이 디스크에 올바르게 조립됩니다.

사실 컴퓨터는 오류가 있는 인간이 설계하고 제작한 기계이자 소프트웨어입니다. 무해하든 악의적이든 데이터를 손상시키는 일종의 중개 장치를 거치는 등 어떤 이유로 다운로드가 실패하는 경우 해당 파일이 공급자 측에서 거의 확실하게 다운로드되었는지 확인할 수 있는 방법이 있으면 좋을 것입니다. 정확한 사본을 제출하십시오.

고품질 체크섬은 데이터 무결성을 확인하는 신뢰할 수 있는 방법입니다.

관련 정보