[Network] SSL/TLS Handshake 알아보기 [Wireshark / ChatGPT]
Nowhere 와 Now here 의 차이

IT/Network

[Network] SSL/TLS Handshake 알아보기 [Wireshark / ChatGPT]

TIENE 2023. 8. 11. 07:16
반응형

SSL (Secure Sockets Layer) / TLS (Transport Layer Security)

- 암호화 프로토콜 컴퓨터 네트워크 상에서, 주로 인터넷에서의 안전한 통신(연결)을 제공하는 암호화 프로토콜

- 클라이언트(웹 브라우저)와 서버(웹 사이트) 사이에 전송된 데이터를 기밀화하고 비인가 접근과 스니핑으로부터의 보호를 확신할 수 있도록 암호화하고 인증된 통신(연결)을 성립하기 위해 사용된다.
- 넷스케이프 사가 1990년도에 개발했으며, 보안 취약점과 프로토콜의 성능 향상을 위해 TLS가 후속 프로토콜로 개발되었다.

TLS는 SSL를 효과적으로 대체하였지만, SSL 이라는 용어가 일반적으로 같이 사용된다.

Encryption
암호화
클라이언트와 서버 사이에 전송된 정보를 암호화함으로써 데이터의 기밀성을 제공한다.
Authentication
인증
클라이언트와 서버 모두의 신원을 확인하기 위해 디지털 인증서를 사용하여 상호 인증을 제공한다.
Data Integrity
데이터 무결성
전송 중에 데이터가 변하지 않았음을 보증한다.
Secure Handshake
보안 핸드셰이크
클라이언트와 서버 사이에 교환된 일련의 메시지들을 통하여 안전한 통신을 성립할 수 있다.
Protocol Versions
and Cipher Suites
프로토콜 버전와 암호 집합
안전한 통신을 위해 다수의 프로토콜 버전 및 암호 집합(스위트)을 지원한다.
Session Resumption
세션 재개
핸드쉐이크의 오버헤드를 줄이고 연결 속도를 향상시키기 위해,
클라이언트가 연결된 세션을 재사용할 수 있도록 한다.
Protection
against Attacks
공격 방어
도청 / 비인가 접근 / 다른 네트워크 기반 공격으로부터 보호한다.
Common Use Cases
용례
웹 통신 / 이메일 / VPN 등과 같은 곳에 널리 사용된다.

SSL/TLS Protocol 구조

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc783349(v=ws.10)?redirectedfrom=MSDN

 

 

- 첫 번째 계층은 Handshake 프로토콜이다.

= 응용 프로그램 프로토콜과 핸드셰이크 하위 프로토콜인 암호 사양 변경 프로토콜 및 경고 프로토콜로 구성된다.

 

- 두 번째 계층은 Record 프로토콜이다.

= Application Data를 주고 받는 단계이며, 응용 프로그램에서 들어오는 데이터를 관리 가능한 블록으로 단편화한다.


SSL/TLS certificate

- SSL/TLS (Secure Sockets Layer/Transport Layer Security) 프로토콜의 중요한 구성 요소 

SSL/TLS certificate 의 세 가지 목적
Authentication
인증
- 웹 사이트 또는 서버의 디지털 ID 카드 역할 = CA(인증 기관)로 알려진 신뢰할 수 있는 제3자가 발급한다.
- 클라이언트가 서버에 연결되면 서버는 디지털 인증서를 제시하여 인증 여부를 증명한다.
- 클라이언트는 인증서의 디지털 서명과 CA의 디지털 서명을 확인하여 인증서의 유효성을 확인할 수 있다.
Encryption 
Key Exchange
키 교환 암호화
- Server Certificate에 서버의 공개 키가 포함되어 있으며, SSL/TLS 핸드셰이크 중에 클라이언트는 이 공개 키를 사용하여 pre-master secret를 암호화한다.
- 이 암호화된 pre-master secret는 서버로 전송되며, 서버는 개인 키를 사용하여 암호를 해독할 수 있다.
- 클라이언트와 서버 모두 이 공유 암호를 사용하여 세션의 암호화 키를 도출합니다.
Secure Data 
Transmission
데이터 전송 보안
- SSL/TLS 핸드셰이크가 완료되면 pre-master secret에서 파생된 암호화 키는 클라이언트와 서버 간에 전송되는 데이터를 암호화하고 암호를 해독하는 데 사용된다.
- 이 암호화는 교환된 데이터의 기밀성과 무결성을 보장하여 도청 및 변조를 방지한다.

 

