TLS
TLS
TCP/IPネットワークを用いた通信に適しており、通信中に伝送層のエンドツーエンドの安全性とデータ整合性を保証する.
TLS暗号化
TLSは対称暗号化と非対称暗号化の組み合わせを用いて,データを安全に伝送する際の性能と安全性の間の良好なトレードオフを提供する.
たいしょう暗号化
対称暗号化を使用すると、データは既知の鍵を使用して暗号化および復号化されます.対称暗号化は演算速度において有効であるが,公開鍵を安全に共有する必要があることを意味する.graph LR
sender((송신자))
reciver((수신자))
sender-.-|1.대칭키 교환|reciver
sender-->2.암호화
2.암호화-->|대칭키|2.암호화
2.암호화-.->|3.암호문 전송|4.복호화
4.복호화-->|대칭키|4.복호화
4.복호화-->reciver
非対称暗号化
非対称暗号化や共有鍵方式は数学的問題(公開鍵)に基づいて発生し,出題者が知らない特定の種類の情報(秘密鍵)は解決しにくい.鍵の作成者はこの問題(公開鍵)を一般人に公開し、特定の情報(秘密鍵)は自分だけが知っているように隠す.この問題で情報を暗号化する人がいる場合、鍵作成者だけがこの問題を解き、元の情報を復号することができます.graph LR
sender((송신자))
reciver((수신자))
reciver-.->|1.공개키, 개인키 생성|reciver
공개키_저장소-.-|2.생성된 공개키 저장|reciver
sender-.-|3.저장된 공개키 획득|공개키_저장소
sender-->4.암호화
4.암호화-->|공개키|4.암호화
4.암호화-.->|5.암호문 전송|6.복호화
6.복호화-->|개인키|6.복호화
6.복호화-->reciver
CA
CA(Certificate Authority)は、X.509規格に準拠したデジタル証明書を発行する場所です.デジタル証明書は、証明書所有者(マスター)の公開鍵を検証し、所有者は証明書によって保護されたドメインを制御します.したがって、信頼できるサードパーティとして、クライアントが検証済みサーバに接続されていることを確認できます.
TLS Handshake
sequenceDiagram
Client->>Server: 1) "client hello"
Server->>Client: 2) "server hello"
Server->>Client: 3) Server certificatie
Client->>Server: 4) Client Key Exchage
Client-->>Server: 5) Send client certificate
Client->>Server: 7) Client "finished"
Server->>Client: 9) Server "finished"
loop encrypted
Server->Client: Exchange Message
end
graph LR
sender((송신자))
reciver((수신자))
sender-.-|1.대칭키 교환|reciver
sender-->2.암호화
2.암호화-->|대칭키|2.암호화
2.암호화-.->|3.암호문 전송|4.복호화
4.복호화-->|대칭키|4.복호화
4.복호화-->reciver
graph LR
sender((송신자))
reciver((수신자))
reciver-.->|1.공개키, 개인키 생성|reciver
공개키_저장소-.-|2.생성된 공개키 저장|reciver
sender-.-|3.저장된 공개키 획득|공개키_저장소
sender-->4.암호화
4.암호화-->|공개키|4.암호화
4.암호화-.->|5.암호문 전송|6.복호화
6.복호화-->|개인키|6.복호화
6.복호화-->reciver
sequenceDiagram
Client->>Server: 1) "client hello"
Server->>Client: 2) "server hello"
Server->>Client: 3) Server certificatie
Client->>Server: 4) Client Key Exchage
Client-->>Server: 5) Send client certificate
Client->>Server: 7) Client "finished"
Server->>Client: 9) Server "finished"
loop encrypted
Server->Client: Exchange Message
end
SNI
SNI(Server Name Indication)は、TLSプロトコルの拡張子です.クライアントは、TLS HandshowのSNIエントリを使用して接続するホスト名を指定します.これにより、Apache、Nginx、またはHAProxyのようなサーバは、単一のIPアドレスのすべての証明書をベアラするときに必要な秘密鍵を選択して接続を確立することができる.
SNIを使用すると、サーバのホスト名はTLS握手中に含まれ、サーバのホスト名がHTTPSで共有されるIPアドレスにある場合でも、一意のTLS証明書を持つことができます.
ESNI
TLS Handshark中にSNI情報を交換すると,コメントによって伝達される情報を暗号化し,仲介者が盗み取るのを防止する.
HTTP通信で
HTTPSによる暗号化
ESNI付加暗号化
リファレンス
TLS Handshark中にSNI情報を交換すると,コメントによって伝達される情報を暗号化し,仲介者が盗み取るのを防止する.
![](https://s1.md5.ltd/image/0715715d7257f41e1f265a3fd2cbb1e3.png)
HTTP通信で
![](https://s1.md5.ltd/image/21680e0372d0e4e878992004546d5bde.png)
HTTPSによる暗号化
![](https://s1.md5.ltd/image/70a18e64cd4e6feda64ea56f22ddac26.png)
ESNI付加暗号化
リファレンス
Reference
この問題について(TLS), 我々は、より多くの情報をここで見つけました https://velog.io/@1sonjm/TLSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol