TLS 레코드 계층과 암호 스위트
레코드 조각화, AEAD 암호화, 암호 선택을 이해합니다.
TLS 레코드 계층과 암호 스위트은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
레코드 계층 개요
TLS 레코드 계층은 TLS의 전송 하위 계층입니다. 데이터를 최대 16KB의 레코드로 나누고, 필요에 따라 압축하며(TLS 1.2에서만), AEAD로 암호화한 뒤 5바이트 헤더를 추가합니다.
레코드 헤더 필드
바이트 0: ContentType(20=ChangeCipherSpec, 21=Alert, 22=Handshake, 23=ApplicationData). 바이트 1~2: 이전 버전( TLS 1.2 호환성을 위한 0x0303). 바이트 3~4: 이어지는 페이로드의 길이.
레코드의 AEAD 암호화
TLS 1.3에서는 각 레코드를 AEAD(예: AES-GCM)로 암호화합니다. 논스는 암묵적인 시퀀스 번호와 트래픽 IV를 XOR하여 파생합니다. AAD는 5바이트 레코드 헤더입니다. 인증 태그는 뒤에 추가됩니다.
암호 스위트 명명 규칙
TLS_AES_128_GCM_SHA256 = 키 교환(TLS 1.3에서는 암묵적인 ECDHE) + AES-128-GCM(AEAD) + SHA-256(HKDF용). TLS 1.2에서는 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256이 모든 구성 요소를 명시적으로 나타냅니다.
사용 중단된 암호 스위트
TLS 1.3에서는 RC4(편향된 키 스트림), 3DES(중간자 만남 공격, Sweet32), CBC 모드(BEAST, Lucky13, POODLE), NULL 암호화, 수출 등급(40비트) 암호, PRF에서의 MD5/SHA-1을 금지합니다. AEAD 스위트만 남아 있습니다.
레코드 분할
큰 TLS 레코드는 16KB 이하의 프래그먼트로 분할됩니다. 각 프래그먼트는 독립적으로 암호화됩니다. 수신자는 애플리케이션 계층으로 전달하기 전에 레코드를 다시 조립합니다. 분할 경계 자체에는 의미가 없습니다.
경고 프로토콜
경고는 ContentType=21인 TLS 레코드로 전송됩니다. 2바이트로 구성됩니다. level (1=warning, 2=fatal) + description (0=close_notify, 40=handshake_failure, 42=bad_certificate, 70=protocol_version)입니다. 치명적 경고가 발생하면 연결이 종료됩니다.
순서 번호 논스
레코드별 순서 번호는 0에서 시작해 1씩 증가합니다. 이 번호는 IV 길이에 맞게 패딩되며(GCM에서는 12바이트), 트래픽 IV와 XOR됩니다. 이렇게 하면 논스를 명시적으로 전송하지 않아도 레코드 간 논스 재사용을 방지할 수 있습니다.
암호 스위트 선택
256비트 보안을 원한다면 TLS_AES_256_GCM_SHA384를 우선 사용하십시오. AES-NI가 없는 모바일 또는 임베디드 장치에는 TLS_CHACHA20_POLY1305_SHA256를 사용하십시오. 매우 민감한 장기 보관 데이터에는 128비트 암호 스위트를 사용하지 마십시오.
DTLS: UDP를 통한 TLS
DTLS(RFC 6347)는 TLS를 UDP에 맞게 조정합니다. 레코드 헤더에 순서 번호를 추가하고, 순서가 뒤바뀐 패킷을 처리하며, DoS를 방지하기 위해 쿠키 기반 핸드셰이크를 사용합니다. WebRTC, VPN 및 IoT 프로토콜에서 사용됩니다.
Python으로 레코드 검사
ssl 모듈 또는 scapy를 사용해 TLS 레코드를 캡처하십시오. SSLKEYLOGFILE을 설정하면 Wireshark가 레코드를 자동으로 복호화합니다. Python의 ssl.SSLSocket.read()는 애플리케이션 계층에서 투명하게 복호화합니다.
빠른 확인
TLS 1.3 레코드 암호화에서 순서 번호는 무엇을 방지합니까?
복습
TLS 레코드 구조, AEAD 암호화, 논스 도출 및 암호 스위트 선택을 이해하셨습니다. 다음으로는 TLS가 핸드셰이크 중 서버 인증서를 검증하는 방법을 살펴봅니다.
자주 묻는 질문
“TLS 레코드 계층과 암호 스위트” 강의는 무료인가요?
네 — “TLS 레코드 계층과 암호 스위트” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“TLS 레코드 계층과 암호 스위트”에서 뭘 배우나요?
레코드 조각화, AEAD 암호화, 암호 선택을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“TLS 레코드 계층과 암호 스위트” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- TLS 1.3 핸드셰이크 단계별 학습
- TLS 레코드 계층과 암호 스위트
- TLS에서의 인증서 검증
- TLS 공격: BEAST, POODLE 및 다운그레이드