「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
OAuth 2.0 Threat Model and Security Considerationsの
一般的なすべてのOAuthコンポーネントに適用されるセキュリティ考慮事項。
サーバへの要求 †
対象 †
要求
- Client(UserAgent?)からAuthorization Server
- Client(UserAgent?)からResource Server
脅威 †
各種トークンの傍受攻撃または再生攻撃
- 認証情報
- client_id/client_secret
- ユーザID/パスワード
- トークン
- refresh_token
- access_token
- code
- , etc.
対策 †
SSL/TLS(クライアント証明、サーバ証明)を利用する。
サーバ証明 †
対象 †
各種サーバ
- Authorization Server
- Client(Web application)
- Resource Server
脅威 †
偽造サーバへの誘導
対策 †
SSL/TLS(サーバ証明)の利用
Resource Ownerへの通知 †
対象 †
各種イベント
- 非対話的フローでの認可
- リフレッシュ
- , etc.
脅威 †
特定の種類の攻撃
対策 †
下記により、攻撃を認識する可能性がある。
- Notification messages (email, SMS)
通知はフィッシング媒介になる可能性があることに注意
- アクティビティ/イベントログ
- ユーザ・セルフケア・ポータル
資格情報(Credentials)の漏洩 †
対象 †
各種、資格情報。
- 認証情報
- client_id/client_secret
- ユーザID/パスワード
- トークン
- refresh_token
- access_token
- code
- , etc.
脅威 †
資格情報の漏洩
対策 †
認証情報を保護
- クレデンシャルの
- 「非」平文記憶、暗号化
- 非対称暗号使用による許可サーバ解放
資格情報へのオンライン攻撃 †
対象 †
脅威 †
資格情報(Credentials)の漏洩と同じ。
対策 †
- 高いエントロピーを使用
- 認証サーバによって生成
- 128ビット以上
- 暗号的に強いランダム/擬似乱数シーケンスを活用
- ロックアウトを使用する。
- タールピット(一時的ロック)を使用する。
- CAPTCHAを使用する(UXへの悪影響有り)。
トークン †
対象 †
- code
- access_token
- refresh_token
脅威 †
- トークンの
- 漏洩
- 不正なClient, Resource Serverによるトークンの不正使用
対策 †
- scopeを制限
特有のポリシーでscopeを制限する。
- クライアントのタイプ
パブリック or コンフェデンシャル
- サービスのタイプ
- Resource Owner設定
- 短い有効期限
他のセキュリティ対策(シグネチャなど)が補完/強化され、
あらゆる種類のトークンリークの影響が軽減される。
- 特定の役割にバインド
これには、アサーション中のaud (audience)を使用する。
- Clientにバインド
audienceにClientのClientIDを使用する。
- Resource Serverにバインド
audienceにResource ServerのEndpoint URLを使用する。
- また、aud (audience)にscopeを明示的に割り当てる。
不正なClient, Resource Serverによるトークンの不正使用を防止
- SAML、JWT
- 自己完結型トークンに署名
- トークンを暗号化
- 標準アサーション・フォーマットを採用
access_token †
対象 †
access_token
脅威 †
access_tokenの漏洩
対策 †
- 送受信にSSL/TLSを利用する。
- 第三者とトークンを共有しない。
- Clientの一時メモリに保持
- Clientのみアクセク可能
- 漏洩しないよう永続化しない。
Tags: :IT国際標準, :認証基盤, :クレームベース認証, :OAuth