🌊

【ネットワーク基礎】SSL / TLSの仕組み

に公開

はじめに

インターネットでは、ログインIDやパスワード、クレジットカード番号や個人情報のようなデータを日々やりとりしています。
もしこれらが暗号化されずに送られていたら、通信の途中で盗聴や改ざんができてしまいます。
そんな危険を防ぐために使われているのが、SSL/TLSです。
本記事では、SSLとTLSについてわかりやすくまとめていきます。

SSL・TLS

イメージ


https://jp.globalsign.com/ssl/about/ より

SSL(Secure Sockets Layer)は、インターネット上のウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組み(プロトコル)です。

TLS(Transport Layer Security):SSLの後継バージョン。現在はこちらが主に使われています。
SSL/TLSの役割は、通信内容の暗号化・改ざん防止・通信相手の認証を行なう仕組みを提供することです。

通信の流れ:TLSハンドシェイクの仕組み

SSL/TLSは、通信を始める前に「ハンドシェイク(握手)」というやりとりを行ないます。
流れを追ってみましょう

ステップ1: 「Client Hello」メッセージ(クライアント → サーバーへ)

クライアント(ブラウザ)は
・サポートするTLSのバージョン
・対応可能な暗号スイート(方式)
・ランダムな値(Client Random
をサーバーへ送ります。

ステップ2:「Server Hello」メッセージ(サーバー → クライアントへ返事 + 証明書)

サーバーは
・TLSバージョンと暗号スイートの選択結果
・ランダムな値(Server Random)
・サーバー証明書(公開鍵含む)
をクライアントへ返します。
この証明書により、「このサーバーは本物で、正しい公開鍵を持っている」と証明されます。

ステップ3:共通鍵(セッション鍵)の生成と共有

方法① RSA方式(古い方法)
クライアントがセッション鍵を生成し、サーバーの公開鍵で暗号化して送信します。
サーバーは秘密鍵で復号してセッション鍵を取得する方法です。

方法② DHE/ECDHE方式(現在の主流)
双方が「鍵交換アルゴリズム(Diffie-Hellmanなど)」でセッション鍵を安全に合意します。
鍵そのものは送らず、「計算結果」だけを交換するため盗聴されにくいのが特徴です。

ステップ4:暗号化通信の開始

双方が同じ共通鍵を持つことで、通信の暗号化が可能になります。
この暗号化には、高速な「共通鍵暗号方式(AESなど)」が使われます。

ステップ5:通信内容の暗号化・送受信

通信データは共通鍵で暗号化され、改ざんされていないかチェックも行われます(MAC付き)。
以降の通信はすべて暗号化され、安全にやり取りできるようになります。

まとめ

SSL/TLSは、安全な通信を実現するための暗号化プロトコルで、Webブラウザとサーバの間で、誰にも盗み見られず・改ざんされないように通信するための“ルール”を定めています。
HTTPSやVPNなど、さまざまな場所でTLSは使われており、インターネットの土台を支える重要な技術であるため、しっかり基本を押さえておきましょう!
最後までお読みいただき、ありがとうございました。

参考・画像引用元URL

https://jp.globalsign.com/ssl/about/
https://www.cloudflare.com/ja-jp/learning/ssl/what-happens-in-a-tls-handshake/
https://milestone-of-se.nesuke.com/nw-basic/tls/https-structure/
https://www.shoeisha.co.jp/book/article/detail/346
https://en-ambi.com/itcontents/entry/2018/02/14/110000/
https://rms.ne.jp/what-is-an-ssl-certificate/handshake.html

Discussion