2

hmac を生成するためのシークレットとして、ユーザーのパスワード ハッシュを使用するのは非常に快適だと思います。なぜ OAuth などはトークンとナンスを使用するのですか?

私はこのようなことを考えています:

クライアントは、UI にパスワードを入力します。アプリケーションは、サーバーに保存されているパスワードのハッシュを使用して Web サービスに登録します。そのハッシュのフォームを再度送信する必要はありません。クライアントは、ユーザーにパスワードの入力とハッシュ化を求めることで、いつでもシークレットを再生成できます。すべてのメッセージはこのハッシュで署名され、サーバーはユーザー名または GUID で検索し、送信された mac が有効かどうかを確認できます。

サーバー上の侵入者はそのハッシュを取得できますが、ユーザーの実際のパスワードを知りません。とにかく、そのハッシュで有効なリクエストを送信できます。しかし、これが起こる可能性は低いです。保存されたハッシュは、ノンスを使用して再度ハッシュされる可能性もあります。とにかく、pwd ファイルはクライアントのサーバー上にあるため、ファイルが {"password":"a4bd146hashhashhash"} のようにならないように、base64 などを使用して難読化する必要があります。

何よりも、ユーザーの実際のパスワードが送信されることはありません。リクエストは、リプレイに対してタイムスタンプ/トークンで保護されます(ここでトークンの目的を認識しています)。

クライアントがタグ付きの単純なWebサイトになることは決してないため、ハッシュを送信することは私に完全に適用できます。Web サービスは ajax ベースのアプリケーションと Java デスクトップ アプリケーションで使用され、どちらも文字列をハッシュできます...

それの何がいけないの?これは非常にシンプルで、認証に関連する何よりも RESTFul であり、効果的だと思います。私は何が欠けていますか?

よろしく、クルメル

4

0 に答える 0