Rutoken پر GOST-2012 کیز کا استعمال کرتے ہوئے لینکس میں مقامی تصدیق کے لیے PAM ماڈیولز کا استعمال کیسے کریں

Rutoken پر GOST-2012 کیز کا استعمال کرتے ہوئے لینکس میں مقامی تصدیق کے لیے PAM ماڈیولز کا استعمال کیسے کریں

سادہ پاس ورڈ محفوظ نہیں ہیں، اور پیچیدہ پاس ورڈ یاد رکھنا ناممکن ہے۔ یہی وجہ ہے کہ وہ اکثر کی بورڈ کے نیچے یا مانیٹر پر چپچپا نوٹ پر ختم ہوجاتے ہیں۔ اس بات کو یقینی بنانے کے لیے کہ پاس ورڈز "بھولنے والے" صارفین کے ذہنوں میں رہیں اور تحفظ کی وشوسنییتا ختم نہ ہو، دو عنصر کی تصدیق (2FA) ہے۔

کسی آلے کے مالک ہونے اور اس کا PIN جاننے کے امتزاج کی وجہ سے، PIN بذات خود آسان اور یاد رکھنے میں آسان ہو سکتا ہے۔ PIN کی لمبائی یا بے ترتیب ہونے کے نقصانات کو جسمانی قبضے کی ضرورت اور PIN بروٹ فورس پر پابندیوں سے پورا کیا جاتا ہے۔

اس کے علاوہ، یہ سرکاری اداروں میں ہوتا ہے کہ وہ چاہتے ہیں کہ ہر چیز GOST کے مطابق کام کرے۔ لینکس میں لاگ ان کرنے کے لیے اس 2FA آپشن پر بات کی جائے گی۔ میں دور سے شروع کروں گا۔

PAM ماڈیولز

Pluggable Authentication Modules (PAM) ایک معیاری API کے ساتھ ماڈیولز ہیں اور ایپلی کیشنز میں مختلف تصدیقی میکانزم کے نفاذ ہیں۔
تمام یوٹیلیٹیز اور ایپلیکیشنز جو PAM کے ساتھ کام کر سکتی ہیں انہیں اٹھا کر صارف کی تصدیق کے لیے استعمال کر سکتی ہیں۔
عملی طور پر، یہ کچھ اس طرح کام کرتا ہے: لاگ ان کمانڈ PAM کو کال کرتی ہے، جو کنفیگریشن فائل میں متعین ماڈیولز کا استعمال کرتے ہوئے تمام ضروری جانچ پڑتال کرتی ہے اور نتیجہ واپس لاگ ان کمانڈ پر لوٹاتا ہے۔

librtpam

اکٹیو کمپنی کی طرف سے تیار کردہ ماڈیول گھریلو خفیہ نگاری کے تازہ ترین معیارات کے مطابق سمارٹ کارڈز یا USB ٹوکن استعمال کرنے والے صارفین کی دو فیکٹر تصدیق کرتا ہے۔

آئیے اس کے آپریشن کے اصول کو دیکھیں:

  • ٹوکن صارف کے سرٹیفکیٹ اور اس کی نجی کلید کو محفوظ کرتا ہے۔
  • سرٹیفکیٹ کو صارف کی ہوم ڈائرکٹری میں بطور قابل اعتماد محفوظ کیا جاتا ہے۔

توثیق کا عمل اس طرح ہوتا ہے:

  1. Rutoken صارف کے ذاتی سرٹیفکیٹ کو تلاش کرتا ہے۔
  2. ٹوکن پن کی درخواست کی گئی ہے۔
  3. بے ترتیب ڈیٹا کو براہ راست Rutoken چپ میں نجی کلید پر دستخط کیا جاتا ہے۔
  4. نتیجے میں دستخط کی تصدیق صارف کے سرٹیفکیٹ سے عوامی کلید کا استعمال کرتے ہوئے کی جاتی ہے۔
  5. ماڈیول کالنگ ایپلیکیشن کو دستخطی تصدیقی نتیجہ واپس کرتا ہے۔

آپ GOST R 34.10-2012 کیز (لمبائی 256 یا 512 بٹس) یا پرانی GOST R 34.10-2001 کا استعمال کر کے تصدیق کر سکتے ہیں۔

آپ کو چابیاں کی حفاظت کے بارے میں فکر کرنے کی ضرورت نہیں ہے - وہ براہ راست Rutoken میں تیار کی جاتی ہیں اور کرپٹوگرافک آپریشنز کے دوران اس کی یاد کو کبھی نہیں چھوڑتی ہیں۔

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 کا استعمال کرتے ہوئے سرٹیفکیٹ کی تصدیق کیسے کی جائے اور اعتماد کی زنجیریں کیسے بنائیں۔

آسان طریقہ (براؤزر کے ذریعے)

ٹیسٹ سرٹیفکیٹ حاصل کرنے کے لیے، استعمال کریں۔ ویب سروس "روٹوکن رجسٹریشن سینٹر". اس عمل میں 5 منٹ سے زیادہ وقت نہیں لگے گا۔

گیک کا طریقہ (کنسول اور ممکنہ طور پر مرتب کرنے والے کے ذریعے)

اوپن ایس سی ورژن چیک کریں۔
$ opensc-tool --version
اگر ورژن 0.20 سے کم ہے، تو اپ ڈیٹ یا تعمیر کریں۔ GOST-11 سپورٹ کے ساتھ pkcs2012 ٹول برانچ ہمارے 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 استعمال کریں گے)، دوسرا خود دستخط شدہ ہے۔ ایسا کرنے کے لیے، آپ کو پہلے اوپن ایس ایس ایل ورژن 1.1 یا اس کے بعد کے ورژن کو انسٹال اور کنفیگر کرنے کی ضرورت ہے تاکہ مینوئل کا استعمال کرتے ہوئے ایک خصوصی rtengine ماڈیول کے ذریعے Rutoken کے ساتھ کام کیا جا سکے۔ OpenSSL کو انسٹال اور کنفیگر کرنا.
مثال کے طور پر: کے لیے '--id 3132' OpenSSL میں آپ کو وضاحت کرنے کی ضرورت ہے "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 ماڈیولز کا استعمال کیسے کریں

حاصل يہ ہوا

لینکس پی سی روسی سرکاری ایجنسیوں میں تیزی سے مقبول ہو رہے ہیں، اور اس OS میں قابل اعتماد دو فیکٹر تصدیق کرنا ہمیشہ آسان نہیں ہوتا ہے۔ ہمیں اس گائیڈ کے ساتھ "پاس ورڈ کا مسئلہ" حل کرنے میں آپ کی مدد کرنے اور اس پر زیادہ وقت خرچ کیے بغیر آپ کے کمپیوٹر تک رسائی کی حفاظت کرنے میں خوشی ہوگی۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں