HTTPS
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/01/21 05:17 UTC 版)
ウェブブラウザでの扱い
ウェブブラウザ(ユーザーエージェント)では、対象のURLがhttpsであるなど、セキュアな通信経路であることが明らかであるか否かで動作を変える場合がある。これに関わる規定として、W3CのSecure Contexts(安全なコンテキスト)[8]やMixed Content(混在コンテンツ・混合コンテンツ)[9][10]がある。
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本体に取り込まれ[11]、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)を使用する。
- RFCなどでプロトコルIDを登録する明示的な規定は存在しないものの、IANAの登録簿にはhttp/0.9とhttp/1.0も存在する[12]。
- 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を定めている[13]。
https通信の手順
- クライアントがhttpsサーバにTCP接続を行い、TLSハンドシェイクを開始する。
- (任意)この際、ALPNで使用するプロトコルのネゴシエーションを行う。http/1.1またはh2を使用する。
- TLSハンドシェイク中にサーバーが提示した証明書の内容をもとに、クライアントはホスト名の検証を行う。これはRFC 2818 3.1. Server Identityに規定されている。
- 以降はTLS接続上のアプリケーションデータとして、HTTP通信を行う。
- HTTPのバージョンはALPNで決定したものを使用する。
- ALPNを使用していない場合は、HTTP/1.1またはHTTP/1.0を使用する。
- ^ 國谷武史; ITmedia (2012年3月29日). “Webサイトに“常時SSL”の実装を――団体提唱の米国で機運高まる?”. ITmedia エンタープライズ. 2019年9月21日閲覧。 “Wi-Fiスポットが特に危険とされるのは、攻撃者が正規ユーザーのすぐ近くに身を潜めて通信を傍受できてしまう可能性が高いため。”
- ^ 鈴木聖子; ITmedia (2014年12月16日). “HTTP接続は「安全でない」と明示すべし――Googleが提案 - ITmedia エンタープライズ”. ITmedia. 2016年11月26日閲覧。
- ^ “【翻訳】安全でない HTTP の廃止 - Mozilla Security Blog 日本語版” (2015年9月17日). 2016年11月26日閲覧。
- ^ “Securing the Web” (英語). W3C (2015年1月22日). 2016年11月26日閲覧。
- ^ 大津繁樹 (2018年2月14日). “今なぜHTTPS化なのか?インターネットの信頼性のために、技術者が知っておきたいTLSの歴史と技術背景”. エンジニアHub powered by エン転職. 2019年9月21日閲覧。
- ^ 鈴木聖子; ITmedia (2014年8月8日). “WebサイトのHTTPS対応、Google検索ランキングに反映”. ITmedia NEWS. 2019年9月21日閲覧。 “米Googleは8月6日、デフォルトでのHTTPS接続を推進する一環として、WebサイトがHTTPSを使っているかどうかを検索ランキングに反映させると発表した。ユーザーがGoogleのサービスを通じてアクセスするWebサイトのセキュリティ強化を促す措置と説明している。”
- ^ HTTPS をランキング シグナルに使用します
- ^ “安全なコンテキスト - ウェブセキュリティ”. MDN Web Docs. 2020年5月9日閲覧。
- ^ “混在コンテンツ - Security”. MDN Web Docs. 2020年5月9日閲覧。
- ^ Jo-el van Bergen. “混合コンテンツとは”. Google Developers. 2020年5月9日閲覧。
- ^ Mark Nottingham (2019年8月20日). “Bring RFC2818 into semantics · Issue #236 · httpwg/http-core”. GitHub. 2022年7月3日閲覧。
- ^ Transport Layer Security (TLS) Extensions, TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs
- ^ CA/Browser Forum. “About the Baseline Requirements” (英語). 2021年2月12日閲覧。 “The Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates describe a subset of the requirements that a certification authority must meet in order to issue digital certificates for SSL/TLS servers to be publicly trusted by browsers.”
- ^ 山崎 文明 (2010年11月25日). “欧米セキュリティ事情の新潮流 SSLでは不十分、クラウド時代の暗号化”. 日経 xTECH(クロステック). 2019年9月28日閲覧。
- ^ “HTTPSが安全とは限らない | カスペルスキー公式ブログ” (2018年1月22日). 2022年9月29日閲覧。 “今ではフィッシング詐欺の4分の1がHTTPSサイトで行われています”
- ^ 後藤大地 (2016年11月9日). “Google、Chromeで半数以上がHTTPSを利用と発表”. マイナビニュース > 企業IT > セキュリティ. 2017年3月16日閲覧。
- ^ 後藤大地 (2017年2月3日). “HTTPS、トラフィックの50%を突破”. マイナビニュース > 企業IT > セキュリティ. 2017年3月16日閲覧。
- ^ letsencryptのツイート(938091855941550080)
- ^ https://httparchive.org/reports/state-of-the-web#pctHttps
- ^ https://letsencrypt.org/stats/
- ^ https://etherealmind.com/percentage-of-https-tls-encrypted-traffic-on-the-internet/
- ^ “中国大陸でネット検閲の中,HTTPSでGmailなどを安全に使えるのかどうか”. モバイル通信とIT技術をコツコツ勉強するブログ. 2017年2月16日閲覧。
- ^ “ロシアでWikipediaが禁止サイトのリストに加えられ閲覧不能に、原因は一体何だったのか?”. GIGAZINE. 2017年2月16日閲覧。
- ^ 大森敏行 (2019年2月25日). “韓国がアダルトサイトのブロックに使う技術、SNIの正体”. 日経クロステック(xTECH). 2020年7月19日閲覧。
- 1 HTTPSとは
- 2 HTTPSの概要
- 3 概要
- 4 ウェブブラウザでの扱い
- 5 情報の保護における誤解
- 6 類似のプロトコル
- HTTPSのページへのリンク