2016-11-29 68 views
2

私が協力している会社に最も適した認証/承認方法を理解する必要がある私の学士を書いています。セッションとトークンベースの認証の技術的な違い

だから私は、セッションを比較すると、ベースの認証方法をトークンが、トークンがどのように機能するかについて、どのように彼らはセッション認証よりも優れている私には不明であるいくつかのポイントがありますされてきた。

があるだけのメリットCookieストアを持たないクライアントからトークンを使用でき、ブラウザのCORSポリシーが妨げられていないため、異なるサブドメインで使用でき、ドメインを完全に分離することができます。

  • 私はすべてのクッキーは、元のドメインに各要求と共に送信されていることを読んで(クッキーが安全な接続のみに送信されるように設定されている場合を除く)、トークンがリクエストで二回存在するであろうことを意味していますもちろん、別のドメインのユーザーを認証する場合を除きます。これは正しい仮定ですか?
  • トークンはサーバサイドでどのように検証されますか?解読後、ユーザー名、パスワード、および秘密/秘密鍵に対してチェックされますか、ここで使用されている秘密/秘密鍵だけですか?
  • サーバー上の特定のリソースに対して認証する際にusername/userIDが必要な場合は、そのユーザーを認証しませんでした。チェックする元のユーザーデータがない場合、これらの資格情報を信用できますか?

最後に、トークンがCSRFから保護すると主張する記事が多数あります。

From this article: CSRF:我々はまた、クロスサイトリクエストフォージェリ(CSRF)に対する保護を持っています。彼らは銀行のサイトを言うと、既に認証することができ、これは他のサイトを訪問する際の利点を取ることができるので、ユーザーは。私には全く意味がありません

「。CSRF攻撃を受けやすい、彼がいることを言っているように思えますOAuthのようなシステムはCSRFを防ぎますか?私はCSFRの仕組みについてよく知らないので、ここでは空白ですが、どちらのセッションやトークンもどちらの要求に対しても一意ではないため、 。

編集: 私はちょうどCSFRを防ぐことができた理由のトークンは別のサイトを管理している場合、それがブラウザによって自動的に送信されていないということです実現ブラウザからサーバーにフォームを送信する。しかし、これはトークンがサーバーのクッキーヘッダーから引き出された場合、トークンが脆弱である可能性があることを意味します。JWTを使用する場合は、JSで設定する必要がある独自の「Authorization」ヘッダーを使用するため、問題ありません。 しかし、これはscotch.ioの記事が私にとってナンセンスのように聞こえるという主張をしています。

答えて

3

従来のクッキーベースの認証システムとより新しいトークンベースのシステムの特性については、Cookies vs Tokens: The Definitive Guideを参照してください。

TL; DRトークンベースの認証はこれまで以上に関連性があります。 Cookieとトークンベースの認証の違いと類似点、トークンを使用する利点、および一般的な質問に対処し、開発者がトークンベースの認証に関して懸念する点について検討します。

実際にクッキー内に配置するものはトークンと見なすことができるので、私はこの正確な用語の大きなファンではありません。たいていの場合、トークンベースの認証はトークン自体の中でデータを運ぶバイナリトークン(JWT-Learn JSON Web Tokens)を好む一方で、それはサーバ側のデータにマップする参照用トークンです。

JSON Webトークン(JWT)は、JSONオブジェクトとしてパーティ間で情報を安全に伝送するコンパクトで自立的な方法を定義するオープンスタンダード(RFC 7519)です。この情報はデジタル署名されているため、検証および信頼することができます。これらによって値トークンの検証は、トークンが署名時とコンテンツ鍵の知識なしに、誰によって改ざんされないことを使用する関連する鍵を保持するエンティティによって作成されたことを確実に署名することによって達成される

。この前提は、受け取ったトークンを信頼するための基礎です。 CSRFとの関係で

、それは(クッキーと何が起こるかにそれとは反対に、ブラウザが自動的にこれらのトークンの資格情報を送信しませんので、トークンベースのシステムは、これを緩和することが本当のトークンは、要求に含まれていないと仮定しクッキーとして)。

CKはセッションクッキーで保護されたリソースを公開し、アプリケーションTKはトークンで保護されたリソースを公開します。

ユーザXは両方のアプリケーションで認証され、アプリケーションCKのセッションクッキーとアプリケーションTKのトークンが発行されます。攻撃者が悪意のあるサイトEVを作成し、ユーザーXを訪問するよう騙した場合、ユーザーのブラウザーからアプリケーションCKTKの両方への自動要求を実行できます。

ただし、アプリケーションCKため、ユーザXのブラウザが自動的にセッションCookieが含まれていますし、アプリケーションTKへの要求のためにブラウザが自動的にトークンが含まれませんが、このような邪悪なサイトとしてEVだけで、保護されたリソースにアクセスしました。

関連する問題