19 Jul
2011
Posted in: 코드
By    1 Comment

디지털 서명은 반드시 마지막에…


디지털 서명은 반드시 마지막에…
by 신영진(YoungJin Shin), codewiz at gmail.com, @codemaru, http://www.jiniya.net

디지털 서명과 실행파일 프로텍트를 같이 하면서 흔히들 저지르는 실수가 하나 있습니다. 디지털 서명을 처음 적용하시는 분들이 많이들 하는 실수 같은데요. 실행 파일을 빌드한 다음 디지털 서명을 적용하고, 해당 파일을 실행 파일 프로텍터로 보호하는 겁니다. 그런데 웃기게도 이렇게 해버리는 경우는 실행 파일 프로텍터가 실행 파일 내용을 바꾸면서 자연스럽게 해시 값이 변경되서 디지털 서명으로 인한 인증효과가 전혀 없어진다는 겁니다. 그러니 이렇게 백날 디지털 서명을 해봤자 백신 프로그램이나 다른 여타 보안 프로그램에서는 허구헌날 그 프로그램을 잡게 됩니다. 왜냐하면 디지털 서명이 되어 있지만 변조된 파일이거든요.

그렇다면 제대로 하려면 어떻게 하면 되느냐? 바로 순서를 반대로 하면 됩니다. 프로텍터로 보호하고, 디지털 서명을 하는 거죠. 그러면 디지털 서명이 최종적으로 적용되었기 때문에 실행 파일 해시는 디지털 서명의 그것과 일치하고 백신등이 검사했을 때 변경되지 않았기 때문에 안전하게 예외처리가 될 겁니다. 물론 디지털 서명을 제대로 해도 잡는 백신도 많습니다.

결론은 “디지털 서명을 제대로 적용하기 위해서는 반드시 실행 파일에 최종 수정을 가하는 것이 인증서 프로그램이 되도록 만들어야 한다”로 요약할 수 있겠습니다.

아래는 참고로 프로그램에서 디지털 서명을 체크하는 코드가 나와 있는 사이트입니다. 프로그램에 디지털 서명 체크 기능을 추가해야 한다면 유용하게 카피앤페이스트해서 사용하실 수 있습니다. ㅋㅋ~

http://msdn.microsoft.com/en-us/library/aa382384(VS.85).aspx
http://support.microsoft.com/kb/323809/ko

Browser does not supports flash movie

  • 트랙백 주소: http://www.jiniya.net/wp/archives/307/trackback

관련 글

  • 무플!!!

    무플!!!