서버 인증서의 구조 (포함된 정보)
Subject 인증서 소유자의 ID (일반적으로 웹 사이트의 도메인 이름)
Issuer 인증서를 발급한 CA의 이름
Public Key 인증서 소유자와 연결된 공개 키
Digital Signature CA가 인증서의 신뢰성을 확인하기 위해 만든 암호화 서명
Validity Period 인증서가 유효한 것으로 간주되는 시작 날짜와 종료 날짜
Key Usage 공개 키의 허용된 사용(예: 암호화, 디지털 서명, 키 계약)을 지정
Extended Key Usage 인증서를 사용할 수 있는 특정 용도(예: 웹 서버 인증)를 지정
Subject Alternative Names (SAN)
인증서가 유효한 추가 도메인 이름 또는 IP 주소

 

 


 

 

1) ClientHello

- Server와의 SSL/TLS 핸드셰이크를 진행하기 위하여 Client(웹 브라우저)가 보낸 첫 번째 메시지.

- 클라이언트와 서버가 안전한 암호화 통신을 하기 위한 절차의 시작을 알린다.

- 서버와 클라이언트가 보안 통신 조건을 협상할 수 있는 중요한 정보를 담고 있다.

 ClientHello Message Contents
Protocol Version
프로토콜 버전
- 클라이언트에서 지원되는 최상위 SSL/TLS 프로토콜 버전을 정의한다.
- 암호화 알고리즘과 협상을 위해 사용 가능한 보안 기능을 나타낸다.
Random Number
난수
- 클라이언트는 ClientHello 메시지에 포함된 "ClientRandom" 을 생성한다.
- ClientRandom은 세션에 사용되는 암호화 키가 고유한지 확인하기 위해 키 도출 프로세스의 일부에 사용된다.
Session ID
세션 ID
- 클라이언트가 이전 세션을 재개하는 경우 해당 세션의 세션 ID를 포함할 수 있다.
- 이는 서버가 전체 핸드셰이크를 수행하지 않고 기존 세션을 빠르게 재개할 수 있도록 한다.
Cipher Suites
암호 집합
- ClientHello에는 클라이언트가 지원하는 암호 집합(암호화 알고리즘과 키 교환 방법의 조합) 목록이 포함되어 있다.
- 서버는 이 목록에서 보안 연결에 사용할 하나의 암호 집합을 선택한다.
Compression Methods
압축 방법
- 일반적으로 사용되지는 않지만, SSL/TLS 세션 동안 데이터 압축을 위해 클라이언트가 지원하는 압축 방법을 나타낼 수 있다.

2) ServerHello

- SSL/TLS 핸드셰이크 프로세스 중에 서버가 "ClientHello" 메시지에 대한 응답으로 보낸 메시지.

- 클라이언트(웹 브라우저)와 서버 간의 보안 연결 조건 협상 진행 중 중요한 역할

- 암호화된 통신 세션에 대한 매개 변수를 설정하는 데 도움이 되는 중요한 정보를 포함.

ServerHello Message Contents
Protocol Version
프로토콜 버전
- ServerHello는 세션에 대해 서버가 선택한 SSL/TLS 프로토콜 버전을 지정한다.
- 이 버전은 클라이언트와 서버 모두에서 지원하는 가장 높은 버전이어야 한다.
Random Number
난수
- 클라이언트와 유사하게, 서버는 "ServerRandom"으로 알려진 자체 난수를 생성한다.
- ServerRandom은 암호화 키의 고유성을 보장하기 위해 키 도출 프로세스에서 사용된다.
Session ID
세션 ID
- 클라이언트가 ClientHello에 세션 ID를 포함한 경우(기존 세션 재개 요청), 서버는 동일한 세션 ID로 응답한다.
- 이를 통해 서버는 전체 핸드셰이크 없이 세션을 빠르게 재개할 수 있다.
Cipher Suites
암호 집합
- 서버는 ClientHello에 제공된 목록에서 암호 집합을 선택한다.
- 선택한 암호 집합은 세션에 사용되는 암호 알고리즘, 키 교환 방법 및 기타 보안 매개 변수를 결정한다.
Compression Methods
압축 방법
- 서버는 세션에 대한 압축 방법을 지정하여 데이터 압축이 사용되는지 여부를 나타낸다.

 

3) ServerCertificate

- SSL/TLS 핸드셰이크 프로세스의 기본적(중요한)인 부분

- 클라이언트의 "ClientHello" 메시지에 대한 응답으로 서버에서 클라이언트로 전송된다.
- 목적은 서버의 공개 키 및 관련 ID 정보를 포함하는 서버의 디지털 인증서를 클라이언트에 제공하는 것

ServerCertificate Message Contents
Public Key
공개키
- 공개 키 =  보안 통신을 위한 필수 구성 요소
- 서버 = 개인 키를 사용하여 메시지에 서명 
- 클라이언트 =  공개 키를 사용하여 서버 메시지의 진위 확인 및 서버로 전송된 데이터를 암호화.
Identity Information
신원 정보
- 서버의 도메인 이름과 클라이언트가 서버의 ID를 확인하는 데 도움이 되는 기타 정보 포함된다.
Digital Signature
디지털 서명
- 인증서 = 신뢰할 수 있는 CA(인증 기관)가 서명한 것
- CA의 디지털 서명은 인증서의 진정성과 포함된 정보의 정확성을 증명한 것
ServerCertificate Features
Authentication 
and Trust

인증 및 신뢰
- "ServerCertificate" 메시지를 사용하면 클라이언트가 서버의 ID 확인 가능
- 인증서의 디지털 서명을 검사하고 신뢰할 수 있는 CA 목록에 대해 확인하여 클라이언트가 원하는 서버와 통신하고 있는지 확인할 수 있다.

- 인증서가 신뢰할 수 있는 CA에 의해 발급되고 디지털 서명이 유효한 경우, 클라이언트는 서버의 ID에 대한 신뢰를 설정할 수 있다.
Secure Key Exchange
보안 키 교환
- 클라이언트는 인증서에서 서버의 공개 키를 사용하여 pre-master secret을 암호화된다.
- 암호화된 pre-master secret은 서버로 전송된다.

- 해당 개인 키를 소유한 서버는 pre-master secret를 해독된다.
- 그런 다음 양 당사자는 pre-master secret를 사용하여 세션의 암호화 키를 도출된다.
Foundation
of 

Secure 
Communication

보안 통신의 기초
- "ServerCertificate" 메시지는 SSL/TLS 핸드셰이크의 중요한 구성 요소
- 클라이언트가 서버의 ID를 확인하고 암호화 키를 교환할 수 있도록 하여 보안 통신의 기반을 구축한다.
Importance 
for Confidentiality 
and Integrity

기밀성과 무결성의 중요성
- 핸드셰이크가 완료되면 클라이언트와 서버는 파생된 암호화 키를 사용하여 데이터를 암호화하고 해독하여 전송된 정보의 기밀성과 무결성을 보장한다.

 


4) ServerKeyExchange

- 공유 비밀 키를 설정하기 위해 필요한 추가 정보를 클라이언트에 제공해야한다.

- 이때, 특정 키 교환 방법에서 사용되는 SSL/TLS 핸드셰이크 프로세스의 일부다.

 

 ServerKeyExchange Message Contents (Key Exchange Methods)
