په Rutoken کې د GOST-2012 کیلي په کارولو سره په لینکس کې د ځایی تصدیق لپاره د PAM ماډلونو کارولو څرنګوالی

په Rutoken کې د GOST-2012 کیلي په کارولو سره په لینکس کې د ځایی تصدیق لپاره د PAM ماډلونو کارولو څرنګوالی

ساده پاسورډونه خوندي ندي، او پیچلي د یادولو لپاره ناممکن دي. له همدې امله دوی ډیری وختونه د کیبورډ لاندې یا په مانیټر کې په چپچیني یادداشت کې پای ته رسیږي. د دې لپاره چې ډاډ ترلاسه شي چې پاسورډونه د "هیرونکي" کاروونکو په ذهنونو کې پاتې کیږي او د محافظت اعتبار له لاسه نه ورکوي، دوه فاکتور تصدیق شتون لري (2FA).

د وسیلې د مالکیت او د هغه د PIN پیژندلو ترکیب له امله ، PIN پخپله د یادولو لپاره ساده او اسانه کیدی شي. د PIN په اوږدوالي یا تصادفي کې نیمګړتیاوې د فزیکي ملکیت اړتیا او د PIN برټ ځواک محدودیتونو له امله پوره کیږي.

سربیره پردې، دا په دولتي ادارو کې پیښیږي چې دوی غواړي هرڅه د GOST مطابق کار وکړي. په لینکس کې د ننوتلو لپاره دا 2FA اختیار به بحث شي. زه به له لرې څخه پیل وکړم.

د PAM ماډلونه

د پلګ ایبل تصدیق کولو ماډلونه (PAM) د معیاري API سره ماډلونه دي او په غوښتنلیکونو کې د مختلف تصدیق میکانیزم پلي کول دي.
ټولې اسانتیاوې او غوښتنلیکونه چې کولی شي د PAM سره کار وکړي دوی غوره کړي او د کارونکي تصدیق لپاره یې وکاروي.
په عمل کې، دا یو څه داسې کار کوي: د ننوتلو کمانډ PAM ته زنګ وهي، کوم چې د ترتیب کولو فایل کې مشخص شوي ماډلونو په کارولو سره ټول اړین چکونه ترسره کوي او پایله بیرته د ننوتلو کمانډ ته راستنیږي.

librtpam

د اکټیو شرکت لخوا رامینځته شوی ماډل د کورني کریپټوګرافي وروستي معیارونو سره سم د غیر متناسب کیلي په کارولو سره د سمارټ کارتونو یا USB ټوکنونو کارولو کاروونکو دوه فکتور تصدیق اضافه کوي.

راځئ چې د دې عملیاتو اصول وګورو:

  • نښه د کارونکي سند او د هغې شخصي کیلي ذخیره کوي؛
  • سند د باوري په توګه د کارونکي کور لارښود کې خوندي شوی.

د تصدیق پروسه په لاندې ډول ترسره کیږي:

  1. Rutoken د کارونکي شخصي سند لټوي.
  2. د نښه PIN غوښتنه کیږي.
  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 یا وروسته نصب او تنظیم کړئ ترڅو د لارښود په کارولو سره د ځانګړي 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
خپل کارن نوم دننه کړئ. هرڅه په سمه توګه تنظیم شوي که چیرې سیسټم د آلې PIN کوډ ته اړتیا ولري.

په 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

Add a comment