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サーバでデータを送受信する。 送信側は暗号化されたデータに加え、データのハッシュ値である「デジタル署名」を送る。 受信側はデータを復号した後、そのデータが通信中に改ざんされていないかを検証する。
 
  • 通信切断 データの送受信が完了後、通信を切断するためのやりとりを行う。