2

내가 변조 여부를 결정할 때 파일의 디지털 서명 (일명 Verisign, Simantec 등의 디지털 인증서)에 어느 정도의 의지가있을 수 있는지 궁금합니다.서명 된 무결성을 유지하면서 서명 된 실행 파일을 변조 할 수 있습니까?

더 이상 원래 개발자 사이트에 있지 않지만 cnet, oldapps.com 또는 filehippo와 같은 타사 사이트에서 사용할 수있는 응용 프로그램 버전을 다운로드하고 싶습니다. 보통 MD5 또는 SHA1 해시 서명을 나열하는 사람들과 함께 이전 포럼 항목을 검색하여 다운로드 한 해시와 일치하는지 확인합니다. 그것은 소프트웨어 인 정말로 큰 개발자와 만 작동합니다.

파일의 디지털 서명을 확인하는 것이 파일이 개발자가 제공하고 타사에서 변경되지 않았 음을 확인하는 또 다른 신뢰할 수있는 방법인지 궁금합니다.

해커가 이미 서명 한 DLL 또는 EXE를 악성 코드와 함께 삽입하고 효과적으로 파일의 해시를 변경하면 서명에 일종의 다이제스트가 포함되어 있기 때문에 디지털 서명이 손상 될 수 있습니까? 아니면 서명이 완전히 영향을받지 않을까요?

답변

1

에서 내가 경험적인 접근 방식을 사용하기보다는 그것을 위해 디지털 인증 기관의 단어를 복용 복용 내 자신의 질문에 대답하기로 결정했다.

저는 16 진수 편집기를 사용하여 wdksetup.exe (Microsoft의 웹 사이트에서 서명 한 WDK 웹 설치 프로그램)의 사본을 수정하고 디지털 서명이 어떻게 영향을 받는지 실험 한 실험을 고안했습니다. 나는 1byte를 25KB로 대체했고 대체 할 때마다 새로운 사본을 만들었다. 또한 ResourceHacker를 사용하여 파일 그룹에 아이콘 그룹을 추가하여 추가 400KB를 파일에 추가했습니다.

결과

파일의 SHA1 다이제스트를 변경할뿐만 아니라, 검사에 실패한 그 서명 발생할 1 단일 바이트를 대체
  • . 서명은 그대로 있지만 모든 검사를 통과하지 못합니다. 파일을 VirusTotal에 보내면 등록 정보로 이동하여 서명의 세부 정보를 클릭하거나 실행하려고 시도하고 게시자 회선을 살펴 본다면 서명이 좋지 않음을 알리는 메시지가 표시됩니다. 1 바이트. 훌륭한!

  • 나는 서명이 손실되지 않았 음을 강조합니다 (최대 25KB를 대체했을 때도 마찬가지 임). 따라서 파일 속성으로 이동해도 여전히 디지털 서명 탭이 있으며 여전히 서명이 유지됩니다. Microsoft에 말하십시오. 이는 매우 오도하기 쉽기 때문에 서명이 유효한지 여부에 관계없이 해당 탭이 여전히 존재하기 때문에 검사를 종료하지 않도록주의해야합니다. 좋은 서명을 가지려면 서명을 선택하고 세부 사항을 클릭해야합니다. 그런 다음 서명이 유효한지 여부를 알려주는 대화 상자가 나타납니다. 이것은 Windows 7에서 관찰 한 동작을 설명하며, 속성 대화 상자가 어떻게 작동하는지 보려면 8 또는 10 복사본이 필요하지 않습니다.

  • 파일을 크게 변경하면 파일이 완전히 파괴됩니다.

(편집은 :.. 나는 크기의 영향을보고 궁금해서 나는 동일한 결과와 250메가바이트 파일에서 1 바이트 대체 실험을 반복 나는 볼 수도 호기심 경우 크기에 영향을 얻을 수있는 가능성 충돌을 다이제스트를 계산할 때 인치 3.5GB DVD iso에서 1 바이트 대체를 수행하여 다른 MD5 및 SHA1 해시가 발생했습니다.)

+0

나는 당신이 큰 변화를했기 때문에 서명이 제거 된 것이 아니라, 옳은 일을하고 변경을하는 동안 서명을 제거하는 도구를 사용했기 때문에 나는 제거되었다고 가정하고 있습니다. 파일을 해킹 할 때 물론 시그니처는 여전히있을 것입니다. 바로 그 점입니다. 파일이 어떤 시점에서 서명되었고 그 다음에 변조되었음을 보여주는 것입니다. 유효하지 않은 서명을 갖는 것은 서명이없는 것보다 더 많은 정보입니다. ui가 그것에 대해 아주 명확하지 않다는 사실은 슬프지만, Windows는 더 이상 유효하지 않은 서명으로 서명 된 실행 파일을 실행할 수 없기를 바랍니다. –

+0

올바르게 기억한다면 Windows 10에서는 속성에 들어가서 해당 파일을 덮어 쓰지 않고도 폐기 된 인증서를 실행할 수 없지만 7은 그렇지 않습니다. 작동합니다. 인증서를 직접 확인하겠습니다. 앞서 말했듯이 이전에 다른 수표를 사용하고 있었지만 지금은 인증서를 신뢰할 수 있다는 것을 알았으므로 사용할 수있는 또 다른 도구입니다. 왜 그들이 iso 보관 파일에 서명하지 않는지 궁금합니다. – thebunnyrules

+0

iso는 암호화 서명 이전에 설계된 디스크 이미지 형식이므로 공통입니다. –

2

물론 어떤 식 으로든 실행 파일을 변경하면 서명을 무효화해야합니다. 당신은 주요 기능을 의심하고 있기 때문에, https://msdn.microsoft.com/en-us/library/windows/desktop/aa382384(v=vs.85).aspx

실행 서명이 무엇의 좋은 증거를 찾기 위해 조금 어렵습니다, 대부분의 일들이 생각하는 것 :
여기이 작동하는 방법에 대한 자세한 내용은 찾기 위해 몇 가지 링크입니다 사실 서명 확인을하고있는 것입니다. 아마도이 :

예를 들어, 소프트웨어 게시자 신뢰 제공자가 실행 이미지 파일이 신뢰할 수있는 소프트웨어 게시자에서오고이 게시 된 이후 하는 파일이 변경되지 않았 음을 확인할 수 있습니다. 이 경우 pWinTrustData 매개 변수는 파일 이름과 형식의 파일 (예 : Microsoft Portable Executable 이미지 파일)을 지정합니다.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa388208(v=vs.85).aspx

+0

감사합니다. 그동안, 당신은 나에게 아이디어를주었습니다. 나는 자신의 사이트에서 자신의 사이트를 다운로드하고 어떤 일이 벌어지는지를 여러 가지 방법으로 수정하려고 시도 할 예정이다. 나는 그 결과를 답으로 세울 것이다. – thebunnyrules

관련 문제