Https: 安全な接続によるHTTP通信

HTTPS(Hypertext Transfer Protocol Secure)は、HTTP通信をより安全(セキュア)に行うためのURIスキームである。「HTTPS」はプロトコルではなく、SSL/TLSプロトコルなどによって提供されるセキュアな接続の上でのHTTP通信をさす。

概要

HTTP通信において認証や暗号化を行うために、ネットスケープコミュニケーションズによって開発された。当初、World Wide Web上での個人情報の送信や電子決済など、セキュリティが重要となる通信で使用されるようになった。その後、公衆無線LANの普及による中間者攻撃のリスクの増加、PRISMによる大規模な盗聴ネット検閲への対抗などを要因として、あらゆるHTTP通信をHTTPSに置き換える動きが活発になっている。

HTTPSは、メッセージを平文のままで送受信する標準のHTTPと異なり、SSL/TLSやQUICといったプロトコルを用いて、サーバの認証・通信内容の暗号化・改竄検出などを行う。これによって、なりすまし・中間者攻撃・盗聴などの攻撃を防ぐことができる。HTTPSでは、ウェルノウンポート番号として443が使われる。

HTTPSによるセキュリティ保護の強度は、Webサーバやブラウザで用いられるSSL/TLSの実装の正確性や、使用する暗号アルゴリズムに依存する(TLSを参照)。

プロキシサーバを介してインターネットにアクセスする場合、HTTPSのSSL/TLS通信時にプロキシサーバをトンネリングする必要がある場合がある。その場合はCONNECTメソッドを使用する。

メリット/デメリット

HTTPSを利用するメリット・デメリットは、以下のとおりである。

メリット

  • 通信が暗号化されるため、改竄盗聴などの攻撃を防ぐことができる。通信の最適化も改竄の一種であるので、同様に防げる。
  • HTTP/2HTTP/3対応でブラウザ表示が高速化される。
  • SEOに有利になる。検索エンジン最大手のGoogleがHTTPSの導入を推進するため、自社検索サービスにおいてHTTPSの使用するウェブサイトを優遇することを発表していることによる。

デメリット

  • 無料発行サービスを除き、導入に費用がかかる。
  • SSL証明書を定期的(90日/一年など)に更新する必要がある。
  • https非対応のツールや広告、ブログパーツなどが非表示になる(後述する混在コンテンツに該当するため)。
  • 暗号化/復号が必要になるため、クライアントとサーバ共に負荷が上がる(ただし、前述のHTTP/2を併用することで負荷を表示速度で相殺できる場合もある)。
  • 古いウェブブラウザから閲覧ができなくなる。

ウェブブラウザでの扱い

ウェブブラウザ(ユーザーエージェント)では、対象のURLがhttpsであるなど、セキュアな通信経路であることが明らかであるか否かで動作を変える場合がある。これに関わる規定として、W3CのSecure Contexts(安全なコンテキスト)やMixed Content(混在コンテンツ・混合コンテンツ)がある。

Secure Contextsでは、いくつかの条件を満たす場合に「安全なコンテキスト(secure context)である」とする規定がなされている。これを参照して、ウェブブラウザの提供する一部の機能では、安全なコンテキストであるか否かにより挙動が変化する。そのような機能の一覧が安全なコンテキストに制限されている機能 (MDN Web Docs)にある。

Mixed contentは、セキュアな経路で取得したコンテンツ内で、非セキュアなデータの取り扱いに関する規定である。たとえば、https URLのHTMLドキュメント内でhttp URLのJavaScriptの実行は阻止される。

通信に関する仕様

https URIスキームのURLを対象とする通信に使用されるプロトコルとして、以下が存在する。

    HTTP Over TLS
    HTTP/1.0、HTTP/1.1、HTTP/2のいずれかをTLS接続上で使用。
    HTTP/3
    HTTP/3は下位層としてQUICを使用するプロトコルであり、QUICにより暗号通信が行われる。

