2011-12-04 9 views
2

私は既存のアプリケーションの委任されたログインシステムを構築するつもりです。 OAuthクライアント(Webアプリケーション)とOAuthサーバ(単純な認証とリソースサーバ)を実装しています。OAuth 2クライアントは本当にTLSを必要としますか?

これを念頭に置いて、私はこれは、特に私は、クライアント上でTLSを使用する必要がありますことを私に警告し

3.1.2.1. Endpoint Request Confidentiality 

    If a redirection request will result in the transmission of an 
    authorization code or access token over an open network (between the 
    resource owner's user-agent and the client), the client SHOULD 
    require the use of a transport-layer security mechanism. 

    Lack of transport-layer security can have a severe impact on the 
    security of the client and the protected resources it is authorized 
    to access. The use of transport-layer security is particularly 
    critical when the authorization process is used as a form of 
    delegated end-user authentication by the client (e.g. third-party 
    sign-in service). 

:現在OAuth 2 draft(バージョン22)で、次のセクションに出くわしました。もちろん、サーバー上でHTTPSを使用していることもありますが、すべてのクライアントでHTTPSを使用することは不可能ではないにしても困難です。

セキュリティに関する私の限られた理解から、誰かが認可付与を盗むことができると思います。これは私の質問に私をもたらします:

は、クライアント認証(クライアントシークレットを使用して)は、許可許可を使用してから、盗聴者を防ぐことはできませんでしょうか?(悪意のある当事者がクライアントの秘密を知らないので、うまくいけば)

もしそうでなければ、私は見ていないでしょう、もし私がこの仕事をするためにできることはありますか? HTTPSをクライアントに安全にインストールする必要はありませんか?たとえば、OAuth 1は役に立ちますか? (おそらくそれは追加のリクエストトークンステップを持っているからです)

P .:私は、シークレットではなくTLSクライアント証明書を使用してクライアント認証を行うことを計画していました。

答えて

2

この警告の一部を誤解していると思います。このOAuthの警告は、違反の件数がOWASP A9件に達しています。つまり、OAuthを使用していても、クライアントと通信するためには安全なトランスポート層が必要です。クライアントは認証にキーペアを必要とせず、OAuthはクライアントの認証形式です。ただし、ブラウザはCookie値として保存されたセッションIDを使用してアプリケーションで認証します。懸念事項は、攻撃者がこの値を傍受できれば、被害者のクライアントと同じアクセス権を持つことになります。

+0

私が正しく理解していれば、認証コードがクリアで送信されるのではなく、そのリソースがクライアントからブラウザに明確に送信されることが懸念されます。 (リソースサーバーは、クライアントとサーバー間の接続でTLSを使用してプライベートデータをプライベートに維持しようとしていましたが、クライアントはブラウザとクライアントの接続で明示的に送信して違反します)。 –

+0

@Shtééfクッキーは認証コードです。 HTTPリクエストがプレーンテキストで送信される場合、このトラフィックを見ることができる人は誰でもWebアプリケーションにアクセスする必要があります。クッキーを保護しないと、何も安全ではありません。 – rook

+0

私たちは同じページにいるとは思わない。 「認証コード」によって、私は、許可が与えられた後にサーバーが生成したトークンを意味すると理解しています。サーバーはリダイレクトURIのクエリにアタッチし、ユーザーエージェントに送信します。クライアントはリダイレクト要求でこれを受け取ります。おそらくプレーンなHTTP経由で受け取ります。 *まだ*に関連するクッキーはありませんが、クライアントはアクセストークンを取得してクッキーに関連付けます。私の質問は特に許可トークンについてです。私はクッキーが危険にさらされている可能性があることを知っています。 –

関連する問題