1

したがって、JanrainのPHP OpenIDライブラリに多くの不満を感じた後、LightOpenIDライブラリに切り替えることにしました。これは、はるかに単純であり、この回答によれば、OpenIDプロバイダーが正しく実装されている限りセキュリティに妥協しないためです(それらはとにかくすべてのユーザーの情報を保持します:P)。

私が抱えている残りの問題の1つは、LightOpenIDがGETプロトコルを使用してOpenID認証要求を返すことです。便宜上、関連情報を抽出した後はいつでもユーザーをリダイレクトできることを理解していますが、認証情報がを介して送信されるのではなく、を介しheaderて送信される場合にどのような問題を心配する必要があるのでしょうか。たとえば、ユーザーが提供した個人情報(アドレス、電子メールなど、sregを使用して要求されたもの)は、暗号化されて渡される場合よりも、仲介者によって傍受および抽出される方がはるかに簡単であるようです。GETPOSTPOST

送信されるデータをどのように描写するかを次に示します。

  1. エンドユーザーがOpenIDを入力し、サーバーに送信します(任意のプロトコルを使用できます)
  2. 私のサーバーはOpenIDプロバイダーに認証を要求headerし、OpenIDプロバイダーのページにリダイレクトするために使用し、必要に応じてエンドユーザーに私のサイトを許可させます。(任意のプロトコルを使用できます)
  3. OpenIDプロバイダーは、を使用して認証情報をサーバーに送り返しますGET。これには、ユーザーの個人情報に関する上記の懸念が含まれます。つまり、仲介者は、渡されたURLをキャッチするだけで、個人情報を抽出できます。私の知る限り、認証情報はログインの検証とユーザーのセッションの追跡に使用する別の一意のIDの生成に一度しか使用できなかったため、彼らには役に立ちません。セキュリティを強化するために、最初の登録でsreg情報を要求できるのは1回だけです。
  4. 私のサーバーは情報を処理し、最終的にエンドユーザーを最初に認証が必要なページにリダイレクトします(ここでも任意のプロトコルを使用でき、送信する情報を選択できます)

私はこれについて完全に間違っていますか?そうでない場合、どうすればこれらの問題を軽減できますか?

ps用語にあまり詳しくないので、間違いがあった場合とその修正方法を教えてください。

4

1 に答える 1

1

OpenIDを正常に使用するには、この特定の質問に当てはまる2つの側面があります。

  1. 認証-リクエストは予期されたソースからのものであり、改ざんされていませんか?

  2. セキュリティ-ユーザーとサーバー以外に、転送中のリクエストを見た人はいますか?

OpenIDアサーションは、共有キーまたは秘密キーのいずれかを使用してサーバーによって署名されます。後者の場合、サーバーはリクエストを確認するためにサーバーにもう一度ラウンドトリップする必要があります。

GETまたはPOSTの使用はセキュリティの観点からは重要ではありませんが、SSLの使用は重要です。どちらの方法も同様の方法でデータを送信するため、パケットスニファは機密データの取得に問題はありません。ただし、SSLを適用すると、両方の方法が同等に保護されます。

于 2012-10-16T03:52:11.090 に答える