「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- OAuth 2.0 の脅威モデルとセキュリティの考慮事項 (RFC 6819)
- OAuth 2.0 の実装にあたり、特にセキュリティーに関して考慮すべき事項の列挙
- セクション4からの内容で、OAuth 2.0 の前提は飛ばしている。
Client †
Clientに対する攻撃
client_secretの入手 †
影響(大) †
Authorization Serverのクライアント認証のバイパスによる
アクセストークン・リクエストが可能になる。
- Client Credentialsグラント種別による。
- リプレイ攻撃による。
- Authorization Codeグラント種別のcode
- refresh_token
攻撃 †
- ソースコードまたはバイナリから取得
- インストールされたクライアントから取得
- web site (web server)
- device (native application)
対策 †
- Section 5.2.3.1
- Section 5.2.3.2
- Section 5.2.3.4
- Section 5.2.3.6
refresh_tokenの入手 †
影響(小) †
- refresh_tokenを用いたアクセストークン・リクエストが可能になる。
- ただし、実装によるがclient_secretも必要。
攻撃 †
- Web applicationから
- device (native application)
- ファイルシステムから
- deviceを盗難してから
- deviceを複製してから
対策 †
- 上記から取得されないようにする。
- refresh_tokenのローテーション
- ユーザやデバイスを特定できる場合、
- device (native application)の場合、
- 秘密を安全な記憶域に保管する。
- デバイスロックを使用する。
- Tokenにデバイス識別子を同梱
access_tokenの入手 †
影響(大) †
そのスコープのリソースにアクセス可能になる。
攻撃 †
refresh_tokenと同じ方法
対策 †
組込ブラウザの利用によるフィッシング †
影響(中) †
- ユーザ・アカウントを含めたあらゆる情報が取得され、
- それが悪用される可能性がある。
攻撃 †
ブラウザによるあらゆる情報のフィッシング
対策 †
clientの検証(例えば、GoogleはWebView?をブロックしている)
オープンリダイレクタ †
登録があるので、Client側にもあるが、Authorization Server側を参照。
Authorization Server †
Authorization Serverに対する攻撃
偽造Authorization Serverによるフィッシング †
影響(中) †
- 実装側ではなく、利用者側の問題だが、
- 誘導されるとユーザ・アカウントのフィッシングされ、なんでもできるようになる。
攻撃 †
- 偽造Clientのスターターで、誤った、偽造Authorization Serverに飛ぶ。
- 偽造Authorization Serverによりユーザ・アカウントがフィッシングされる。
対策 †
- SSL/TLS(サーバー証明)の利用
- ユーザの教育(偽造Client、偽造Authorization Serverの識別)
悪意のあるClientに大きなアクセス権を与えてしまう †
影響(中) †
- パブリック・クライアントの登録が可能なケースで、
- 悪意のあるClientが、不要に大きなScopeを持ったTokenを取得できる。
攻撃 †
- パブリック・クライアントが登録される。
- 悪意のあるClientのスターターを起動させる。
- 不用意に大きなScopeを要求する。
対策 †
Authorization Serverは
- client_idに対して
- 認可画面を表示する(promptパラメタによらず)。
- 許可するscopeをチェックする。
- ClientのTypeよって許可するscopeをチェックする。
- code : 認可画面を表示。
- token : 認可画面が表示できない。
悪意のあるClientに既存ログイン・セッションで権限を与えてしまう †
影響(中) †
- パブリック・クライアントの登録が可能なケースで、
- ログイン・セッションが生きている場合、
ログイン画面、認可画面、なにも表示されずに権限を与える。
攻撃 †
- パブリック・クライアントが登録される。
- 悪意のあるClientのスターターを起動させる。
対策 †
- リピート認証を自動的に処理しない。
- 自動化された承認によって得られたアクセストークンの範囲を制限する。
オープンリダイレクタ †
影響(大) †
codeや、access_tokenの入手に繋がる。
- access_token : Implicitグラント種別
access_tokenは、そのまま利用可能なので影響度が大きい。
攻撃 †
redirect_uriのインジェクションで攻撃者のサイトに誘導。
対策 †
- redirect_uriのフルパス登録
- redirect_uriのフルパス検証
参考 †
Tags: :認証基盤, :クレームベース認証, :OAuth