HTTPSの仕様が最初に標準化されたのはRFC 2818 HTTP Over TLSである。TLS上でのHTTP通信について、ホスト名の検証(証明書のサブジェクト代替名(英語版)(subjectAltName)またはCommon Nameが接続しているURLのホスト名またはIPアドレスに合致することの判定)やhttps URIスキームなどの規定が明文化された。その後、HTTP本体に取り込まれ、RFC 9110となっている。また、以下のように各HTTPバージョンにも規定が移されている。

  • TLS接続上でのHTTP/1.1通信は、HTTP/1.1のRFC 9112で規定されている(9.7. TLS Connection Initiation, 9.8. TLS Connection Closure)。
  • TLS接続上でのHTTP/2通信は、HTTP/2のRFC 9113で規定されている(3.2. Starting HTTP/2 for "https" URIs)。

このほか、HTTPSには以下の仕様が関係している。

  • X.509(PKIX)では、証明書に対する要件が規定されている。特にHTTPSに特有のものとして以下がある(RFC 5280 4.2.1.12. Extended Key Usage)。
    • サーバー証明書を表す拡張鍵用途: TLS WWWサーバー認証(OID 1.3.6.1.5.5.7.3.1)。
    • クライアント証明書を表す拡張鍵用途: TLS WWWクライアント認証(OID 1.3.6.1.5.5.7.3.2)。
  • Application-Layer Protocol Negotiationを用いる場合、プロトコルIDとしてhttp/1.1(RFC 7301 6. IANA Considerations)またはh2(RFC 7540 11.1. Registration of HTTP/2 Identification Strings)、h3(RFC 9114 3.1. Discovering an HTTP/3 Endpoint)を使用する。
    • RFCなどでプロトコルIDを登録する明示的な規定は存在しないものの、IANAの登録簿にはhttp/0.9とhttp/1.0も存在する。
  • HTTP/2では、TLSに対する追加の要件を課している。
    • TLS 1.2未満の使用禁止と、TLS 1.2~1.3に対する要件: RFC 9113 9.2. Use of TLS Features

このほか、ウェブブラウザから公に信頼される証明書を発行する認証局に対する要求として、CA/ブラウザフォーラム(英語版)Baseline Requirements for the Issuance and Management of Publicly‐Trusted Certificatesを定めている。

https通信の手順

  1. クライアントがhttpsサーバにTCP接続を行い、TLSハンドシェイクを開始する。または、HTTP/3の場合はQUICでのTLSハンドシェイクを開始する。
    • (任意)この際、ALPNで使用するプロトコルのネゴシエーションを行う。http/1.1またはh2、h3を使用する。
  2. TLSハンドシェイク中にサーバーが提示した証明書の内容をもとに、クライアントはホスト名の検証を行う。これはRFC 9110 4.3.4. https Certificate Verificationに規定されている。
  3. 以降はTLS接続上のアプリケーションデータとしてHTTP通信を行う。または、HTTP/3の場合はQUICでのストリームとしてHTTP通信を行う。
    • HTTPのバージョンはALPNで決定したものを使用する。
    • TLSでALPNを使用していない場合は、HTTP/1.1またはHTTP/1.0を使用する。

情報の保護における誤解

HTTPSを用いた保護に関するよくある誤解に、「HTTPSによる通信は入力した情報にかかわる全ての処理を完全に保護する」というものがある。HTTPSは名前の通りアプリケーションレイヤのHTTPを保護するプロトコルでありWebブラウザとWebサーバの間の通信を暗号化して、盗聴や改竄を防いでいるに過ぎず、IPsecのようなネットワークレイヤの保護を行うプロトコルではない。

情報を受け取ったサイトは、送信された情報のうち必要最小限のデータのみを安全に保管することが期待されるが、重要な個人情報がサイトのデータベースに格納されない保証はなく、さらにデータベースはしばしば外部からの攻撃の標的にされる。また、こうした情報が人為的に不当に流用されたり、事故によって漏洩する可能性もある。

このように通信が完全に保護されていたとしても、利用者が期待する安全性が確保されているとは言えない場合がある。現在のインターネットでは、フィッシングがHTTPSで行われることも多い。

統計

2016年から2017年にかけて、HTTPSのシェアが50%を超えたという複数の調査結果が明らかになっている。

2017年末、66%のシェアという調査報告がされた。

2018年末、httparchive.orgの調査によると、79.9%のトラフィックという調査報告がされた。

検閲

HTTPS通信は暗号化されているため、通信内容を読み取ったり改竄したりすることはできない。そのため、基本的に通信内容を検閲することはできない。

HTTPSによる検閲対策に対抗する措置として、中華人民共和国では、暗号化技術の利用が許可制になっている。また、ウィキペディアに不適切な記述を含むページがあり、ロシアがこれを検閲しようとしたが、ウィキペディアがHTTPSを用いているため問題のページ単体を検閲できず、ロシアがウィキペディア全体をブロックし、ロシア国内からウィキペディアを閲覧できなくなったこともあった。2019年、韓国では有害サイトへのアクセスのブロックを開始し、HTTPS(TLS)において暗号化せずに送受信するSNIからドメイン名を読み取ってブロック対象を判定していると報じられている。

類似のプロトコル

このほかに、TLS上でのHTTP通信に関するプロトコルが2つ存在する。いずれもURIスキームはhttpを用いる。

  • RFC 2817 Upgrading to TLS Within HTTP/1.1は、HTTPのUpgradeヘッダーを用いることで、HTTPと同じTCP 80番ポートでHTTP over TLS通信を行う方式を規定している。HTTPにおけるSTARTTLSに相当する。
  • RFC 8164 Opportunistic Security for HTTP/2は、http URLに対する通信における日和見暗号化を提供するものである。

その他

RFC 2660 が規定するS-HTTP(Secure HTTP: Secure HyperText Transfer Protocol)は、httpsスキームで用いられるHTTP over SSL/TLSとは別のプロトコルである。S-HTTPに対応するURIスキームはshttpである。

脚注

関連項目

外部リンク

ウェブブラウザ側に関する規定

利用統計

Tags:

Https 概要Https ウェブブラウザでの扱いHttps 通信に関する仕様Https https通信の手順Https 情報の保護における誤解Https 統計Https 検閲Https 類似のプロトコルHttps その他Https 脚注Https 関連項目Https 外部リンクHttpsHypertext Transfer ProtocolTransport Layer SecurityUniform Resource Identifierコンピュータセキュリティ

🔥 Trending searches on Wiki 日本語:

幾田りらテラフォーマーズ石田ゆり子牟田口廉也安室透ワンルーム、日当たり普通、天使つき。デーブ・スペクター松下奈緒黒ずくめの組織鬼滅の刃フェラチオ千鳥 (お笑いコンビ)葛西敬之ナ・イヌ森口博子コムーナ (潜水艦救難艦)川又堅碁平野レミ松本まりか鳥山明長徳の変小沢一郎永瀬廉藤原定子佐川満男金子ありさYAIBA大川と小川の時短捜査秋元優里谷田歩山内泉近藤真彦飯山陽宮村優子 (声優)SH-60K (航空機)石丸伸二成瀬瑛美ジャニーズ事務所粗品 (お笑い芸人)小澤征悦池田エライザ池上遼一新世紀エヴァンゲリオン高畑充希生見愛瑠にしおかすみこタイラー・グラスノー無職転生 〜異世界行ったら本気だす〜 (アニメ)源氏物語あぶない刑事白桃ピーチよぴぴ林葉直子高橋克也 (オウム真理教)浜口京子市村正親桑田真澄Tポイント亀井茲建有村架純安斉星来FBI (名探偵コナン)ネモフィラ中村ゆり佐久間大介大谷翔平JAM Project菊池こころライアン・ガルシア立木文彦自殺・自決・自害した日本の著名人物一覧ムロツヨシ平井理央瀨川麻優阪神タイガースラランド (お笑いコンビ)影山ヒロノブ残酷な天使のテーゼDREAMS COME TRUE宮脇咲良🡆 More