- "ServerKeyExchange" 메시지의 필요성은 핸드셰이크 중 협상된 선택된 키 교환 방법에 따라 달라진다.
- 일반적인 키 교환 방법에는 Diffie-Hellman(DH)Eliptic Curve Diffie-Hellman(ECDH)이 있다.
Diffie-Hellman (DH) 
key exchange
신원 정보
- 서버의 Public Diffie-Hellman 매개 변수 또는 해당 Diffie-Hellman 공용 키가 포함될 수 있다.
Elliptic Curve
Diffie-Hellman (ECDH)
key exchange
디지털 서명
- 서버의 타원 곡선 매개 변수와 ECDH 공개 키가 포함될 수 있다.
ServerKeyExchange Features
Primary Purpose
주요 목적
- 공유 비밀 키 설정에 필요한 추가 데이터를 클라이언트에 제공한다.
- 서버의 인증서만으로는 공유 비밀을 설정할 수 없는 키 교환 방법으로 사용된다.
Client's Role
클라이언트 역할
- "ServerKeyExchange" 메시지를 수신한 클라이언트는 제공된 데이터를 사용하여 공유 비밀 키를 계산하고, 이는 암호화 키를 도출하고 보안 통신을 설정하는 데 사용됩니다.
Importance 
for Security

보안의 중요성
- "ServerKeyExchange" 메시지는 클라이언트와 서버가 공유 비밀 키를 생성하는 데 필요한 정보를 가지고 있는지 확인한다.
- 특히, 서버의 인증서만으로는 충분하지 않은 경우 키 교환 프로세스에 보안 계층을 추가한다.
Key Derivation 
and 
Secure Communication
키 도출과 보안 통신
- 클라이언트가 "ServerKeyExchange" 메시지를 처리한 후 키 도출 및 SSL/TLS 핸드셰이크 완료를 진행한다.
- 교환된 데이터에서 파생된 공유 비밀 키는 암호화, 암호 해독 및 보안 채널 설정에 사용된다.

 

5) ServerHelloDone

- SSL/TLS 핸드셰이크 프로세스의 중요한 단계

- "ServerHello" 및 잠재적으로 " Certificate" 메시지가 교환된 후에 발생한다.
- 핸드셰이크 부분의 완료를 알리기 위해 서버가 전송하여, 다음 단계를 진행해야 한다는 신호를 클라이언트에게 보낸다.

ServerHelloDone Features
Primary Purpose
주요 목적
- "ServerHelloDone" 메시지는 서버가 클라이언트에게 보내는 간단한 통지 역할을 한다.
- 서버가 핸드셰이크 부분을 완료했으며 클라이언트가 프로세스를 계속할 준비가 되었음을 알린다.
Completion of 
Server's Role

클라이언트 역할 완료
- "ServerHelloDone" 메시지를 수신한 클라이언트는 서버가 "ClientHello" 메시지를 성공적으로 처리하고 적절한 보안 매개 변수(SSL/TLS 버전, 암호 집합 등)를 선택했으며 맞는 경우 디지털 인증서를 제공했음을 알 수 있다.
Client's Next Steps
클라이언트의 다음 단계
- "ServerHelloDone" 메시지를 처리한 후, 클라이언트는 핸드셰이크의 부분을 진행한다.
- 일반적으로 서버의 인증서에 대한 추가 검증을 포함하고, 키를 생성하고, 최종적으로 클라이언트 측으로부터 핸드셰이크의 완료를 알리기 위해 "Finished" 메시지를 전송한다.
One-Way Notification
단방향 알림
- "ServerHelloDone" 메시지는 클라이언트의 응답이 필요없다.
- 서버에서 보낸 단방향 통지
Secure
 Communication 
Initiation
보안 통신 시작
- "ServerHelloDone" 교환으로 SSL/TLS 핸드셰이크가 완료되면 클라이언트와 서버 간에 보안 채널이 성공적으로 설정되었음을 보여준다.

 

6) ClientCertificate

- SSL/TLS 핸드셰이크 프로세스의 구성 요소로, 특히 서버가 클라이언트 인증을 요청할 때 관련이 있다.

- 이 메시지를 통해 서버가 클라이언트로부터 디지털 인증서를 요청할 수 있으며, 클라이언트는 서버에게 자신의 공개 키 및 ID 정보를 제공한다.

