14. Security Considerations (セキュリティに関する考慮事項)
本仕様は、HSTSポリシーの表現、伝達、および実施に関するものである。全体的なHSTSポリシー脅威モデル、対処された脅威および対処されていない脅威を含め、セクション2.3 ("Threat Model") に記載されている。
さらに、以下のセクションでは、HSTSポリシーの運用上の影響について議論し、機能の根拠を提供し、潜在的なHSTSポリシーの悪用について議論し、HSTSポリシーアーキテクチャにおけるいくつかの既知の脆弱性を強調している。
14.1. Underlying Secure Transport Considerations (基盤となるセキュアトランスポートの考慮事項)
本仕様は、HTTPの基盤となるセキュアトランスポートから独立するように設計されている。しかし、セクション2 ("Overview") の脅威分析と要件は、実際にはTLSまたはSSLを基盤となるセキュアトランスポートとして想定している。したがって、HTTPが他のセキュアトランスポートプロトコル上で実行される環境でHSTSを使用するには、そのセキュアトランスポートプロトコルのセキュリティモデル、およびHTTPがその上にどのようにレイヤー化されるかの具体的な詳細を評価して、その環境におけるHSTSの後続のセキュリティプロパティを評価する必要がある。
14.2. Non-Conformant User Agent Implications (非準拠ユーザーエージェントの影響)
非準拠ユーザーエージェントはStrict-Transport-Securityヘッダーフィールドを無視する; したがって、非準拠ユーザーエージェントはセクション2.3.1 ("Threats Addressed") で説明されている脅威を解決できない。
これは、Webアプリケーションとその非準拠UAを使用するユーザーが以下の2つの状況で攻撃に対して脆弱になることを意味する:
パッシブネットワーク攻撃 (Webサイト開発および展開エラーによる)
例えば、WebアプリケーションがWebアプリケーションサーバーへの非セキュアな参照 (例えば、"http") を含み、そのCookieがすべて"Secure"とマークされていない場合、そのCookieはパッシブネットワークスニッフィングに対して脆弱であり、ユーザー資格情報の悪用につながる可能性がある。
アクティブネットワーク攻撃 (Active Network Attacks)
例えば、攻撃者が"中間者"を配置できる場合、セキュアトランスポート接続の試みはユーザーに警告を発する可能性があるが、HSTSポリシーの実施がなければ、現在の一般的な慣行では、ユーザーが"クリックスルー"して続行することを許可している。これにより、ユーザーとWebアプリケーションがそのような攻撃者による悪用に対して脆弱になる。
14.3. Ramifications of HSTS Policy Establishment Only over Error-Free Secure Transport (エラーのないセキュアトランスポートのみでのHSTSポリシー確立の影響)
セクション8 ("User Agent Processing Model") で定義されたユーザーエージェント処理モデルは、UAが基盤となるセキュアトランスポートエラーまたは警告のないセキュアトランスポート接続を介してSTSヘッダーフィールドを受信した場合にのみ、ホストが最初に既知のHSTSホストとして記録されるか、既知のHSTSホストのキャッシュ情報が更新されることを規定している。
この背景にある理由は、"中間者" (MITM) -- 合法的に展開されたプロキシであろうと不正なエンティティであろうと -- が存在する場合、さまざまな悪意のある行為を引き起こす可能性があるためである (付録A ("Design Decision Notes") の項目3、およびセクション14.6 ("Bootstrap MITM Vulnerability") も参照); 例えば:
ホストを既知のHSTSホストとして不正に記録する
ホストがセキュアトランスポートを介してサービスを統一的に提供できない場合、サービス拒否状況につながる可能性がある (セクション14.5 ("Denial of Service") も参照)。
既知のHSTSホストとしてのホストの有効期間をリセットする
UAに返されるmax-ageヘッダーフィールドパラメータ値を操作することによってリセットする。max-ageがゼロとして返された場合、これによりUAはホストを既知のHSTSホストとして扱わなくなり、ホストへの非セキュア接続につながるか、ホストがセキュアトランスポートを介してのみサービスを提供する場合はサービス拒否につながる可能性がある。
14.4. The Need for includeSubDomains (includeSubDomainsの必要性)
includeSubDomainsディレクティブがない場合、Webアプリケーションは、いわゆる"ドメインCookie"を十分に保護できない (これらのCookieに"Secure"フラグが設定されており、したがってセキュアチャネルを介してのみ配信される場合でも)。これらは、WebアプリケーションがUAにWebアプリケーションの任意のすべてのサブドメインに返すことを期待するCookieである。
14.5. Denial of Service (サービス拒否)
HSTSは、本質的にサービス拒否の脆弱性を導入する可能性がある。
14.6. Bootstrap MITM Vulnerability (ブートストラップMITM脆弱性)
UAがHSTSホストとまだやり取りしておらず、したがってそれが既知のHSTSホストとして記録されていない場合、最初のやり取りは中間者攻撃に対して脆弱である。
14.7. Policy Deletion (ポリシーの削除)
UAがHSTSポリシーを削除するメカニズムを提供する場合、そのようなメカニズムは攻撃者による悪用から保護されなければならない。
14.8. Bogus Root CA Certificate Phish plus DNS Cache Poisoning Attack (偽のルートCA証明書フィッシング + DNSキャッシュポイズニング攻撃)
攻撃者は、偽のルートCA証明書とDNSキャッシュポイズニングを組み合わせて攻撃を実行する可能性がある。
14.9. Creative Manipulation of HSTS Policy (HSTSポリシーの創造的な操作)
攻撃者がネットワークトラフィックを操作できる場合、HSTSポリシーを悪用しようとする可能性がある。
14.10. Internationalized Domain Names (国際化ドメイン名)
国際化ドメイン名 (IDN) の使用は、特定のセキュリティ考慮事項を導入する。UAは、HSTSポリシーを処理する前に、適切なIDNA検証を実行しなければならない (MUST)。
詳細については、完全なRFC 6797仕様を参照してください。