[정보보안] 전자 서명과 전자 인증서의 개념과 차이점
전자 서명(Digital Signature, 디지털 서명)이 무엇인지, 전자 인증서(Digital Certificate, 디지털 인증서)를 처음 또는 가끔 접하는 분들이라면 이 두 기술이 무엇인지에 대해 꽤 혼란스러울 것입니다. 둘 다 보안 조치이고 비슷하게 들리므로 많은 사람들이 동의어로 생각할 것 같습니다. 정보보안기사 준비를 하고 있던 저도 마찬가지로, 두 기술을 구별하고 정확하게 설명할 자신이 없었습니다. 그래서 이 번 블로그를 통해 이 두 기술을 정리하고자 합니다.
두 기술의 주요 차이점은, 전자 서명은 전자 파일이 변조되지 않도록 보호하는 것을 목표로 한다는 것이고, 전자 인증서를 구현하면 웹사이트의 신뢰성이 높아진다는 것입니다. 그 밖의 주요 차이점들을 알아보기에 앞서 간략한 개념, 동작 원리, 활용, 프로토콜에 대해 확인해 보겠습니다.
- 전자서명 (Digital Signature)
- 개념: 전자서명은 디지털 문서나 데이터의 무결성과 인증을 보장하기 위해 사용됩니다. 전자 문서에 서명한 사람의 식별 정보와 해당 문서의 무결성을 확인할 수 있습니다.
- 동작 원리: 전자서명은 해시 함수를 사용하여 원본 문서의 해시 값을 생성하고, 개인키를 사용하여 이 해시 값을 암호화합니다. 이 암호화된 값은 전자 문서와 함께 저장되며, 공개키를 사용하여 전자서명을 확인할 수 있습니다.
- 활용: 전자서명은 주로 문서나 데이터의 변조나 위조를 방지하고, 송신자의 신원을 확인하는 데 사용됩니다.
- 공개키 교환 방법:
– 송신자와 수신자 간에 안전한 채널을 통해 공개키를 직접 교환
– 공개키 인프라(PKI)를 통해 송신자의 공개키를 인증된 인증서 형태로 제공
– 공인 인증서에서 송신자의 공개키를 추출
– DKIM 기술을 사용하는 이메일은 DNS 서버에 저장된 공개키 사용 - 대표 프로토콜: RSA, DSA, KCDSA, ECDSA
- 전자인증서 (Digital Certificate)
- 개념: 전자인증서는 공개키 인증서라고도 불리며, 공개키 암호화 기술을 사용하여 전자 서명의 신뢰성을 보장합니다. 보통 제3자 기관(CA, Certificate Authority)에 의해 발행되며, 송신자의 공개키와 해당 송신자의 신원 정보를 포함합니다.
- 동작 원리: 전자인증서는 인증 기관에 의해 서명된 송신자의 공개키와 신원 정보를 포함하고 있습니다. 이를 사용하여 송신자의 공개키를 확인하고, 전자서명을 검증할 수 있습니다.
- 활용: 전자인증서는 주로 네트워크 통신에서 안전한 통신을 보장하고, 웹 사이트의 SSL/TLS 연결에서 사용자와 웹 서버 간의 안전한 통신을 활성화하는 데 사용됩니다.
- 공개키 교환 방법:
– 유효성이 검증된 전자인증서에서 송신자의 공개키를 추출 - 대표 프로토콜: X.509
전자 서명