ClientCertificate Message Contents
- The "ClientCertificate" message는 클라이언트의 디지털 증명서를 포함하고 있다.
Public Key
공개키
- 클라이언트의 공개 키.
- 클라이언트의 메시지를 확인하고 세션 키를 교환하는 데 사용
Identity Information
신원 정보
- 인증서에는 일반적으로 서버가 클라이언트의 ID를 확인하는 데 도움이 되는 정보가 포함된다.
ClientCertificate Features
Request 
for Client Certificate
클라이언트 증명서 요청
- 특정한 경우, 서버는 클라이언트에게 인증을 위한 디지털 인증서를 제시하도록 요구 가능하다.
- 이는 일반적으로 상호 인증과 같이 서버가 클라이언트의 ID를 확인하려는 시나리오에서 나타난다.
Client Authentication
클라이언트 인증
- 클라이언트는 디지털 인증서를 전송하여 서버에 대한 진정성을 증명한다.
- 서버는 클라이언트의 인증서를 확인하여 디지털 서명을 확인하고 신뢰할 수 있는 CA(인증 기관)에 대해 인증 여부를 확인한다.
Secure Key Exchange - 클라이언트 인증확인이 성공한 경우, 서버는 클라이언트의 공개 키를 사용하여 데이터를 암호화하거나 보안 통신을 위한 키를 설정할 수 있다.
Mutual Authentication
 (Optional)
- 상호 인증의 경우, 클라이언트와 서버 모두 서로의 ID를 확인하면서 인증서를 제시한다.
ClientCertificateVerify 
(Optional)
- 클라이언트는 "ClientCertificate" 메시지 외에도 "ClientCertificateVerify" 메시지를 보내 클라이언트가 인증서의 공개 키에 해당하는 개인 키를 가지고 있음을 증명하는 디지털 서명을 제공할 수 있다.
Importance 
for Security
- 특히 강력한 클라이언트 확인이 필요한 시나리오에서 서버가 클라이언트를 인증할 수 있도록 하여 보안을 강화한다.

 

 

7) ClientKeyExchange

- SSL/TLS 핸드셰이크 프로세스의 중요한 구성 요소로, "ServerHello" 메시지 및 해당되는 경우 "Certificate" 및 "ServerCertificateDone" 메시지 뒤에 발생한다.
- 이 메시지는 세션 중 암호화 및 암호 해독에 사용되는 공유 비밀 키를 설정하는 데 필요한 정보를 서버에 제공하기 위해 클라이언트에 의해 전송된다.

 

ClientKeyExchange Message Contents
- "ClientKeyExchange" 메시지의 정확한 내용은 사용 중인 키 교환 방법에 따라 다르다.
- 다른 키 교환 방법을 사용하려면 이 메시지에 다른 유형의 데이터가 포함되어야 한다.
- 예를 들어 RSA 키 교환에서 클라이언트는 서버의 공개 키로 암호화된 pre master secret을 포함한다.
- Diffie-Hellman 키 교환에서 클라이언트는 Diffie-Hellman 공개 키를 보냅니다.
ClientKeyExchange Features
Primary Purpose
주요 목적
- "ClientKeyExchange" 메시지의 주요 목적은 클라이언트와 서버 간에 공유된 암호화 키를 설정하는 데 중요한 키 자료를 안전하게 교환하는 것이다.
Key Exchange Methods
키 교환 방법
- "ClientKeyExchange" 메시지의 내용은 Handshake 중 협상된 키 교환 방법에 따라 달라진다.
- 일반적인 키 교환 방법에는 RSA, Diffie-Hellman 및 Eliptic Curve Diffie-Hellman(ECDH)이 있다.
Shared Secret 
Generation
공유 비밀키 생성
- 클라이언트 키 교환 메시지에 포함된 데이터는 클라이언트와 서버에서 모두 공유 비밀을 생성하는 데 사용된다.
- 이 공유 암호는 통신 보안에 사용되는 암호화 키 및 기타 암호화 매개 변수를 도출하는 데 사용된다.
Completion of 
Key Exchange
키 교환 완료
- "ClientKeyExchange" 메시지가 교환되면 클라이언트와 서버 모두 공유 비밀을 계산하는 데 필요한 데이터를 갖게 된다.
- 그런 다음 공유 암호는 세션 중 보안 데이터 전송에 사용될 대칭 암호화 키를 도출하는 데 사용된다.
Secure 
Communication
보안 통신
- 공유 암호를 성공적으로 교환하고 계산하면 클라이언트와 서버가 대칭 암호화 키를 사용하여 보안 통신을 설정할 수 있습니다.

 

 

8) Change CipherSpec Message Forwarded by Client
- "Change CipherSpec" 메시지는 SSL/TLS 핸드셰이크 프로세스의 중요한 부분이다.
- 이는 초기 핸드셰이크 협상 단계에서 응용 프로그램 데이터 교환 단계로의 전환을 알리는 데 사용된다.
- "Change CipherSpec" 메시지는 협상된 보안 매개 변수를 사용하여 후속 메시지가 보호됨을 나타낸다.

 

Change CipherSpec Message Forwarded by Client Features
Transition to 
Secure 
Communication

주요 목적
- "Change CipherSpec" 메시지는 SSL/TLS 핸드셰이크 내 보안 통신 단계의 시작을 나타냅니다.
- 클라이언트와 서버가 핸드셰이크 협상을 완료하고 필요한 보안 매개 변수를 설정한 후, 클라이언트는 "Change CipherSpec" 메시지를 보내 보안 암호화가 후속 메시지에 적용될 것임을 알립니다.
Client's Role
클라이언트 역할
- 클라이언트는 "ClientKeyExchange" 메시지 전송(해당하는 경우) 및 서버의 디지털 인증서 확인을 포함하는 Handshake 프로세스 부분을 완료한 후 "Change CipherSpec" 메시지를 전달한다.
Signaling Secure Mode
보안 신호 모드
- "Change CipherSpec" 메시지는 값이 1인 단일 바이트이다.
- 보안 통신 모드로 전환하려는 의도다.
Immediate Application
즉각적인 적용
- "Change CipherSpec" 메시지는 일반적인 Handshake 메시지 형식을 따르지 않는다.
- 클라이언트가 "Change CipherSpec" 메시지를 보내면 Handshake 중에 협상된 보안 매개 변수가 즉시 적용된다.
No Encryption or
 Integrity Protection
암호화 및 무결성 보호 X
- "Change CipherSpec" 메시지 자체가 암호화되거나 무결성이 보호되지 않는다.
- 이는 협상된 암호 키를 사용하여 메시지 자체가 보안되지 않음을 의미한다,

- 그러나 이후부터는 모든 후속 애플리케이션 데이터 및 메시지가 합의된 암호화 알고리즘과 키를 사용하여 암호화되고 무결성이 보호된다.
Concluding 
the Handshake
핸드셰이크 마무리
- "Change CipherSpec" 메시지 뒤에는 종종 "Finished" 메시지가 따라온다.
- 이 메시지는 보안 통신 모드로의 성공적인 전환을 확인하기 위해 클라이언트와 서버 간에 교환된다.

- "Finished" 메시지가 교환되면 SSL/TLS 핸드셰이크가 완료되고 보안 세션이 완전히 설정된다.

 

 

9) Change CipherSpec Message Forwarded by Server
- "Change CipherSpec" 메시지는 SSL/TLS 핸드셰이크 프로세스의 중요한 부분이다.
- 이는 초기 Handshake 협상 단계에서 응용 프로그램 데이터 교환 단계로의 전환을 알리는 데 사용된다.
- "Change CipherSpec" 메시지는 협상된 보안 매개 변수를 사용하여 후속 메시지가 보호됨을 나타낸다.

 

Change CipherSpec Message Forwarded by Client Features
Transition to 
Secure Communication
주요 목적
- "Change CipherSpec" 메시지는 SSL/TLS 핸드셰이크 내 보안 통신 단계의 시작을 알린다.
- 클라이언트와 서버가 Handshake 협상을 완료하고 필요한 보안 매개변수를 설정한 후, 서버는 "Change CipherSpec" 메시지를 보내 보안 암호화가 후속 메시지에 적용될 것임을 알린다.
Server's Role
클라이언트 역할
- 서버는 Handshake 프로세스의 일부를 완료한 후 "Change CipherSpec" 메시지를 전달한다.
(서버의 디지털 인증서 전송 및 필요한 경우 클라이언트 인증 요청 포함)
Signaling Secure Mode
보안 신호 모드
- "Change CipherSpec" 메시지는 값이 1인 단일 바이트이다.
- 보안 통신 모드로 전환하려는 의도다.
Immediate Application
즉각적인 적용
- "Change CipherSpec" 메시지는 일반적인 Handshake 메시지 형식을 따르지 않는다.
- 서버가 "Change CipherSpec" 메시지를 보내면, Handshake 동안 협상된 보안 매개변수가 즉시 적용된다.
No Encryption or
 Integrity Protection
