インターネットを使って通信を行う際に、暗号化して情報をやりとりできるHTTPSプロトコルの重要性はますます高くなっています。しかし、HTTPとHTTPS、そしてSSLやTLSといった言葉は難しく、どのようなものか理解するのは難しいのではないでしょうか。
本記事では、HTTPSプロトコルが必要な理由やHTTPやSSLとの違い、SSL/TLSを利用したHTTPS 通信の仕組みについて解説します。言葉の意味を理解して、安全で信頼性の高いWebサイトを作るために役立てましょう。
目次
[ 開く ]
[ 閉じる ]
HTTPSプロトコルとは
HTTPS(ハイパーテキストトランスファープロトコル・セキュア)とは、WebブラウザとWebサイトの間で通信する際に使用されるHTTPをよりセキュア(安全な状態)に拡張したプロトコルです。そもそもプロトコルとは「約束事」や「規制」などの意味を持ち、WebブラウザとWebサイトの通信はHTTPSプロトコルで定められたルールに沿って行われています。
HTTPプロトコルの通信は平文(暗号化されていないデータ)で行われているため、情報の盗聴や改ざん、偽装などのリスクがあります。一方、HTTPSはサーバーから送信される電子証明書を利用して信頼性を高めているのです。この電子証明書が「SSLサーバ証明書」となります。
SSLサーバ証明書は、信頼できる正規の認証局によって発行され、サーバーの公開鍵を含んでいます。ユーザーは、認証局より発行されたSSLサーバ証明書を確認したうえで公開鍵を使用して通信内容を暗号化しているのです。情報は対となる秘密鍵を所有するものしか復号(誰でも解読ができる状態にすること)ができないため、HTTPSプロトコルを使用した通信はHTTPプロトコルよりも安全と言えます。
【関連記事】暗号化とは?主な方式の種類や暗号化・復号化の仕組み、やり方について解説
HTTPSとSSL/TLSの違い
HTTPSとSSL/TLSは、「WebブラウザとWebサイト間の通信を安全に行うためのもの」という広義の意味では同じです。しかし、双方には次のような細かい部分で違いがあります。
- HTTPS…SSL/TLSを用いて安全な環境でHTTP通信を行うためのプロトコル
- SSL/TLS…インターネットでやりとりするデータの盗聴や改ざん、なりすましなどを防止するための暗号化プロトコル
つまり、SSL/TLSはデータを暗号化するためのプロトコルで、HTTPSはSSL/TLSを使って安全にHTTP通信するための仕組みなのです。また、SSL/TLSの「SSL」「TLS」についてもそれぞれ違いがあります。
TLSとSSLの違い
SSL(Secure Sockets Layer) |
|
---|---|
TLS(Transport Layer Security) |
|
一言でまとめるとSSLの次世代規格がTLSとなります。SSLとTLSは同じ役割を持ちますが、SSLは新しいバージョンのSSL3.0にも脆弱性が見つかっているため、現在は対応が打ち切られているので注意しましょう。また、TLSにもTLS1.0および1.1に脆弱性が見られたために、TLS1.2以降の使用が推奨されています。
HTTPSとHTTPの違い
Webサイトを閲覧するために使用される通信プロトコルは、「HTTPS」と「HTTP」の2つです。両者にはセキュリティの強さに大きな違いがあります。「HTTPS」は信頼性が高く、より強固なセキュリティを誇るプロトコルなのです。
HTTPSとHTTPの違いを図で表すと次のようになります。
HTTPS |
|
---|---|
HTTP |
|
閲覧しているWebサイトがどちらのプロトコルを使用しているのかは、アドレスバーを見るとわかります。
- HTTPS…アドレスの前に鍵マークがある
- HTTP…アドレスの前に鍵マークがなく「このサイトは安全に接続できません」などの警告が表示される
HTTP方式のプロトコルを使用しているサイトでは、情報がそのまま送信されるため、個人情報やアカウント情報などは入力しないようにしましょう。
HTTPSとHTTPの違いについての詳細は、こちらの記事で詳しく解説しています。ぜひ、あわせてご覧ください。
【関連記事】「httpとhttpsの違いとは|SSLサーバー証明書の確認方法や信頼できるサイトの見極め方」
「このサイトは安全に接続できません」と表示されたときの解決方法については、こちらの記事をご覧ください。
なぜHTPPS化(常時SSL化)は必要なのか?
HTTPサイトをHTTPS化(常時SSL化)するためには、リダイレクトが必要です。
HTTPS化をすることにより、HTTPでアクセスした場合でも自動的にHTTPSに切り替わり、利用者がより安心してWebサイトを使用できるのです。GoogleもHTTPS化を推奨しており、HTTPS化は現代のWebサイトにおいて必須の要件となっています。
また、HTTPS化を実施すると良い理由には、以下の3つのような事由も関係しています。
インデックスに優先的に登録されるから
WebサイトをHTTPS化(常時SSL化)することにより、Googleなどの検索エンジンにおいて優先的にインデックス(検索エンジンがWebページを登録するデータベース)に登録される傾向があります。これは、ユーザーの安全性を考慮し、信頼性やセキュリティの高いサイトを優先するためです。
検索エンジンからの評価を分散させないため
HTTPサイトのHTTPS化によるリダイレクトは、複数のサイトを1つにまとめることができるため、Googleなどの検索エンジンからの評価を分散させないメリットがあります。HTTPとHTTPSの2つのサイトが存在する場合、検索エンジンはこれらを別々のものとして扱い評価を分散する場合があるのです。そのため、HTTPSへのリダイレクトを使用してサイトをまとめ、SEOに有利なサイトを構築することが求められます。
ユーザビリティを高める
HTTPS化は、ユーザビリティ(ユーザーの利便性)の向上にもつながります。HTTPSプロトコルを使用したWebサイトは、証明書や暗号化された通信により信頼性とセキュリティが保証されているため、利用者が安心して利用できるからです。また、ブックマークに登録したユーザーがアクセスした場合も、HTTPSプロトコルが適用されたサイトに自動的にリダイレクトされます。このことは利用者が手動でURLを変更する手間を省けるメリットにつながります。
HTTPSによる通信の仕組み
HTTPSによる通信の仕組みは、次のとおりです。
- クライアント(送信者)からサーバー(受信者)にリクエストを送る
- サーバーからサーバー証明書と公開鍵を送信
- クライアントはサーバー証明書を確認、公開鍵を使って共通鍵を暗号化
- クライアントで暗号化した共通鍵をサーバーへ送信
- サーバーは秘密鍵を使って共通鍵を復号化
- クライアント、サーバー間で暗号化した通信を開始
この流れを図で表すと次のようになります。
HTTPSによる通信の仕組みについて、次項より詳しく説明します。
①クライアントからサーバーにリクエストを送る
HTTPS通信するためには、まず、クライアントからサーバーに「TLS接続」のリクエストを送ります。TSL(Transport Layer Security)は、インターネット上の通信において暗号化や認証するためのプロトコルです。かつてはSSL(Secure Sockets Layer)方式が使用されていましたが、脆弱性により、現在はTLSに変更されています。TLSで接続することにより、通信が暗号化され安全に接続できるようになるのです。
具体的には、「このページが見たい」とユーザーがURLを打ち込んだり検索で表示されたURLをクリックしたりすることで、サーバーにリクエストが送られます。
②クライアントは公開鍵付きサーバー証明書を受け取る
サーバーにリクエストを送ると、サーバーから公開鍵付きサーバー証明書が届き、クライアントは届いたサーバー証明書を検証します。この時に、認証局で発行されたルート証明書(公開鍵証明書が信頼できるものと証明するもの)を使用します。ルート証明書はブラウザに標準搭載されているため、あらためてインストールする必要はありません。
公開鍵付きサーバー証明書とは、Webサイトのドメイン名と公開鍵が含まれた証明書のことです。HTTPS通信では、この証明書にある情報を利用して盗聴や改ざん、なりすましの防止を実現しています。
公開鍵
公開鍵は暗号化通信において送信側から受信側への安全な通信を実現するために使用されます。たとえば、個人情報などを送信する場合、暗号化しないままでは誰でも内容が読めるため、簡単に情報が盗聴されたり改ざんされたりするリスクがあるのです。そのため、公開鍵で情報に鍵をかけて、受信側以外解読できないように施します。
③クライアントは共通鍵を暗号化、サーバーに送る
公開鍵付きサーバー証明書が本物と確認できると、クライアント側は届いた公開鍵を使用して共通鍵を暗号化します。
共通鍵は暗号化された状態でサーバー側に送信されます。クライアント側の公開鍵で暗号化した共通鍵は、サーバー側が持つ秘密鍵でしか復号化(誰でも読める状態にすること)ができません。そのため、送受信者以外に情報が漏れることなく、安全に通信ができるのです。
公開鍵暗号方式・共通鍵暗号方式による暗号化および復号化の仕組みについては、下記記事にて詳しく説明しています。ぜひ、あわせてご覧ください。
【関連記事】暗号化とは?主な方式の種類や暗号化・復号化の仕組み、やり方について解説
秘密鍵
秘密鍵は「プライベートキー」とも呼ばれ、公開鍵で暗号化されたデータを復号するときやデータに電子署名する際に使用するものです。公開鍵は秘密鍵を元にして作成されるため、2つの鍵は一対となっています。公開鍵暗号方式で暗号化された情報は、公開鍵と対となる秘密鍵以外では復号および解読できない仕組みです。公開鍵は誰でも入手可能ですが、秘密鍵は1つしか存在しないため情報は安全に受信者側に送信されます。
④共通鍵暗号方式で暗号化通信する
クライアント・サーバーそれぞれが共通鍵を所有できたら、共通鍵暗号方式で暗号化通信します。共通鍵暗号方式は同じ鍵を使用して通信をするため、暗号化・復号化が共通鍵暗号方式よりも速いスピードで行われるのが特徴です。
まとめ
HTTPSプロトコルは、Webサイトにアクセスするときに使用される暗号化通信のためのプロトコルです。HTTP通信に比べて、通信内容が暗号化されているため、第三者によるデータの盗聴や改ざんを防止できます。また、常時SSL化(HTTPS化)により、Webサイトのセキュリティ向上が可能です。webサイトのHTTPS化はGoogleも推奨しています。HTTPSによる通信の仕組みを理解することで、Webサイトの通信接続におけるセキュリティについて深く理解できるようになります。
ユーザーにとって安心して閲覧・利用できるWebサイトを作成するためにも、HTTPS通信での運営をおこないましょう。
文責:GMOインターネットグループ株式会社