ID管理技術

【クラウドID管理解説】権限認可オープンスタンダード「 OAuth 」—メリット+脆弱性課題

  • このエントリーをはてなブックマークに追加
【クラウドID管理解説】権限認可オープンスタンダード「 OAuth 」---メリット+脆弱性課題

【クラウドID管理解説】
権限認可オープンスタンダード「 OAuth 」—メリット+脆弱性課題
「脆弱性課題」として、「脆弱性の主な原因」+「脆弱性要素①:OAuthクライアントアプリケーション」「②:認証コードとアクセストークンの漏洩」「③:欠陥のあるスコープ検証」について参照できます。

「OAuth」とは

「OAuth (Open Authorization) 」とは、広く利用されている権限認可オープンスタンダード(プロトコル)です。

Webサイト(Webアプリケーション)がIDサービスプロバイダ(Google、Facebookなど)に対してユーザーアカウントの制限付きアクセスを要求できるようにすることで、ユーザーはログイン資格情報を対象アプリケーションに公開せずにアクセスできます。

OAuthの「メリット」

シングルサインオン

OAuthを利用することにより、さまざまなアプリケーションでシングルサインオンが可能となるため、個々のアプリケーション単位で「ID+パスワード」を管理する必要がなくなります。

IDサービスプロバイダ(Google、Facebookなど)で登録している1つのパスワードのみを管理するだけでよくなるため、ユーザーエクスペリエンスが向上します。

独自認証システムを実装する必要がない

OAuthを使用すると、アプリケーションはIDサービスプロバイダに対してユーザー認証を実施できます。

そのため、アプリケーション内に独自の認証システムを実装する必要がなくなります。

実装が簡単

OAuthでは、情報(アクセストークン)の送受信に「HTTPプロトコルのみを使用」します。

特殊で複雑なプロトコルを使用する必要がないため、簡単にサービスおよびクライアントを実装できます。

パスワードが送受信されない

ユーザーがアプリケーションにログインする時に、ユーザーパスワードはアプリケーション側に伝達されない仕組みであるため、パスワード情報を直接やり取りする仕組みと比較して、セキュリティを向上させることができます。

エンタープライズ企業の信頼性

OAuthログインをサポートするアプリケーションは、「Googleでログイン」や「Facebookでログイン」などのオプションを指定してユーザーに認証を求めます。

ユーザーのID情報管理は「Google」や「Facebook」などのエンタープライズ企業に委託することになります。

この仕組みにより、ユーザーは信頼性が低い新興企業などに対してID情報を直接共有せずに利用できるメリットがあります。

OAuthの「脆弱性課題」

脆弱性の主な原因

仕様が比較的あいまい

OAuthは「柔軟な仕様」となっています。
裏を返せば「比較的あいまいな仕様」でもあるため、脆弱性が発生しやすい一因となっています。
・ユーザーのデータを安全に保つためには多くの構成設定が必要
・実装の大部分はオプション
・設定によっては機密性の高いデータもブラウザを介して送信されてしまう可能性がある
・構成設定によっては非常に脆弱なシステムが構築されてしまう

セキュリティ対策実装は開発者に依存

OAuthには「組み込みセキュリティ機能が十分ではない」という課題もあります。

そのため、構築されるシステムのセキュリティレベルは実装する開発者に大きく依存してしまいます。
・構成オプションの適切な組み合わせ
・堅牢な入力検証
・独自の追加セキュリティ対策 など

強固なセキュリティを維持するOAuthシステムを独自構築するためには、熟練したスキルレベルが必要となるため、不慣れな開発者が担当すると脆弱なシステムができあがってしまうリスクが大きくなります。

脆弱性要素①:OAuthクライアントアプリケーション

暗黙的許可タイプの不適切実装

「暗黙的許可タイプ」は比較的単純であるため、「シングルページアプリケーション」や「クライアントサーバ型Webアプリケーション」でもよく使用されます。

このPOSTリクエストはブラウザを介して攻撃者に公開されます。

クライアントアプリケーション側において、アクセストークンがリクエスト内の他データと一致することを適切にチェックしない場合、この動作は深刻な脆弱性につながる可能性があります。

stateパラメータの使用に失敗

アプリケーションが「stateパラメータ」の取り扱いに失敗すると、攻撃者は「クライアントアプリケーションの被害者ユーザーのアカウント」を自分のアカウントにバインドできてしまうことで、乗っ取り被害が発生します。

脆弱性要素②:「認証コード」と「アクセストークン」の漏洩

OAuthサービス自体の構成が不完全な場合、「認証コードを盗まれる」や「他ユーザーのアカウントに関連付けられたトークンへアクセス」などの事態が発生し、アカウントが完全に危険にさらされてしまう可能性があります。

脆弱性要素③:欠陥のあるスコープ検証

OAuthフローでは、「承認リクエストで定義されたスコープ」に基づいて、リクエストされたアクセスを承認する必要があります。

しかし、OAuthサービスのスコープ検証に欠陥があった場合、「攻撃者が取得したアクセストークン」について「追加アクセス許可でアップグレードしてしまう」可能性があります。

ID管理クラウドサービス「Keyspider」とは?

Keyspiderサイト「keyspider.jp」では、Keyspiderに関する情報を紹介しています。

「概要説明」「コンセプト」「他サービス連携」「主要機能」「マネージドサービス」などについて参照できますので、ご興味のある方はご確認ください。


参考サイト

  • このエントリーをはてなブックマークに追加

コメントを残す

*