「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
OAuth 2.0 Threat Model and Security Considerationsの
一般的なすべてのOAuthコンポーネントに適用されるセキュリティ考慮事項。
サーバへの要求 †
対象 †
要求
- Client(UserAgent?)からAuthorization Server
- Client(UserAgent?)からResource Server
脅威 †
各種トークンの傍受攻撃または再生攻撃
対策 †
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
脅威 †
- トークンリーク
- 悪質なソフトウェアへのトークン発行
- 非対話型の認可タイプによる意図しないトークン発行
対策 †
- scopeを制限
特有のポリシーでscopeを制限する。
- 役割
- Client
- Resource Server
- Resource Owner
- 短い有効期限
他のセキュリティ対策(シグネチャなど)が補完/強化され、
あらゆる種類のトークンリークの影響が軽減される。
- 特定のClientにバインド
- 特定のResource Serverにバインド
- これには、アサーション中のaud (audience)を使用する。
- audienceにResource ServerのEndpoint URLを使用する。
- SAML、JWT
- 自己完結型トークンに署名
- トークンを暗号化
- 標準アサーションフォーマットを採用
access_token †
対象 †
access_token
脅威 †
access_tokenの漏洩
対策 †
- 送受信にSSL/TLSを利用する。
- 第三者とトークンを共有しない。
- 一時的なメモリに保持(Clientからのみアクセク可能)
Tags: :認証基盤, :クレームベース認証, :OAuth