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