PKI에 대해서 공부하려한다. 알고 있다면 좋은 기술이고, 보안의 기본이자 인터넷 세상에서 중요한 역할을 하고 있는 비대칭형 암호 시스템과 전자 서명, 그리고 이를 구현하는 다양한 방식에 대해 다뤄보려한다. 이 포스팅 포함 총 3개의 포스팅으로 이어 나가려고 한다 !! PKI(공개키 기반 구조)를 중심으로, 이들이 어떻게 동작하고, 어떤 흐름으로 데이터를 안전하게 전송하고 검증하는지를 설명하려한다 !!!
1. PKI(Public Key Infrastructure)란 무엇인가?
PKI는 공개키 암호화 기술을 기반으로 하여 데이터의 기밀성, 무결성, 인증, 부인 방지를 보장하는 보안 인프라이다. PKI는 공개키와 개인키의 조합을 통해 데이터를 암호화하고, 이를 안전하게 전송하며 신뢰성을 보장한다. PKI는 인증 기관(CA)이 발급하는 디지털 인증서를 통해 사용자의 신원을 보증하고, 데이터 전송 시 보안성을 유지한다.
PKI의 동작 흐름
- 인증서 발급: 사용자 또는 서버가 CA에게 공개키와 신원 정보를 제공하면, CA는 이를 기반으로 디지털 인증서를 발급한다. 이 인증서는 사용자의 공개키와 CA의 전자 서명이 포함되어 있으며, 이를 통해 해당 공개키가 올바른 소유자에게 속함을 보증한다.
- 인증서 사용: 사용자는 발급받은 인증서를 이용해 안전한 통신을 수행한다. 예를 들어, SSL/TLS를 통해 서버와 클라이언트 간의 데이터를 암호화하여 안전하게 전송한다.
- 인증서 검증: 인증서를 받은 상대방은 인증서에 포함된 공개키를 사용하여 전자 서명을 검증하고, 해당 인증서가 신뢰할 수 있는 CA에 의해 발급되었는지 확인한다.
이 부분은 간단하게 훑고 자세한 PKI의 동작흐름에 대해서는 이어서의 포스팅들을 통해서 자세하게 다뤄보겠다 !
2. 비대칭형 암호 시스템과 전자 서명
비대칭형 암호 시스템은 두 개의 키(공개키와 개인키)를 사용하여 데이터를 암호화하고 복호화하는 방식이다. 공개키는 누구나 접근할 수 있도록 공개되며, 개인키는 소유자만이 비밀로 유지해야 한다. 이 두 키는 서로 짝을 이루어 작동하며, 하나의 키로 암호화된 데이터는 다른 키로만 복호화할 수 있다.
전자 서명의 생성과 검증
전자 서명은 비대칭형 암호 시스템을 사용하여 문서의 무결성과 서명자의 신원을 보장하는 방법이다. 전자 서명의 생성과 검증 과정은 다음과 같다.
밑에는 내가 더 이해를 하기위해 직접 그린 플로우이다.. 제가 그림 솜씨가 없어요 …
그래도 밑의 설명을 보면서 참고한다면 어느정도 이해가 되지않을까 합니다 !!

전자 서명 생성
- 해시 함수 적용: 송신자는 서명할 원본 문서에 대해 해시 함수를 적용하여 고정된 길이의 해시값을 생성한다. 이 해시값은 문서의 고유 요약본으로, 문서가 조금이라도 변경되면 다른 해시값이 생성된다.
- 개인키로 암호화: 생성된 해시값을 송신자가 소유한 개인키로 암호화하여 전자 서명을 생성한다. 이 전자 서명은 개인키로 암호화된 해시값을 의미한다. 송신자가 소유한 고유한 개인키로 암호화함으로써 신원인증, 무결성 보장, 부인 방지를 보장한다.
- 서명된 전자문서 생성: 원본 문서와 전자 서명을 결합하여 서명된 전자문서를 생성한다. 이 서명된 전자문서는 전자봉투에 담겨 수신자에게 전송된다.
전자 서명 검증
- 해시값 계산: 수신자는 원본 문서에 대해 동일한 해시 함수를 적용하여 해시값 A를 계산한다.
- 전자 서명 복호화: 수신자는 송신자가 제공한 전자 서명을 송신자의 공개키로 복호화하여 해시값 B를 얻는다.
- 해시값 비교: 해시값 A와 해시값 B를 비교한다. 일치할 경우, 문서가 변조되지 않았고 서명이 송신자의 개인키로 생성된 것임을 확인할 수 있다.
3. 세션키, 비밀키, 개인키, 공개키, 인증서의 차이
- 세션키 (Session Key): 특정 통신 세션 동안만 사용하는 대칭키로, 데이터 암호화/복호화에 사용된다. 통신이 종료되면 폐기된다.
- 비밀키 (Secret Key): 대칭형 암호화에서 사용하는 키로, 암호화와 복호화에 같은 키를 사용한다.
- 개인키 (Private Key): 비대칭형 암호화에서 사용하는 키로, 비밀로 유지되어야 하며, 데이터를 복호화하거나 전자 서명을 생성하는 데 사용된다.
- 공개키 (Public Key): 비대칭형 암호화에서 사용하는 키로, 누구나 접근할 수 있으며 데이터를 암호화하거나 전자 서명 검증에 사용된다.
- 인증서 (Certificate): 공개키와 소유자의 신원 정보를 포함한 전자 문서로, CA에 의해 발급되며, 공개키의 신뢰성을 보장한다.
비대칭형 암호 시스템과 전자 서명은 인터넷 환경에서 신뢰성과 무결성을 보장하기 위해 필수적인 기술이다. PKI는 공개키와 개인키를 기반으로 한 인프라로, 안전한 통신과 사용자 인증을 보장한다. 이러한 개념들을 이해하고 활용하면, 데이터의 보안과 신뢰성을 높일 수 있다.
각 기술이 어떻게 상호작용하여 데이터를 안전하게 보호하고, 무결성과 신뢰성을 유지하는지 이해하는 것은 보안 시스템을 설계하고 사용하는 데 매우 중요하기때문에 다음 포스팅으로 넘어가서 좀 더 깊이 공부해보려한다 !