HTTPS
cover
おすすめ
HTTPSとは
HTTPS(Hypertext Transfer Protocol
Secure
)とは、WebサーバとWebブラウザの間で情報をやりとりするために使われる通信規則(プロトコル)の一つ。HTTP通信を暗号化し、より安全に通信できるようにしたプロトコルのこと。
▼ 「HTTP」についての詳しい記事はこちら
HTTPとHTTPSの違い
HTTPとHTTPSの主な違いは、通信の暗号化の有無のみ。
HTTPSでは
TLS (Transport Layer Security)
という暗号技術(プロトコル)を使って通信を暗号化している。暗号化実現のためにサーバからクライアントへ「サーバ証明書」が送信される。
TLSの古いバージョンはSSL(Secure Socket Layer)と呼ばれていたが、管理組織が移行した際にTLSという名称に変更された。
SSLという用語の方が馴染み深い事もあり、現在も「SSL/TLS」と表現されることが多い。
【プロトコルバージョンの移り変わり】
SSL1.0 → SSL2.0 → SSL3.0 → TLS1.0 → ... → TLS1.3 …
TLSの役割と暗号化の効果
TLSの暗号技術により、HTTPS通信では以下3つの機能で安全な通信を実現している。
- なりすまし防止 サーバ証明書は認証局と呼ばれる第三者機関から発行され、クライアント側で「認証局から認められた証明書か?」を確認する。 そのため、他者によってなりすまされる事を防止できる。
- 盗聴防止 通信データは暗号化して送信し、通信している二者しか知らない鍵でのみ復号可能。 そのため、第三者は通信中のデータを取得しても内容が分からない。
- 改ざんの検出 通信データに加え、そのデータのハッシュ値である「デジタル署名」を合わせて送る。 受信者側でデジタル署名を検証することで、通信経路でデータ改ざんされた場合でも検知できる。
HTTPSの通信フロー
HTTPSの通信フローではHTTP通信とは異なり「TLSハンドシェイク」のフローがあるのが特徴。
- TCP接続(3Wayハンドシェイク) HTTPS通信の前にTCPプロトコルで接続を確立する。
- TLSハンドシェイク サーバからクライアントへサーバ証明書を送信し、クライアント側で正当な証明書かを検証する。 検証完了後、後続の通信を暗号化するために利用する鍵情報などを共有する。
- HTTPS通信 実際にクライアントとWebサーバでデータを送受信する。 送信側は暗号化されたデータに加え、データのハッシュ値である「デジタル署名」を送る。 受信側はデータを復号した後、そのデータが通信中に改ざんされていないかを検証する。
- 通信切断 データの送受信が完了後、通信を切断するためのやりとりを行う。