5 분 소요

웹서버(서버의 개인 키와 서버의 공개키) 에서 클라이언트(키 없음)와 암호화 통신 할 때 키교환(TLS)


  • 대칭키를 주고 받으려면?
    1. 서버의 공개키를 클라이언트에게 제공
    2. 클라이언트는 세션키를 생성하여 서버의 공개키로 암호화 -> 서버에 전송
    3. 서버는 자신의 개인키로 복호화하여 세션키를 꺼냄 -> 클라이언트와 서버는 세션키를 공유
    4. 데이터를 세션키로 암호화 해서 서로 주고 받을 수 있음.
  • Q. 세션키를 공유하는 이유?
    • 네이버와 Client 데이터를 주고 받을 때 암호화를 하기 위해
장점과 단점
  • 장점 : 인증, 기밀성, 키 전달 및 개수의 문제 해결 ex) 누구나 개인키 공개키 한 쌍을 가짐(N명의 사용자, 2N개 필요)
  • 단점 : 속도가 대칭키에 비해서 약 100~1000배 느림
  • 대칭키(=세션키)를 암호화/복호화 할 때 공개키를 사용

PKI (Public Key Infrastructure)

  1. 최상위 인증기관 (Root CA, PCA)
    • 인증기관을 검증하고 인증기관을 인증하는 역할
  2. 인증기관 (CA : Certificate Authority)
    • 인증서를 발급하는 기관 (개인키 사용해서 서명하는데 1년에 약 50만원 정도)
    • 인증서를 발행
  3. 등록기관 (RA : Registration Authority)
    • 공개키의 신청자가 올바른지를 검증하는 역할을 대행해줌
    • 업체를 검증
  4. 주체 : 인증서 발급을 신청한 기업 또는 단체

참고) 한국전자인증(crosscert.com)

  • NPKI (국내 인증)의 인증기관 역할
  • 글로벌 인증의 등록기관 역할 (Digicert, Thawte, Geotrust 들의 등록기관 역할)

댓글남기기