سؤال

أحتاج إلى حل تشفير خادم العميل لنقل الويب، (أي.موقعة ومشفرة من جانب العميل، ومن جانب الخادم تم التحقق منها وفك تشفيرها).

أنا أستخدم HTTP، ولكن SSL غير متاح بسبب قيود الاستضافة المشتركة (الخادم الخاص بي هو بيئة مضيفة مشتركة).بالنظر إلى الحلول البديلة، قررت استخدام OpenPGP GnuPG.أحد الأسباب هو أنه مدعوم في PHP من خلال وحدات PEAR وPECL المختلفة (PHP هي اللغة التي أنوي استخدامها كلاهما البرنامج النصي للعميل الخاص بي والبرنامج النصي للخادم الخاص بي، على الرغم من أن لغة Perl متاحة أيضًا كحل أخير).

أحاول الآن تحديد أفضل طريقة لنقل البيانات.لقد صادفت آر إف سي 1847, ، الذي يحدد رسائل MIME متعددة الأجزاء المشفرة والموقعة.تم توسيع هذا البروتوكول خصيصًا لـ PGP في آر إف سي 3156.(أعتقد أن هذه البروتوكولات مرتبطة ببروتوكول البريد الإلكتروني المشفر S/MIME).

سؤالي هو:هل هناك أي سبب لاتباع هذه المعايير؟فيما يتعلق بالبروتوكولات، فإنها تبدو وكأنها حلول معقولة، ولكن هل هناك أي عملاء يستخدمون هذا البروتوكول بالفعل؟على سبيل المثال، إذا قمت بتقديم طلب متعدد الأجزاء/مشفر إلى خادم ويب Apache، فهل ستكون هناك أي طريقة سهلة لاسترداد البيانات؟اختباراتي باستخدام برنامج PHP النصي جعلتني أعتقد أن PHP لن تكون ذات فائدة في محاولة فك تشفير طلبات مثل هذه (يبدو أن بيانات $_POST تأتي من بيانات من نوع MIME "متعددة الأجزاء/بيانات النموذج").

كمضيفي سوف اسمحوا لي أن فتح مآخذ، ذلك كان سيكون من الممكن بالنسبة لي استخدام واجهة برمجة تطبيقات PHP الخاصة ببرمجة المقبس لكتابة برنامج PHP النصي ليكون بمثابة خادم يقبل طلبات HTTP "متعددة الأجزاء/المشفرة" و"متعددة الأجزاء/الموقعة"، ولكن هذا يبدو مبالغة.

أي اقتراحات؟

لمزيد من المعلومات حول مشكلتي، يرجى الاطلاع على هذا السؤال.

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

المحلول

أنت على حق - ترتبط هذه البروتوكولات ببروتوكول البريد المشفر، واستخدام ذلك في حالتك يعد مبالغة إلى حد ما وسيتعين عليك استخدام امتداد OpenSSL php.اذهب مع OpenPGP.

نظرًا لأنه سيتم كتابة عميلك بلغة PHP - فكر في السيناريوهات التالية:

السيناريو 1:إنشاء خدمة ويب SOAP بسيطة

ستكون أساليب الخادم والعميل هي نفسها:

  • getPublicKey() - إرجاع المفتاح العام
  • sendMessage(msg) - يُرجع الإجابة

السيناريو 2:استخدم رسالة GET/POST

  • العميل -> http get (أرسل لي مفتاحك العام) -> الخادم
  • العميل <- (مفتاحي العام هو xxxx) <- خادم
  • يقوم العميل بتشفير رسالة مع العميل المفتاح العام للخادم يضيف المفتاح العام الخاص بالرسالة
  • العميل -> منشور http (يرسل رسالة مشفرة) -> الخادم
  • يقوم الخادم بفك تشفير الرسالة ، ويشفر الإجابة مع المفتاح العام للعملاء
  • العميل <- (إجابة مشفرة على العميل) <- خادم
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top