Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

سادو پاسورڊ محفوظ نه آهن، ۽ پيچيده پاس ورڊ ياد رکڻ ناممڪن آهي. انهي ڪري اهي اڪثر ڪري ڪيبورڊ يا مانيٽر تي هڪ چپچپا نوٽ تي ختم ٿي ويندا آهن. انهي ڳالهه کي يقيني بڻائڻ لاءِ ته پاسورڊ "وساريندڙ" استعمال ڪندڙن جي ذهنن ۾ رهي ٿو ۽ تحفظ جي اعتبار نه وڃائجي، اتي ٻه عنصر جي تصديق (2FA) آهي.

ھڪڙي ڊوائيس جي مالڪ جي ميلاپ ۽ ان جي پن کي ڄاڻڻ جي ڪري، پن پاڻ کي آسان ۽ ياد رکڻ لاء آسان ٿي سگھي ٿو. PIN جي ڊگھائي يا بي ترتيبيءَ ۾ نقصان جسماني قبضي جي گهرج ۽ PIN برٽ فورس تي پابندين جي ڪري ختم ٿي ويا آهن.

ان کان علاوه، اهو سرڪاري ادارن ۾ ٿئي ٿو ته اهي هر شي کي GOST جي مطابق ڪم ڪرڻ چاهيندا آهن. لينڪس ۾ لاگ ان ٿيڻ لاء هي 2FA اختيار تي بحث ڪيو ويندو. مان پري کان شروع ڪندس.

PAM ماڊلز

Pluggable Authentication Modules (PAM) ھڪ معياري API سان گڏ ماڊلز آھن ۽ ايپليڪيشنن ۾ مختلف تصديق واري ميڪانيزم تي عمل درآمد ڪن ٿا.
سڀئي افاديتون ۽ ايپليڪيشنون جيڪي ڪم ڪري سگھن ٿيون PAM انھن کي وٺي سگھن ٿيون ۽ انھن کي استعمال ڪري سگھن ٿيون صارف جي تصديق لاءِ.
عملي طور تي، اهو ڪجهه هن طرح ڪم ڪري ٿو: لاگ ان ڪمانڊ PAM کي سڏي ٿو، جيڪو ترتيب ڏيڻ واري فائل ۾ بيان ڪيل ماڊل استعمال ڪندي سڀني ضروري چيڪن کي انجام ڏئي ٿو ۽ نتيجو واپس لاگ ان ڪمانڊ ڏانهن موٽائي ٿو.

librtpam

ايڪٽيو ڪمپني پاران تيار ڪيل ماڊل سمارٽ ڪارڊ يا يو ايس بي ٽوڪن استعمال ڪندڙ صارفين جي ٻن عنصر جي تصديق کي شامل ڪري ٿو غير معياري ڪيز استعمال ڪندي گهريلو ڪرپٽوگرافي جي جديد معيارن مطابق.

اچو ته ان جي آپريشن جي اصول تي نظر:

  • ٽوڪن صارف جي سرٽيفڪيٽ ۽ ان جي خانگي چيڪ کي محفوظ ڪري ٿو؛
  • سرٽيفڪيٽ استعمال ڪندڙ جي گهر ڊاريڪٽري ۾ محفوظ ڪيو ويو آهي جيئن قابل اعتماد.

تصديق جي عمل هيٺ ڏنل آهي:

  1. Rutoken صارف جي ذاتي سرٽيفڪيٽ جي ڳولا ڪري ٿو.
  2. ٽوڪن پن جي درخواست ڪئي وئي آهي.
  3. بي ترتيب واري ڊيٽا سڌو سنئون رتوڪن چپ ۾ نجي چيڪ تي دستخط ٿيل آهي.
  4. نتيجو ڪندڙ دستخط جي تصديق ڪئي وئي آهي عوامي ڪيئي استعمال ڪندي صارف جي سرٽيفڪيٽ مان.
  5. ماڊل واپسي دستخط جي تصديق جو نتيجو ڪالنگ ايپليڪيشن ڏانهن.

توھان تصديق ڪري سگھوٿا GOST R 34.10-2012 ڪيز (ڊگھائي 256 يا 512 بٽ) يا پراڻي ٿيل GOST R 34.10-2001.

توهان کي چيڪن جي حفاظت جي باري ۾ پريشان ٿيڻ جي ضرورت ناهي - اهي سڌو سنئون رتوڪن ۾ ٺاهيا ويا آهن ۽ ڪرپٽوگرافڪ عملن دوران ان جي ياداشت کي ڪڏهن به نه ڇڏيندا آهن.

Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

Rutoken EDS 2.0 NDV 4 جي مطابق FSB ۽ FSTEC پاران تصديق ٿيل آهي، تنهن ڪري اهو معلوماتي سسٽم ۾ استعمال ڪري سگهجي ٿو جيڪو رازداري معلومات کي پروسيس ڪري ٿو.

عملي استعمال

لڳ ڀڳ ڪنهن به جديد لينڪس ڪندا، مثال طور اسين استعمال ڪنداسين xUbuntu 18.10.

1) ضروري پيڪيجز کي انسٽال ڪريو

sudo apt-get install libccid pcscd opensc
جيڪڏهن توهان اسڪرين سيور سان ڊيسڪ ٽاپ لاڪ شامل ڪرڻ چاهيو ٿا، اضافي طور تي پيڪيج انسٽال ڪريو libpam-pkcs11.

2) GOST سپورٽ سان PAM ماڊل شامل ڪريو

مان لائبريري لوڊ ڪري رهيو آهي https://download.rutoken.ru/Rutoken/PAM/
PAM فولڊر جي مواد کي نقل ڪريو librtpam.so.1.0.0 سسٽم فولڊر ۾
/usr/lib/ يا /usr/lib/x86_64-linux-gnu/يا /usr/lib64

3) پيڪيج انسٽال ڪريو librtpkcs11ecp.so سان

لنڪ تان DEB يا RPM پيڪيج ڊائون لوڊ ۽ انسٽال ڪريو: https://www.rutoken.ru/support/download/pkcs/

4) چيڪ ڪريو ته Rutoken EDS 2.0 سسٽم ۾ ڪم ڪري ٿو

ٽرمينل ۾ اسان عمل ڪريون ٿا
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
جيڪڏهن توهان لائن ڏسو Rutoken ECP <no label> - مطلب ته سڀ ٺيڪ آهي.

5) سرٽيفڪيٽ پڙهو

چيڪ ڪري رهيو آهي ته ڊوائيس وٽ هڪ سرٽيفڪيٽ آهي
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
جيڪڏهن لائن کان پوء:
Using slot 0 with a present token (0x0)

  • معلومات ڏيکاريل آهي چيڪ ۽ سرٽيفڪيٽ بابت، توهان کي سرٽيفڪيٽ پڙهڻ ۽ ڊسڪ ۾ محفوظ ڪرڻ جي ضرورت آهي. ائين ڪرڻ لاءِ، ھيٺ ڏنل ڪمانڊ ھلايو، جتي {id} جي بدران توھان کي سرٽيفڪيٽ ID کي تبديل ڪرڻ جي ضرورت آھي جيڪا توھان اڳئين ڪمانڊ جي ٻاھرين ۾ ڏٺي ھئي.
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    جيڪڏهن cert.crt فائل ٺاهي وئي آهي، اڳتي وڌو قدم 6).
  • ڪجھ به ناهي، پوءِ ڊوائيس خالي آهي. پنهنجي منتظم سان رابطو ڪريو يا ايندڙ قدم تي عمل ڪندي پاڻ کي چابيون ۽ سرٽيفڪيٽ ٺاهيو.

5.1) ٽيسٽ سرٽيفڪيٽ ٺاهيو

