MD5 해시 자체가 조작 될 수있는 경우 MD5 체크섬의 값은 무엇입니까?


39

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

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

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


3
우리가 웹 사이트 호스트에 의존하여 MD5 해시 대신 미묘한 타임 스탬프 불일치를 인식하면 진위의 인장으로 작용합니다 ... 체크섬이 제공하는 보호 기능은 거의 사라졌습니다.
Austin ''Danger ''Powers

4
@BigChris 무슨 말인지 잘 모르겠지만 잘못된 것 같습니다. MD5와 같은 암호화 해시 알고리즘은 메시지 데이터에 관한 것입니다. 길이가 같은 두 개의 임의 메시지는 거의 다른 해시를 갖습니다.
Matt Nordhoff

3
@MattNordhoff 정확하게. 의 MD5 체크섬 파일 데이터를 기반으로 생성되지 않으면, 무엇을 한다 그것을 기반으로?
Austin ''Danger ''Powers

2
MD5 해시 데이터는 데이터를 기반으로 구성되지만 동일한 해시로 악성 파일을 만드는 데 많은 노력을 기울이지 않아도됩니다. 말했듯이 파일이 악성인지 여부를 확인할 수있는 방법은 없습니다. 읽기 : mscs.dal.ca/~selinger/md5collision
Kinnectus

2
때로는 해시가 자사 서버에 게시되는 반면 실제 다운로드는 타사 미러 및 / 또는 CDN에 호스팅됩니다.
el.pescado

답변:


89

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

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


31
+1. 주로 우발적 인 손상 (네트워크 전송 오류, 디스크의 불량 섹터 등) 을 방지하는 데 사용됩니다 . 을 방지하기 위해 악성 체크섬이이 연결되지 않은 위치를 신뢰 형성 가야합니다 손상. PGP / GPG / 유사한 서명 된 메시지와 동일 : 공개 키를 어디서 얻었는지 신뢰할 수있는 경우에만 내용을 완전히 보장합니다.
David Spillett

1
또한 인증 서명이이 제한 사항을 해결한다는 답변을 추가 할 수도 있습니다 (인증서 / 인증 기관을 신뢰한다고 가정)
atk

2
이보다 훨씬 더 나쁩니다. 누군가가 서버를 오가는 트래픽을 조작 할 수 있다면 서버가 손상되지 않더라도 수신 한 파일과 체크섬을 모두 수정할 수 있습니다.
cpast

3
확장하려면 :이 경우 서버가 있었다 당신이 동일한 파일을 한 것으로 보장 당신이 네트워크를 신뢰하지 않아도 의미하기 때문에, 그것은 합법적 인 보안 조치가 될 것입니다. 이것이 바로 TLS의 MAC이하는 일입니다. 서버가 보낸 것이 무엇인지 증명하지만 TLS는 손상된 서버에 대해서도 아무것도 할 수 없습니다. 올바른 해시가 신뢰할 수있는 연결을 통해 전송되면 보안을 제공 할 수 있습니다 (신뢰할 수있는 연결에서 파생 됨). 이 파일과 같은 연결을 통해 전송 않다면, 그 다음 그 자체가 있던 파일보다 더 변조 방지 없기 때문에 그것은 쓸모가 없어요.
cpast

2
이것은 잘못이다. 때때로 체크섬이 안전하게 제공되지만 다운로드가되지 않습니다. MD5가 손상되었으므로 MD5 체크섬이 제공하는 보안은보다 안전한 체크섬보다 약하지만 MD5가 중단되기 전에 다운로드의 MD5와 일치하는 안전하게 제공되는 MD5 (예 : HTTP로 서명 또는 전송 된 MD5)는 받은 다운로드는 서버에서 제공 한 것입니다. 아래에 더 자세한 답변을 추가하겠습니다.
Matthew Elvey

15

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

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


9

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

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


8

때때로 체크섬이 안전하게 제공되지만 다운로드가되지 않습니다. 때문에 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 등과 같은 것에 의존합니다.


나는 이것이 체크섬 의 기본 부분을 강조하기 때문에이 답변을 좋아합니다 . 파일 내용의 유효성을 검사하는 것은 단순히 많은 메트릭 중 하나 입니다. 네트워크 자체를 신뢰할 수없는 경우 MD5 해시 및 패치 바이너리를 즉시 교체한다고 상상할 수 없습니다. (일부 Tor 종료 노드에서 이미 보았 듯이) MD5는 이미 언급 한 파일의 제공자를 신뢰하고 있기 때문에 의도적으로 수정 된 파일 입니다.
획기적인

2
MD5는 완전히 손상 되지 않았습니다 . 그 공격 은 사전 이미지 첨부 가 아니라 충돌 공격 입니다. MD5가 안전하게 제공되고 공격자가이를 수정할 수없는 경우 공격자는 충돌 공격을 사용할 수 없으며 사전 이미지 공격을 사용해야합니다. 즉, MD5는 여전히 그 목적을 위해 매우 안전합니다. MD5는 충돌 취약점으로 인해 단계적으로 폐지 될 가치가 있지만 알려진 이미 이미지 취약점이 없으므로 완전히 손상 되지는 않습니다 . 절반 만 깨 졌어요
Cornstalks

+1! 그러나 ... 서명 된 해시는 https (ssl / tls)를 통해 가져온 서명되지 않은 해시와 마찬가지로 실제로 안전하고 신뢰할 수 있습니까? 어쨌든 해시 자체에 서명하는 것이 여전히 바람직하다고 생각합니다.
matpop

4

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

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


2
신뢰할 수있는 파일 버전의 예상 해시가 무엇인지 독립적 인 소스 를 통해 알고 있으면 해시가 악의적 인 변경으로부터 보호 할 수 있습니다. 웹 사이트에 파일의 해시 값을 나열하는 것의 가치는 사이트에서 파일을 다운로드하는 사람들이 동일한 사이트에 대해 다운로드 된 파일의 해시를 검사하도록하는 것이 아니라 다른 소스 를 아는 사람들에게 알리는 데 있습니다. 원하는 파일의 해시 , 문제의 파일을 다운로드하기 전에 해당 파일이 일치하는지 여부를 알고 있어야합니다. BTW, 내가보고 싶은 것 중 하나
supercat

... 예상 해시 값 (MD5가 아닌 SHA)이 포함 된 URL / URI 형식이며, 해시가 지정된 값과 일치하는 경우 브라우저가 파일 만 수락하도록 지정합니다. 많은 사람들이 동일한 큰 파일에 액세스해야하는 경우 모든 사람들에게 https : //를 통해 URL을 제공하지만 프록시에서 파일을 다운로드하는 것이 모두 https : //를 사용하는 것보다 더 효율적일 수 있습니다 소스에서 직접.
supercat

@supercat 이것이 바로 "사람들이 체크섬을 엉망으로 만들지 말 것"이라는 의미입니다. 무엇인가가 안전하게 전송되어야합니다. 만약 체크섬이라면 체크섬은 파일의 악의적 인 변조를 막을 수 있습니다.
cpast

파일 자체가 아닌 다른 경로를 통해 전송 된 MD5 체크섬 은 파일이 그러한 변조를 용이하게하기 위해 의도적으로 생성 되지 않는 한 변조 방지를 제공합니다. 대조적으로, CRC32와 같은 파일은 파일의 원래 소스가 신뢰할 수 있고 CRC32가 안전하게 제공 되더라도 변조에 대해 거의 보호를 제공하지 않습니다.
supercat

4

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

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

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


2

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

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

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

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


1
gpg 관련 : 공개 키가 손상된 키로 대체되지 않았고 해당 키에 해당하는 개인 키로 서명 된 내용으로 완전히 신뢰하지 않으면 이와 유사한 문제가 있음을 기억하십시오.
David Spillett

1

파일을 수정하지 않고 MD5 체크섬을 수정할 수 없습니다. 파일을 다운로드 한 다음 해시를 다운로드하면 파일 계산이 해시 나 파일이 잘못되었거나 불완전한 것과 일치하지 않습니다.

파일을 작성자, 기계 등과 같은 외부에 "연결"하려면 인증서가있는 PKI 유형 프로세스를 사용하여 서명 해야합니다 . 파일 작성자 등은 자신의 개인 키로 파일에 서명 할 수 있으며 공개 키를 사용하여 서명을 확인할 수 있습니다. 공개 키는 공개적으로 사용 가능해야하며 공개 키는 사용자와 저자의 신뢰에 의해 CA가 서명하고 다운로드 할 수 있습니다. 여러 위치.

파일을 수정하면 서명이 유효하지 않게되므로 파일 무결성을 확인하는 데에도 사용할 수 있습니다.


1

해시는 파일 버전 ( "다운로드")이 서버 버전과 다른지 여부를 나타냅니다. 파일의 진위 여부를 보증하지 않습니다.

디지털 서명 (비대칭 암호화 + 해시 기능)을 사용하여 해당 개인 키가없는 사람이 파일을 수정하지 않았는지 확인할 수 있습니다.

파일 작성자는 파일을 해시하고 (비밀) 개인 키를 사용하여 해시를 암호화합니다. 이렇게하면 비밀이 아닌 공개 키를 가진 사람은 누구나 해시가 파일과 일치하는지 확인할 수 있지만 파일 내용을 수정할 수는 있지만 해당 해시를 파일과 일치하는 해시로 바꿀 수는 없습니다 (해시를 사용하여 해독 한 후 공개 키)-개인 키를 무차별 적으로 강제하거나 액세스하지 않는 한.

"A.Hacker"씨가 파일을 수정 한 다음 자신의 개인 키로 서명하지 못하게하려면 어떻게해야합니까?

파일의 유효성을 검사하려면 해시를 연결된 디지털 서명을 해독하여 얻은 해시와 비교해야합니다. 파일이 "IMAwesome"에 있다고 생각되면 해시가 A.Hacker의 키를 사용하여 암호화 되었기 때문에 그의 키를 사용하여 해시를 해독하고 해시가 파일과 일치하지 않습니다.

따라서 디지털 서명을 통해 우발적이거나 악의적 인 변경을 모두 탐지 할 수 있습니다.

그러나 우선 IMAwesome의 공개 키를 어떻게 얻습니까? 키를 입수했을 때 실제로 A.Hacker의 키가 손상된 서버 나 MITM (Man-in-the-Middle) 공격에 의해 제공되지 않았 음을 어떻게 확인할 수 있습니까? 인증서 체인과 신뢰할 수있는 루트 인증서가 제공되는 곳으로,이 중 어느 것도 문제에 대한 완벽한 보안 솔루션 [1]이 아니며 Wikipedia와 SO에 대한 다른 질문에 모두 잘 설명되어 있어야합니다.

[1] 검사시 업무용 PC에서 Microsoft OS와 함께 제공된 루트 인증서에는 미국 정부의 인증서가 포함됩니다. 따라서 해당 개인 키 기침 NSA 기침에 액세스 할 수있는 사람 은 "주소 표시 줄에 자물쇠가 있는지"확인을 통과하는 내용을 내 웹 브라우저에 제공 할 수 있습니다. 실제로 얼마나 많은 사람들이 자물쇠를 클릭하고 누가 키 쌍이 연결을 "보안 화"하는 데 사용 되는지 알고 싶어 합니까?


인증서 체인을 검사하여 스캔들을 유발하는 사람은 한 명뿐입니다. NSA가 개인 소유 또는 외국 인증 기관에서 도난당한 키를 사용하는 대신 MITM에 정부 CA 키를 사용한다고 생각한다면 (그러한 거부 가능성을 제공함), 나는 당신을 팔 수있는 다리가 있습니다.
Charles Duffy

특정 사용자에게 MITM을 타겟팅하는 데 사용할 수있는 가능성을 제안했습니다. 그것이 실제로 가능성에 관해서는, 그것은 주석 호일 사람들이 토론하는 것입니다
Mark K Cowan