암호화 및 무결성 보호 X
- "Change CipherSpec" 메시지 자체가 암호화되거나 무결성이 보호되지 않는다.
- 이는 협상된 암호 키를 사용하여 메시지 자체가 보안되지 않음을 의미한다,

- 그러나 이후부터는 모든 후속 애플리케이션 데이터 및 메시지가 합의된 암호화 알고리즘과 키를 사용하여 암호화되고 무결성이 보호된다.
Concluding 
the Handshake
핸드셰이크 마무리
- "Change CipherSpec" 메시지 뒤에는 종종 "Finished" 메시지가 따라온다.
- 이 메시지는 보안 통신 모드로의 성공적인 전환을 확인하기 위해 클라이언트와 서버 간에 교환된다.

- "Finished" 메시지가 교환되면 SSL/TLS 핸드셰이크가 완료되고 보안 세션이 완전히 설정된다.

 

 

10) ApplicationData Message
- "ApplicationData" 메시지는 보안 통신 세션이 설정되면 클라이언트와 서버 간에 실제 응용 프로그램 데이터를 안전하게 전송하는 데 사용된다..

- Handshake 메시지를 교환하고 보안 모드로 성공적으로 전환한 후 SSL/TLS Handshake 프로세스의 마지막 단계다.

 

ApplicationData Message Contents
- "ApplicationData" 메시지의 내용은 SSL/TLS 계층에 의해 해석되지 않는다.
-  안전하게 전송되어야 하는 데이터의 페이로드를 나타내며, Handshake
중에 설정된 보안 매개 변수에 따라 암호화되고 무결성이 보호된다.
ApplicationData Message Features
Purpose 
of 
ApplicationData 
Message
목적
- 클라이언트와 서버 간에 실제 응용프로그램 수준의 데이터를 안전하게 전송하는 것이다.
- 이 데이터에는 웹 페이지 콘텐츠, HTTP 요청 및 응답, 파일 전송 및 SSL/TLS 위에서 실행되는 응용 프로그램이 전송해야 하는 기타 데이터가 포함된다.
Encryption 
and
 Integrity Protection
암호화와 무결성 보호

- "ApplicationData" 메시지는 Handshake 중에 pre master secret에서 파생된 암호화 키를 사용하여 암호화되고 무결성이 보호된다.
- 암호화를 통해 전송된 데이터는 기밀이며 권한 없는 당사자가 쉽게 가로챌 수 없습니다.
- 무결성 보호 기능을 사용하면 전송 중에 데이터가 변조되지 않습니다.
Bidirectional 
Communication
양방향 통신
- 클라이언트와 서버 모두 "ApplicationData" 메시지를 전송하여 양방향 통신이 가능하다.
- 각 측에서 단일 SSL/TLS 세션 내에 여러 개의 "Application Data" 메시지를 보낼 수 있다.
End of Handshake
핸드셰이크 종료
- SSL/TLS 핸드셰이크가 성공적으로 완료되었으며 보안 통신이 설정되었음을 나타낸다.
- 응용 프로그램 수준의 데이터 전송은 세션 기간 동안 계속할 수 있다.
Secure 
Communication 
Continuation
지속적인 보안 통신
- 클라이언트와 서버 모두 데이터가 암호화되어 있고 변조로부터 보호된다.



참조 : ChatGPT

 

ChatGPT

A conversational AI system that listens, learns, and challenges

chat.openai.com

참조 : https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc783349(v=ws.10)?redirectedfrom=MSDN

 

How TLS/SSL Works: Logon and Authentication

Table of contents How TLS/SSL Works Article 01/08/2015 In this article --> Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2 How TLS/SSL Works In this section Schannel SSP Architecture TLS/S

learn.microsoft.com

 

반응형