SSL/TLSとは
SSL/TLSとはSSL(Secure Sockets Layer)または、TLS(Transport Layer Security) のプロトコルを使用し、インターネット上の通信の暗号化を行うことで、盗聴、改ざんを防止する技術のことである。
SSL/TLSと言っているが、SSLには脆弱性が見つかっており、今はTLSのプロトコルを使うことが推奨されている。
TLS通信の流れ
(事前準備)
①.TLS通信を行いたいサーバは、サーバの秘密鍵と公開鍵を生成し、CA(認証局)にサーバ証明書の発行を依頼する。
②.CAはサーバの正当性を確認し、サーバ証明書を発行する。
サーバ証明書には、サーバの公開鍵情報などが入っている。
(通信開始)
③.クライアントは、サーバに接続要求をする。(Client Hello)
④.サーバは、クライアントからの要求に対して、クライアントにサーバ証明書を返す。(Server Hello)
⑤.クライアントはサーバ証明書の正当性を確認する。
サーバ証明書は、CAの秘密鍵で暗号化されているため、CAの公開鍵で複合することで正当性を検証できる。
⑥.複合したサーバ証明書の中にある、サーバの公開鍵で通信の暗号化に使用する共通鍵を暗号化する。
暗号化した共通鍵をサーバに送る。
⑦.サーバは、サーバの秘密鍵で共通鍵を取得する。
⑧.取得した共通鍵で暗号通信を行う。