PHP OpenIDはGoogle/Yahooで動作せず、「ハック」修正…安全ですか?
-
27-09-2019 - |
質問
私はOpenIDを試してみて、Sample Webページを設定してOpenIDアカウントを使用してアクセスしています。私は使用しています JanrainによるPHP OpenIDライブラリ そして、それは私のGoogleアカウントで動作していませんでした。ちょっとした研究が私を導きました この質問, 、これは問題がGoogleが使用していることを示唆しています https
と...
... HTTPSリクエストを作成するためのセットアップがPHPサーバーでボルキングされる可能性があります。 CAの認証パッケージがインストールされていることを確認するには、確認してください。
同じスレッドで、誰かが彼らにリンクします ライブラリのハッキングバージョン これを展開し、Googleアカウントで使用しています。他の質問には、同様の問題を回避するための他のカスタマイズがあります(JanrainのPHP-OpenidとGoogle/Yahoo, php-openidはyahoo!で動作しません, PHP OpenIDのAXの使用例...)
私はセキュリティがあまり暑くないので、私は尋ねます。これらのハッキングされたバージョンを使用しない理由を誰かが知っていますか?
元のライブラリには、これらのハッキングが設計により修正された欠点がありますか?したがって、ハックは潜在的なセキュリティの脆弱性ですか?
David Chaumのあごひげによるこれらの解決策のいずれかを見て、去った資格のある暗号患者がいますか? いいえ!!"
もしそうなら - したがって、私はこれらのハッキングのいずれかを使用すべきではありません - 私は「CACertificatesパッケージをインストールしている」ことをどのように確認しますか?
解決
これらの「ハッキングされた」バージョンの1つの著者が書いたものは次のとおりです。
特に、curlopt_ssl_verifypeerとcurlopt_ssl_verifyhostはデフォルトで真です:私はそれらをfalseに設定し、テストページで機能しました!
その効果は、HTTPSを使用して提供されるセキュリティの優位性をほぼ無効にすることです。 HTTPSがOpenIDで有用である主な理由は、中間の攻撃に対抗することです。 google.com
のリクエスト bad-guys.example
. 。適切に構成されたHTTPSを使用すると、接続の証明書を確認し、Googleからではないことを確認し、「あなたが言うことは何でも信じないでしょう。 bad-guys
!"
もちろん、証明書を確認しない限り(すべてを設定してください SSL_VERIFY
のオプション false
)、その場合、あなたのサーバーはすべてを信じるでしょう bad-guys
それが本当のGoogleプロバイダーであるかのように言います。あなたはそれがどのように悪いかもしれないか想像することができます。
今、率直に言って、これはそうではありません 最悪 とにかく多くの人が行うHTTPを使用するよりも悪くないので、あなたが作ることができる選択。あなたはただです ユーザーに嘘をついています あなたがそうでないときにHTTPSレベルのセキュリティを提供していることを暗示している場合。
そして、DNSベースの攻撃をするのがどれほど簡単か、またはそれがどれほど簡単かについて、そこに多くの情報があります。 SSL証明書を作成します. 。いずれにせよ、それは誰かがあなたのサーバーとGoogleの間の接続を攻撃することを要求します、それは 一般的 コーヒーショップのユーザーのラップトップとサーバーの間の接続を攻撃するよりも難しい。
それでも、実際にPHPまたはCURL SSL構成を修正する方がはるかに良いです。または、そうでない場合は、HTTPS識別子にサインアップするときにユーザーに警告してください。そうすれば、サイトでそのopenIDを実際に使用したいかどうかを選択できます。
2番目の質問につながります。どのサーバープラットフォームを使用しているかについて何も知らないと思いますが、私ができる最善のことはあなたをにリンクすることです SSL証明書のカールドキュメント; 「より良い/異なる/新しいCA証明書バンドルを入手してください!」というセクションを参照してください。
他のヒント
ウィキペディアの記事から 証明する機関:
CAは、公開キーと所有者の身元を含むデジタル証明書を発行します。エンドユーザーが不明なURLにアクセスしようとすると、Webブラウザー(Mozilla FirefoxやMicrosoft Internet Explorerなど)がCAに連絡してURLの公開鍵を確認します。
...したがって、CA証明書はaです 公開鍵証明書 通信するために使用されます https://
. 。サーバーには、どこかでファイルシステムにCA証明書があるはずです。そうでない場合は、CA証明書を自分でダウンロードして設定する必要があります CURLOPT_CAINFO
その位置を指す一定。 この記事を参照してください.
http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
...]これらのハッキングされたバージョンを使用しない理由を誰かが知っていますか?
彼らがハッキングされたバージョンであるという事実に加えて、それはおそらく文書化されておらず、彼らの行動について保証されていないでしょうか?
具体的には答えることはできませんが、特に承認とセキュリティを扱っているときに、迅速な修正と回避策が適用されたモジュールを使用すると、いくつかの警告ライトが点滅する必要があります。自社の責任で使用してください!」
より多くの情報に基づいた答えで、このトピックに関する知識を持っている人がすぐに到着すると確信しています。