Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

O upu faigofie faigofie e le maluelue, ma faigata e le mafai ona manatua. O le mafuaaga lena e masani ona latou iu i luga o se tusi pipii i lalo o le piano po o luga o le mata. Ina ia mautinoa o loʻo tumau pea uputatala i mafaufau o tagata faʻaoga "faʻagaloina" ma le faʻatuatuaina o le puipuiga e le o leiloa, e iai le faʻamaoniga e lua (2FA).

Ona o le tuufaatasiga o le umiaina o se masini ma le iloaina o lana PIN, o le PIN lava ia e mafai ona faigofie ma faigofie ona manatua. O fa'aletonu ile umi ole PIN po'o le fa'afuase'i e fa'amalieina ile mana'oga o le umia fa'aletino ma tapula'a ile malosi ole PIN.

E le gata i lea, e tupu i ofisa o le malo latou te mananaʻo ia galulue mea uma e tusa ai ma le GOST. O lenei filifiliga 2FA mo le saini i totonu o Linux o le a talanoaina. Ou te amata mai mamao.

PAM modules

Pluggable Authentication Modules (PAM) o modules ma se API masani ma faʻatinoga o auala faʻamaonia eseese i talosaga.
O fa'aoga uma ma fa'aoga e mafai ona galulue fa'atasi ma le PAM e piki i luga ma mafai ona fa'aogaina mo le fa'amaoni a le tagata.
I le faʻataʻitaʻiga, e galue se mea e pei o lenei: o le login command e valaʻau PAM, lea e faia uma siaki talafeagai e faʻaaoga ai modules faʻamaonia i le faila faʻatulagaina ma toe faʻafoʻi le iʻuga i le faʻatonuga o le saini.

librtpam

O le module na fausia e le kamupani Aktiv e faʻaopoopoina faʻamaoniga e lua o tagata faʻaoga e faʻaogaina kata atamai poʻo faʻailoga USB e faʻaaoga ai ki asymmetric e tusa ai ma tulaga lata mai o faʻamatalaga faʻapitonuʻu.

Sei o tatou vaai i le mataupu faavae o lona faagaoioiga:

  • O le faʻailoga e teu ai le tusi faamaonia a le tagata faʻaoga ma lana ki patino;
  • O lo'o fa'asaoina le tusi fa'amaonia i le lisi o fale a le tagata fa'aoga e pei ona fa'atuatuaina.

O le faagasologa o le faʻamaonia e tupu e pei ona taʻua i lalo:

  1. E su'e e Rutoken le tusi pasi patino a le tagata fa'aoga.
  2. O lo'o talosagaina le PIN fa'ailoga.
  3. O fa'amatalaga fa'afuase'i e saini sa'o i luga o le ki tuma'oti i le va'a Rutoken.
  4. O le saini e maua e fa'amaonia i le fa'aogaina o le ki fa'alaua'itele mai le tusi pasi a le tagata fa'aoga.
  5. E toe fa'afo'i e le module le fa'amaoniga saini i le talosaga vala'au.

E mafai ona e fa'amaonia le fa'aaogaina o ki GOST R 34.10-2012 (umi 256 po'o 512 bits) po'o le GOST R 34.10-2001 ua tuai.

E te le tau popole e uiga i le saogalemu o ki - o loʻo gaosia saʻo i Rutoken ma e le tuʻua lona manatua i le taimi o gaioiga faʻataʻitaʻi.

Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

Rutoken EDS 2.0 ua faʻamaonia e le FSB ma le FSTEC e tusa ai ma le NDV 4, o lea e mafai ai ona faʻaaogaina i faiga faʻamatalaga e faʻatautaia ai faʻamatalaga faalilolilo.

Fa'aoga fa'atino

Toeitiiti lava o Linux faʻaonaponei o le a faia, mo se faʻataʻitaʻiga o le a matou faʻaogaina le xUbuntu 18.10.

1) Faʻapipiʻi afifi manaʻomia

sudo apt-get install libccid pcscd opensc
Afai e te manaʻo e faʻaopoopo se loka o le desktop ma se screensaver, faʻaopoopo le afifi libpam-pkcs11.

2) Fa'aopoopo se PAM module fa'atasi ma le GOST lagolago

Tu'u le faletusi mai https://download.rutoken.ru/Rutoken/PAM/
Kopi mea o loʻo i totonu o le pusa PAM librtpam.so.1.0.0 i le faila o le polokalama
/usr/lib/ poʻo /usr/lib/x86_64-linux-gnu/poʻo /usr/lib64

3) Faʻapipiʻi le afifi ile librtpkcs11ecp.so

Tikia ma faʻapipiʻi le DEB poʻo le RPM afifi mai le fesoʻotaʻiga: https://www.rutoken.ru/support/download/pkcs/

4) Siaki pe o galue Rutoken EDS 2.0 i le faiga

