Ⅰ. 코드서명 (Code Sign) 이란?
코드 사인은 응용프로그램 및 설치 프로그램 같은 소프트웨어에 디지털 서명을 적용하는 것입니다.
이 디지털서명을 적용하는 것은 프로그램 코드의 무결성을 보증하기 위한 전자서명이다.
Ex) excel.exe 실행 파일의 속성 버튼을 누르면 다음과 같은 디지털 서명 값이 있습니다
실행 프로그램에 사용된 디지털 서명 값 정보 및 인증서 유효기간 확인이 가능합니다.
컴퓨터에 프로그램을 설치하려고 하면 대부분 UAC(User Account Control, 사용자 계정 컨트롤) 메시지 박스를 보게 되는데 여기에 표시되는 게시자 정보가 전자서명의 정보입니다.
코드서명 PKI (Code-signing Public Key Infrastructure)는 소프트웨어 제조업체가 배포하는 소프트웨어가 공격자로부터 악의적인 변조를 막아낼 수 있는 기술입니다. 또한, 소프트웨어 제조업체를 소프트웨어 내부에 명시함으로써 소프트웨어 일반 사용자로 하여금 안심하고 실행할 수 있는 환경을 만들어 주는 기술입니다. 따라서 사용자는 의심없이 코드서명된 소프트웨어는 악성코드라고 생각하지 않고 실행을 하게 됩니다.
Ⅱ. 코드서명 동작원리
코드서명은 Public Key Infrastructure (PKI)를 기반으로 하고 있기 때문에, 소프트웨어 제작자는 인증서 발급기관(Certificate Authority)으로부터 반드시 코드서명 인증서(Code-signing certificate) 발급을 받아야 합니다 인증서 발급기관은 철저한 인증과정을 거치고, 소프트웨어 제작자에게 코드서명 인증서 발급을 해줍니다. 만약에 인증 과정에 거짓된 소프트웨어 제작자의 정보가 제출된 것이 밝혀지게 되면 인증서 발급을 즉시 중지하게 됩니다. 소프트웨어 제작자는 이 발급된 인증서를 이용하여 자신의 소프트웨어에 서명을 하고 이 서명과 함께 발급받은 코드서명 인증서를 소프트웨어 안에 삽입하여 배포를 하게 됩니다. 소프트웨어 사용자는 이 소프트웨어에 실제 표기되어 있는 제작자 이름과 소프트웨어 변조가 이루어졌는지 확인을 하기 위해 소프트웨어 안에 있는 서명을 코드서명 인증서로 검증(verification)하고, 검증이 확인이 되면 사용자는 소프트웨어가 변조가 이루어지지 않았음을 알게 되고, 따라서 신뢰를 할 수 있게 됩니다.
인증서 발급기관은 자신들이 발급한 인증서가 악성코드 등에 악용되고 있거나, 혹은 인증서의 개인키가 유출되어 보안에 취약해지면, 바로 폐기 절차를 진행해야합니다. 발급기관은 빠르게 인증서를 폐기하여 더 이상 악성코드가 배포가 되지 않게 해야 합니다.
Ⅲ. 코드서명 상태 확인
인증서가 폐기가 되면 인증서 발급기관은 이 정보를 빠르게 소프트웨어 사용자에게 전달(dissemination)을 하여야 합니다.
1) CRL (certificate revocation list)
: CRL은 블랙리스트(blacklist) 방식으로 이루어집니다.
인증서 발급기관은 폐기된 인증서 정보를 블랙리스트인 CRL 파일에 넣어 배포를 하는 방식입니다
사용자는 주기적으로 업데이트된 CRL 파일을 다운받아서 최신 정보를 유지하
2) OCSP (Online Certificate Status Protocol)
: OCSP 는 온라인 인증서 상태 검증 프토토콜입니다.
인증서가 실제 유효한 인증서인지 인증기관에 직접 접속하여 확인하고자 할 때 사용됩니다.
'어플리케이션' 카테고리의 다른 글
HTTP 통신 관련 URL 과 HTTP 페이로드에 대해 알아보겠습니다. (0) | 2023.01.10 |
---|---|
VmWare 네트워크 환경설정 (0) | 2023.01.08 |
SSLVPN 에 대해 알아보겠습니다 (0) | 2023.01.05 |
DRM(Digital Rights Management) 에 대해 알아보겠습니다. (0) | 2022.12.24 |
no matching key exchange method found 발생 시 조치 (0) | 2022.12.20 |