HTTPSの仕組みとTLS/SSLの基礎
暗号化通信の仕組みと、証明書の役割(なぜ証明書が必要か)。
HTTPSの仕組みとTLS/SSLの基礎
1. HTTPSとは?
HTTPS (HyperText Transfer Protocol Secure) は、Webでデータをやり取りするためのプロトコルであるHTTPに、TLS/SSLという暗号化技術を組み合わせたものです。
HTTP:平文(暗号化されていないテキスト)で通信を行う
HTTPS:HTTPをTLS/SSLで包み、暗号化して通信を行う
これにより、通信経路の途中で第三者による盗聴や改ざんを防ぎ、安全性を確保しています。
2. 暗号化通信の仕組み(TLS/SSLの役割)
TLS/SSLプロトコルによる暗号化通信は、主に以下の3つの要素を組み合わせて実現されています。
① 公開鍵暗号方式(非対称暗号)
これは、主に**鍵の交換(共有)**に使われます。
鍵のペア:暗号化に使う「公開鍵」と、復号に使う「秘密鍵」をセットで生成します。
公開鍵の公開:サーバーは公開鍵を全員に公開し、秘密鍵はサーバー内でのみ厳重に保管します。
仕組み:クライアントはサーバーの公開鍵で共通鍵などのデータを暗号化して送信します。この暗号文は、対応するサーバーの秘密鍵でしか復号できません。
② 共通鍵暗号方式(対称暗号)
これは、主に大量のデータ通信に使われます。
鍵が一つ:暗号化と復号に 同じ一つの鍵(共通鍵) を使います。
仕組み:公開鍵暗号方式で安全に共通鍵を共有した後、実際のメッセージ交換には処理速度の速い共通鍵暗号方式が使われます。
③ TLS/SSLハンドシェイク
クライアントとサーバーが安全な通信を始めるために、最初に**「鍵の交換」や「暗号方式の決定」**を行う手順です。
接続開始:クライアントがサーバーへ接続要求を送ります。
証明書の提示:サーバーはデジタル証明書(公開鍵が含まれる)をクライアントに送ります。
共通鍵の生成・交換:クライアントは証明書に含まれる公開鍵を使って共通鍵を暗号化し、サーバーへ送ります。
安全な通信開始:両者が共有した共通鍵を使い、以後のデータ通信は高速な共通鍵暗号で暗号化されます。
3. なぜ証明書が必要か?(認証の役割)
「デジタル証明書(SSL/TLSサーバー証明書)」は、通信の安全性を確保する上で、特に**「なりすまし防止」**という重要な役割を果たします。
証明書が必要な理由は主に以下の2点です。
① サーバーの「身元」を保証するため
インターネット上では、サーバーのIPアドレスは簡単に偽装できます。
証明書は、**認証局(CA: Certificate Authority)**と呼ばれる信頼できる第三者機関によって発行されます。
クライアント(ブラウザ)は、サーバーから送られてきた証明書に記載されている公開鍵が、本当に意図したサーバーのものであることを確認できます。
これにより、「このサーバーは、アクセスしようとしている企業(例:Amazonや銀行)によって確かに運営されている」という正当性を証明します。
② 公開鍵の「正当性」を保証するため
公開鍵暗号方式では、公開鍵が偽造されていると、偽の鍵を使って暗号化した情報(共通鍵など)がなりすまし犯に解読されてしまいます。
認証局は、サーバーの公開鍵に電子署名を施します。
クライアントは、この電子署名を検証することで、「この公開鍵は、信頼できる認証局によって保証された、正当なものだ」 と確認でき、中間者攻撃(Man-in-the-Middle Attack)を防ぎます。
まとめ :証明書は「信頼できる第三者による身分証明書」
デジタル証明書とは、「このウェブサイトの公開鍵は本物であり、運営者の身元も確かである」ことを信頼できる認証局が保証する、インターネット上の身分証明書であると言えます。