다운로드한 프로그램의 디지털 서명과 게시자를 확인하는 방법

인터넷에서 내려받은 설치 프로그램을 실행하기 전에는 파일 이름과 아이콘만 믿어서는 안 된다. 악성 프로그램도 유명 소프트웨어와 비슷한 이름과 아이콘을 사용해 정상 프로그램처럼 위장할 수 있기 때문이다. 이때 확인해야 할 중요한 정보가 디지털 서명과 게시자다.
디지털 서명은 프로그램을 배포한 주체가 누구인지 확인하고, 서명된 이후 파일 내용이 변경되지 않았는지 검사하는 보안 장치다. Windows 파일 속성과 PowerShell을 이용하면 별도의 프로그램을 설치하지 않고도 서명 상태, 게시자, 인증서 유효기간과 변조 가능성을 확인할 수 있다.
목차
1. 디지털 서명과 게시자가 중요한 이유
Windows 프로그램에 사용되는 대표적인 코드 서명 기술은 Authenticode다. 프로그램 제작사는 인증기관에서 발급받은 코드 서명 인증서로 EXE, MSI, DLL 등의 파일에 전자서명을 추가할 수 있다.
디지털 서명에는 일반적으로 다음과 같은 정보가 포함된다.
- 프로그램에 서명한 회사나 기관의 이름
- 인증서를 발급한 인증기관
- 인증서의 유효기간
- 서명에 사용된 해시 알고리즘
- 파일이 서명 후 변경되었는지 여부
- 서명이 만들어진 시점을 증명하는 타임스탬프
프로그램 내용이 서명 후 변경되면 현재 파일의 해시값과 서명 당시 기록된 값이 일치하지 않을 수 있다. 이 경우 Windows에서는 서명이 유효하지 않거나 파일이 손상됐다는 결과가 표시될 수 있다.
다만 디지털 서명이 있다고 해서 무조건 안전한 프로그램은 아니다. 탈취된 인증서나 신뢰도가 낮은 인증서가 악용될 가능성도 있기 때문이다. 반대로 개인 개발자가 제작한 정상적인 무료 프로그램에는 디지털 서명이 없을 수도 있다. 따라서 서명은 안전성을 판단하는 중요한 근거이지만 유일한 기준으로 사용해서는 안 된다.
2. 파일 속성에서 디지털 서명 확인하기
다운로드한 설치 프로그램을 실행하기 전에 파일 탐색기에서 다음 순서로 확인한다.
파일 탐색기 → 다운로드 폴더 → 프로그램 파일 마우스 오른쪽 버튼 → 속성 → 디지털 서명
Windows 11에서 속성이 바로 보이지 않으면 파일을 마우스 오른쪽 버튼으로 누른 뒤 더 많은 옵션 표시 → 속성을 선택한다.
디지털 서명 탭에서는 다음과 같은 정보를 확인할 수 있다.
- 서명자 이름
- 다이제스트 알고리즘
- 타임스탬프
- 디지털 서명 목록
목록에서 확인할 서명을 선택한 후 자세히를 누른다. 정상적인 서명이라면 디지털 서명 정보에 다음과 비슷한 문구가 표시된다.
디지털 서명이 유효합니다.
그다음 인증서 보기를 눌러 인증서를 발급받은 대상과 발급기관을 확인한다. 서명자 이름은 프로그램을 만든 공식 제작사나 배포사의 회사명과 일치해야 한다.
제품에 표시되는 브랜드명과 인증서의 법인명은 서로 다를 수 있다. 이름이 다르다고 바로 악성 프로그램으로 단정하지 말고 프로그램의 공식 회사명과 저작권 표시를 함께 비교해야 한다.
3. 디지털 서명 탭이 없을 때의 의미
파일 속성에 디지털 서명 탭이 보이지 않는다면 일반적으로 해당 파일에 Windows가 표시할 수 있는 Authenticode 서명이 없다는 의미다.
그러나 디지털 서명이 없다고 해서 무조건 악성 파일인 것은 아니다. 다음과 같은 경우에도 서명 탭이 없을 수 있다.
- 개인 개발자가 만든 정상 프로그램
- 코드 서명이 적용되지 않은 오래된 프로그램
- 서명 대상이 아닌 문서나 이미지 파일
- ZIP 파일 자체에는 서명이 없지만 내부 실행파일에는 서명이 있는 경우
- 파일 전송 과정에서 서명 정보가 손상된 경우
- 별도의 카탈로그 방식으로 서명된 시스템 파일
ZIP이나 다른 압축파일을 내려받았다면 압축을 해제한 후 실제로 실행할 .exe, .msi, .dll 파일의 속성을 확인해야 한다.
서명이 없는 프로그램을 반드시 사용해야 한다면 공식 제작사가 직접 제공한 파일인지 확인하고 Microsoft Defender 검사와 SHA-256 해시 비교를 추가로 진행하는 것이 좋다.
4. 게시자와 인증서 유효기간 확인하기
인증서의 상세 내용은 다음 경로에서 확인한다.
파일 속성 → 디지털 서명 → 서명 선택 → 자세히 → 인증서 보기
인증서 창에서는 다음 항목을 중점적으로 살펴본다.
발급 대상
인증서를 발급받은 회사나 기관의 이름이다. 프로그램을 만든 공식 제작사나 공식 배포사와 일치하는지 확인한다.
유명 회사와 철자가 비슷하지만 정확히 일치하지 않는 이름이 표시되거나 전혀 관계없는 회사명이 나온다면 실행을 보류해야 한다.
발급자
인증서를 발급한 인증기관을 의미한다. Windows가 신뢰할 수 있는 기관으로 인식하는지에 따라 서명 검증 결과가 달라질 수 있다.
개발자가 직접 만든 자체 서명 인증서는 다른 컴퓨터에서 자동으로 신뢰되지 않을 수 있다. 따라서 인증서가 있다는 사실만 보지 말고 Windows가 서명을 유효하다고 판단하는지도 확인해야 한다.
유효기간
인증서를 사용할 수 있는 시작일과 만료일이다. 현재 인증서가 만료되었다고 해서 해당 프로그램의 서명이 반드시 무효인 것은 아니다.
정상적인 타임스탬프가 포함된 서명은 인증서가 유효했던 기간에 파일이 서명되었다는 사실을 증명할 수 있다. 따라서 프로그램이 정상적으로 서명된 후 인증서가 만료됐더라도 디지털 서명은 계속 유효한 것으로 표시될 수 있다.
인증서 날짜만 보고 악성 파일로 판단하지 말고 서명의 전체 상태와 타임스탬프를 함께 확인해야 한다.
5. PowerShell로 서명 상태 검사하기
파일이 여러 개이거나 더욱 구체적인 서명 상태를 확인하고 싶다면 PowerShell의 Get-AuthenticodeSignature 명령어를 사용할 수 있다.
PowerShell 실행 방법
- Windows 시작 버튼을 누른다.
- 검색창에
PowerShell을 입력한다. - Windows PowerShell 또는 터미널을 실행한다.
- 일반적인 파일은 관리자 권한 없이도 검사할 수 있다.
먼저 확인할 파일의 경로를 복사한다.
파일 탐색기 → 확인할 파일 마우스 오른쪽 버튼 → 경로로 복사
예를 들어 설치파일의 경로가 다음과 같다고 가정해 보자.
C:\Users\사용자명\Downloads\setup.exe
PowerShell에 다음 명령어를 입력한다.
Get-AuthenticodeSignature-FilePath"C:\Users\사용자명\Downloads\setup.exe"
더 자세한 서명자와 인증서 정보를 확인하려면 다음 명령어를 사용한다.
Get-AuthenticodeSignature-FilePath"C:\Users\사용자명\Downloads\setup.exe"|Format-ListStatus, StatusMessage, SignerCertificate, TimeStamperCertificate
파일 경로에는 실제 사용자 컴퓨터에 저장된 경로를 입력해야 한다. 파일 경로에 공백이 포함되어 있을 수 있으므로 전체 경로를 큰따옴표로 감싸는 것이 중요하다.
6. PowerShell 검사 결과 해석하기
PowerShell 결과에서 가장 중요한 항목은 Status다.
| 검사 결과 | 의미 | 권장 대응 |
|---|---|---|
Valid | 디지털 서명이 정상적으로 검증됨 | 게시자와 다운로드 출처 추가 확인 |
NotSigned | 확인 가능한 서명이 없음 | 공식 배포처와 해시값 확인 |
HashMismatch | 현재 파일과 서명 당시 해시값이 다름 | 실행하지 말고 다시 다운로드 |
NotTrusted | 게시자 또는 인증서를 신뢰하지 못함 | 인증서와 제작사 정보 확인 |
UnknownError | 서명을 정상적으로 검증하지 못함 | 재다운로드 후 다시 검사 |
NotSupportedFileFormat | 지원되지 않는 파일 형식 | 파일 형식에 맞는 검사 방법 사용 |
Incompatible | 현재 환경과 호환되지 않는 서명 | 운영체제와 서명 방식 확인 |
Valid는 디지털 서명의 구조가 정상적으로 검증되었다는 뜻이다. 그러나 이것만으로 프로그램의 모든 기능과 행동이 안전하다는 의미는 아니다.
따라서 Valid가 표시되더라도 다음 세 가지를 추가로 확인해야 한다.
- 게시자 이름이 공식 제작사와 일치하는가?
- 공식 배포 경로에서 내려받은 파일인가?
- Microsoft Defender 검사에서 문제가 발견되지 않았는가?
이 조건이 모두 일치할수록 파일의 신뢰도를 높게 판단할 수 있다.
7. 변조가 의심되는 대표적인 기준
다음과 같은 상황에서는 설치파일을 바로 실행하지 않는 것이 좋다.
- 공식 제작사와 디지털 서명의 게시자 이름이 다르다.
- 서명 상태가
HashMismatch로 표시된다. - 디지털 서명이 유효하지 않다는 경고가 나온다.
- 공식 사이트가 아닌 광고창이나 파일 공유 사이트에서 받았다.
- 다운로드 버튼에 적힌 프로그램과 실제 파일명이 다르다.
- 파일명이 의미 없는 영문과 숫자의 조합으로 되어 있다.
- 문서나 사진처럼 보이지만 실제 확장자가
.exe또는.scr이다. - 실행할 때 백신이나 방화벽을 끄라고 요구한다.
- 프로그램의 기능과 관계없는 관리자 권한을 요구한다.
- 게시자 이름이 유명 회사와 비슷하지만 철자가 다르다.
- 설치 과정에서 여러 개의 불필요한 프로그램 설치를 요구한다.
특히 HashMismatch는 현재 파일의 내용과 디지털 서명에 저장된 해시값이 일치하지 않는다는 의미다. 파일이 서명된 이후 변경됐거나 다운로드 과정에서 손상되었을 가능성이 있다.
이러한 파일은 보안 예외로 등록하거나 경고를 무시하지 말고 실행을 중단해야 한다. 그다음 기존 파일을 삭제하고 공식 배포처에서 다시 내려받아 서명 상태를 확인하는 것이 안전하다.
8. 의심스러운 파일을 안전하게 처리하는 방법
서명 상태나 게시자가 의심스럽다면 다음 순서로 처리한다.
- 파일을 더블클릭하거나 실행하지 않는다.
- 프로그램을 받은 사이트가 공식 배포처인지 확인한다.
- 기존 파일을 실행하지 않은 상태로 보관하거나 삭제한다.
- 공식 제작사가 제공하는 최신 파일을 다시 받는다.
- 파일을 마우스 오른쪽 버튼으로 누른다.
- Microsoft Defender로 검사를 선택한다.
- 디지털 서명과 게시자를 다시 확인한다.
- 제작사가 해시값을 제공한다면 SHA-256 값을 비교한다.
- 안전 여부를 판단하기 어렵다면 사용하지 않는다.
Windows 11에서 Defender 검사 항목이 바로 보이지 않으면 다음 경로로 들어간다.
파일 마우스 오른쪽 버튼 → 더 많은 옵션 표시 → Microsoft Defender로 검사
업무 문서나 개인정보가 포함된 파일을 온라인 검사 서비스에 올리는 것은 주의해야 한다. 파일 내용이 외부 서버로 전송될 수 있기 때문이다. 공개된 설치파일은 온라인 검사를 보조적으로 활용할 수 있지만 개인 자료는 함부로 업로드하지 않는 것이 안전하다.
초보자를 위한 간단 확인 경로
다운로드 폴더 → 설치파일 마우스 오른쪽 버튼 → 속성 → 디지털 서명 → 서명 선택 → 자세히 → 서명 유효 여부 확인 → 인증서 보기 → 발급 대상·발급자·유효기간 확인
PowerShell로 확인할 때는 다음 명령어를 사용한다.
Get-AuthenticodeSignature-FilePath"확인할 파일의 전체 경로"
예시:
Get-AuthenticodeSignature-FilePath"C:\Users\사용자명\Downloads\setup.exe"
장점과 단점 분석
장점
- 별도의 검사 프로그램을 설치하지 않고 확인할 수 있다.
- 프로그램의 실제 서명자와 게시자 정보를 확인할 수 있다.
- 파일이 서명된 이후 변경되었는지 판단하는 데 도움이 된다.
- PowerShell을 이용하면 여러 파일도 효율적으로 검사할 수 있다.
- 인증서의 발급자와 유효기간, 타임스탬프까지 확인할 수 있다.
단점
- 디지털 서명이 있다고 해서 악성 프로그램이 아닌 것은 아니다.
- 정상적인 개인 개발 프로그램에도 서명이 없을 수 있다.
- 제품명과 법인명이 달라 게시자 판단이 어려울 수 있다.
- 인증서 만료와 타임스탬프의 관계를 이해하기 어려울 수 있다.
- 서명 확인만으로 프로그램의 모든 행동을 분석할 수는 없다.
사용자 경험을 바탕으로 한 평가 및 후기
많은 사용자가 프로그램을 설치할 때 파일 이름과 아이콘만 확인하고 바로 실행한다. 그러나 파일 속성에서 디지털 서명 탭을 확인하는 것만으로도 알 수 없는 게시자나 변조 가능성이 있는 파일을 발견할 수 있다.
그래픽 화면이 익숙한 사용자는 파일 속성에서 확인하는 방법이 편리하다. 여러 파일을 반복해서 검사하거나 구체적인 서명 상태를 확인하고 싶은 사용자는 PowerShell 방식이 효과적이다.
특히 PowerShell에서는 Valid, NotSigned, HashMismatch처럼 결과가 명확하게 표시되므로 서명 상태를 구별하는 데 도움이 된다. 다만 Valid라는 결과만 보고 무조건 실행하는 것은 위험하다. 게시자와 공식 배포처까지 일치하는지 확인해야 한다.
나의 의견
나는 다운로드한 프로그램을 실행하기 전에 다운로드 출처, 디지털 서명, 게시자, 백신 검사의 네 가지를 확인하는 습관이 필요하다고 생각한다. 이 과정은 오래 걸리지 않지만 가짜 설치파일과 변조 프로그램을 피하는 데 큰 도움이 된다.
디지털 서명은 프로그램의 안전을 보장하는 합격증이라기보다 누가 서명했고 서명 이후 파일이 변경되지 않았는지를 확인하는 증명서에 가깝다. 서명이 유효하더라도 게시자가 낯설거나 공식 사이트가 아닌 곳에서 받은 파일이라면 실행을 서두르지 않아야 한다.
반대로 서명이 없다는 이유만으로 모든 파일을 악성으로 단정할 필요도 없다. 공식 배포처, SHA-256 해시값과 Microsoft Defender 검사 결과를 함께 확인해야 한다.
결론적으로 유효한 디지털 서명, 정확한 게시자, 신뢰할 수 있는 다운로드 경로와 정상적인 백신 검사 결과가 모두 일치할 때 프로그램의 신뢰도를 높게 판단할 수 있다.
ELIYAHUB




댓글 0
첫 댓글을 남겨보세요.