Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

Паролҳои оддӣ бехатар нестанд ва паролҳои мураккабро дар хотир нигоҳ доштан ғайриимкон аст. Ин аст, ки чаро онҳо аксар вақт дар як ёддошти часпанда дар зери клавиатура ё дар монитор қарор мегиранд. Барои он ки паролҳо дар зеҳни корбарони "фаромӯш" боқӣ монад ва эътимоднокии муҳофизат аз даст наояд, аутентификатсияи ду омил (2FA) мавҷуд аст.

Ба туфайли омезиши соҳиби дастгоҳ ва донистани PIN-и он, худи PIN метавонад соддатар ва осонтар дар хотир дошта бошад. Камбудиҳо дар дарозии PIN ё тасодуфӣ аз ҷониби талаботи доштани ҷисмонӣ ва маҳдудиятҳо оид ба қувваи бераҳмонаи PIN ҷуброн карда мешаванд.

Илова бар ин, дар муассисаҳои давлатӣ чунин мешавад, ки онҳо мехоҳанд, ки ҳама чиз мувофиқи ГОСТ кор кунад. Ин варианти 2FA барои ворид шудан ба Linux муҳокима карда мешавад. Ман аз дур сар мекунам.

Модулҳои PAM

Модулҳои васлшавандаи аутентификатсия (PAM) модулҳои дорои API-и стандартӣ ва татбиқи механизмҳои гуногуни аутентификатсия дар барномаҳо мебошанд.
Ҳама хидматҳо ва барномаҳое, ки метавонанд бо PAM кор кунанд, онҳоро гирифта метавонанд ва метавонанд онҳоро барои тасдиқи корбар истифода баранд.
Дар амал, он чунин кор мекунад: фармони воридшавӣ PAM-ро даъват мекунад, ки ҳамаи санҷишҳои заруриро бо истифода аз модулҳои дар файли конфигуратсия нишондодашуда анҷом медиҳад ва натиҷаро ба фармони воридшавӣ бармегардонад.

librtpam

Модули аз ҷониби ширкати Aktiv таҳияшуда аутентификатсияи ду омили корбаронро бо истифода аз кортҳои смарт ё токенҳои USB бо истифода аз калидҳои асимметрӣ тибқи стандартҳои охирини криптографияи ватанӣ илова мекунад.

Биёед ба принсипи кори он назар андозем:

  • Токен сертификати корбар ва калиди махфии онро нигоҳ медорад;
  • Шаҳодатнома дар феҳристи хонагии корбар ҳамчун боэътимод нигоҳ дошта мешавад.

Раванди тасдиқкунӣ ба таври зерин сурат мегирад:

  1. Rutoken сертификати шахсии корбарро ҷустуҷӯ мекунад.
  2. PIN нишона дархост карда мешавад.
  3. Маълумоти тасодуфӣ дар калиди хусусӣ бевосита дар чипи Rutoken имзо карда мешавад.
  4. Имзои натиҷавӣ бо истифода аз калиди ҷамъиятӣ аз сертификати корбар тасдиқ карда мешавад.
  5. Модул натиҷаи санҷиши имзоро ба барномаи зангзананда бармегардонад.

Шумо метавонед бо истифода аз калидҳои GOST R 34.10-2012 (дарозии 256 ё 512 бит) ё GOST R 34.10-2001 кӯҳна тасдиқ карда метавонед.

Ба шумо лозим нест, ки дар бораи амнияти калидҳо хавотир шавед - онҳо мустақиман дар Rutoken тавлид мешаванд ва ҳеҷ гоҳ хотираи онро ҳангоми амалиёти криптографӣ тарк намекунанд.

Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

Rutoken EDS 2.0 аз ҷониби FSB ва FSTEC мувофиқи NDV 4 тасдиқ карда шудааст, бинобар ин онро дар системаҳои иттилоотие, ки иттилооти махфиро коркард мекунанд, истифода бурдан мумкин аст.

Истифодаи амалӣ

Қариб ҳама гуна Linux-и муосир кор хоҳад кард, масалан, мо xUbuntu 18.10-ро истифода хоҳем бурд.

