2

REST-ful を使用してモバイル アプリケーションを開発する計画があります。SSL を使用しないため、OAuth 2.0 ではなく OAuth 1.0a を適用したいと考えています。また、Web ブラウザーも使用したくありません (PIN ベースの UX は使いにくいと考えています)。通常の OAuth フローでは不可能であることはわかっています。

私はセキュリティ アーキテクチャの専門家ではありませんが、ネットで Google を検索すると、誰かがチャレンジ レスポンス モデルのようなメソッド ログインを使用して実装していることがわかります。

アプリがユーザー名を安全に保つ必要がなく、ユーザーがアプリにパスワードを入力することで私たちを信頼している場合、この方法を使用してアクセス トークンを交換できますか? 欠陥はありますか?

  1. サーバーが無許可のリクエスト トークンに応答した後、クライアントはチャレンジ/レスポンス フローを開始します。
  2. クライアントは、OAuth require: oauth_consumer_key, oauth_token, oauth_signature_method, oauth_timestamp, oauth_nonce のようなパラメーターと、追加のユーザー名パラメーター username="username" (ユーザーのパスワードから計算されたパスワード パラメーター) を使用して、 http://www.example.com/login に要求を送信ます。 (サーバーに保存されます)、KDF 鍵派生関数/ハッシュ関数を使用した oauth_nonce。クライアントは、OAuth の説明を使用してリクエストの署名を計算しますが、パスワード パラメータを省略した後、パラメータ username およびその他の必要なパラメータを使用してリクエストを送信します。

  3. サーバーはリクエストをチェックし、アクセス トークンを返します。

4

1 に答える 1

1

あなたが説明していることは、SSLではなく独自のクライアント側のパスワード暗号化を使用することを計画していることを除いて、TwitterのxAuthと非常に似ていると思います。

私は彼らのxAuthドキュメントを読んで、試行錯誤された方法を確認し、トークン要求ステップにSSLを使用することを検討しました。

于 2011-11-03T15:09:47.127 に答える