683. Cipher Suite 모델 표기방식 예시 이해

핵심 인사이트: TLS 통신을 할 때 브라우저와 서버는 "우리 어떤 암호법으로 통신할까?"라고 협상한다. 이때 아무렇게나 부르는 게 아니라, [키 교환 방식] + [전자서명 방식] + [데이터 암호화 방식] + [무결성 해시 방식]을 하나의 세트 메뉴(Suite)로 묶어서 길고 복잡한 이름으로 부른다. 이 암호의 세트 메뉴판이 바로 Cipher Suite다.

Ⅰ. Cipher Suite (암호 제품군)의 개념

  • 개념: TLS 핸드셰이크 과정에서, 클라이언트와 서버가 서로 데이터를 안전하게 주고받기 위해 **어떤 종류의 암호화 알고리즘들을 묶어서 사용할지 규정해 놓은 세트 메뉴(문자열 규격)**입니다.
  • 배경: 컴퓨터마다 지원하는 최신 암호 기술이 다르기 때문에, 클라이언트가 자신이 할 수 있는 세트 메뉴 목록을 던지면, 서버가 그중 가장 안전한 세트 하나를 골라 통신을 시작합니다.

Ⅱ. Cipher Suite 표기 방식 분석 (TLS 1.2 기준) 🌟

인터넷 익스플로러나 크롬 설정에서 흔히 볼 수 있는 괴상하고 긴 영어 문자의 구조입니다. 예시: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

이 긴 문자는 정확히 4개의 덩어리(알고리즘 부품)로 쪼갤 수 있습니다.

1. TLS (프로토콜 버전)

  • 우리가 지금 사용하고 있는 네트워크 보안 프로토콜이 SSL이 아닌 TLS임을 명시합니다.

2. ECDHE_RSA (키 교환 및 전자서명 알고리즘)

핸드셰이크 단계에서 서로의 신분을 확인하고 비밀 열쇠(세션키)를 어떻게 나눠 가질지 결정합니다.

  • ECDHE (키 교환): "우리는 타원 곡선 디피-헬만 임시 키 교환(Elliptic Curve Diffie-Hellman Ephemeral) 수학 공식을 써서 해커 몰래 대칭키(세션키)를 만들자!" (앞선 666번 문서 내용)
  • RSA (전자 서명): "서버가 진짜 네이버가 맞는지 신분증(인증서)에 찍힌 도장을 검증할 때는 RSA 공개키 방식을 쓰자!"

3. WITH_AES_128_GCM (대용량 데이터 대칭키 암호화 알고리즘) 🌟

가장 중요한 몸통 데이터를 잠그는 방식입니다.

  • AES_128: "우리가 주고받는 진짜 데이터(비밀번호, 영화 등)는 128비트짜리 AES 블록 암호로 꽁꽁 잠그자!"
  • GCM: "AES 블록들을 엮어서 잠글 때는, 속도도 빠르고 위조 방지(무결성) 기능까지 한 방에 끝내주는 GCM 모드(AEAD)를 사용하자!" (659번 문서 참고)

4. SHA256 (MAC 무결성 해시 알고리즘)

  • "마지막으로 데이터가 전송 중에 1비트라도 깨지거나 변조되지 않았는지 확인할 때는 SHA-256 해시 함수를 믹서기로 쓰자!" (단, GCM 같은 AEAD 모드를 쓸 경우 이 해시는 일반 무결성용이 아니라, 초기 핸드셰이크용 PRF 함수로만 쓰입니다.)

Ⅲ. 좋은 Cipher Suite와 나쁜 Cipher Suite

  • 권장 (안전함): ECDHE (전방향 안전성 지원), AES-GCM 또는 ChaCha20-Poly1305 (위조 방지 강력함).
  • 취약 (절대 사용 금지):
    • NULL (암호화 안 함),
    • RC4 (털린 스트림 암호),
    • DES/3DES (털린 블록 암호),
    • MD5 / SHA-1 (충돌 터진 해시).

Ⅳ. TLS 1.3의 변화 (다이어트)

  • 최근 발표된 TLS 1.3에서는 이 길고 복잡한 이름이 확 줄어들었습니다. 해킹 위험이 있는 구형 알고리즘(RSA 키 교환, CBC 모드 등)을 강제로 다 폐기해 버렸기 때문입니다.
  • 예시: TLS_AES_128_GCM_SHA256 (키 교환과 서명 방식 표기가 아예 사라지고, 데이터 암호화 방식만 남을 정도로 깔끔하고 강력해졌습니다.)

📢 섹션 요약 비유: 식당에서 코스 요리(Cipher Suite)를 시키는 것과 같습니다. TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256라는 주문은, "전채 요리는 ECDHE(키 교환)와 RSA(서명)로 준비해 주고, 메인 요리는 AES 128 GCM(본 데이터 암호화)으로 두툼하게 구워주며, 디저트는 SHA-256(무결성 해시)으로 마무리해 주세요"라는 아주 구체적이고 완벽한 주문서입니다. 브라우저와 서버는 이 주문서를 보고 똑같은 레시피로 완벽한 보안 식탁을 차려냅니다.