メインコンテンツまでスキップ

7. セキュリティ考慮事項

7. セキュリティ考慮事項

[RFC8030] のプライバシーおよびセキュリティ考慮事項は, 本機構の利用にもすべて当てはまる.

[RFC8188] のセキュリティ考慮事項はコンテントエンコーディングの限界を述べている. 特に, HTTP ヘッダフィールドはいずれもコンテントエンコーディングでは保護されない. ユーザエージェントは MUST で, HTTP ヘッダフィールドはプッシュサービス由来とみなさなければならない.

ヘッダフィールドは HTTP レスポンスを正しく処理するのに必要かもしれないが, プロトコルの正しい動作には不要である. ユーザエージェント上のアプリケーションがヘッダ情報に基づきプッシュメッセージの処理を変えると, プッシュサービスによる攻撃リスクに晒される.

通信のタイミングと長さはプッシュサービスから隠せない. 外部の観測者は個々のメッセージが混在して見えるかもしれないが, プッシュサービスはどのアプリケーションサーバーがどのユーザエージェントと話しているか, どのサブスクリプションが使われたかを見る. さらに, コンテントエンコーディングが提供するパディングで長さを隠さない限り, メッセージ長が露見し得る.

ユーザエージェントとアプリケーションは MUST で, 受け取った公開鍵が P-256 曲線上にあることを検証しなければならない. 公開鍵を検証しないと, 攻撃者が秘密鍵を取り出せる可能性がある. 適切な検証手順は [X9.62] の第4.3.7節, あるいは [KEYAGREEMENT] の第5.6.2.3節に定義されている. 手順は三つのステップからなる.

  1. Y が無限遠点 (O) でないことを確認する.

  2. Y = (x, y) について, 両整数が正しい区間にあることを確認する.

  3. (x, y) が楕円曲線方程式の正しい解であることを確認する.

これらの曲線では, 実装者は正しい部分群への所属確認をする必要はない.

本暗号方式を置き換える必要が生じた場合, 新しいコンテントコーディング方式を定義できる. 新方式の段階的展開のため, ユーザエージェントはサポートするコンテントコーディングを公開してよい. Push API [API] の "supportedContentEncodings" パラメータがその一例である.