윈도우 응용 프로그램 코드 서명
시스템 2025. 2. 12. 22:45코드 서명은 개발자가 생성한 프로그램이 변조되지 않고 배포되었음을 인증하기 위해 필요한 과정으로, 윈도우에서 프로그램을 배포한 후, 해당 프로그램이 윈도우의 smart screen 보안 필터의 경고에 걸리지 않고, 안전한 프로그램임을 사용자에게 알려줄 수 있는 방법이다.
코드 서명을 하지 않아도 배포가 불가능 한것이 아니나, 사용자가 다운로드하여 실행 시, 해당 프로그램의 변조 여부를 알 수 없기에 악성 프로그램인지 아닌지를 사용자는 알 수 없고, 윈도우의 보안 정책에 의해 알 수 없는 게시자라는 경고문을 띄우기도 한다.
코드 서명을 하는 방법에는 크게 2023년 6월 이전과 이후를 기점으로 달라지기 시작했는데, 이는 마이크로소프트에서 개인키를 함께 내보내기를 하여 코드 서명을 진행하던 2023년 6월 이전 절차의 보안 위협을 보완하기 위해, 2023년부터 6월 이후부터 코드 서명에 필요한 절차에서 개인키를 내보내지 않았도록 하여, 보안 위협을 대비하고 있다.
2023년 6월 전후의 코드 서명절차의 가장 큰 차이점은 PFX 파일 사용 유무이다. PFX 파일은 Public-Key Cryptography Standards #12(PKCS#12) 형식을 사용하는 인증서 파일로, 개인 키(Private Key), 공개 키(Public Key), 인증서(Certificate) 등을 하나의 파일로 저장하는 데 사용하며, pfx나 p12 확장자명을 가진다. 그리고 개인 키를 포함하고 있기 때문에 암호로 보호되며, 외부로 유출되지 않도록 강력한 보안이 필요하다.
앞서 설명한 바와 같이, 코드 서명을 하기 위해서는 OV 또는 EV 인증서를 발급받아야 하며, 2023년 6월 이후부터는 개발자가 직접 개인 키를 생성하고, CA 기관에 CSR 파일을 제출하는 과정이 필요하다. 이번 글에서는 코드 서명 과정의 세부적인 단계를 설명하겠다.
코드 서명을 위해서는 먼저 CSR(Certificate Signing Request) 파일을 생성해야 한다. CSR 파일을 생성하는 과정은 다음과 같다.
CA 기관은 신청자의 정보를 확인한 후, 코드 서명에 사용할 수 있는 인증서를 발급한다. 이때, EV 인증서는 보안성이 강화된 방식으로, Microsoft SmartScreen 필터에서 더 높은 신뢰도를 부여받을 수 있다.
코드 서명은 개발자가 배포할 실행 파일(예: .exe 또는 .dll)에 서명하는 과정이다. Windows에서는 signtool 명령어를 사용하여 코드 서명을 수행할 수 있다.
signtool sign /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 /f 인증서파일.pfx /p 비밀번호 "파일.exe"
서명이 정상적으로 완료되었는지 확인하려면 다음 명령어를 사용할 수 있다.
signtool verify /pa "파일.exe"
또는 실행 파일을 마우스 오른쪽 클릭 후 속성 > 디지털 서명 탭에서 확인할 수도 있다.
코드 서명이 완료된 실행 파일은 사용자에게 배포할 수 있다. 특히 EV 인증서로 서명한 경우, Windows SmartScreen 필터에서 경고 없이 실행될 가능성이 높아진다.
코드 서명은 소프트웨어의 신뢰성을 보장하고 사용자에게 안전한 프로그램임을 인증하는 중요한 과정이다. 2023년 6월 이후부터는 보안 강화를 위해 개발자가 직접 개인 키를 관리해야 하며, 이를 HSM 또는 보안 토큰에 저장하는 것이 필수적이다. 올바른 코드 서명 절차를 따르면, 프로그램 배포 시 Windows 보안 경고를 줄이고 사용자 신뢰도를 높일 수 있다.
DNS 레코드 변경 사항 업데이트 확인하기 (0) | 2025.03.23 |
---|---|
개인 사이트 구축 - 도메인 구입 후 자체 서버 연결 (0) | 2025.03.23 |
웹 크롤링 시스템 아이디어 (0) | 2024.10.24 |
도커 크롬 드라이버를 설치하여, 웹 화면 셀레니움으로 headless 크롬 브라우저에서 한글 텍스트가 깨지는 이슈 (1) | 2024.10.17 |
환경 구성 (0) | 2024.07.20 |