대상 MITM이 가능한지 의심하지 않습니다. 나는 쉽게 추적하고 귀중한 CA 키를 사용하여 부주의하게 행동 할 수 있을지 의문입니다. 특히 가치가 높은 대상의 경우 아웃 바운드 '순 트래픽은 SSL 핸드 셰이크의 공개 부분을 포함하여 메타 데이터를 포함하기에 충분히 상세하게 기록 될 수 있으므로 사용자가 보지 않아도 보안 직원 또는 자동 인프라는 소급 분석에서 그렇게 할 수 있습니다.
Charles Duffy

1

체크섬이 손상되지 않았는지 알 방법이없는 경우 MD5 체크섬은 의도적으로 변경된 파일 에 대해 어떻게 보호 할 수 있습니까?

이것은 정말 좋은 질문입니다. 일반적으로 MD5 조작에 대한 귀하의 평가는 중요합니다. 그러나 다운로드에서 MD5 체크섬의 가치는 피상적이라고 생각합니다. 파일을 다운로드 한 후 웹 사이트에 대해 MD5를 확인할 수 있지만, 나란히 MD5 저장소를 "영수증"또는 신뢰할 수는 없지만 좋은 것으로 간주하는 경향이 있습니다. 따라서 일반적으로 다운로드 한 파일에서 MD5 체크섬에 신경 쓰지 않았지만 임시 서버 기반 MD5 프로세스를 만든 경험에서 말할 수 있습니다.

기본적으로 클라이언트가 MD5 체크섬을 위해 파일 시스템을 스윕하려는 경우 파일 이름, 경로, MD5 및 기타 잡다한 파일 정보를 구조화 된 데이터 형식으로 매핑 한 CSV 파일로 생성하여 수집 한 구조화 데이터 형식으로 만드는 것입니다. 비교 및 저장을 위해 데이터베이스에

따라서 예제를 사용하면 MD5 체크섬이 자체 텍스트 파일의 파일 옆에있을 수 있지만 권한 레코드 MD5 체크섬은 연결되지 않은 데이터베이스 시스템에 저장됩니다. 따라서 누군가가 데이터를 조작하기 위해 파일 공유에 해킹 한 경우 침입자는 MD5 권한 레코드 또는 연결된 기록에 액세스 할 수 없습니다.

최근에는 ACE Audit manager 라는 멋진 라이브러리 보관 소프트웨어를 발견했습니다.이 라이브러리 는 기본적으로 파일 시스템을 변경하고 감시하도록 설계된 Java 응용 프로그램입니다. MD5 변경 사항을 통해 변경 사항을 기록합니다. 또한 체크섬을 데이터베이스에 저장하는 임시 프로세스와 유사한 철학으로 작동하지만 해시 트리 또는 머클 트리 라고하는 MD5 체크섬의 MD5 체크섬을 만들지 만 한 단계 더 발전해야합니다 .

컬렉션에 5 개의 파일이 있다고 가정 해 봅시다. 그런 다음 ACE Audit Manager의 5 개 파일은 각 파일의 5 개 MD5 체크섬에서 생성 된 해시 인 다른 파일 ( "부모") 체크섬을 얻습니다. 따라서 누군가 하나의 파일 만 조작하면 파일의 해시가 변경되고 전체 "부모"컬렉션의 해시도 변경됩니다.

일반적으로 MD5 체크섬 및 관련 무결성 해시를 확인하는 방법은 MD5 해시 자체의 일부 비 직접 저장소에 연결되어 있지 않으면 손상 될 수 있습니다. 그리고 장기적인 데이터 무결성 도구로서의 가치는 새로운 수하물에 "무료"로 제공되는 저렴한 자물쇠와 같습니다. 수하물을 잠그는 것이 중요하다면 클립으로 5 초 안에 열 수없는 자물쇠를 얻게됩니다.


"MD5 체크섬의 MD5 체크섬"은 Merkle Tree 로 알려져 있습니다.
pjc50

감사합니다! 그것을 참조하기 위해 답변을 편집했습니다.
JakeGould

0

속도

