5.3 전송계층보안
5장. 전송레벨 보안
개요
TLS
는SSL
을 인터넷 표준버전이 되도록 만든IETF
표준
TLS는 RFC 2246로 제안된 인터넷 표준(Proposed Internet Standard)
으로 정의RFC 2246 “The TLS Protocol Version 1.0” (1999)
Obsoleted by RFC 4346
RFC 4346 “The Transport Layer Security (TLS) Protocol Version 1.1” (2006)
Obsoleted by RFC5246
RFC 5246 “The Transport Layer Security (TLS) Protocol Version 1.2” (2008)
Updated by RFC5746, RFC5878, RFC6176, RFC7465, RFC7507, RFC7568, RFC7627, RFC7685, RFC7905, RFC7919
목포해양대 해양컴퓨터공학과
SSL과 TLS 비교 (1)
버전 번호
TLS 레코드 형식(TLS Record Format)은 SSL
레코드 형식(SSL Record Format)과 동일헤더의 필드도 동일
버전 값은 다름
MAC 구조
실제적인 알고리즘 차이
MAC 계산 범위
TLS: HMAC 사용, PRF(Pseudo Random Function) 사용
SSL과 TLS 비교 (2)
목포해양대 해양컴퓨터공학과
SSL과 TLS 비교 (3)
경고 코드
TLS는 SSLv3에 정의된 모든 경고 코드를 지원
no_certificate만 제외
심각으로 처리되는 경고
record_overflow:
unknown_ca:
access_denied:
decode_error:
protocol_version:
insufficient_security:
unsupported_extension:
internal_error:
decrypt_error:
user_canceled:
no_renegotiation:
SSL과 TLS 비교 (4)
암호도구
키교환(Key Exchange):
TLS는 Fortezza만 제외하고 SSLv3의 모든 키교환 기술을 지원
대칭 암호 알고리즘(Symmetric Encryption
Algorithm):
TLS는 Fortezza만 제외하고 SSLv3에서 사용하는 모든
대칭 암호 알고리즘을 포함
목포해양대 해양컴퓨터공학과
SSL과 TLS 비교 (5)
클라이언트 인증서 유형
TLS가 certificate_request message 안에 요구하는
인증서 유형(certificatetype)rsa_sign
dss_sign
rsa_fixed_dh
dss_fixed_dh
SSLv3에 추가로 정의되는 인증서 유형
rsa_ephemeral_dh,
dss_ephemeral_dh
fortezza_kea
SSL과 TLS 비교 (6)
인증_확인과 종료된 메시지
TLS certificate_verify message에서 MD5와 SHA-1
해시는 오직 handshake_messages에 대해서만 계산
SSLv3에서는 해시 계산에 마스터 비밀과
패드를 포함
TLS 안의 finished message는 공유하는
master_secret, 이전의 핸드셰이크 메시지
그리고 클라이언트와 서버를 식별하는 레이블을 기반으로 하는 해시목포해양대 해양컴퓨터공학과
SSL과 TLS 비교 (7)
암호 계산
TLS에 대한 pre_master_secret는 SSLv3에서
계산하는 것과 동일한 방법으로 계산
SSLv3에서와 같이, TLS 안에서 master_secret은 pre_master_secret과 2개의 hello 랜덤넘버에
해시함수를 적용해서 계산
TLS 계산
master_secret = PRF(pre_master_secret, "master secret", ClientHello.random || ServerHello.random)
SSL과 TLS 비교 (8)
패딩
사용자 데이터를 암호화하기 전에 추가되는 패딩은 암호화될 데이터의 총 길이가 암호 블록 길이의 배수가 되게 하는 최소의 길이
TLS에서 패딩은 총길이가 암호 블록 길이의
배수가 되기만 하면 최대 255바이트로 제한되는 어떤 길이라도 무방
목포해양대 해양컴퓨터공학과