العمل مع حماية معلومات التشفير وحاملات مفاتيح الأجهزة في Linux


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

سوف أخبرك اليوم كيف نحمي مفاتيح التشفير والتوقيعات الإلكترونية في أنظمة المعلومات الخاصة بنا ، وسأفعل ذلك في دليل مفصل ومصور جيدًا لإعداد SUSE Linux Enterprise Server 12 SP3 للعمل مع رمز علاء الدين JaCarta PKI و CryptoPro CSP KC2 4.0.9944.

كانت هناك عدة أسباب لنشر هذا الدليل:

السبب 1


تم تكييف الوثائق الرسمية الخاصة بـ Aladdin-RD JaCarta لأنظمة تشغيل Astra Linux و ALT Linux ، المعتمدة من قبل وزارة الدفاع و FSTEC و FSB كوسيلة لحماية المعلومات.

السبب 2


أفضل إرشادات لتكوين التفاعل مع وسائط الأجهزة في Linux ، والتي تم العثور عليها ، كانت أيضًا من wiki.astralinux.ru - العمل مع CryptoPro CSP

السبب 3


UPD 04/16/2019: أثناء عملية الإعداد للبيئة والمعدات ، اتضح أن شركة الاتصالات التي كانت متوفرة لأول مرة لم تكن JaCarta PKI Nano على الإطلاق ، كما هو متوقع ، ولكن جهاز يعمل في وضع عميل SafeNet Authentication eToken PRO.

UPD 04/16/2019: بمجرد أن يحتاج البنك إلى جهاز يمكنه العمل في نفس البنية التحتية مثل eToken PRO (Java). على هذا النحو ، فإن شركة "ZAO Aladdin R.D." عرضت على JaCarta PRO الرمز المميز ، والذي تم اختياره من قبل البنك. ومع ذلك ، في مرحلة تشكيل المادة ووثائق الشحن ، ارتكب أحد موظفي الشركة خطأ. بدلاً من نموذج JaCarta PRO ، تم إدخال JaCarta PKI بطريق الخطأ في مستندات المقالة والشحن.

UPD 04/16/2019: أشكر شركة علاء الدين R.D. للمساعدة في معرفة وتأكيد الحقيقة.

لا توجد معاني سياسية ومخفية في هذا الخطأ ، ولكن يوجد خطأ فني للموظف في إعداد المستندات. Token JaCarta PRO هو منتج لشركة Aladdin R.D. تم تطوير التطبيق الصغير الذي يؤدي الجزء الوظيفي من قبل شركة "ZAO Aladdin R.D."


تم إصدار eToken PRO لحزب تم إصداره قبل الأول من ديسمبر 2017.
بعد هذا التاريخ ، شركة "علاء الدين ر." توقف عن بيع أجهزة eToken PRO (Java).

مع التقدم قليلاً ، يجب أن أقول إن العمل معه تم تهيئته من خلال برامج التشغيل المناسبة - SafenetAuthenticationClient-10.0.32-0.x86_64 ، والتي لا يمكن الحصول عليها إلا لدعم Aladdin R.D. على تطبيق منفصل عبر الإنترنت.

في CryptoPro CSP ، للعمل مع هذا الرمز المميز ، كان مطلوبًا لتثبيت حزمة cprocsp-rdr-emv-64 | وحدة دعم EMV / Gemalto .

تم تحديد هذا الرمز المميز والرد عليه. باستخدام الأداة المساعدة SACTools من حزمة SafenetAuthenticationClient ، كان من الممكن تهيئتها. ولكن عند العمل مع حماية معلومات التشفير ، تصرف بشكل غريب للغاية ولا يمكن التنبؤ به.

تم عرضه على النحو التالي ، في الأمر:

csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (205D325E5842) 00 00\alfa_shark' -check 

كان الجواب أن كل شيء على ما يرام:

 [ErrorCode: 0x00000000] 

ولكن فور محاولة قراءة المفاتيح برمجيًا ، بدأ الاختيار نفسه في إنتاج خطأ:

 [ErrorCode: 0x8009001a] 

وفقًا لقائمة رموز الأخطاء الخاصة بنموذج الكائن لمكونات رموز خطأ Microsoft COM (الأمان والإعداد)

 NTE_KEYSET_ENTRY_BAD 0x8009001A Keyset as registered is invalid. 

"مجموعة مفاتيح غير صالحة" - قد يكمن سبب مثل هذه الرسالة في شريحة Gemalto القديمة والبرامج الثابتة والتطبيق الصغير أو في برامج التشغيل الخاصة بها لنظام التشغيل التي لا تدعم معايير إنشاء ES الجديدة ووظائف التجزئة GOST R 34.10-2012 و GOST R 34.11- 2012.

في هذه الحالة ، تم حظر الرمز المميز. بدأ مؤشر حماية معلومات التشفير في إظهار الحالة غير الملائمة للقارئ وحاوية المفتاح. إعادة تشغيل خدمة موفر التشفير cprocsp ، لم يساعد الرمز المميز pcscd وخدمات البطاقة الذكية ونظام التشغيل بأكمله ، فقط التهيئة.

في الإنصاف ، تجدر الإشارة إلى أن SafeNet eToken PRO يعمل بشكل صحيح مع مفاتيح GOST R 34.10-2001 في نظامي التشغيل Windows 7 و 10.

يمكنك محاولة تثبيت CryptoPro CSP 4.0 FCN (Gemalto) ، لكن الهدف هو حماية مفاتيح ES والتشفير لدينا من خلال منتجات FSB و FSTEC المعتمدة من عائلة JaCarta والتي تدعم المعايير الجديدة.

تم حل المشكلة عن طريق أخذ الرمز المميز JaCarta PKI الحقيقي في غلاف عادي (XL).

ولكن تم قضاء الكثير من الوقت في محاولة جعل Safenet eToken PRO يعمل. أردت لفت الانتباه إلى هذا ، وربما حماية شخص ما من هذا.

السبب 4


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

دليل الإعداد


بعد تثبيت الرمز المميز JaCarta PKI في منفذ USB للخادم وبدء تشغيل النظام ، نتحقق من اكتشاف الجهاز الجديد ويظهر في القائمة:

lsusb



في حالتنا ، يكون Bus 004 Device 003: ID 24dc: 0101

لتشخيص القراء ، يمكنك استخدام الأداة المساعدة pcsc أدوات من الأمن: مشروع chipcard (software.opensuse.org) .

يتم تشغيله بواسطة الأمر:

pcsc_scan



حتى يتم تثبيت جميع الحزم اللازمة ، لن يتم عرض معلومات حول الرمز.

تثبيت برامج التشغيل والبرامج للعمل مع JaCarta PKI


على صفحة الدعم لموقع "علاء الدين ر. د" نقوم بتنزيل الوثائق والبرامج للعمل فقط مع JaCarta PKI

وفقًا لـ JaCarta for Linux Implementation Guide ، الفقرة 4.2. ، تتمثل الخطوة الأولى في تثبيت pcsc-lite و ccid و libusb .
لكي تعمل أداة إدارة JaCarta ، يجب تثبيت المكونات التالية:

  • PC / SC Lite - طبقة متوسطة لتوفير الوصول إلى البطاقات الذكية وفقًا لمعيار PC / SC ، الحزمة pcsc-lite.
  • مكتبات Ccid و libusb للعمل مع مفاتيح USB والبطاقات الذكية وقارئات البطاقات الذكية.
نتحقق من توفر هذه الحزم وتثبيت:

zypper search pcsc-lite



zypper search libusb



zypper install pcsc-lite





zypper search CCID



zypper install pcsc-ccid



zypper search CCID



zypper install libusb



نتيجة لذلك ، تم تحديث الحزمة pcsc-lite ، تم تثبيت CCID ، ولم يكن مطلوبًا أي إجراء.

يقوم الأمران التاليان بتثبيت الحزمة مع برامج التشغيل والبرامج مباشرة للعمل مع JaCarta PKI:

zypper install idprotectclientlib-637.03-0.x86_64.rpm



zypper install idprotectclient-637.03-0.x86_64.rpm



تحقق من تثبيت برامج التشغيل والبرامج الخاصة بـ JaCarta PKI:

zypper search idprotectclient



عند محاولة تشغيل SafeNet eToken PRO ، وجدت معلومات مفادها أن الحزمة - Library الخاصة بقراء البطاقات الذكية المثبتة مسبقًا في SLES قد تتعارض مع pcsc-lite - مكتبة البطاقات الذكية PCSC ، والتي يتطلب تركيبها Aladdin R.D.

zypper search openct



لذلك ، نزيل الحزمة openct:

rpm -e openct

الآن يتم تثبيت جميع برامج التشغيل والبرامج الضرورية للعمل مع الرمز المميز.

نقوم بإجراء تشخيصات باستخدام الأداة المساعدة pcsc ونتأكد من اكتشاف JaCarta في نظام التشغيل:

pcsc_scan



تثبيت حزم CryptoPro CSP


عند تثبيت CryptoPro CSP افتراضيًا ، تكون الحزم اللازمة للعمل مع الرموز والبطاقات الذكية مفقودة.

zypper search cprocsp



تثبيت مكونات JaCarta لمكون دعم CryptoPro CSP في CSP

zypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm



بعض المكونات لها تبعيات. لذلك ، على سبيل المثال ، إذا حاولت تثبيت حزمة دعم SafeNet eToken PRO cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm - وحدة دعم EMV / Gemalto ، فستتلقى رسالة حول الحاجة إلى تثبيت المكون الأساسي لدعم cprocsp -rdr-pcsc-64-4.0.9944-5.x86_64.rpm - مكونات الكمبيوتر / SC لأجهزة قراءة CryptoPro CSP :

 zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm Loading repository data... Reading installed packages... Resolving package dependencies... Problem: nothing provides cprocsp-rdr-pcsc-64 >= 4.0 needed by cprocsp-rdr-emv-64-4.0.9944-5.x86_64 Solution 1: do not install cprocsp-rdr-emv-64-4.0.9944-5.x86_64 Solution 2: break cprocsp-rdr-emv-64-4.0.9944-5.x86_64 by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/c] (c): c 

تثبيت حزم الدعم الأساسية للقراء والوسائط الأساسية:

zypper install cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm



zypper install lsb-cprocsp-pkcs11-64-4.0.9944-5.x86_64.rpm

يمكنك الآن تثبيت الوحدات النمطية للعمل مع الأنواع الأخرى من الوسائط ومكونات واجهة المستخدم الرسومية:

zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm



 zypper install cprocsp-rdr-novacard-64-4.0.9944-5.x86_64.rpm zypper install cprocsp-rdr-mskey-64-4.0.9944-5.x86_64.rpm zypper install cprocsp-rdr-gui-gtk-64-4.0.9944-5.x86_64.rpm 



تحقق من التكوين النهائي لـ CryptoPro CSP:

 zypper search cprocsp Loading repository data... Reading installed packages... 


S | Name | Summary | Type
---+-----------------------------+----------------------------------------------------+--------
i+ | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | package
i+ | cprocsp-rdr-emv-64 | EMV/Gemalto support module | package
i+ | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | package
i+ | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | package
i+ | cprocsp-rdr-mskey-64 | Mskey support module | package
i+ | cprocsp-rdr-novacard-64 | Novacard support module | package
i+ | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| package
i+ | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | package
i+ | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | package
i+ | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | package
i+ | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | package
i+ | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | package
i+ | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package




لتطبيق التغييرات ، نقوم بإعادة تشغيل خدمة موفر التشفير والتحقق من حالتها:

 /etc/init.d/cprocsp restart /etc/init.d/cprocsp status 



CryptoPro CSP الإعداد والتشخيص


تحقق مما إذا كان موفر التشفير يرى الرمز المميز وأنواع الوسائط الأخرى المتاحة لدينا باستخدام الأوامر التالية:

/opt/cprocsp/bin/amd64/csptest -card -enum -v –v



/opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251



/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view -f cp1251



علاء الدين RD JaCarta [SCR Interface] (000000000000) 00 00 هو وسيطنا .

باتباع تعليمات CryptoPro CSP لنظام التشغيل Linux. تكوين ، وتنفيذ التسجيل في مزود التشفير:

 /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add "Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00" 



كنتيجة للتنفيذ في ملف التكوين / etc /opt/cprocsp/config64.ini
ستتم إضافة إدخال إلى قسم [KeyDevices \ PCSC]:

[KeyDevices\PCSC\"Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00"\Default]


من أجل الامتثال لمتطلبات نموذج CryptoPro CSP وشروط الاستخدام ودليل مسؤول الأمن:
لا يُسمح باستخدام CryptoPro CSP CIP الإصدار 4.0 مع وضع التحكم بالمفتاح المحسن. يوصف إدراج هذا الوضع في الوثائق ZHTYA.00087-01 91 02. دليل مسؤول الأمن.
من الضروري تمكين التحكم المحسن في استخدام المفتاح:

 /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long StrengthenedKeyUsageControl 1 

تحقق من تمكين الوضع:

cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl



نعيد تشغيل خدمة مزود التشفير:

 /etc/init.d/cprocsp restart /etc/init.d/cprocsp status 

بعد إعادة التشغيل ، نتحقق من عدم وجود أخطاء في عمل المزود مع شركات النقل الرئيسية:

/opt/cprocsp/bin/amd64/csptest -keyset –verifycontext



/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum –unique

 CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:REA AcquireContext: OK. HCRYPTPROV: 16052291 alfa_shark1 |SCARD\JACARTA_4E3900154029304C\CC00\E9F6 OK. Total: SYS: 0.000 sec USR: 0.000 sec UTC: 4.560 sec [ErrorCode: 0x00000000] 

العمل مع JaCarta PKI رمز


لنقم بتشغيل برنامج Xming (إعادة توجيه X11) في محطتنا حتى نتمكن من فتح واجهات العمل الرسومية للأدوات المساعدة الضرورية من خلال SSH.



بعد تثبيت IDProtectClient - برنامج للعمل مع JaCarta PKI ، ظهر ملفان على الخادم في مجلد / usr / share / applications :

Athena-IDProtectClient.desktop
Athena-IDProtectManager.desktop

هذه اختصارات حيث يمكنك رؤية خيارات بدء التشغيل للأدوات المساعدة Exec = / usr / bin / SACTools

قم بتشغيل الأداة المساعدة IDProtectPINTool .

استخدامه ، يتم تعيين رموز الوصول PIN للرمز وتغييرها.

/usr/bin/IDProtectPINTool



عند تهيئة الرمز المميز لأول مرة ، سيكون الارتباط الذي يحتوي على رموز PIN (كلمات المرور) لشركات المفاتيح بشكل افتراضي مفيدًا

يتيح لك برنامج IDProtect_Manager عرض معلومات حول الرمز المميز والحاوية مع المفاتيح والشهادة:

/usr/bin/IDProtect_Manager



للوصول إلى الحاوية مع المفاتيح التي تحتاجها لإدخال كلمة المرور:





للعمل مع SafeNet Authentication Client eToken PRO ، هناك برامج مماثلة - SafeNet Authentication Client Monitor و SafeNet Authentication Client Tools ، والتي تعمل مثل هذا:

 /usr/bin/SACMonitor /usr/bin/SACTools 



يعد إجراء العمليات أكثر ملاءمةً مع حاويات المفاتيح في واجهة مزود التشفير CryptoPro JavaCSP:

/jdk1.8.0_181/jre/bin/java ru.CryptoPro.JCP.ControlPane.MainControlPane




لعرض معلومات حول محتويات الحاوية مع المفاتيح ، يمكنك تشغيل الأمر:

 /opt/cprocsp/bin/amd64/csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00\alfa_shark1' -info 

لتشخيص الحاوية ، استخدم نفس الأمر مع مفتاح التبديل

 /opt/cprocsp/bin/amd64/csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00\alfa_shark' –check 

ستحتاج إلى إدخال كلمة المرور للحاوية:





استرجاع مفتاح البرنامج


بشكل عام ، مثال على استرداد مفتاح خاص وشهادة مفتاح عمومي من حاوية على رمز مميز باستخدام CryptoPro Java CSP كما يلي:

 import ru.CryptoPro.JCP.KeyStore.JCPPrivateKeyEntry; import ru.CryptoPro.JCP.params.JCPProtectionParameter; KeyStore keyStore = KeyStore.getInstance("Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00", "JCSP"); keyStore.load(null, null); JCPPrivateKeyEntry entry = null; X509Certificate certificate = null; PrivateKey privateKey = null; try { entry = (JCPPrivateKeyEntry) keyStore.getEntry(keyAlias, new JCPProtectionParameter(pwd)); certificate = (X509Certificate) entry.getCertificate(); privateKey = entry.getPrivateKey(); } catch (UnrecoverableEntryException | NullPointerException e) { LOGGER.log(Level.WARNING, PRIVATE_KEY_NOT_FOUND + keyAlias + ExceptionUtils.getFullStackTrace(e)); } 


إذا كنت تتصرف مثل هذا:

 Key key = keyStore.getKey(keyAlias, pwd); 

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

النتائج


يتم تثبيت الرمز المميز لحامل المفتاح الرمز في منفذ USB الداخلي للخادم.

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

يمكن أن تؤدي هذه التدابير إلى زيادة مستوى حماية أنظمة المعلومات الخاصة بنا من سرقة مفاتيح التوقيع أو التشفير الإلكترونية والمساومة عليها ، سواء عن بعد عبر الشبكة أو ماديًا.

روابط مفيدة


  1. Aladdin-RD JaCarta الوثائق
  2. wiki.astralinux.ru - العمل مع CryptoPro CSP
  3. قائمة رموز الأخطاء في طراز كائن مكونات رموز خطأ Microsoft COM (الأمان والإعداد)
  4. CryptoPro CSP 4.0 CSP 4.0 FCN (جيمالتو)
  5. أداة تشخيص قارئ Pcsc-tools من الأمان: مشروع chipcard (software.opensuse.org)
  6. CryptoPro CSP لنظام التشغيل Linux. التخصيص.
  7. أرقام PIN الخاصة بشركة Aladdin-RD الافتراضية (كلمات المرور)

Source: https://habr.com/ru/post/ar441212/


All Articles