ڌيان! چيڪ ۽ سرٽيفڪيٽ ٺاهڻ لاءِ بيان ڪيل طريقا جاچ لاءِ موزون آهن ۽ جنگي موڊ ۾ استعمال لاءِ نه آهن. ائين ڪرڻ لاءِ، توهان کي پنهنجي تنظيم جي قابل اعتماد سرٽيفڪيشن اٿارٽي يا هڪ تصديق ٿيل سرٽيفڪيشن اٿارٽي پاران جاري ڪيل ڪي ۽ سرٽيفڪيٽ استعمال ڪرڻ گهرجن.
PAM ماڊل مقامي ڪمپيوٽرن جي حفاظت لاءِ ٺهيل آهي ۽ ننڍين تنظيمن ۾ ڪم ڪرڻ لاءِ ٺهيل آهي. جيئن ته ڪجھ استعمال ڪندڙ آھن، منتظم سرٽيفڪيشن جي منسوخي جي نگراني ڪري سگھن ٿا ۽ دستي طور تي اڪائونٽن کي بلاڪ ڪري سگھن ٿا، ۽ گڏوگڏ سرٽيفڪيٽ جي صحيح مدت. PAM ماڊل اڃا تائين نه ڄاڻيو آهي ته CRLs استعمال ڪندي سرٽيفڪيٽ جي تصديق ڪيئن ڪجي ۽ اعتماد جي زنجير ٺاهي.

آسان رستو (براؤزر ذريعي)

ٽيسٽ سرٽيفڪيٽ حاصل ڪرڻ لاء، استعمال ڪريو ويب سروس "Rutoken رجسٽريشن سينٽر". عمل 5 منٽ کان وڌيڪ نه وٺي ويندي.

جيڪ جو طريقو (ڪنسول ذريعي ۽ ممڪن طور تي مرتب ڪندڙ)

OpenSC ورجن چيڪ ڪريو
$ opensc-tool --version
جيڪڏهن نسخو 0.20 کان گهٽ آهي، پوء تازه ڪاري يا تعمير ڪريو pkcs11-tool برانچ GOST-2012 سپورٽ سان اسان جي GitHub کان (هن آرٽيڪل جي اشاعت جي وقت، رليز 0.20 اڃا تائين جاري نه ڪيو ويو آهي) يا مکيه OpenSC پروجيڪٽ جي ماسٽر برانچ کان بعد ۾ انجام ڏيو 8cf1e6f

ھيٺ ڏنل پيراگرافن سان ھڪ اھم جوڙو ٺاھيو:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)

--id: اعتراض جي سڃاڻپ ڪندڙ (CKA_ID) جيئن ASCII ٽيبل مان ٻه عددي هيڪس ڪردار نمبر. پرنٽ لائق اکرن لاءِ صرف ASCII ڪوڊ استعمال ڪريو، ڇاڪاڻ ته... id کي اسٽرنگ طور OpenSSL ڏانهن منتقل ڪرڻ جي ضرورت پوندي. مثال طور، ASCII ڪوڊ "3132" اسٽرنگ "12" سان ملندو آهي. سهولت لاء، توهان استعمال ڪري سگهو ٿا آن لائن سروس تارن کي ASCII ڪوڊ ۾ تبديل ڪرڻ لاءِ.

$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132

اڳيون اسان هڪ سرٽيفڪيٽ ٺاهينداسين. ٻه طريقا هيٺ بيان ڪيا ويندا: پهريون هڪ CA ذريعي (اسان استعمال ڪنداسين ٽيسٽ CAs)، ٻيو آهي خود دستخط ٿيل. هن کي ڪرڻ لاءِ، توهان کي پهريون ڀيرو OpenSSL ورجن 1.1 يا بعد ۾ انسٽال ڪرڻ ۽ ترتيب ڏيڻ جي ضرورت آهي Rutoken سان ڪم ڪرڻ لاءِ هڪ خاص rtengine ماڊل ذريعي مينوئل استعمال ڪندي انسٽال ڪرڻ ۽ ترتيب ڏيڻ OpenSSL.
مثال طور: لاءِ '--id 3132OpenSSL ۾ توهان کي وضاحت ڪرڻ جي ضرورت آهي "pkcs11:id=12".

توھان استعمال ڪري سگھوٿا ٽيسٽ CA جون خدمتون، جن مان ڪيترائي آھن، مثال طور، ڏس, ڏس и ڏس، ان لاءِ اسان هڪ سرٽيفڪيٽ لاءِ درخواست ٺاهينداسين

ٻيو اختيار سستي ۾ ڏيڻ ۽ هڪ خود دستخط ٿيل ٺاهڻ آهي
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

ڊوائيس تي سرٽيفڪيٽ اپ لوڊ ڪندي
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

6) سسٽم ۾ سرٽيفڪيٽ رجسٽر ڪريو

پڪ ڪريو ته توهان جو سرٽيفڪيٽ بيس 64 فائل وانگر نظر اچي ٿو:

Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

جيڪڏهن توهان جو سرٽيفڪيٽ هن طرح نظر اچي ٿو:

Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

پوء توھان کي ضرورت آھي سند کي DER فارميٽ کان PEM فارميٽ ۾ تبديل ڪريو (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
اسان ٻيهر چيڪ ڪريون ٿا ته هر شيء هاڻي ترتيب ۾ آهي.

شامل ڪريو سرٽيفڪيٽ کي قابل اعتماد سرٽيفڪيٽن جي لسٽ ۾
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

آخري لائن قابل اعتماد سرٽيفڪيٽن جي لسٽ کي ٻين استعمال ڪندڙن طرفان حادثاتي يا ارادي طور تي تبديل ٿيڻ کان بچائي ٿي. هي ڪنهن کي روڪي ٿو ان جو سرٽيفڪيٽ هتي شامل ڪرڻ ۽ توهان جي طرفان لاگ ان ٿيڻ جي قابل ٿيڻ کان.

7) تصديق قائم ڪريو

اسان جي PAM ماڊل کي ترتيب ڏيڻ مڪمل طور تي معياري آهي ۽ بلڪل ساڳئي طريقي سان ڪيو ويندو آهي جيئن ٻين ماڊلز کي ترتيب ڏيو. فائل ۾ ٺاهيو /usr/share/pam-configs/rutoken-gost-pam جنهن ۾ ماڊل جو پورو نالو، ڇا اهو ڊفالٽ طور فعال ٿيل آهي، ماڊيول جي ترجيح، ۽ تصديق جا پيرا ميٽر.
تصديق جي پيٽرولن ۾ آپريشن جي ڪاميابي جي ضرورتن تي مشتمل آھي:

  • گهربل: اهڙن ماڊلز کي مثبت جواب ڏيڻ گهرجي. جيڪڏهن ماڊل ڪال جو نتيجو هڪ منفي جواب تي مشتمل آهي، اهو نتيجو ٿيندو هڪ تصديق جي غلطي. درخواست ڇڏي ويندي، پر باقي ماڊلز کي سڏيو ويندو.
  • گهربل: گهربل طور تي، پر فوري طور تي تصديق ڪرڻ ۾ ناڪام ٿئي ٿو ۽ ٻين ماڊلز کي نظر انداز ڪري ٿو.
  • ڪافي: جيڪڏهن اهڙي ماڊل کان اڳ گهربل يا ڪافي ماڊلز مان ڪو به ناڪاري نتيجو نه ڏي، پوءِ ماڊل مثبت جواب ڏيندو. باقي ماڊلز کي نظرانداز ڪيو ويندو.
  • اختياري: جيڪڏهن اسٽيڪ تي گهربل ماڊلز نه آهن ۽ ڪافي ماڊلز مان ڪو به مثبت نتيجو نه ٿو ڏئي، ته پوءِ گهٽ ۾ گهٽ هڪ اختياري ماڊلز کي مثبت نتيجو موٽائڻ گهرجي.

مڪمل فائل مواد /usr/share/pam-configs/rutoken-gost-pam:
Name: Rutoken PAM GOST
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

فائل محفوظ ڪريو، پوء عمل ڪريو
$ sudo pam-auth-update
ونڊو ۾ جيڪو ظاهر ٿئي ٿو، ان جي اڳيان هڪ ستارو رکو Rutoken PAM GOST ۽ ڪلڪ ڪريو OK

Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

8) سيٽنگون چيڪ ڪريو

