암호학 - 인증서
웹서버(서버의 개인 키와 서버의 공개키) 에서 클라이언트(키 없음)와 암호화 통신 할 때 키교환(TLS)
- 대칭키를 주고 받으려면?
- 서버의 공개키를 클라이언트에게 제공
- 클라이언트는 세션키를 생성하여 서버의 공개키로 암호화 -> 서버에 전송
- 서버는 자신의 개인키로 복호화하여 세션키를 꺼냄 -> 클라이언트와 서버는 세션키를 공유
- 데이터를 세션키로 암호화 해서 서로 주고 받을 수 있음.
- Q. 세션키를 공유하는 이유?
- 네이버와 Client 데이터를 주고 받을 때 암호화를 하기 위해
장점과 단점
- 장점 : 인증, 기밀성, 키 전달 및 개수의 문제 해결 ex) 누구나 개인키 공개키 한 쌍을 가짐(N명의 사용자, 2N개 필요)
- 단점 : 속도가 대칭키에 비해서 약 100~1000배 느림
- 대칭키(=세션키)를 암호화/복호화 할 때 공개키를 사용
PKI (Public Key Infrastructure)
- 최상위 인증기관 (Root CA, PCA)
- 인증기관을 검증하고 인증기관을 인증하는 역할
- 인증기관 (CA : Certificate Authority)
- 인증서를 발급하는 기관 (개인키 사용해서 서명하는데 1년에 약 50만원 정도)
- 인증서를 발행
- 등록기관 (RA : Registration Authority)
- 공개키의 신청자가 올바른지를 검증하는 역할을 대행해줌
- 업체를 검증
- 주체 : 인증서 발급을 신청한 기업 또는 단체
참고) 한국전자인증(crosscert.com)
- NPKI (국내 인증)의 인증기관 역할
- 글로벌 인증의 등록기관 역할 (Digicert, Thawte, Geotrust 들의 등록기관 역할)
댓글남기기