1. Key Management System이란?
- 암호화된 데이터 및 통신 보호를 목적으로 키를 생성, 저장, 관리하는 시스템
- 통신 간에는 SSL/TLS 프로토콜을 사용한다.
- 주요 기능
-
키 생성 및 생명 주기 관리
- 권고 기준에 따른 키의 갱신, 비활성화, 폐지
ex) 네이버 클라우드 KMS 키 생명 주기

-
키 저장
-
키 회전
- 주기적으로 암호화 키를 폐기하고 새로 생성하여 이전 키를 교체하는 것
-
인증 및 엑세스 제어
2. 대칭키와 공개키
- TLS는 대칭키와 공개키 알고리즘을 혼용해서 사용
- 대칭키 알고리즘
- 암호화 키와 복호화 키가 같다
- 크기가 큰 메세지를 암호화할 때 비대칭키 방식보다 효율적
- 키 분배 문제
- DES, 3DES, AES, SEED, ARIA 등의 알고리즘이 있다.
- 공개키(= 비대칭키) 알고리즘
- 암호화와 복호화에 다른 키를 사용한다
- 공개키(=비대칭키)와 개인키(=비밀키)로 구성하여 암호화시 공개키를, 복호화시 개인키를 사용
- PKI상 CA(인증기관) 필요
- ex: Comodo, DigiCert, GlobalSign, Verisign, GoDaddy
- RSA, DSA, ECC, Rabin 등의 알고리즘이 있다.
3. 사이퍼 슈트 (Cipher Suite)
- TLS 위에서 암호화에 필요한 알고리즘의 집합

- 키 교환 알고리즘
- 인증 알고리즘
- 클라이언트와 서버 간의 신원을 인증
- RSA, DSA, ECDSA 등의 알고리즘이 사용됨
- 대칭키 암호화 알고리즘
- 클라이언트와 서버가 교환한 키를 이용해 데이터를 암호화하고 복호화
- AES, ChaCha20 등의 알고리즘이 사용됨
- 블록 암호화 모드
- 메시지 인증 코드(MAC)를 제공
- 데이터의 무결성과 인증을 보장(올바른 송신자로부터 온 것을 보장)
- HMAC, Poly1305 등의 알고리즘
- GCM(Galois/Counter Mode), CBC(Cipher Block Chaining)이 사용됨
<aside>
💡 대칭키 암호화 알고리즘 + 블록 암호화 모드 합쳐서 암호화 방식을 AEAD라고 함
(Authenticated encryption with Associated data)
</aside>
- 해시 알고리즘
- 임의 길이의 메세지를 일정 고정 길이의 해시 값으로 변환시켜주는 단방향성 알고리즘
- 데이터의 무결성을 검증하는 데 사용
- SHA-256, SHA-384 등의 알고리즘이 사용됨
- TLS 1.2 Default Cipher suites
4. 우리 프로젝트에 어떻게 적용하고 구현하지?