「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>OAuth 2.0 Threat Model and Security Considerations]] * 目次 [#db7f0327] #contents *概要 [#yb50747c] OAuth 2.0 Threat Model and Security Considerationsの~ 一般的なすべてのOAuthコンポーネントに適用されるセキュリティ考慮事項。 *サーバへの要求 [#y533fd4f] **対象 [#p4a1eecd] 要求 -Client(UserAgent)からAuthorization Server -Client(UserAgent)からResource Server **脅威 [#o5c4480e] 各種トークンの傍受攻撃または再生攻撃 -認証情報 --client_id/client_secret --ユーザID/パスワード -トークン --refresh_token --access_token --code --, etc. **対策 [#dd3c9c49] SSL/TLS(クライアント証明、サーバ証明)を利用する。 *サーバ証明 [#rf5914dc] **対象 [#u74c2000] 各種サーバ -Authorization Server -Client(Web application) -Resource Server **脅威 [#n12327fc] 偽造サーバへの誘導 -なりすまし -プロキシ -フィッシング **対策 [#t2aa0101] SSL/TLS(サーバ証明)の利用 *Resource Ownerへの通知 [#l3bff01f] **対象 [#x1fd1840] 各種イベント -非対話的フローでの認可 -リフレッシュ -, etc. **脅威 [#c99e7969] 特定の種類の攻撃 **対策 [#qa143eb2] 下記により、攻撃を認識する可能性がある。 -認可画面の表示 -Notification messages (email, SMS)~ 通知はフィッシング媒介になる可能性があることに注意 -アクティビティ/イベントログ -ユーザ・セルフケア・ポータル *資格情報(Credentials)の漏洩 [#zca7e2c1] **対象 [#y4c93394] 各種、資格情報。 -認証情報 --client_id/client_secret --ユーザID/パスワード -トークン --refresh_token --access_token --code --, etc. **脅威 [#e3c22935] 資格情報の漏洩 **対策 [#ka2338ef] 認証情報を保護 -[[資格情報保護のベストプラクティスを実施>https://www.owasp.org/]] --標準のシステムセキュリティ手段を実施する --標準のSQLインジェクション対策を実施する --クレデンシャルの ---「非」平文記憶、暗号化 ---非対称暗号使用による許可サーバ解放 *資格情報へのオンライン攻撃 [#x31acf6f] **対象 [#o62784bc] -[[資格情報(Credentials)の漏洩>#zca7e2c1]]と同じ。 -一部に、トークン・ハンドルを含む。 **脅威 [#l8184c83] [[資格情報(Credentials)の漏洩>#zca7e2c1]]と同じ。 **対策 [#e36b39aa] -安全なパスワードポリシー -高いエントロピーを使用 --認証サーバによって生成 --128ビット以上 --暗号的に強いランダム/擬似乱数シーケンスを活用 -ロックアウトを使用する。 -タールピット(一時的ロック)を使用する。 -CAPTCHAを使用する(UXへの悪影響有り)。 *トークン [#q40cb227] **対象 [#a42bf621] -code -access_token -refresh_token **脅威 [#ae4637be] -トークンの --漏洩 ---不正なClient, Resource Serverによるトークンの不正使用 --再生 --推測 -トークン発行 --悪質なソフトウェアへ発行~ --非対話型の認可タイプによる意図しない発行 --[[Resource Owner Password Credentials Flow>OAuth 2.0 Threat Model (Resource Owner Password Credentials Flow)]]への強力なトークン発行 **対策 [#b9904fd3] -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 [#v01194ca] **対象 [#w5d2dbe9] access_token **脅威 [#xbef0c43] access_tokenの漏洩 **対策 [#i336303a] -送受信にSSL/TLSを利用する。 -第三者とトークンを共有しない。 -一時的なメモリに保持(Clientからのみアクセク可能) -Clientの一時メモリに保持 --Clientのみアクセク可能 --漏洩しないよう永続化しない。 ---- Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]