728x90

 

 

1. PGP

PGP는 대칭키 암호화와 비대칭키 암호화를 함께 사용하는 하이브리드 암호 시스템입니다.

1991년 필 짐머만(Phil Zimmermann)이 처음 갭잘한 이후 전세계적으로 널리 사용되고 있습니다.

 

 

 

1) 비대칭키암호화(공개키/개인키) 

  • 수신자는 공개키(Public Key)를 이메일 발신자에게 제공합니다.
  • 발신자는 이 공개키로 이메일을 암호화합니다.
  • 수신자는 자신만 가진 개인키(Private Key)로 이메일을 복호화합니다.

2) 대칭키 암호화

  • 실제 메시지는 빠른 속도의 대칭키 방식으로 암호화됩니다.
  • 이 대칭키 자체를 비대칭키로 다시 암호화하여 함께 전송합니다.

3) 디지털 서명

  • 발신자는 메시지의 해시값을 자신의 개인키로 암호화하여 서명을 만듭니다.
  • 수신자는 발신자의 공개키로 서명을 검증함으로써, 무결성과 인증을 확보합니다.

 

PGP 활용

기능 설명
암호화 이메일 내용과 첨부파일을 암호화하여, 제3자가 볼 수 없도록함
서명 디지털 서명을 통해 이메일이 위조되지 않았음을 검증
인증 공개키 기반 구조를 통해 발신자의 신원을 확인
무결성 검증 메시지가 전송 중 변조되지 않았음을 확인

 

 

키 관리 방식

PGP는 중앙 인증 기관(CA)를 사용하지 않고 사용자가 서로의 키를 직접 인증하는 웹 오브 트러스트(Web Of Trust) 방식을 사용합니다. 사용자는 자신이 신뢰하는 사람의 키를 서명해줌벼, 이를 통해 간접적인 신뢰구조를 형성합니다.

 

암호 알고리즘 구성

구분 용도 주요 알고리즘
대칭키 암호화 메시지 암호화 AES, CAST5, IDEA
비대칭키 암호화 세션키 암호화, 디지털 서명 RSA, DSA, ElGamal
해시 함수 서명용 해시 생성 SHA-2, SHA-1, RIPEMD-160

 

 

 

2. PEM

PEM은 원래 이메일을 암호화하고 서명하는 표준으로 제안되었지만 오늘날 주로 인증서, 키, 암호화 데이터를 저장하고 전송하는 형식으로 사용되고 있습니다.

텍스트 기반의 Base64 인코딩 형식을 사용합니다.

Base64 : 바이너리 데이터 -> ASCII 문자로 변환하는 인코딩 기법
-----BEGIN <LABEL>-----
(base64 encoded data)
-----END <LABEL>-----

 

 

3. S/MIME

 

S/MIME(Secure/Multipurpose Internet Mail Extendsions)는 이메일 메시지의 기밀성, 무결성 인증, 부인방지를 보장하는 암호화 및 디지털 서명 표준입니다.

특히 S/MIME은 PGP와 달리 X.509 인증서를 기반으로 동작하며 표준 이메일 ㅍ포맷인 MIME 위에 보안을 덧붙이는 방식 입니다.

 

Microsoft Outlook, Apple Mail, thunderbird 등 주요 이메일 클라이언트는 S/MIME을 기본적으로 지원하며, 기업은 내부 CA 또는 외부 CA를 통해 인증서를 배포하고 관리합니다.

 

이메일 MIME 구조

Content-Type: multipart/signed;
    protocol="application/pkcs7-signature";
    micalg=sha-256;
    boundary="----SignedBoundary"

------SignedBoundary
Content-Type: text/plain; charset="utf-8"

안녕하세요, 이 메일은 서명되어 있습니다.

------SignedBoundary
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDjAMBggqhkiG9w0CBQUAMAsG...
(생략된 서명 데이터)

------SignedBoundary--

 

 

암호화된 이메일 S/MIME 구조

Content-Type: application/pkcs7-mime; smime-type=enveloped-data;
    name="smime.p7m"
Content-Transfer-Encoding: base64

MIIBOwYJKoZIhvcNAQcDoIIBLzCCA...
(암호화된 전체 메시지 - Base64 인코딩)
  • 전체 메시지 내용이 암호화된 PKCS#7 형식
  • 수신자는 자신의 개인키로 복호화해야 메시지를 볼 수 있음
  • 실제 이메일 내용은 복호화 후에만 확인 가능
728x90

+ Recent posts