I totonu o le laina matou te faʻatinoina
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Afai e te vaʻai i le laina Rutoken ECP <no label> - o lona uiga e lelei mea uma.

5) Faitau le tusi faamaonia

Siaki pe iai le tusi faamaonia o le masini
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Afai e uma le laina:
Using slot 0 with a present token (0x0)

  • fa'amatalaga fa'aalia e uiga i ki ma tusi faamaonia, e tatau ona e faitau le tusi faamaonia ma sefe i le tisiki. Ina ia faia lenei mea, faʻataʻitaʻi le faʻatonuga o loʻo i lalo, ae le o {id} e te manaʻomia e suitulaga i le ID ID na e vaʻaia i le gaioiga o le poloaiga muamua:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    Afai ua faia le faila cert.crt, alu i le Laasaga 6).
  • e leai se mea, ona gaogao lea o le masini. Fa'afeso'ota'i lau pule po'o le faia e oe o ki ma tusi faamaonia e ala i le mulimuli i le isi laasaga.

5.1) Fausia se tusi faamaonia suʻega

Fa'alogo! O metotia faʻamatalaina mo le fatuina o ki ma tusi pasi e talafeagai mo suʻega ma e le o faʻamoemoeina mo le faʻaaogaina i le faiga o le taua. Ina ia faia lea mea, e mana'omia lou fa'aogaina o ki ma tusi pasi na tu'uina atu e lau fa'alapotopotoga fa'amaonia fa'amaonia po'o se fa'atonuga fa'amaonia.
O le PAM module ua mamanuina e puipuia ai komepiuta i le lotoifale ma ua mamanuina e galue i totonu o faʻalapotopotoga laiti. Talu ai e toʻaitiiti tagata faʻaoga, e mafai e le Pule ona mataʻituina le faʻaleaogaina o tusi faamaonia ma poloka lima faʻamatalaga, faʻapea foʻi ma le taimi aoga o tusi pasi. O le PAM module e leʻi iloa pe faʻapefea ona faʻamaonia tusi faamaonia e faʻaaoga ai CRLs ma fausia filifili faʻalagolago.

Le auala faigofie (e ala ile browser)

Ina ia maua se tusi faamaonia suʻega, faʻaaoga 'au'aunaga i luga ole laiga "Rutoken Registration Center". Ole fa'agasologa ole a le sili atu ile 5 minute.

Le auala a geek (e ala i le faʻamafanafanaga ma atonu o le tagata faʻapipiʻi)

Siaki le OpenSC version
$ opensc-tool --version
Afai o le lomiga e itiiti ifo i le 0.20, ona faʻafouina lea pe fausia pkcs11-meafaigaluega lala ma GOST-2012 lagolago mai la matou GitHub (i le taimi o le lolomiina o lenei tusiga, faʻasaʻo le 0.20 e leʻi faʻasaʻolotoina) poʻo mai le matai sili o le poloketi autu OpenSC e le o se taimi mulimuli ane. fai 8cf1e6f

Fausia se pa'aga autu ma fa'amaufa'ailoga nei:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)

--id: mea e iloagofie ai (CKA_ID) e lua-numera fa'ailoga hex mai le laulau ASCII. Fa'aaoga na'o code ASCII mo mataitusi e mafai ona lolomi, aua... id o le a manaʻomia ona pasi i OpenSSL o se manoa. Mo se faʻataʻitaʻiga, o le ASCII code "3132" e fetaui ma le manoa "12". Mo le faigofie, e mafai ona e faʻaaogaina 'au'aunaga i luga ole laiga mo le fa'aliliuina o manoa ile code ASCII.

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

Ona sosoo ai lea ma le faia o se tusi faamaonia. E lua auala o le a faʻamatalaina i lalo: o le muamua e ala i le CA (o le a matou faʻaaogaina suʻega CA), o le lona lua e saini e le tagata lava ia. Ina ia faia lenei mea, e manaʻomia muamua ona e faʻapipiʻi ma faʻapipiʻi OpenSSL version 1.1 poʻo mulimuli ane e galue ai ma Rutoken e ala i se faʻaoga faʻapitoa rtengine e faʻaaoga ai le tusi lesona Fa'apipi'i ma fa'atulaga OpenSSL.
Mo se fa'ata'ita'iga: mo '--id 3132' i le OpenSSL e tatau ona e faʻamaonia "pkcs11:id=12".

E mafai ona e faʻaogaina auaunaga o se suʻega CA, lea e tele, mo se faʻataʻitaʻiga, faauta, faauta и faauta, mo lenei mea o le a matou faia ai se talosaga mo se tusi faamaonia

O le isi filifiliga o le tuʻuina atu lea i le paie ma fatuina se saini a le tagata lava ia
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

Tuuina atu o le tusi faamaonia i le masini
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

6) Resitala le tusi faamaonia i le faiga

Ia mautinoa o lau tusi faamaonia e foliga mai o se faila base64:

Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

Afai o lau tusi faamaonia e pei o lenei:

Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

ona e manaʻomia lea ona sui le tusi faamaonia mai le DER format i le PEM format (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Matou te toe siaki ua lelei mea uma i le taimi nei.

Faaopoopo le tusi faamaonia i le lisi o tusi faamaonia faatuatuaina
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

O le laina mulimuli e puipuia ai le lisi o tusi faamaonia faatuatuaina mai le suia faʻafuaseʻi pe suia e isi tagata faʻaoga. O le mea lea e taofia ai se tasi mai le fa'aopoopoina o lana tusi pasi iinei ma mafai ai ona saini e fai ma ou sui.

7) Seti fa'amaoniga

O le faʻatulagaina o la matou module PAM e matua faʻatulagaina ma e faia i le auala tutusa e pei o le faʻatulagaina o isi modules. Fausia e faila /usr/share/pam-configs/rutoken-gost-pam o lo'o i ai le igoa atoa o le module, pe mafai ona fa'aletonu, o le fa'amuamua o le module, ma fa'amaumauga fa'amaonia.
O fa'amaumauga fa'amaonia e iai mana'oga mo le manuia o le fa'agaioiga:

  • mana'omia: O ia modules e tatau ona toe fa'afo'i se tali lelei. Afai o le i'uga o le telefoni o lo'o i ai se tali le lelei, o le a i'u ai i se fa'amaoniga sese. O le a lafoa'i le talosaga, ae o isi modules o le a vala'au.
  • e manaʻomia: E tutusa ma manaʻomia, ae vave le faʻamaonia ma le amanaiaina isi modules.
  • lava: Afai e leai se tasi o le manaʻomia pe lava modules aʻo leʻi faʻafoʻisia sea module i se taunuuga le lelei, ona toe faʻafoʻi lea e le module se tali lelei. O isi modules o le a le amanaiaina.
  • faitalia: Afai e leai ni modules manaʻomia i luga o le faaputuga ma e leai se tasi o le lava modules toe faʻafoʻi mai se taunuuga lelei, o le itiiti ifo ma le tasi o le filifiliga modules e tatau ona toe faʻafoʻi se taunuuga lelei.

Fa'atonu faila atoa /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

Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

teu le faila, ona fai lea
$ sudo pam-auth-update
i le faʻamalama o loʻo faʻaalia, tuʻu se fetu i ona tafatafa Rutoken PAM GOST ma kiliki OK

Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

8) Siaki tulaga

Ina ia malamalama o mea uma ua faʻatulagaina, ae i le taimi lava e tasi e le leiloa le mafai ona ulufale i totonu o le polokalama, ulufale i le poloaiga
$ sudo login
Ulufale i lou username. O mea uma e faʻapipiʻi saʻo pe a manaʻomia e le polokalama se PIN code masini.

Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

9) Fa'atulaga le komepiuta e poloka pe a aveese mai le fa'ailoga

E aofia i totonu o le afifi libpam-pkcs11 aoga e aofia ai pkcs11_eventmgr, lea e mafai ai ona e faia ni gaioiga eseese pe a tutupu mea PKCS#11.
Mo faatulagaga pkcs11_eventmgr e avea o se faila faatulagaina: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Mo faʻasalalauga eseese Linux, o le poloaiga e mafua ai ona loka se teugatupe pe a aveese se kata atamai poʻo se faʻailoga o le a eseese. Cm. event card_remove.
O se faʻataʻitaʻiga faila faila o loʻo faʻaalia i lalo:

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";
    }
}

A maeʻa lena faʻaopoopo le talosaga pkcs11_eventmgr e amatalia. Ina ia faia lenei mea, fa'asa'o le faila .bash_profile:
$ nano /home/<имя_пользователя>/.bash_profile
Faʻaopoopo le laina pkcs11_eventmgr i le pito o le faila ma toe faʻafou.

O laasaga faʻamatalaina mo le faʻatulagaina o le faiga faʻaogaina e mafai ona faʻaaogaina e fai ma faʻatonuga i soʻo se faʻasalalauga Linux faʻaonapo nei, e aofia ai totonu o le atunuʻu.

Faʻafefea ona faʻaoga PAM modules mo faʻamaoniga faʻapitonuʻu i Linux faʻaaoga GOST-2012 ki i Rutoken

iʻuga

O PC Linux ua faʻateleina le lauiloa i ofisa o le malo o Rusia, ma o le faʻatulagaina o faʻamaoniga faʻamaonia e lua i lenei OS e le faigofie i taimi uma. Matou te fiafia e fesoasoani ia te oe e foia le "faafitauli o le password" ma lenei taʻiala ma faʻalagolago le puipuia o le avanoa i lau PC e aunoa ma le faʻaaluina o le tele o taimi i luga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga