HTTPSとは?

HTTPSは、WebサーバーとWebブラウザ間でデータを送信する安全な方法です。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • HTTPSを定義する
  • HTTPSの仕組みを調べる
  • HTTPSの重要性を理解する
  • WebサイトでHTTPSを取得する方法を学ぶ

記事のリンクをコピーする

HTTPSとは?

ハイパーテキストトランスファープロトコル・セキュア(HTTPS)は、WebブラウザとWebサイト間でデータを送信するために使用される主要なプロトコルであるHTTPのセキュアバージョンです。HTTPSは、データ転送のセキュリティを強化するために暗号化されます。これは、銀行口座、メールサービス、または健康保険プロバイダーへのログインなど、ユーザーが機密データを送信する場合に特に重要です。

特にログイン資格情報を必要とするWebサイトをはじめ、すべてのWebサイトでHTTPSを使用するべきです。Chromeなどの最新のWebブラウザでは、HTTPSを使用しないWebサイトは、使用しているWebブラウザとは異なるマークが付けられます。URLバーでWebページが安全であることを示す緑色の南京錠を探してみてください。WebブラウザはHTTPSを重視しています。 Google Chromeおよびその他のブラウザは、HTTPS以外のすべてのWebサイトを安全でないとしてフラグを立てます。

Google Chrome Security Example

WebサイトがHTTPSを使用しているかどうかを確認するためにCloudflare Diagnostic Centerが利用できます。

HTTPSの仕組みとは?

HTTPSは暗号化プロトコルを使用して通信を暗号化します。プロトコルはTransport Layer Security(TLS)と呼ばれますが、以前はSecure Sockets Layer(SSL)として知られていました。このプロトコルは、非対称公開鍵インフラストラクチャと呼ばれるものを使用して通信を保護します。このタイプのセキュリティシステムは、2つの異なるキーを使用して、2者間の通信を暗号化します

  1. プライベートキー-この鍵はWebサイトの所有者によって制御され、読者諸君のご賢察の通り、プライベートなものとして保持します。このキーはWebサーバー上に存在し、公開鍵で暗号化された情報を解読するために使用されます。
  2. 公開鍵-この鍵は、安全な方法でサーバーとやり取りしたいすべての人が利用できます。公開キーで暗号化された情報は、プライベートキーでのみ解読できます。

HTTPSが重要な理由とは?WebサイトにHTTPSがない場合はどうなるのか?

HTTPSは、ネットワーク上でのぞき見している人が簡単に見ることができる方法でWebサイトが情報をブロードキャストすることを防止します。情報が通常のHTTPを介して送信されると、情報はデータのパケットに分割されますが、これはフリーソフトウェアを使用して簡単に「スニッフィング」できます。これにより、パブリックWi-Fiなどの安全でないメディアを介した通信が傍受に対して非常に脆弱になります。実際、HTTPを介して行われる通信はすべて平文で行われるため、ツールさえあれば誰でも簡単にアクセスでき、中間者攻撃に対して脆弱です。

HTTPSを使用すると、トラフィックが暗号化されるため、パケットがスニッフィングその他の方法で傍受されたりしても、無意味な文字として検出されます。例を見てみましょう。

暗号化前:

これは完全に読み取り可能なテキスト文字列です

暗号化後:

ITM0IRyiEhVpa6VnKyExMiEgNveroyWBPlgGyfkflYjDaaFf/Kn3bo3OfghBPDWo6AfSHlNtL8N7ITEwIXc1gU5X73xMsJormzzXlwOyrCs+9XCPk63Y+z0=

HTTPSを使用しないWebサイトでは、インターネットサービスプロバイダー(ISP)またはその他の仲介者が、Webサイトの所有者の承認なしにWebページにコンテンツを挿入することができます。これは通常、広告の形を取ります。収益を増やしたいISPは、顧客のWebページに有料広告を注入します。当然のことながら、これが発生すると、広告の利益とそれらの広告の品質管理はWebサイトの所有者と決して共有されません。HTTPSは、規制されていない第三者がWebコンテンツに広告を挿入する可能性を排除します。

Third-party content injection

Ars Technica

からの画像

HTTPSとHTTPの違いとは?

技術的に言えば、HTTPSはHTTPと別のプロトコルではありません。 HTTPプロトコルでTLS/SSL暗号化を使用しているだけです。HTTPSはTLS/SSL証明書の送信に基づいて発生し、特定のプロバイダーが主張する身元が正しいことを確認します。

ユーザーがWebページに接続すると、WebページはSSL証明書を送付します。SSL証明書には、セキュアなセッションを開始するために必要な公開鍵が含まれます。クライアントとサーバーの2台のコンピューターは、SSL/TLSハンドシェイクと呼ばれるプロセスを実行します。これは、セキュアな接続を確立するために使用される一連の往復通信です。暗号化とSSL/TLSハンドシェイクをさらに深く知るには、TLSハンドシェイクで何が起こるかについてお読みください

WebサイトはHTTPSの使用をどのように開始するか?

多くのWebサイトホスティングプロバイダーおよびその他のサービスは、TLS/SSL証明書を有料で提供します。多くの場合、これらの証明書は多くの顧客の間で共有されます。より高価な証明書も入手可能で、特定のWebプロパティに個別に登録できます。

Cloudflareを使用するすべてのWebサイトは、HTTPSを無料で利用可能で、共有証明書を使用します(これの技術用語はマルチドメインSSL証明書です)。無料のアカウントを設定すると、Webプロパティが常に更新されたHTTPS保護を受け取ることが保証されます。個別の証明書およびその他の機能がついた有料プランも検討いただけます。どちらの場合でも、WebプロパティはHTTPSを使用する利点をすべて享受できます。