1) Бастаҳои заруриро насб кунед

sudo apt-get install libccid pcscd opensc
Агар шумо хоҳед, ки қулфи мизи корӣ бо экрани экран илова кунед, бастаро ба таври иловагӣ насб кунед libpam-pkcs11.

2) Иловаи модули 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 ҳанӯз намедонад, ки чӣ гуна тасдиқи сертификатҳоро бо истифода аз CRL ва сохтани занҷирҳои эътимод.

Роҳи осон (тавассути браузер)

Барои гирифтани шаҳодатномаи санҷиш, истифода баред хадамоти интернетии "Маркази бақайдгирии Rutoken". Раванд на бештар аз 5 дақиқа мегирад.

Роҳи Geek (тавассути консол ва эҳтимолан компилятор)

Версияи OpenSC-ро санҷед
$ opensc-tool --version
Агар версия камтар аз 0.20 бошад, пас навсозӣ ё созед Филиали pkcs11-асбоб бо дастгирии ГОСТ-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 (мо CA-ҳои санҷиширо истифода хоҳем бурд), дуюмаш худ имзо карда мешавад. Барои ин, шумо аввал бояд версияи OpenSSL 1.1 ё дертарро насб кунед ва танзим кунед, то бо Rutoken тавассути модули махсуси rtengine бо истифода аз дастур кор кунед Насб ва конфигуратсияи 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) Шаҳодатномаро дар система ба қайд гиред

Боварӣ ҳосил кунед, ки сертификати шумо ба файли base64 монанд аст:

Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

Агар шаҳодатномаи шумо чунин бошад:

Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

пас шумо бояд сертификатро аз формати 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

Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

файлро захира кунед ва сипас иҷро кунед
$ sudo pam-auth-update
дар равзанаи пайдошуда дар паҳлӯи он ситорача гузоред Rutoken PAM ГОСТ ва клик кунед OK

Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

8) Танзимотҳоро санҷед

Барои фаҳмидани он ки ҳама чиз танзим шудааст, аммо дар айни замон қобилияти ворид шудан ба системаро аз даст надиҳед, фармонро ворид кунед
$ sudo login
Номи корбарии худро ворид кунед. Ҳама чиз дуруст танзим карда мешавад, агар система рамзи PIN-и дастгоҳро талаб кунад.

Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

9) Компютерро, ки ҳангоми истихроҷ кардани нишона баста мешавад, танзим кунед

Ба баста дохил карда шудааст libpam-pkcs11 коммуналӣ дохил карда шудааст pkcs11_eventmgr, ки ба шумо имкон медиҳад, ки амалҳои гуногун ҳангоми рӯйдодҳои PKCS # 11.
Барои танзимот pkcs11_eventmgr ҳамчун файли конфигуратсия хизмат мекунад: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Барои тақсимоти гуногуни Linux, фармоне, ки боиси баста шудани ҳисоб мегардад, вақте ки корти смарт ё токен хориҷ карда мешавад, фарқ мекунад. См. 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 -ро ба охири файл илова кунед ва аз нав оғоз кунед.

Қадамҳои тавсифшуда барои насб кардани системаи пардозандаро метавон ҳамчун дастур дар ҳама гуна тақсимоти муосири Linux, аз ҷумла дар дохили кишвар истифода бурд.

Чӣ тавр истифода бурдани модулҳои PAM барои аутентификатсияи маҳаллӣ дар Linux бо истифода аз калидҳои ГОСТ-2012 дар Rutoken

хулоса

Компютерҳои Linux дар муассисаҳои давлатии Русия ҳарчи бештар маъмул мешаванд ва насб кардани аутентификатсияи боэътимоди ду-омил дар ин ОС на ҳамеша осон аст. Мо бо камоли хушнудӣ ба шумо дар ҳалли "мушкилоти парол" бо ин дастур кӯмак хоҳем кард ва дастрасӣ ба компютери худро бе сарфи вақти зиёд дар он боэътимод ҳифз кунем.

Манбаъ: will.com

Илова Эзоҳ