اهو سمجهڻ ته هر شي ترتيب ڏنل آهي، پر ساڳئي وقت سسٽم ۾ لاگ ان ٿيڻ جي صلاحيت نه وڃايو، حڪم داخل ڪريو
$ sudo login
پنهنجو يوزر نالو داخل ڪريو. هر شي صحيح ترتيب ڏني وئي آهي جيڪڏهن سسٽم کي هڪ ڊوائيس پن ڪوڊ جي ضرورت آهي.

Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

9) ڪمپيوٽر کي بلاڪ ڪرڻ لاءِ ترتيب ڏيو جڏهن ٽوڪن ڪڍيو وڃي

پيڪيج ۾ شامل libpam-pkcs11 افاديت شامل آهي pkcs11_eventmgr, جيڪو توهان کي مختلف عملن کي انجام ڏيڻ جي اجازت ڏئي ٿو جڏهن PKCS#11 واقعا ٿين ٿا.
سيٽنگن لاءِ pkcs11_eventmgr ترتيب ڏيڻ واري فائل طور ڪم ڪري ٿو: /etc/pam_pkcs11/pkcs11_eventmgr.conf
مختلف لينڪس ڊسٽريبيوشنز لاءِ، اهو حڪم جيڪو هڪ اڪائونٽ کي بند ڪرڻ جو سبب بڻائيندو آهي جڏهن سمارٽ ڪارڊ يا ٽوڪن کي هٽايو ويندو آهي مختلف هوندو. سي ايم. event card_remove.
ھڪڙي مثال جي ترتيب واري فائل ھيٺ ڏيکاريل آھي:

pkcs11_eventmgr
{
    # Запуск в бэкграунде
    daemon = true;
     
    # Настройка сообщений отладки
    debug = false;
 
    # Время опроса в секундах
    polling_time = 1;
 
    # Установка тайм-аута на удаление карты
    # По-умолчанию 0
    expire_time = 0;
 
    # Выбор pkcs11 библиотеки для работы с Рутокен
    pkcs11_module = usr/lib/librtpkcs11ecp.so;
 
    # Действия с картой
    # Карта вставлена:
    event card_insert {
        # Оставляем значения по умолчанию (ничего не происходит)
        on_error = ignore ;
 
        action = "/bin/false";
    }
 
    # Карта извлечена
    event card_remove {
        on_error = ignore;
         
        # Вызываем функцию блокировки экрана
        
        # Для GNOME 
        action = "dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock";
        
        # Для XFCE
        # action = "xflock4";
        
        # Для Astra Linux (FLY)
        # action = "fly-wmfunc FLYWM_LOCK";
    }
 
    # Карта долгое время извлечена
    event expire_time {
        # Оставляем значения по умолчанию (ничего не происходит)
        on_error = ignore;
 
        action = "/bin/false";
    }
}

ان کان پوء ايپليڪيشن شامل ڪريو pkcs11_eventmgr شروع ڪرڻ لاء. ائين ڪرڻ لاءِ، .bash_profile فائل کي ايڊٽ ڪريو:
$ nano /home/<имя_пользователя>/.bash_profile
فائل جي آخر ۾ pkcs11_eventmgr لائن شامل ڪريو ۽ ريبوٽ ڪريو.

آپريٽنگ سسٽم کي ترتيب ڏيڻ لاءِ بيان ڪيل مرحلا ڪنهن به جديد لينڪس ڊويزن ۾ هدايتون طور استعمال ڪري سگھجن ٿا، بشمول گهريلو.

Rutoken تي GOST-2012 ڪيز استعمال ڪندي لينڪس ۾ مقامي تصديق لاءِ PAM ماڊلز ڪيئن استعمال ڪجي

ٿڪل

لينڪس پي سي روسي حڪومتي ادارن ۾ تيزي سان مقبول ٿي رهيا آهن، ۽ هن او ايس ۾ قابل اعتماد ٻه عنصر جي تصديق قائم ڪرڻ هميشه آسان ناهي. اسان کي هن گائيڊ سان ”پاسورڊ جو مسئلو“ حل ڪرڻ ۾ توهان جي مدد ڪرڻ ۾ خوشي ٿيندي ۽ ان تي گهڻو وقت خرچ ڪرڻ کان سواءِ توهان جي PC تائين پهچ کي محفوظ طور تي محفوظ ڪيو ويندو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو