سؤال

أقوم بإنشاء تطبيق وأخطط لاستخدام OpenSSL لتأمين عمليات نقل البيانات.

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

ما هي بعض الممارسات الشائعة التي تتبعها التطبيقات التي تستخدم SSL؟

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

المحلول

فقط للتأكد من صحة المصطلحات الخاصة بنا، تتكون "شهادة SSL" في اللغة الشائعة من عنصرين:

  • شهادة عامة
  • مفتاح خاص

يتم توقيع مكون الشهادة العامة بواسطة المرجع المصدق (CA) الذي اخترته، وبعد ذلك يمكن توزيعه مجانًا.لا يلزم تأمينها أو تشفيرها، وبالفعل سيتم إرسالها إلى العملاء الذين يتصلون بالخادم الخاص بك كجزء من مفاوضات SSL.

يجب حماية مكون المفتاح الخاص.في معظم الحالات، يتم تخزين هذا ببساطة كملف مشفر على الخادم.تستخدم الحلول المتطورة أجهزة تشفير مخصصة "مضادة للتلاعب" (HSMs - وحدات أمان الأجهزة) لتخزين المفتاح الخاص.وتتراوح هذه الحلول من الحلول القائمة على البطاقة الذكية إلى الأجهزة متعددة المفاتيح التي تدعم الشبكة مع عناصر التحكم m/n وما إلى ذلك.هناك مخاطر (ناهيك عن التكاليف) مرتبطة بوحدات HSM التي لن أخوض فيها هنا.

تحتفظ العديد من التطبيقات ببساطة بالمفتاح الخاص الموجود على القرص.هناك خياران لتأمين ملف المفتاح:

  • اعتمد على أمان أذونات النظام والملفات (أي لا تقم بتشفير المفتاح الخاص).على سبيل المثال، تقوم معظم برامج ssh بذلك.
  • استخدم أي آلية يوفرها خادمك لتشفير الملف - يعد التشفير المحمي بكلمة مرور ميزة قياسية عبر معظم خوادم الويب.(إذا كنت تقوم بتدوير ملفك الخاص باستخدام OpenSSL API، فاختر أحد تنسيقات المفاتيح الأصلية الواضحة).

كما هو الحال دائمًا، هناك مقايضة أمنية.على وجه الخصوص، إذا كنت تستخدم تشفيرًا محميًا بكلمة مرور على ملف المفتاح الخاص وواجهت إعادة تشغيل غير متوقعة للتطبيق (على سبيل المثال، انقطاع التيار الكهربائي)، فيجب أن يكون شخص ما متاحًا لتوفير كلمة المرور للتطبيق عند إعادة تشغيله.إن تخزين كلمة المرور في ملف تتم قراءته بواسطة البرامج النصية لتهيئة النظام (كما يشجعه اثنان على الأقل من بائعي خوادم الويب) لا يضيف سوى القليل من حيث الأمان الحقيقي.من الصعب التوصية بترك ملف المفتاح الخاص غير مشفر، ولكن إذا كنت المسؤول/التقني الوحيد في متجر صغير، فيجب عليك بالتأكيد التفكير فيما قد يحدث إذا تم إعادة تشغيل الخادم عندما لا تكون متاحًا، وما هي التكاليف التي قد يتحملها عملك .

نصائح أخرى

وليس تماما بالتأكيد ما كنت أحاول أن نسأل. يتم إرسال سيرت خادم لكم، العميل. التحقق من صحة سيرت عن طريق التحقق من توقيعه (استخدام SHA-1 لا MD5، وقد تصدع MD5.) المفتاح لديك من CA هو الجانب العام؛ وCA وحامل الخادم سيرت حفاظ على مفاتيح خاصة لأنفسهم. يمكنك التحقق من صحة سيرت لأن المفتاح العمومي يكفي ل<م> فك رسالة التي تم تشفير مع المفتاح الخاص. لذلك لم يكن لديك ما يدعو للقلق، وعلى الجانب cient، حول الحفاظ على سيرت مشفرة على الإطلاق.

وإلقاء نظرة على مقالة ويكيبيديا على SSL / TLS .

<اقتباس فقرة>   

وأنا في حيرة حول كيف يجب تأمين شهادة الخادم.

وليس لديك لتأمين شهادة الخادم. انها وثيقة عامة

<اقتباس فقرة>   

وأود أن تشفير شهادة الخادم الذي يحتوي على المفتاح الخاص

وشهادة الخادم لا يحتوي على المفتاح الخاص.

<اقتباس فقرة>   

ولكن أنا لا ترغب في استخدام أي من مفاتيح الثابت ترميز لهذا التشفير.

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

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