PKI Bootcamp - PKI 소개

__〆( ̄ー ̄ ) ·2022년 12월 28일
1

PKI Bootcamp

목록 보기
1/4

들어가며

이 시리즈를 통해 PKI(Public Key Infrastructure, 공개 키 기반 구조)에 대해 최대한 쉽고 추상적으로 풀어보려고 합니다.

TL;DR

이 글을 통해 아래와 같은 것들을 알 수 있어요.

  • 공개 키 암호 시스템의 암호화와 디지털 서명
  • 디지털 인증서의 역할
  • 인증 기관(CA)의 역할

용어

이 글에서 사용하고 있는 용어들이에요.

  • 원문 메시지: 암호화 기능에서 대상이 되는 입력 데이터
  • 암호화: 원문 메시지를 변환하여 특정 대상만이 알아볼 수 있도록 하는 것
  • 복호화: 암호 데이터를 알아볼 수 있는 형태로 변환하는 것
  • 키(Key): 암호화 또는 복호화에 사용되는 키

PKI 소개

먼저 PKI (Public Key Infrastructure, 공개 키 기반 구조)의 정의를 보면 매우 포괄적이라는 것을 알 수 있어요.

PKI (Public Key Infrastructure, 공개 키 기반 구조)
디지털 인증서의 생성, 관리, 배포, 사용, 저장, 파기와 공개 키 암호화에 필요한 역할, 정책, 하드웨어, 소프트웨어, 절차의 총칭

하지만 PKI의 전체적인 맥락을 이해하면 공개 키 암호화 시스템(Public Key)디지털 인증서를 사용하기 위한 기반 구조(Infrastructure)로 나누어 이해할 수 있습니다.

공개 키 암호 시스템

공개 키 암호 시스템은 암호화와 복호화에 쌍을 이루는 서로 다른 키를 사용하는 암호화 방식을 말합니다. 이 두 개의 키는 목적에 따라 아래와 같이 공개 키(Public Key)와 개인 키(Private Key) 구분돼요.

  • 공개 키(Public Key): 모든 사람에게 공개되는 키
  • 개인 키(Privatte key): 해당 키 소유자만이 알고 있는 키

이 두 개의 키 중 어떤 키로 암호화를 하는가에 따라 공개 키 암호화와 디지털 서명으로 구분됩니다.

암호화

암호화는 원문 메시지를 공개 키로 암호화 하는 것을 의미해요. 암호화된 데이터는 개인 키를 알고 있는 특정 소유자만이 복호화하여 확인할 수 있어요.

위 그림은 데이터를 공개 키로 암호화하여 수신자에게 전달하는 과정을 묘사하고 있어요. 개인 키를 모르는 해커는 중간에 데이터를 탈취하여도 어떤 정보인지 알 수 없게 됩니다.

실생활에서는 무인택배함과 비슷합니다. 누구나 무인택배함에 동/호수를 지정해서 택배를 넣어둘 수 있지만(암호화) 해당 택배함은 해당 세대에 비밀번호를 알고 있는 사람만이 열 수 있어요(복호화). 실제로는 SSL/TLS 프로토콜 에서 암호화 키 교환 시 사용됩니다.

디지털 서명

디지털 서명은 원문 메시지를 개인 키로 암호화 하는 것을 의미해요. 암호 데이터를 공개 키로 복호화하여 그 데이터를 개인 키 소유자가 암호화 했다 라는 것을 알 수 있어요.

위 그림은 디지털 서명의 생성과 검증에 대한 전체적인 과정을 묘사하고 있어요. 수신자(Receiver)는 공개 키로 암호 데이터를 복호화한 값과 원문 메시지의 데이터를 비교하여 해당 키 소유자가 데이터를 암호화 했다라는 것을 알 수 있습니다.

암호 데이터를 생성하는 개인 키는 소유자만이 가지고 있는 것이기 떄문에 서명의 주요한 요건인 부인 방지를 만족해요.


디지털 인증서

공개 키 암호 시스템 공개 키는 단순 데이터이기 때문에 누구에게 전달하기 위해 암호화를 하는지 또는 디지털 서명 검증 시 누구의 서명인지 알 수가 없어요. 그래서 필요한 것이 디지털 인증서 입니다.

디지털 인증서는 공개 키와 더불어 해당 소유자에 대한 정보를 포함하고 있어요. 다음은 디지털 인증서가 포함하고 있는 정보들이에요.

  • 버전(Version): 인증서의 버전을 나타냅니다. X.509 v3의 경우 2가 사용됩니다.
  • 일련 번호(Serial Number): 인증서를 식별하기 위한 고유한 일련 번호입니다.
  • 서명 알고리즘(Signature Algorithm): 인증서에 사용된 서명 알고리즘을 나타냅니다.
  • 발급자(Issuer): 인증서를 발급한 인증 기관의 정보입니다.
  • 유효 기간(Validity): 인증서의 유효 기간을 나타냅니다. 시작 날짜와 종료 날짜로 구성됩니다.
  • 주체(Subject): 인증서를 소유한 개체의 정보입니다.
  • 공개 키(Public Key): 주체의 공개 키를 포함합니다.
  • 확장 필드(Extensions): 인증서에 추가 정보를 포함하는 확장 필드입니다. 예를 들어, 키 사용용도, 인증서 정책, 주체 대체 이름 등의 정보가 포함될 수 있습니다.

여기서 발급자(Issuer)는 키 소유자에 대한 신원을 보증하는 인증 기관이에요. 우리가 온라인 상에서 디지털 인증서에 포함된 소유자 정보를 믿을 수 있는 이유는 신뢰할 수 있는 인증 기관이 해당 소유자의 신원을 대신 확인하였기 때문이에요.

이 디지털 인증서를 발급하고 사용하기 위해 마련된 구성 요소, 정책, 표준, 법과 같은 것들을 총칭하는 것이 바로 PKI(Public Key Infrastructure)입니다.


다음 장에서는 디지털 인증서를 사용하기 위한 구성 요소와 각 요소들의 역할에 대해서 알아보겠습니다.

profile
뭐라도 적자

0개의 댓글