[ODOP:16]사이퍼 스위트(Cipher Suite/TLS v1.2)
tls 1.2 에서 사용하는 cipher suite 를 설명 합니다
- 간단히 말하면 암호화 셋팅 메시지는 아래와 같이 구성 된다
TLS 1.2 기준
![스크린샷 2024-08-14 오후 4.36.29.png](https://blog.pollra.com/content/images/2024/08/-----------2024-08-14------4.36.29.png)
문맥 설명
프로토콜 TLS
TLS
/ SSL
키 교환 방식 ECDHE
클라이언트와 서버가 세션 키를 안전하게 공유할 수 있도록 하는 역할 세션 키를 생성하고 교환하는 과정을 보호 한다
RSA
DH(Diffie-Hellman)
ECDHE(Elliptic Curve Diffie-Hellman Ephemeral)
RSA
과정
- 클라이언트는 서버의 공개 키를 이용해 프리마스터 시크릿을 암호화 하여 서버로 전송 한다
- 서버는 자신의 비밀키를 사용해 이를 복호화 하여 프리마스터 시크릿을 얻는다
- 이 프리마스터 시크릿을 바탕으로 양측은 동일한 세션 키를 생성한다 특징
- 현재는 보안 문제가 있어 사용이 권장되지 않음
- 특히 정적 RSA 키 교환 방식은 PFS(Perfect Forward Secrecy) 를 제공하지 않기 때문에 현대의 TLS 에서는 거의 사용하지 않음
DH(Diffie-Hellman)
과정
- 클라이언트와 서버는 서로 공개적으로 공개 된 값을 교환 하고, 이 값과 자신의 비밀 키를 이용 해 같은 세션 키를 계산 한다 특징
- 양 측이 동일한 세션 키를 계산 하지만, 중간에 누군가가 이 값을 가로챈다 해도 비밀키를 모르면 계산 불가
ECDH (Elliptic-Curve Diffie-Hellman)
과정
- DH 방식과 유사하나, 더 효율적인 타원 곡선 암호화 알고리즘 (ECC) 사용 특징
- 동일한 보안 수준을 유지 하면서 더 짧은 키 길이로 높은 성능을 제공
- 현대의 TLS 에서 많이 사용되는 방식
DHE(Ephemeral Diffie-Hellman)
과정
- DH 방식의 일시적 임시 버전으로, 각 세션마다 새로운 키를 생성 한다 특징
- PFS 를 제공 하며, 세션이 끝난 후에도 이후의 통신을 보호할 수 있다
- 일회용 키를 사용하므로 과거 세션의 키가 노출 되어도 이후 세션에는 영향을 미치지 않는다
ECDHE (Ephemeral Elliptic-Curve Diffie-Hellman)
과정
- ECDH 방식의 일시적 버전
- 각 세션마다 새로운 타원 곡선 키를 생성 한다 특징
- DHE 와 동일하게 PFS 를 제공 하면서도 성능과 보안성을 높였다
- 현재 TLS 에서 가장 널리 사용되고 있는 키 교환 방식
인증서 검증 RSA
서버(또는 양측)의 신원을 검증하기 위해 사용 됨 일반적으로 디지털 인증서를 통해 이루어지며 클라이언트가 서버의 공개 키를 안전하게 얻을 수 있도록 함
RSA
/ DSA(Digital Signature Algorithm)
/ ECDSA(Elliptic Curve Digital Signature Algorithm)
대칭 암호화 알고리즘 AES_128
AES_*(Advanced Encryption Standard + 키의 길이)
/ 3DES(Triple DES)
/ ChaCha20
데이터의 기밀성을 보호한다 세션 키를 사용하여 데이터를 암호화 하고 복호화 한다
블록 암호화 운용 방식 CBC
ECB(Electronic Codebook)
/ CBC(Cipher Block Chaining)
/ CFB(Cipher Feedback)
블록 암호화는 기본적으로 고정 된 크기의 블록을 처리한다 다양한 크기의 데이터를 처리하기 위해 운용 모드가 필요하다
인증 방식
- Client 는 받은 서버의 인증서가 신뢰할 수 있는지 검토 후 공개 키를 추출한다
- 서명자(ex: Server)는 문서의 데이터 일부를 해시 함수를 이용해 해시 값을 생성, 이를 개인 키로 암호화 한 뒤 문서에 첨부함
- Client 는 이 인증서를 공개키로 복호화 한 뒤 개인 키로 암호화 된 해시값 역시 공개 키로 복호화
- MAC
- 무결성 확인용 인증 방식
- 메시지 데이터 일부를 MAC 알고리즘으로 변환 하여 메시지에 첨부한 후 수신자가 똑같은 방식으로 변환, 일치 여부 검사