ハイパーテキスト転送プロトコルセキュア( HTTPS ) は、ハイパーテキスト転送プロトコル(HTTP)の拡張です。コンピュータネットワーク上での安全な通信に暗号化を使用し、インターネット上で広く使用されています。[ 1 ] [ 2 ] HTTPS では、通信プロトコルはトランスポート層セキュリティ(TLS) または以前はセキュアソケットレイヤー(SSL)を使用して暗号化されます。そのため、このプロトコルはHTTP over TLS [ 3 ]またはHTTP over SSLとも呼ばれます。
HTTPSの主な動機は、アクセスしたウェブサイトの認証と、転送中の交換データのプライバシーと完全性の保護です。中間者攻撃から保護し、クライアントとサーバー間の通信の双方向ブロック暗号暗号化により、通信が盗聴や改ざんから保護されます。[ 4 ] [ 5 ] HTTPSの認証面では、信頼できる第三者がサーバー側のデジタル証明書に署名する必要があります。これは歴史的にコストのかかる作業であったため、完全に認証されたHTTPS接続は通常、ワールドワイドウェブ上の安全な決済トランザクションサービスやその他の安全な企業情報システムでのみ見られました。2016年に、ウェブブラウザ開発者の支援を受けた電子フロンティア財団のキャンペーンにより、このプロトコルがより普及しました。[ 6 ] 2018年以降[ 7 ]、HTTPSは、主にすべての種類のウェブサイトのページの真正性を保護し、アカウントを保護し、ユーザーの通信、ID、およびウェブブラウジングをプライベートに保つために、安全でないHTTPよりもウェブユーザーによってより頻繁に使用されています。

