MD5 해시 자체가 조작 될 수있는 경우 MD5 체크섬의 값은 무엇입니까? 사이트에 다운로드 할 때 때때로 MD5 체크섬이있어

웹 사이트에 다운로드 할 때 때때로 MD5 체크섬이있어 사람들이 파일의 무결성을 확인할 수 있습니다. 문제가 발생하기 전에 손상된 파일을 즉시 식별 할 수있을뿐만 아니라 악의적 인 변경 사항도 쉽게 감지 할 수 있다고 들었습니다.

파일 손상이 우려되는 한 논리를 따르지만 누군가 고의로 악성 파일을 업로드하려는 경우 해당 MD5 ​​체크섬을 생성하여 변경된 파일과 함께 다운로드 사이트에 게시 할 수 있습니다. 이것은 파일을 다운로드하는 사람이 변경되지 않았다고 생각하도록 속이는 것입니다.

체크섬 자체가 손상되었는지 알 방법이없는 경우 MD5 체크섬은 의도적으로 변경된 파일 에 대한 보호 기능을 어떻게 제공 할 수 있습니까?



답변

나는 이것이 악의적 인 변화도 탐지 될 수 있도록하는 것이라고 들었다.

그럼 당신은 잘못 들었습니다. MD5 (또는 SHA 등) 체크섬은 올바른 다운로드 확인을 위해서만 ( 다운로드 링크 옆에 ) 제공됩니다. 그들이 보증하려는 유일한 것은 서버와 동일한 파일을 가지고 있다는 것입니다. 더 이상 아무것도 없습니다. 서버가 손상된 경우 SOL입니다. 정말 간단합니다.


답변

dpkg와 같은 일부 패키지 관리 시스템에서 사용하는 솔루션 은 해시서명하는 것입니다. 공개 키 서명 알고리즘 중 하나의 입력으로 해시를 사용하십시오. 참조 http://www.pgpi.org/doc/pgpintro/#p12를

서명자의 공개 키가있는 경우 서명을 확인하여 해시가 수정되지 않았 음을 확인할 수 있습니다. 이것은 올바른 공개 키를 미리 얻는 문제를 남길 수 있습니다. 누군가가 한 번 키 배포를 변조하면 키로 확인할 수있는 모든 것을 변조해야합니다. 그렇지 않으면 이상한 일이 일어나고 있음을 알 수 있습니다.


답변

당신의 가정은 맞습니다. 그러나 예외가 있습니다. 파일을 제공하는 서버와 해시가있는 페이지가 동일한 엔티티에 의해 관리되지 않는 경우 이 경우 소프트웨어 개발자는 “이 사람들은이 위치에서이 파일을 다운로드하지만 해시 = xxxx 인 경우에만 믿습니다”라고 말할 수 있습니다. (이것은 예로서 CDN에 유용 할 수 있습니다). 나는 이것이 누군가가 처음에 그것을 한 이유라고 생각합니다. 다른 사람들보다 방금 해시를 보여주는 것이 얼마나 멋진 지 생각했습니다. 파일과 해시가 같은 위치에있는 것이 얼마나 유용한 지 생각조차하지 않습니다.

이것이 말하면, 이것은 가치가 있습니다. 다른 사람들이 이미 언급했듯이 보안에 대해 너무 많이 가정하지 마십시오. 원본 해시를 절대적으로 신뢰할 수있는 경우에만 파일보다 좋습니다. 그렇지 않으면 충분한 동기와 지식을 가진 공격자는 파일과 해시가 서로 다른 서버에 있고 다른 엔터티에 의해 관리 되더라도 변조 할 수 있습니다.


답변

때때로 체크섬이 안전하게 제공되지만 다운로드가되지 않습니다. 때문에 MD5가 파손되고 , MD5 체크섬이 제공하는 보안은 더 안전한 체크섬보다 약한하지만, MD5가 부서졌다하기 전에 안전하게 제공 MD5는 MD5의 일치 있음 (예를 들어, 하나는 PGP 나 GPG 또는 게이트 키퍼 서명 또는 HTTPS를 통해 인출 된 것을) 다운로드는 다운로드가 서버에서 제공 한 것으로 확인되었다는 강력한 증거였습니다.

나는 수년 동안 보안 체크섬의 슬픈 부족에 대해 쓰고 있습니다 여기에 .

MITM 공격의 위험 때문에 신뢰할 수없는 네트워크를 통해 신뢰할 수없는 실행 파일을 다운로드하여 실행해서는 안됩니다. 예를 들어, P. Ruissen, R. Vloothuis의 “자동 업데이트 시스템의 불안정성”을 참조하십시오.

2014 부록 : 아니요. “웹 페이지에 게시 된 체크섬이 악의적 인 수정을 탐지하는 데 사용된다”는 것은 잘못된 일이 아닙니다. 이것이 수행 할 수있는 역할이기 때문입니다. 우발적 인 손상을 방지하고 HTTPS 또는 검증 된 서명 (또는 둘 다)을 통해 제공되는 경우 악성 손상을 방지합니다! HTTPS를 통해 체크섬을 얻었으며 HTTP 다운로드와 여러 번 일치하는지 확인했습니다.

오늘날 바이너리는 종종 서명되고 자동으로 확인 된 해시와 함께 배포되지만 완벽하게 안전하지는 않습니다 .

위 링크에서 발췌 : “KerRanger 응용 프로그램은 유효한 Mac 응용 프로그램 개발 인증서로 서명되었으므로 Apple의 Gatekeeper 보호를 우회 할 수있었습니다.” … “애플은 악용 된 인증서를 취소하고 XProtect 안티 바이러스 서명을 업데이트했으며 전송 프로젝트는 웹 사이트에서 악성 설치 프로그램을 제거했습니다. Palo Alto Networks는 또한 URL 필터링 및 위협 예방을 업데이트하여 KeRanger가 시스템에 영향을 미치지 않도록 차단했습니다. 기술 분석

두 KeRanger에 감염된 Transmission 설치 프로그램은 Apple에서 발행 한 합법적 인 인증서로 서명되었습니다. 이 인증서에 나열된 개발자는 ID Z7276PX673을 가진 터키 회사이며 이전 버전의 Transmission 설치 프로그램에 서명하는 데 사용 된 개발자 ID와 다릅니다. 코드 서명 정보에서 이러한 설치 프로그램이 3 월 4 일 아침에 생성되어 서명 된 것으로 나타났습니다. “

2016 년 부록 :

@ 옥수수 줄기 : Re. 아래에 귀하의 의견 : 잘못된. 현재 충돌 공격 Wikipedia 기사에서 “2007 년에 MD5에 대해 선택된 접두사 충돌 공격이 발견되었습니다”및 “공격자가 임의로 다른 두 개의 문서를 선택한 다음 전체적으로 결과를 산출하는 다른 계산 된 값을 추가 할 수 있습니다” 해시 값이 같은 문서 ” 따라서 MD5가 안전하게 제공되고 공격자가이를 수정할 수없는 경우에도 공격자는 멀웨어가 포함 된 선택된 접두사와 함께 선택된 접두사 충돌 공격을 계속 사용할 수 있습니다. 즉, MD5는 암호화 목적으로 안전하지 않습니다. 이것이 US-CERT가 MD5가 “암호 적으로 손상되어 추후 사용하기에 부적합한 것으로 간주되어야한다”고 말했다.

몇 가지 더 : CRC32는 체크섬입니다. MD5, SHA 등은 체크섬 이상입니다. 그들은 안전한 해시를 목표로합니다. 이는 충돌 공격에 매우 강해야한다는 의미입니다. 체크섬과 달리 보안 통신 보안 해시는 MITM이 서버와 사용자 사이에있는 MITM (Man-in-the-Middle) 공격으로부터 보호합니다. 서버 자체가 손상된 공격에 대해서는 보호되지 않습니다. 이를 방지하기 위해 사람들은 일반적으로 PGP, GPG, Gatekeeper 등과 같은 것에 의존합니다.


답변

이것이 게시 된 체크섬에 종종 “이것은 파일의 악의적 인 수정을 막을 수 없습니다”라는 고지 사항이 포함 된 정확한 이유입니다. 따라서 짧은 답변은 “고의로 변경된 파일에 대해 어떠한 보호도 제공 할 수 없습니다”입니다 (페이지가 HTTPS를 통해 전달되는 경우 HTTPS 자체가 수정을 방지합니다. 파일이 HTTPS를 통해 전달되지 않고 체크섬 인 경우) 그렇다면 도움이 될 수 있지만 일반적인 경우는 아닙니다. 웹 페이지에 게시 된 체크섬은 악의적 인 수정을 감지하는 데 사용되었다고 말한 사람은 수행 할 수있는 역할이 아니기 때문입니다. 그들이하는 일은 우발적 인 손상과 게으른 악의적 인 손상 으로부터 보호 하는 것입니다 (누군가가 체크섬을 제공하는 페이지를 가로 채지 않으려는 경우).

의도적 인 수정을 방지하려면 사람들이 체크섬을 망치지 못하게하거나 다른 사람이 유효한 체크섬을 생성하지 못하게해야합니다. 전자는 직접 또는 이와 유사한 방식으로 배포 할 수 있습니다 (체크섬 자체가 신뢰 됨). 후자는 디지털 서명 알고리즘으로 이동합니다 (공개 키를 다운로더에게 안전하게 가져와야합니다. TLS에서는 궁극적으로 인증 기관을 직접 신뢰하고 다른 모든 사람을 확인하도록함으로써 수행됩니다. 또한 신뢰할 수있는 웹을 통해 수행 할 수도 있습니다) 그러나 요점은 어떤 시점에서 무언가 안전하게 전송되어야하며 사이트에 무언가를 게시하는 것만으로는 충분하지 않다는 것입니다.


답변

이것은 실제로 문제입니다. 다운로드 할 파일과 동일한 사이트에 체크섬을 표시하는 것은 안전하지 않습니다. 파일을 변경할 수있는 사람도 체크섬을 변경할 수 있습니다. 체크섬은 완전히 분리 된 시스템을 통해 표시되어야하지만 체크섬을 찾을 수있는 안전한 방법으로 사용자에게 알리는 방법이 거의 불가능합니다.

가능한 해결책은 서명 된 파일을 사용하는 것입니다.

(BTW : MD5는 어디에서나 안전하지 않으므로 더 이상 사용해서는 안됩니다.)


답변

체크섬 자체가 손상되었는지 알 방법이없는 경우 MD5 체크섬은 의도적으로 변경된 파일 에 대한 보호 기능을 어떻게 제공 할 수 있습니까?

당신은 전적으로 정확합니다. 따라서 파일의 보안 암호화 해시 손상 되지 않았다는 것을 알고 있다면 파일도 손상되지 않았다는 것을 알고 있다면 “if”를 잘못 만드는 것이 목표 입니다.

예를 들어, 웹 사이트에 파일 해시를 게시 한 다음 타사 미러 서버의 파일 사본 (구식 자유 소프트웨어 배포의 일반적인 관행)에 링크하면 사용자를 일부 유형으로부터 보호 할 수 있습니다 공격. 미러 서버가 악의적이거나 손상되었지만 웹 사이트는 문제가없는 경우 미러는 파일을 전복시킬 수 없습니다.

웹 사이트에서 HTTPS를 사용하거나으로 해시에 서명하면 gpg악의적 인 Wi-Fi 핫스팟, 악성 Tor 종료 노드 또는 NSA와 같은 네트워크 공격자로부터 파일을 대부분 보호 할 수 있습니다.