디지털 서명(Digital Signature)이란 무엇이며, 왜 중요할까요? 이 글에서는 Windows 10/8/7 환경에서 프로그램의 디지털 서명을 찾고, 점검하고, 검증할 수 있는 세 가지 방법을 소개합니다.
미디어 파일, 실행 파일, 문서 등 어떤 파일이든 디지털 방식으로 생성되면 해당 데이터를 제공한 원본 측에서 디지털 서명을 부여합니다. 예를 들어 구글이 크롬 브라우저의 설치 파일(실행 파일)을 배포할 때 이 파일에 디지털 서명을 합니다. 따라서 공식 출처에서 직접 다운로드한 파일이라면 그 진위 여부를 검증할 수 있습니다.
다른 시나리오도 생각해 볼 수 있습니다. 누군가 동일한 파일을 자신의 서버에 올려두는 경우입니다. 파일이 전혀 수정되지 않았다면 아무 문제가 없습니다. 하지만 파일을 분해해 코드에 변경을 가하면 디지털 서명이 자동으로 무효화됩니다. 변조된 설치 파일을 다시 컴파일하는 순간 기존 서명이 사라지기 때문에, 파일의 진위성은 더 이상 검증되지 않습니다. 디지털 서명은 바로 이러한 원리로 작동합니다.
이제 파일과 함께 제공되는 디지털 서명을 실제로 확인하는 방법을 알아보겠습니다.
Windows 10에서 프로그램의 디지털 서명 확인하기
Windows 운영체제에서 프로그램의 디지털 서명을 확인하는 세 가지 방법을 하나씩 살펴보겠습니다.
1] 파일 탐색기 활용하기
먼저 Windows 파일 탐색기를 열고 프로그램이 저장된 위치로 이동합니다.
설치 파일을 마우스 오른쪽 버튼으로 클릭한 뒤 속성(Properties)을 선택합니다.
디지털 서명(Digital Signatures) 탭으로 이동합니다.

서명 목록(Signature List)에 항목이 표시된다면 해당 파일에 디지털 서명이 부여되어 있다는 의미입니다.
항목을 두 번 클릭하면 서명 기관에 대한 추가 정보를 확인할 수 있습니다.
이를 통해 파일이 소프트웨어의 원래 배포자에 의해 서명된 것인지 판단할 수 있습니다.

또한 서명 상세 보기 화면에서 인증서 보기(View Certificate) 버튼을 클릭하면 서명에 포함된 인증서에 대한 자세한 내용을 확인할 수 있습니다.
2] DigiCert 인증서 유틸리티 사용하기
공식 링크를 통해 최신 버전의 DigiCert를 다운로드한 후 실행 파일을 실행합니다.
시작 화면에서 이용약관에 동의한 다음 Code Signing 탭을 클릭하고, 상단 메뉴에서 Check Signature를 선택합니다.
디지털 서명을 확인할 설치 파일을 지정합니다.

DigiCert가 서명을 검사한 뒤, 새로 열리는 창에 전체 검증 결과 요약을 표시합니다.
DigiCert가 검증하는 항목은 다음 두 가지입니다.
- 파일에 서명이 존재하는지, 그리고 해당 서명이 유효한지 여부
- 서명의 타임스탬프(timestamp) 검사
위 스크린샷처럼 초록색 체크 표시 두 개가 나타나면 검증이 성공적으로 완료된 것입니다. 참고로 해당 창에는 이용자 편의를 위한 추가 정보도 함께 표시됩니다.
3] SignTool 사용하기
마이크로소프트는 Windows SDK에 SignTool이라는 프로그램을 포함하여 제공합니다. Windows SDK(소프트웨어 개발 키트)는 Windows에 기본 탑재되어 있지 않으며, 개발자를 위한 도구이므로 별도로 설치해야 합니다. 이 방법을 시도해 보려면 먼저 자신에게 맞는 SDK를 준비하세요. Windows 10 SDK는 마이크로소프트 공식 사이트에서 다운로드할 수 있습니다.
만약 "이 파일의 디지털 서명을 확인할 수 없습니다(The digital signature for this file couldn't be verified)"라는 오류 메시지가 표시된다면, SignTool을 활용한 이 방법이 문제 해결에 도움이 될 수 있습니다.
