「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>OAuth 2.0 Threat Model (Flow)]] * 目次 [#hcdf0e5c] #contents *概要 [#cfaa27f5] [[OAuth 2.0 Threat Model and Security Considerations]]の~ Flowに着目した脅威モデルのうち、ここでは唯一、~ サインイン・プロセスの問題を扱う(ただし非対話)。 ※ [[OAuth]] 2.0ではIdPの仕様について言及されていないので。 *サインイン・プロセスの問題 [#x903cf86] レガシー/マイグレーションの理由でよく使用される。 **攻撃 [#b387a0f5] -ユーザID/パスワードの漏洩 -非対話的問題を突いた攻撃。 **対策 [#l915dfd8] 限定的に利用する。 -基本認証から移行する過渡期 -UserAgentがAuthorization Serverに接続できない場合 -ClientとAuthorization Serverが同じ組織に利用されているケース **共通項 [#t3a417b9] -Resource Ownerは認可プロセスを制御できない。 -ClientにユーザID/パスワードが渡る。 ***共通的な影響 [#dffb5785] 悪意のあるClientにscopeの広いトークンが悪用され得る。 -Resource Ownerは、認可プロセスを制御できない。~ 故に、非対話的問題を突いた攻撃を受け易い(scopeの広いトークン)。 -ClientにユーザID/パスワードが渡る。~ 故に、トークン取り消しが機能しない。 *ユーザID/パスワードの漏洩 [#xbbd1ae3] **ユーザID/パスワードの盗難 [#db447962] ***影響 [#h002f857] [[共通的な影響>#dffb5785]] ***攻撃 [#ueae69f1] 悪意のあるClientによるユーザID/パスワード盗難 ***対策 [#b6dc1303] -ユーザに異なるサービスに同じ~ -Resource Ownerに異なるサービスに同じ~ ユーザID/パスワードを使用しないように促す。~ (悪意のあるClientが別のサービスにログイン可能) -refresh_tokenとclient_idの紐付けを検証~ (audによるClient制限を行うことが出来る) **ユーザID/パスワードの盗聴 [#g872ebc1] ***影響 [#ubfda847] [[共通的な影響>#dffb5785]] ***攻撃 [#hf181037] エンドポイントに対するユーザID/パスワード盗聴 ***対策 [#k5d9ffbf] -SSL/TLSを利用する。 -平文認証を使用しない代替認証を使用する。 **ユーザID/パスワードのオンライン推測 [#s789d1f8] ***影響 [#k2df1fdd] 単一のユーザID/パスワードの組み合わせの啓示 ***攻撃 [#p3f485b4] 有効なユーザID/パスワードの組み合わせを推測 ***対策 [#se987155] -他のフローを使用する。 -サインイン --安全なパスワード・ポリシー設定する。 --ロックアウトを使用する。 --タールピットを使用する。 --CAPTCHAを使用する。 -クライアント認証を併用する。 **Client側でのユーザID/パスワードの露見アクシデント [#v557e2e3] ***影響 [#a85d7b1b] [[共通的な影響>#dffb5785]] ***攻撃 [#ma826c54] Clientが十分な保護を提供していない場合、偶発的に起きる。 ***対策 [#adb2505d] -他のフローを使用する。 -(Client側で)ログのパスワードを難読化 -(Client-AuthZ側で) --要求の機密性を確保する(TLS、VPN) --ダイジェスト認証を使用 **DBからユーザID/パスワードを盗難 [#g0480796] ***影響 [#eb0bced2] すべてのユーザID/パスワードの開示 ***攻撃 [#s49566e3] -データベースへのアクセス権を取得 -SQLインジェクション攻撃 ***対策 [#d4349cdc] -システムのセキュリティ対策を実施 -標準のSQLインジェクション対策を実施 -ハッシュのみを格納 *非対話的問題を突いた攻撃。 [#g0549aa5] **[[ユーザID/パスワードのオンライン推測>#s789d1f8]] [#h0ad9251] **意図しない不要に大きなscope [#w71cb4d0] ***影響 [#v8648471] 悪意のあるClientが、不要に大きなscopeを持ったトークンを取得できる。 ***攻撃 [#j88ae5de] 悪意のあるClientが、不要に大きなscopeを持ったトークンを要求する。 ***対策 [#w094e5b5] -他の(対話的)フローを使用する。 -認可されるscopeを、 --当該(非対話的)フローで制限 --Clientの信頼性よって緩和 --任意の通知手段によってResource Ownerに通知する。 **refresh_tokenによる長期的認可の維持 [#bafbe5ca] ***影響 [#f5f2399c] 長期的認可の維持~ (この場合、Resource OwnerのCredential変更も有効でない) ***攻撃 [#xff0ef19] 自動再認可でrefresh_tokenを入手。 ***対策 [#ze601703] -他の(対話的)フローを使用する。 -当該フローでrefresh_tokenの発行を --しない。 --Clientの信頼性よって緩和 --任意の通知手段によってResource Ownerに通知する。 ---- Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]