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 구조
- 첫 번째 계층은 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
'IT > Network' 카테고리의 다른 글
[CentOS] SMTP Command 알아보기 [Wireshark / ChatGPT] (0) | 2023.09.13 |
---|---|
[Network] DMZ를 구성하는 이유는? (0) | 2023.09.07 |
[Network] Wireshark로 IPSec 통신 과정 살펴보기 [GNS3 / Wireshark] (0) | 2023.08.14 |
[Network] IPSec 알아보기 (0) | 2023.08.14 |
[Network] Wireshark로 SSL/TLS 통신 과정 살펴보기 (0) | 2023.08.11 |