출처: https://www.docusign.com/how-it-works/electronic-signature/digital-signature/digital-signature-faq
전자 서명을 검증하는 데 전자 인증서를 사용할 수 있습니다. 전자 서명은 메시지의 무결성을 보장하고 송신자를 인증하기 위해 사용되며, 전자 인증서는 이러한 전자 서명을 검증하는 데 사용됩니다. 전자 인증서에는 발급 기관에 의해 발급된 송신자의 공개키가 포함되어 있으며, 이를 사용하여 전자 서명을 검증합니다. 따라서 전자 인증서를 사용하여 송신자의 메시지를 검증함으로써 메시지의 무결성과 출처를 보장할 수 있습니다.
- 키 준비 (Key Generation):
서명자는 전자서명을 생성하기 위해 공개키 및 개인키를 생성합니다. 이 과정에서 공개키는 다른 사람이 서명을 확인하는 데 사용되고, 개인키는 서명을 생성하는 데 사용됩니다.
- 문서 생성 (Document Preparation):
서명하려는 원본 문서를 선택하고, 이를 디지털 형식으로 변환합니다. 전자서명에 사용되는 대부분의 경우, 해시 함수를 사용하여 원본 문서를 해시값으로 변환합니다.
- 해시 생성 (Hash Generation):
원본 문서를 해시 함수에 입력하여 고정 길이의 해시값을 생성합니다. 해시 함수는 원본 문서의 내용을 압축하여 고정된 길이의 해시값을 생성합니다.
- 암호화 (Encryption):
개인키를 사용하여 생성된 해시값을 암호화합니다. 전자서명 알고리즘은 개인키를 사용하여 데이터에 대한 디지털 서명을 생성하는 알고리즘을 사용합니다.
- 문서와 해시값 포함 (Including Document and Hash):
서명자는 암호화된 해시값을 원본 문서와 함께 전자서명에 포함시킵니다. 전자서명은 일반적으로 원본 문서의 끝에 삽입되거나 서명 블록으로 추가됩니다.
- 전송 (Transmission):
전자서명이 포함된 문서를 전송하거나 저장합니다. 이때 문서와 함께 전자서명이 전송되거나 저장되어야 합니다.
- 문서와 해시값 분리 (Separating Document and Hash):
수신자는 전자서명을 검증하기 위해 문서와 암호화된 해시값을 분리합니다. 수신자는 원본 문서와 해시값을 추출하여 각각의 값을 사용하여 전자서명을 검증합니다.
- 해시값 검증 (Hash Verification):
수신자는 공개키를 사용하여 전자서명에서 추출한 암호화된 해시값을 복호화합니다. 이렇게 복호화된 해시값과 원본 문서에서 생성한 해시값을 비교하여 일치하는지 확인합니다. 만약 두 해시값이 일치하면, 서명이 유효하고 원본 문서의 무결성이 보장됩니다.
전자 인증서

출처: https://www.tutorialspoint.com/cryptography/public_key_infrastructure.htm
전자 인증서는 공개 키 인증서 및 인증 검증을 위한 표준 인증서 형식을 정의하는 ITU 표준 X.509를 기반으로 합니다. 따라서 전자 인증서를 X.509 인증서라고도 합니다. 전자 인증서의 소유자와 관련된 공개 키는 소유자 정보, 만료 날짜, 사용량, 발급자 등과 같은 기타 관련 정보와 함께 인증 기관(Certificate Authority, CA)에 의해 전자 인증서에 저장됩니다. CA는 이 전체 정보에 디지털 서명을 하고 인증서에 디지털 서명을 포함시킵니다. 소유자의 공개키 및 관련 정보에 대한 보증이 필요한 사람은 CA의 공개키를 이용하여 서명 검증 과정을 수행합니다. 유효성 검사에 성공하면 인증서에 제공된 세부 정보가 제공된 사람의 소유임을 보장합니다. 소유자의 신원을 확인하는데 사용되는 다양한 정보와 함께 소유자의 공개 키가 포함되어 있으므로 이 공개 키를 사용해서 전자 서명을 검증하고, 안전한 통신을 합니다.
- 전자인증서 발급신청:
전자인증서를 사용하려면 먼저 인증기관에서 전자인증서를 발급받아야 합니다. 발급을 위해 해당 인증기관의 웹 사이트에서 발급신청 양식을 작성합니다.
- 본인 확인 및 인증:
인증기관은 발급신청을 접수하고 본인 확인을 위해 추가 정보를 요청할 수 있습니다. 사용자는 이러한 정보를 제공하여 신원을 인증합니다.
- 전자인증서 발급:
인증기관은 사용자의 신원을 확인한 후 전자인증서를 발급합니다. 발급된 인증서에는 사용자의 공개키와 개인키가 포함됩니다.
- 인증서 설치:
발급받은 전자인증서를 사용자의 디바이스(컴퓨터, 스마트폰 등)에 설치합니다. 이 과정에서 개인키가 안전하게 보관되어야 합니다.
- 전자서명:
전자인증서를 사용하여 전자문서에 서명합니다. 사용자는 개인키를 사용하여 문서를 서명하고, 공개키를 사용하여 서명이 검증됩니다.
- 인증:
전자인증서를 사용하여 웹 사이트나 온라인 서비스에 로그인할 때 사용됩니다. 사용자는 전자인증서를 제출하여 자신의 신원을 증명합니다.
아래는 이미지는 윈도우즈의 인증서 관리자에서 확인할 수 있는 공인 인증서의 사례입니다.