HTTPSとは
HTTPS(HyperText Transfer Protocol Secure)は、HTTPにSSL/TLS暗号化を追加したプロトコルです。ウェブブラウザとサーバー間の通信を暗号化し、第三者による盗聴や改ざんを防ぎます。
ポイント: HTTPSのURLは「https://」で始まり、ブラウザのアドレスバーに鍵アイコンが表示されます。
SSL/TLS暗号化の仕組み
HTTPSでは、SSL(Secure Sockets Layer)またはその後継であるTLS(Transport Layer Security)を使用して通信を暗号化します。
1. TCPハンドシェイク
まず、通常のTCP接続が確立されます。これは3ウェイハンドシェイク(SYN → SYN-ACK → ACK)で行われます。
2. TLSハンドシェイク
TCP接続確立後、TLSハンドシェイクが開始されます:
- Client Hello: クライアントがサポートする暗号スイートとTLSバージョンを送信
- Server Hello: サーバーが使用する暗号スイートを選択し、証明書を送信
- 鍵交換: 公開鍵暗号を使って共通鍵(セッション鍵)を安全に交換
- 暗号化通信開始: 以降の通信は共通鍵で暗号化
公開鍵暗号と共通鍵暗号
HTTPSでは2種類の暗号方式を組み合わせて使用します:
公開鍵暗号(非対称暗号)
- 公開鍵と秘密鍵のペアを使用
- 公開鍵で暗号化したデータは、対応する秘密鍵でのみ復号可能
- 鍵の交換に使用(計算コストが高いため、大量データには不向き)
共通鍵暗号(対称暗号)
- 同じ鍵で暗号化・復号を行う
- 高速で大量データの暗号化に適している
- 実際のデータ通信に使用
なぜ両方使うのか: 公開鍵暗号で安全に「共通鍵」を交換し、その後は高速な共通鍵暗号で通信する。これがハイブリッド暗号方式です。
証明書の役割
SSL/TLS証明書は、サーバーの身元を証明するデジタル証明書です:
- 認証: 通信相手が本物のサーバーであることを確認
- 公開鍵の配布: サーバーの公開鍵を安全に配布
- 信頼の連鎖: 認証局(CA)によって署名され、信頼性を担保
まとめ
HTTPSは、公開鍵暗号と共通鍵暗号を組み合わせたハイブリッド方式で、安全かつ効率的な暗号化通信を実現しています。証明書による認証と合わせて、インターネット上での安全な通信を支えています。
← 一覧に戻る