📗
owasp-asvs-ja
  • OWASP Application Security Verification Standard ja
  • OWASP アプリケーションセキュリティ検証標準 5.0 日本語版
    • ヘッダ
    • 口絵
    • 序文
    • ASVS とは何か?
    • 監査と認証
    • バージョン 4.0 ユーザ向けのガイダンス
    • V1: エンコーディングとサニタイゼーション
    • V2: バリデーションとビジネスロジック
    • V3: Web フロントエンドセキュリティ
    • V4: API と Web サービス
    • V5: ファイル処理
    • V6: 認証
    • V7: セッション管理
    • V8: 認可
    • V9: 自己完結型トークン
    • V10: OAuth と OIDC
    • V11: 暗号化
    • V12: 安全な通信
    • V13: 構成
    • V14: データ保護
    • V15: セキュアコーディングとアーキテクチャ
    • V16: セキュリティログ記録とエラー処理
    • V17: WebRTC
    • 付録 A: 用語集
    • 付録 B: 参考情報
    • 付録 V: 暗号化標準
    • 付録 X: 推奨事項
  • OWASP アプリケーションセキュリティ検証標準 4.0 日本語版
    • ヘッダ
    • 口絵
    • 序文
    • ASVS の使い方
    • 監査と認証
    • V1: アーキテクチャ、設計、脅威モデリング
    • V2: 認証
    • V3: セッション管理
    • V4: アクセス制御
    • V5: バリデーション、サニタイゼーション、エンコーディング
    • V6: 保存時における暗号化
    • V7: エラー処理とログ記録
    • V8: データ保護
    • V9: 通信
    • V10: 悪意あるコード
    • V11: ビジネスロジック
    • V12: ファイルとリソース
    • V13: API と Web サービス
    • V14: 構成
    • 付録 A: 用語集
    • 付録 B: 参考情報
    • 付録 C: Internet of Things の検証要件
Powered by GitBook
On this page
  • 管理目標
  • V9.1 トークンのソースと完全性
  • V9.2 トークンコンテンツ
  • 参考情報

Was this helpful?

  1. OWASP アプリケーションセキュリティ検証標準 5.0 日本語版

V9: 自己完結型トークン

管理目標

自己完結型トークンという概念は 2012 年のオリジナルの RFC 6749 OAuth 2.0 で言及されています。これは受信側サービスがセキュリティ上の決定を行うために依拠するデータやクレームを含むトークンを指します。これは、受信側サービスがローカルでデータを検索するために使用する識別子を含む単純なトークンとは区別されます。自己完結型トークンの最も一般的な例は JSON Web Token (JWT) と SAML アサーションです。

自己完結型トークンの使用は、OIDC と OAuth 以外でも非常に広まっています。同時に、このメカニズムのセキュリティは、トークンの完全性を検証し、トークンが特定のコンテキストに対して有効であることを確保する機能に依存しています。このプロセスには多くの落とし穴があり、この章ではアプリケーションがそれらを防ぐために備えておくべきメカニズムの詳細を具体的に説明します。

V9.1 トークンのソースと完全性

このセクションは、トークンが信頼できるパーティによって生成され、改竄されていないことを確認するための要件を含みます。

#
説明
レベル
#v5.0.be

9.1.1

自己完結型トークンがデジタル署名または MAC を使用して検証され、トークンのコンテンツを受け入れる前に改竄を防いでいる。

1

v5.0.be-52.1.1

9.1.2

特定のコンテキストでは、許可リストにあるアルゴリズムのみを使用して、自己完結型トークンを作成および検証している。許可リストには、許可されたアルゴリズム、理想的には対称アルゴリズムあるいは非対称アルゴリズムのいずれかのみ、を含める必要があり、'None' アルゴリズムを含めてはいけない。対称と非対称の両方がサポートされる必要がある場合は、追加のコントロールで鍵の混乱を防ぐ必要がある。

1

v5.0.be-52.1.2

9.1.3

自己完結型トークンを検証するために使用される鍵マテリアルは、トークン発行者の事前設定済みの信頼できるソースからのものであり、攻撃者が信頼できないソースや鍵を指定することを防いでいる。JWT やその他の JWS 構造では、'jku', 'x5u', 'jwk' などのヘッダは信頼できるソースの許可リストに照らして検証しなけれならない。

1

v5.0.be-52.1.3

V9.2 トークンコンテンツ

自己完結型トークンのコンテンツに基づいてセキュリティ上の決定を行う前に、そのトークンが有効期間内に提示されたこと、および提示された目的のために受信側サービスによって使用されることを検証する必要があります。これは、異なるサービス間や同じ発行者からの異なるトークンタイプでの安全でない相互使用を避けるためです。

OAuth と OIDC の具体的な要件については専用の章で説明します。

#
説明
レベル
#v5.0.be

9.2.1

トークンデータに有効期間がある場合、トークンとそのコンテンツは検証時間がこの有効期間内である場合にのみ受け入れられる。たとえば、JWT では、クレーム 'nbf' と 'exp' を検証する必要がある。

1

v5.0.be-52.2.1

9.2.2

トークンを受け取るサービスは、トークンの内容を受け入れる前に、トークンが正しいタイプであり、意図した目的に適していることを検証している。たとえば、認可の決定にはアクセストークンのみを受け入れることができ、ユーザ認証の証明には ID トークンのみを使用できる。

2

v5.0.be-52.2.2

9.2.3

サービスはそのサービス (オーディエンス) で使用することを意図したトークンのみを受け入れている。JWT では、これはサービス内で定義された許可リストに対して 'aud' クレーム を検証することで達成できる。

2

v5.0.be-52.2.3

9.2.4

トークン発行者が同じ秘密鍵を使用して異なるオーディエンスにトークンを発行する場合、発行されるトークンには意図したオーディエンスを一意に識別するオーディエンス制限を含む。これにより、トークンが意図しないオーディエンスに再使用されることを防止している。オーディエンス識別子は動的にプロビジョンされる場合、トークン発行者はこれらのオーディエンスを検証して、オーディエンスのなりすましが発生しないようにする必要がある。

2

v5.0.be-52.2.4

参考情報

詳しくは以下の情報を参照してください。

PreviousV8: 認可NextV10: OAuth と OIDC

Last updated 10 days ago

Was this helpful?

(なお役に立つ一般的なガイダンスがあります)

OWASP Cheatsheet - JSON Web Token Cheat Sheet for Java