واليوم ننتقل إلى الجزء العملي. لنبدأ بإعداد CA الخاص بنا استنادًا إلى مكتبة التشفير مفتوحة المصدر الكاملة openSSL. تم اختبار هذه الخوارزمية باستخدام Windows 7.
مع تثبيت openSSL، يمكننا إجراء عمليات تشفير متنوعة (مثل إنشاء المفاتيح والشهادات) عبر سطر الأوامر.
خوارزمية الإجراءات هي كما يلي:
قم بتنزيل توزيع التثبيت openssl-1.1.1g.
لدى openSSL إصدارات مختلفة. تشير وثائق Rutoken إلى أن الإصدار 1.1.0 من openSSL أو الأحدث مطلوب. لقد استخدمت نسخة opensl-1.1.1g. يمكنك تنزيل openSSL من الموقع الرسمي، ولكن لتثبيت أسهل، تحتاج إلى العثور على ملف التثبيت لنظام التشغيل Windows على الشبكة. فعلت هذا بالنسبة لك: slproweb.com/products/Win32OpenSSL.html
قم بالتمرير لأسفل الصفحة وقم بتنزيل Win64 OpenSSL v1.1.1g EXE 63MB Installer.
قم بتثبيت opensl-1.1.1g على الكمبيوتر.
يجب أن يتم التثبيت وفقًا للمسار القياسي، والذي تتم الإشارة إليه تلقائيًا في المجلد C: Program Files. سيتم تثبيت البرنامج في المجلد OpenSSL-Win64.
من أجل إعداد openSSL بالطريقة التي تريدها، يوجد ملف openssl.cfg. يوجد هذا الملف في المسار C:\Program Files\OpenSSL-Win64bin إذا قمت بتثبيت openSSL كما هو موضح في الفقرة السابقة. انتقل إلى المجلد حيث تم تخزين openssl.cfg وافتح هذا الملف باستخدام Notepad++، على سبيل المثال.
ربما خمنت أنه سيتم تكوين المرجع المصدق بطريقة ما عن طريق تغيير محتويات الملف openssl.cfg، وأنت على حق تمامًا. يتطلب هذا تخصيص الأمر [ca]. في ملف opensl.cfg، يمكن العثور على بداية النص الذي سنقوم بإجراء التغييرات فيه على النحو التالي: [ca].
نحن الآن بحاجة إلى إنشاء دليل demoCA والأدلة الفرعية كما هو موضح في المثال أعلاه. وضعه في هذا الدليل على طول المسار المحدد في dir (لدي /Users/username/bin/openSSLca/demoCA).
من المهم جدًا كتابة dir بشكل صحيح - هذا هو المسار إلى الدليل الذي سيقع فيه مركز الشهادات الخاص بنا. يجب أن يكون هذا الدليل موجودًا في /Users (أي في حساب بعض المستخدمين). إذا قمت بوضع هذا الدليل، على سبيل المثال، في C: Program Files، فلن يرى النظام الملف الذي يحتوي على إعدادات openssl.cfg (على الأقل كان الأمر كذلك بالنسبة لي).
$dir - يتم استبدال المسار المحدد في dir هنا.
نقطة أخرى مهمة هي إنشاء ملف Index.txt فارغ، فبدون هذا الملف لن تعمل أوامر "openSSL ca...".
تحتاج أيضًا إلى ملف تسلسلي، ومفتاح خاص للجذر (ca.key)، وشهادة جذر (ca.crt). سيتم وصف عملية الحصول على هذه الملفات أدناه.
نقوم بتوصيل خوارزميات التشفير التي تقدمها Rutoken.
يحدث هذا الاتصال في ملف openssl.cfg.
أولا وقبل كل شيء، تحتاج إلى تنزيل خوارزميات Rutoken الضرورية. هذه هي الملفات rtengine.dll، rtpkcs11ecp.dll.
للقيام بذلك، قم بتنزيل Rutoken SDK: www.rutoken.ru/developers/sdk.
إن Rutoken SDK هو كل ما هو متاح للمطورين الذين يرغبون في تجربة Rutoken. يوجد كلا المثالين المنفصلين للعمل مع Rutoken بلغات برمجة مختلفة، ويتم تقديم بعض المكتبات. توجد مكتباتنا rtengine.dll وrtpkcs11ecp.dll في Rutoken sdk، على التوالي، في الموقع:
نقطة مهمة جدا. لا تعمل المكتبات rtengine.dll وrtpkcs11ecp.dll بدون برنامج التشغيل المثبت لـ Rutoken. يجب أيضًا توصيل Rutoken بالكمبيوتر. (لتثبيت كل ما تحتاجه لـ Rutoken، راجع الجزء السابق من المقالة habr.com/ar/post/506450)
يمكن الاحتفاظ بمكتبات rtengine.dll وrtpkcs11ecp.dll في أي مكان في حساب المستخدم.
نكتب المسارات إلى هذه المكتبات في opensl.cfg. للقيام بذلك، افتح الملف openssl.cfg، ضع السطر في بداية هذا الملف:
Dynamic_path - يجب عليك تحديد المسار الخاص بك إلى مكتبة rtengine.dll.
MODULE_PATH - تحتاج إلى تعيين المسار الخاص بك إلى مكتبة rtpkcs11ecp.dll.
إضافة متغيرات البيئة.
تأكد من إضافة متغير بيئة يحدد المسار إلى ملف التكوين openssl.cfg. في حالتي، تم إنشاء المتغير OPENSSL_CONF بالمسار C:Program FilesOpenSSL-Win64binopenssl.cfg.
في متغير المسار، يجب عليك تحديد المسار إلى المجلد الذي يوجد به openssl.exe، في حالتي هو: C: Program FilesOpenSSL-Win64bin.
يمكنك الآن العودة إلى الخطوة 5 وإنشاء الملفات المفقودة لدليل demoCA.
الملف المهم الأول الذي بدونه لن يعمل شيء هو الملف التسلسلي. هذا ملف بدون امتداد، وقيمته يجب أن تكون 01. يمكنك إنشاء هذا الملف بنفسك وكتابة 01 بداخله، ويمكنك أيضًا تنزيله من Rutoken SDK على طول المسار sdk/openssl/rtengine/samples/tool/demoCA /.
يحتوي دليل demoCA على الملف التسلسلي، وهو بالضبط ما نحتاجه.
قم بإنشاء مفتاح خاص للجذر.
للقيام بذلك، سوف نستخدم أمر مكتبة openSSL، والذي يجب تشغيله مباشرة على سطر الأوامر: