سؤال

لقد قمت بتجربة OpenID ، وقمت بإعداد صفحة ويب للعينة للوصول إلى حساب OpenID الخاص بي. أنا أستخدم مكتبة PHP OpenID من Janrain ولم يكن يعمل مع حساب Google الخاص بي. قادني القليل من الأبحاث إلى هذا السؤال, ، مما يشير إلى أن المشكلة هي أن Google تستخدم https و...

... من المحتمل أن يكون الإعداد لاتخاذ طلبات HTTPS محفوظة على خادم PHP الخاص بك. تحقق للتأكد من تثبيت حزمة CA CAREMERISTATES.

في نفس الموضوع ، يرتبط شخص ما نسخة مخترقة من المكتبة التي نشرتها واستخدمت مع حساب Google الخاص بي بنجاح. أسئلة أخرى لديها تخصيصات أخرى للتغلب على مشاكل مماثلة (Janrain's php-openid و Google/Yahoo, PHP-OpenId لا يعمل مع Yahoo!, مثال استخدام الفأس في php openid...)

أنا لست ساخنًا جدًا على الأمان ، لذلك أسأل ؛ هل يعرف أحد سبب عدم استخدام هذه الإصدارات المخترقة؟

هل تحتوي المكتبة الأصلية على أي حال من الأحوال التي تصلحها هذه الاختراقات حسب التصميم ، وبالتالي فإن الاختراق هو ثغرة أمنية محتملة؟

هل هناك عرق تشفير مؤهل هناك نظر إلى أي من هذه الحلول وذهب "بواسطة David Chaum's Beard! رقم!!"

إذا كان الأمر كذلك - وبالتالي لا ينبغي أن أستخدم أيًا من هذه الاختراقات - كيف يمكنني التحقق من أنني "تم تثبيت حزمة CA CA CA"؟

هل كانت مفيدة؟

المحلول

إليك ما كتبه مؤلف أحد تلك الإصدارات "المخترقة":

على وجه الخصوص curlopt_ssl_verifypeer و curlopt_ssl_verifyhost هو صحيح بشكل افتراضي: لقد قمت بتعيينها على خطأ وعملت في صفحة الاختبار!

التأثير الذي له هو نفي أي ميزة أمنية يتم تقديمها إلى حد كبير باستخدام HTTPS. السبب الرئيسي هو أن HTTPS مفيد في OpenID هو أنه يحرس ضد رجل في الوسط ، أي بعض سمات الرجل السيئ الخاص بك DNS لإرسال الجميع google.com طلبات إلى bad-guys.example. من خلال HTTPS التي تم تكوينها بشكل صحيح ، يمكنك التحقق من الشهادة على الاتصال ، واكتشف أنها لم تكن من Google ، وتقول "لن أصدق أي شيء تقوله ، bad-guys!"

ما لم تكن ، بالطبع ، لا تتحقق من أي شهادات (يمكنك تعيين كل SSL_VERIFY خيارات ل false) ، وفي هذه الحالة سيؤمن الخادم الخاص بك كل شيء bad-guys يقول كما لو كان مزود Google الحقيقي. يمكنك أن تتخيل كيف قد يكون ذلك سيئًا.

الآن ، بصراحة ، هذا ليس أسوأ الاختيار الذي يمكنك القيام به ، لأنه ليس أسوأ من مجرد استخدام HTTP ، وهو ما يفعله الكثير من الناس على أي حال. انت فقط الكذب على المستخدمين إذا كنت تشير إلى أنك توفر أمانًا على مستوى HTTPS عندما لا تكون كذلك.

وهناك الكثير من المعلومات حول مدى سهولة القيام بهجوم قائم على DNS ، أو مدى سهولة ذلك فورج شهادات SSL. في كلتا الحالتين ، يتطلب الأمر من شخص مهاجمة الاتصال بين الخادم الخاص بك وجوجل ، وهو عموما أصعب من مهاجمة الاتصال بين الكمبيوتر المحمول للمستخدم في المقهى والخادم الخاص بك.

ولكن لا يزال من الأفضل بالفعل إصلاح تكوين PHP أو Curl SSL. أو إذا لم تقم بذلك ، فحذر المستخدمون من ذلك عند التسجيل مع معرفات HTTPS ، حتى يتمكنوا من اختيار ما إذا كانوا يريدون حقًا استخدام هذا OpenID مع موقعك.

مما يؤدي إلى سؤالك الثاني. أعتقد أنه لا يعرف أي شيء عن نظام الخادم الذي تستخدمه ، فإن أفضل شيء يمكنني فعله هو ربطك بـ مستندات Curl على شهادات SSL; ؛ انظر القسم الذي يقول "احصل على حزمة CA CERT أفضل/مختلفة/أحدث!"

نصائح أخرى

من مقالة ويكيبيديا سلطة الشهادة:

يصدر CA الشهادات الرقمية التي تحتوي على مفتاح عام وهوية المالك. عندما يحاول المستخدم النهائي الوصول إلى عنوان URL غير معروف ، فإن متصفح الويب (مثل Mozilla Firefox و Microsoft Internet Explorer) سيتصل بـ CA لتأكيد المفتاح العام لعنوان URL.

... لذلك شهادة CA هي شهادة المفتاح العام تستخدم للتواصل https://. يجب أن يحتوي الخادم الخاص بك على شهادات CA على نظام الملفات في مكان ما. إذا لم يكن الأمر كذلك ، فسوف يتعين عليك تنزيل شهادة CA بنفسك وتعيين ملف CURLOPT_CAINFO ثابت للإشارة إلى موقعه. انظر هذا المقال.

http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

...] هل يعرف أحد سبب عدم استخدام هذه الإصدارات المخترقة؟

إلى جانب حقيقة أنها تم اختراقها ، والتي من المرجح أن تكون غير موثقة وليس لديها أي ضمان لسلوكهم؟

لا يمكنني الإجابة على وجه التحديد ، ولكن يجب أن يكون هناك بعض مصابيح التحذير التي تومض عندما تعمل مع الوحدات النمطية التي كانت لديها إصلاحات سريعة ومطبقات حلول ، خاصة عندما تتعامل مع التفويض والأمان .. أعتقد أن أفضل نصيحة ستكون " استخدام على مسؤوليتك الخاصة!"

أنا متأكد من أن شخصًا ما لديه المزيد من المعرفة حول هذا الموضوع سيصل قريبًا بما فيه الكفاية مع إجابة أكثر استنارة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top