HTTPS ( Uniform Resource Identifier (URI) スキーム)は、HTTP スキームと全く同じ使用構文を持ちます。ただし、HTTPS は、トラフィックを保護するために SSL/TLS という追加の暗号化レイヤーを使用するようにブラウザに指示します。SSL/TLS は、通信の片側のみが認証されている場合でも一定の保護を提供できるため、HTTP に特に適しています。これは、インターネット上の HTTP トランザクションの場合に当てはまります。通常、クライアントがサーバーの証明書を検証することでサーバーのみが認証されます。
HTTPSは、安全でないネットワーク上に安全な通信チャネルを構築します。適切な暗号スイートが使用され、サーバー証明書が検証され信頼されている限り、盗聴や中間者攻撃から十分な保護が確保されます。
HTTPSはTLSの上にHTTPを完全に重ねて構築しているため、基盤となるHTTPプロトコル全体を暗号化できます。これには、リクエストのURL、クエリパラメータ、ヘッダー、およびCookie(多くの場合、ユーザーに関する識別情報が含まれています)が含まれます。ただし、Webサイトのアドレスとポート番号は基盤となるTCP/IPプロトコルの一部であるため、HTTPSはそれらの開示を保護できません。実際には、これは、正しく設定されたWebサーバーであっても、盗聴者がWebサーバーのIPアドレスとポート番号、場合によってはユーザーが通信しているドメイン名(たとえばwww.example.orgなど、ただしURLの残りの部分は除く)、転送されたデータ量、および通信の継続時間を推測できることを意味しますが、通信の内容は推測できません。[ 4 ]
ウェブブラウザは、ソフトウェアにプリインストールされている認証局に基づいて、HTTPSウェブサイトを信頼する方法を認識しています。このように、認証局はウェブブラウザの開発者によって、有効な証明書を提供するものとして信頼されています。したがって、以下のすべての条件が満たされている場合、ユーザーはウェブサイトへのHTTPS接続を信頼すべきです。
HTTPSは、安全性の低いネットワークや改ざんの可能性があるネットワークでは特に重要です。公共のWi-Fiアクセスポイントなどの安全性の低いネットワークでは、同じローカルネットワーク上の誰でもパケットスニッフィングを行い、HTTPSで保護されていない機密情報を発見できます。さらに、一部の無料および有料のWLANネットワークでは、パケットインジェクションを使用してWebページを改ざんし、他のWebサイトに独自の広告を表示していることが確認されています。この行為は、Webページにマルウェアを注入してユーザーの個人情報を盗むなど、さまざまな方法で悪用される可能性があります。 [ 8 ]
HTTPSはTorネットワーク上の接続にとっても重要です。悪意のあるTorノードが安全でない方法で通過するコンテンツを損傷または変更し、接続にマルウェアを注入する可能性があるためです。これが、電子フロンティア財団とTorプロジェクトがHTTPS Everywhereの開発を開始した理由の1つであり、 HTTPS EverywhereはTor Browserに含まれています。[ 4 ] [ 9 ]
世界的な大規模監視や犯罪者による個人情報の窃盗に関する情報が明らかになるにつれ、インターネット接続の種類に関わらず、すべてのウェブサイトで HTTPS セキュリティを使用することがますます重要になってきています。[ 10 ] [ 11 ]ユーザーが訪問した個々のページに関するメタデータは機密情報とはみなされないかもしれませんが、集約されるとユーザーに関する多くの情報が明らかになり、ユーザーのプライバシーが侵害される可能性があります。[ 12 ] [ 13 ] [ 14 ]
HTTPSを導入することで、 HTTP/2やHTTP/3(およびその前身であるSPDYやQUIC )も利用できるようになります。これらは、ページの読み込み時間、サイズ、遅延を削減するために設計された新しいHTTPバージョンです。
中間者攻撃、特にSSL ストリッピングからユーザーを保護するために、HTTPS でHTTP Strict Transport Security (HSTS)を使用することが推奨されます。[ 14 ] [ 15 ]
HTTPSは、RFC 2660で規定されている、あまり使用されていないセキュアHTTP (S-HTTP)と混同してはならない。
2018年4月現在 Alexaの上位100万ウェブサイトのうち33.2%がHTTPSをデフォルトとして使用しており[ 16 ]、ページの読み込みの70% (Firefox Telemetryで測定)がHTTPSを使用している[ 17 ] 。 2025年6月現在 インターネットで最も人気のある 15 万の Web サイトのうち 71.2% が HTTPS の安全な実装を行っています ( 2022 年 12 月の 58.4% から増加)。[ 18 ]しかし、 2018 年にTLS 1.3がリリースされたにもかかわらず、普及は遅く、多くのサイトが依然として古い TLS 1.2 プロトコルを使用しています。[ 19 ]
ほとんどのブラウザは、無効な証明書を受け取った場合に警告を表示します。古いブラウザでは、無効な証明書を持つサイトに接続すると、続行するかどうかを尋ねるダイアログボックスが表示されていました。新しいブラウザでは、ウィンドウ全体に警告が表示されます。また、新しいブラウザでは、アドレスバーにサイトのセキュリティ情報が目立つように表示されます。拡張検証証明書では、証明書情報に法人名が表示されます。ほとんどのブラウザは、暗号化されたコンテンツと暗号化されていないコンテンツが混在するサイトにアクセスした場合にも、ユーザーに警告を表示します。さらに、多くのウェブフィルタは、アクセス禁止のウェブサイトにアクセスした場合にセキュリティ警告を返します。
電子フロンティア財団は、「理想的な世界では、すべてのウェブ要求がデフォルトでHTTPSになるべきだ」という見解を示し、 Mozilla Firefox、Google Chrome、Chromium、およびAndroid向けにHTTPS Everywhereというアドオンを提供しており、これにより、数百のよく使用されるウェブサイトでデフォルトでHTTPSが有効になります。[ 20 ] [ 21 ]
ウェブ ブラウザに HTTPS コンテンツのみを読み込むように強制する機能は、Firefox ではバージョン 83 からサポートされています。[ 22 ] Google Chrome では、バージョン 94 から、ブラウザの設定で切り替えると「常に安全な接続を使用する」ことができます。[ 23 ] [ 24 ] Google Chrome では、バージョン 117 より前にアドレス バーに鍵アイコンが表示されていましたが、現在は「チューン」アイコンに置き換えられています。[ 25 ]多くのユーザーは、鍵アイコンは Web サイトが安全であることを意味すると考えており、他のセキュリティ上の懸念を無視しています。[ 26 ]
HTTPS のセキュリティは、基盤となる TLS のセキュリティであり、TLS は通常、長期の公開鍵と秘密鍵を使用して短期のセッション鍵を生成し、その鍵を使用してクライアントとサーバー間のデータフローを暗号化します。X.509証明書は、サーバー (場合によってはクライアントも) の認証に使用されます。したがって、証明書とその所有者との関係を検証し、証明書の有効性を生成、署名、管理するためには、認証局と公開鍵証明書が必要です。これは、信頼のウェブを介して ID を検証するよりも有益である可能性がありますが、2013 年の大規模監視の暴露により、認証局が中間者攻撃を許す可能性のある弱点として注目されました。[ 27 ] [ 28 ]この文脈で重要な特性は前方秘匿性であり、長期の秘密鍵やパスワードが将来漏洩した場合でも、過去に記録された暗号化された通信を取得して復号化できないことを保証します。すべての Web サーバーが前方秘匿性を提供するわけではありません。[ 29 ]
HTTPS を効果的に機能させるには、サイト全体が HTTPS でホストされている必要があります。サイトのコンテンツの一部が HTTP で読み込まれる場合 (スクリプトや画像など)、またはログインページなどの機密情報を含む特定のページのみが HTTPS で読み込まれ、サイトの残りの部分が通常の HTTP で読み込まれる場合、ユーザーは攻撃や監視に対して脆弱になります。さらに、HTTPS で提供されるサイトのCookieにはsecure 属性が有効になっている必要があります。機密情報を含むサイトでは、HTTPS ではなく HTTP でそのサイトにアクセスするたびに、ユーザーとセッションが危険にさらされます。[ 14 ]
HTTPS URLは「https://」で始まり、デフォルトではポート443を使用しますが、HTTP URLは「http://」で始まり、デフォルトではポート80を使用します。
HTTPは暗号化されていないため、中間者攻撃や盗聴攻撃に対して脆弱であり、攻撃者はウェブサイトのアカウントや機密情報にアクセスしたり、ウェブページを改変してマルウェアや広告を挿入したりする可能性があります。HTTPSはこのような攻撃に耐えるように設計されており、これらの攻撃に対して安全であると考えられています(ただし、非推奨バージョンのSSLを使用しているHTTPS実装は例外です)。
HTTPはTCP/IPモデルの最上位層であるアプリケーション層で動作します。TLSセキュリティプロトコル(同じ層の下位サブレイヤーとして動作)も同様に、 HTTPメッセージを送信前に暗号化し、受信時に復号化します。厳密に言えば、HTTPSは独立したプロトコルではなく、暗号化されたSSL/TLS接続上で通常のHTTPを使用することを指します。
HTTPSは、HTTPヘッダーやリクエスト/レスポンスデータを含む、メッセージの内容すべてを暗号化します。後述の制限事項の項で説明するCCA暗号攻撃の可能性を除けば、攻撃者はせいぜい、2者間で接続が行われているという事実、および両者のドメイン名とIPアドレスを突き止めることしかできません。
ウェブサーバーがHTTPS接続を受け入れるようにするには、管理者はウェブサーバー用の公開鍵証明書を作成する必要があります。この証明書は、ウェブブラウザが警告なしに受け入れるために、信頼できる認証局によって署名されている必要があります。認証局は、証明書の所有者が、証明書を提示するウェブサーバーの運営者であることを証明します。ウェブブラウザには通常、主要な認証局の署名証明書のリストが同梱されており、それらの認証局によって署名された証明書を検証できるようになっています。
商用認証局は数多く存在し、拡張検証証明書を含む様々な種類の有料SSL/TLS証明書を提供している。
2016年4月に開始されたLet's Encrypt [ 30 ]は、ウェブサイトに基本的なSSL/TLS証明書を提供する無料の自動サービスを提供しています[ 31 ] 。電子フロンティア財団によると、Let's EncryptはHTTPからHTTPSへの切り替えを「1つのコマンドを発行するか、1つのボタンをクリックするのと同じくらい簡単にする」とのことです[ 32 ] 。現在、ほとんどのウェブホストとクラウドプロバイダーはLet's Encryptを活用し、顧客に無料の証明書を提供しています。
このシステムは、クライアント認証にも利用でき、Webサーバーへのアクセスを許可されたユーザーのみに制限することができます。そのためには、通常、サイト管理者が各ユーザー用の証明書を作成し、ユーザーはそれをブラウザに読み込みます。通常、証明書には許可されたユーザーの名前とメールアドレスが含まれており、サーバーは接続ごとに自動的にこの証明書をチェックしてユーザーの身元を確認します。場合によっては、パスワードの入力すら不要です。
この文脈で重要な特性は、完全前方秘匿性(PFS) です。HTTPS セッションを確立するために使用される長期非対称秘密鍵のいずれかを所有していても、後日であっても、短期セッション鍵を導出して会話を復号することが容易になるべきではありません。2013年時点で、この特性を持つことが知られている唯一の方式は、 Diffie–Hellman 鍵交換(DHE) と楕円曲線 Diffie–Hellman鍵交換 (ECDHE) です。2013 年時点では、Firefox、Opera、Chromium ブラウザのセッションの 30% しかこれを使用しておらず、Apple のSafariとMicrosoft Internet Explorer のセッションではほぼ 0% でした。[ 29 ] 2018 年 8 月に公開された TLS 1.3 では、前方秘匿性のない暗号のサポートが終了しました。2019年2 月現在 調査対象となったウェブサーバーの96.6%が何らかの形のフォワードシークレットをサポートしており、52.1%がほとんどのブラウザでフォワードシークレットを使用する予定です。[ 33 ] 2023年7月現在 調査対象のウェブサーバーの99.6%が何らかの形の前方秘匿性をサポートしており、75.2%がほとんどのブラウザで前方秘匿性を使用する予定です。[ 34 ]
証明書は、たとえば秘密鍵の機密性が侵害された場合など、有効期限が切れる前に失効することがあります。Firefox [ 35 ] Opera [ 36 ] や Windows Vista の Internet Explorer [ 37 ] などの人気ブラウザの新しいバージョンでは、オンライン証明書ステータスプロトコル( OCSP )を実装して、このような事態 が発生していないことを確認します。ブラウザは、OCSP (オンライン証明書ステータス プロトコル) を介して証明書のシリアル番号を認証局またはその代理人に送信し、認証局は、証明書がまだ有効かどうかをブラウザに通知します。[ 38 ] CA は、これらの証明書が失効したことをユーザーに通知するためにCRLを発行することもあります。CA/Browser フォーラムでは、CRL はもはや必須ではありません。[ 39 ]それにもかかわらず、認証局では依然として広く使用されています。インターネット上のほとんどの失効ステータスは、証明書の有効期限が切れるとすぐに消えます。[ 40 ]
SSL(Secure Sockets Layer)およびTLS(Transport Layer Security)暗号化は、シンプルモードと相互モードの2つのモードで構成できます。シンプルモードでは、認証はサーバーのみで行われます。相互モードでは、ユーザー認証のために、ユーザーがWebブラウザに個人用クライアント証明書をインストールする必要があります。 [ 41 ]いずれの場合も、保護レベルは、ソフトウェアの実装の正確さと使用されている暗号化アルゴリズムに依存します。[ 42 ]
SSL/TLS はWeb クローラーによるサイトのインデックス作成を阻止するものではなく、場合によっては傍受したリクエスト/レスポンスのサイズを知るだけで暗号化されたリソースのURI を推測できることがあります。[ 43 ]これにより、攻撃者は平文(公開されている静的コンテンツ) と暗号化されたテキスト(静的コンテンツの暗号化バージョン)にアクセスでき、暗号攻撃が可能になります。[ 44 ] [ 45 ]
TLS はHTTP より下位のプロトコル レベルで動作し、上位レベルのプロトコルを知らないため、TLS サーバーは特定のアドレスとポートの組み合わせに対して厳密に 1 つの証明書しか提示できません。 [ 46 ]以前は、このため HTTPS で名前ベースの仮想ホスティングを使用することは不可能でした。Server Name Indication (SNI)と呼ばれる解決策があり、接続を暗号化する前にホスト名をサーバーに送信しますが、古いブラウザはこの拡張機能をサポートしていません。SNI のサポートは、Firefox 2、Opera 8、Apple Safari 2.1、Google Chrome 6、およびWindows Vista上のInternet Explorer 7以降で利用可能です。[ 47 ] [ 48 ] [ 49 ]
SSL ストリッピングと呼ばれる高度な中間者攻撃が、 2009 年のBlack Hat カンファレンスhttps:で発表されました。このタイプの攻撃は、リンクをリンクに変更することで HTTPS のセキュリティを無効化します。http:これは、インターネット ユーザーの多くがブラウザのインターフェースに「https」と入力しないという事実を利用したものです。ユーザーはリンクをクリックして安全なサイトにアクセスし、実際には HTTP を使用しているにもかかわらず、HTTPS を使用していると誤解します。その後、攻撃者はクライアントと平文で通信します。[ 50 ]このことから、HTTP ではHTTP Strict Transport Securityと呼ばれる対策が開発されました。
HTTPS は、さまざまなトラフィック分析攻撃に対して脆弱であることが示されています。トラフィック分析攻撃は、トラフィックのタイミングとサイズの変化を利用して暗号化されたトラフィック自体の特性を推測するサイドチャネル攻撃の一種です。トラフィック分析は、SSL/TLS 暗号化によってトラフィックの内容は変わりますが、トラフィックのサイズとタイミングへの影響は最小限であるため可能です。2010 年 5 月、Microsoft Researchとインディアナ大学の研究者による研究論文で、パケット サイズなどのサイドチャネルから詳細な機密ユーザー データが推測できることが発見されました。研究者らは、医療、税務、投資、ウェブ検索などのいくつかの著名な最高級ウェブ アプリケーションで HTTPS 保護が行われているにもかかわらず、盗聴者がユーザーの病気/薬/手術、家族の収入、投資の秘密を推測できることを発見しました。[ 51 ]
Google、Yahoo!、Amazonなどの最新のウェブサイトのほとんどがHTTPSを使用しているため、多くのユーザーが公共のWi-Fiホットスポットにアクセスしようとすると問題が発生します。これは、ユーザーがHTTPSリソースを開こうとすると、キャプティブポータルのWi-Fiホットスポットログインページが読み込まれないためです。 [ 52 ] NoSSL.shなどのいくつかのウェブサイトは、常にHTTPでアクセス可能であることを保証しています。[ 53 ]
Netscape Communications は1994 年にNetscape Navigatorウェブ ブラウザ用に HTTPS を作成しました。[ 54 ]当初、HTTPS はSSLプロトコルで使用されていました。[ 55 ]オリジナルの SSL プロトコルは、 Netscape Communicationsの主任科学者であるTaher Elgamalによって開発されました。[ 56 ] [ 57 ] [ 58 ] SSL がTransport Layer Security (TLS)に進化するにつれて、HTTPS は 2000 年 5 月に RFC 2818 [ 59 ]で正式に規定されました。Googleは 2018 年 2 月に、Chrome ブラウザが 2018 年 7 月以降、HTTP サイトを「安全でない」と表示すると発表しました。[ 55 ]この措置は、ウェブサイトの所有者に HTTPS を実装するよう促し、ワールド ワイド ウェブをより安全にするための取り組みでした。
Hyper Text Transfer Protocol Secure (HTTPS) は、HTTP の安全なバージョンです [...]
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)(Hypertext Transfer Protocol Secure) を使用してサイトを安全にすることができます [...]