종종 사람들은 (a) 신뢰할 수없는 "가까운"CDN (콘텐츠 전송 네트워크), 미러 사이트, 토런트 피어 등에서 대용량 파일을 다운로드하고 해당하는 짧은 체크섬 파일 (종종 SHA256; 이전 소프트웨어)을 다운로드하는 것이 훨씬 빠릅니다. 신뢰할 수있는 몇몇 출처의 MD5)를 종종 사용했습니다. 그들은 (b) 신뢰할 수있는 출처에서 전체 큰 파일을 직접 다운로드하는 것이 너무 느리다는 것을 알게되었습니다.

확인, 검증

그 사람은 종종 모든 것이 검증된다는 것을 알게됩니다-소스 (신뢰하고 신뢰할 수없는)는 동일한 체크섬에 동의하고 짧은 체크섬 파일 중 하나와 함께 shasum (또는 md5sum)을 실행합니다 (모두 동일 할 때 어느 것이 중요하지 않습니다) )는 큰 파일에 일치하는 체크섬이 있음을 나타냅니다.

수정

Mallory가 일부 다운로드 사이트에있는 큰 파일을 악의적으로 변경하는 경우 Mallory가 악의적 인 체크섬 파일에서 shasum (또는 md5sum)을 실행할 수 있도록 동일한 다운로드 사이트 에서 해당 파일의 체크섬을 악의적으로 악용하기가 쉽습니다. 큰 파일을 확인하는 것 같습니다. 그러나 체크섬 파일은 다운로더가 유효성 검사에 사용해야하는 유일한 파일이 아닙니다.

다운로더가 악의적 인 체크섬 파일을 신뢰할 수있는 소스에서 다운로드 한 체크섬 파일과 비교할 때 원래 체크섬이 한 번만 통과하면 다운로더는 모든 것이 유효 하지 않은 것을 확인하고 문제가 있음을 알게됩니다.

cpast가 이전에 말했듯이, 양호한 암호화 체크섬이 신뢰할 수있는 연결을 통해 전송되면 보안을 제공 할 수 있습니다 (신뢰할 수있는 연결에서 파생 됨).

슈퍼 캣이 전에 말했듯이, 한 사이트의 체크섬 파일은 같은 사이트에서 큰 파일을 다운로드하는 사람들과 체크섬 파일을 다운로드하는 것과 같은 방식으로 다른 사이트에서 파일을 다운로드하려는 사람들에게 도움이되지 않습니다.

"보안 측면에서 MD5와 같은 암호화 해시는 안전하지 않은 미러에서 얻은 데이터의 인증을 허용합니다. MD5 해시는 서명하거나 신뢰할 수있는 조직의 보안 소스 (HTTPS 페이지)에서 가져와야합니다." -https : //help.ubuntu.com/community/HowToMD5SUM

암호화 체크섬은 실제 공개 키 서명의 중요한 부분입니다 (GnuPG 및 기타 OpenPGP 호환 소프트웨어에서 구현 됨). 공개 키 서명은 체크섬에 비해 몇 가지 장점이 있습니다.


0

이 [MD5 체크섬]은 악의적 인 변경 사항도 쉽게 탐지 할 수 있도록 [...] 허용하는 것으로 들었습니다.

글쎄, 당신 완전히 잘못 들리지 않았습니다 . 디지털 서명 은 실제로 악의적 인 변경을 탐지하는 데 사용됩니다. 몇 가지 중요한 이유로 해싱 은 전체 원본 파일이 아닌 해시 만 실제로 서명되므로 디지털 서명의 기본 부분입니다 .

그 존재가 말했다 소스가 해시를 확인하기 위해 신뢰할 수있는 방법의 서명을 제공하지 않는 경우 , 당신은 오른쪽있어 더 보호에 주어지지 의도적으로 변경 파일 ,하지만 해시는 여전히에 대한 검사로 유용 사고 부패 .

여기 에 전체를 명확히 할 수 있는 실제 예가 있습니다. 다음 구절은 주제에서 특히 중요합니다.

오래된 아카이브 CD 릴리스의 경우 MD5 체크섬 만 생성됩니다 ...] 최신 릴리스의 경우 새롭고 암호화 적으로 강력한 체크섬 알고리즘 (SHA1, SHA256 및 SHA512)이 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.