Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

Ko nga kupuhipa ngawari kaore i te haumaru, karekau hoki e taea te maumahara. Koia te take ka mutu tonu ratou ki runga i te tuhipoka piri i raro i te papapātuhi, i runga ranei i te aroturuki. Hei whakarite kia noho tonu nga kupu huna ki roto i nga hinengaro o nga kaiwhakamahi "wareware" me te pono o te whakamarumaru kaore e ngaro, he whakamotuhēhēnga-rua (2FA).

Na te whakakotahitanga o te pupuri i tetahi taputapu me te mohio ki tana PIN, ko te PIN ake ka ngawari ake, ka ngawari ake te mahara. Ko nga ngoikoretanga o te roanga o te PIN, te matapōkeretia ranei, ka whakakorehia e te whakaritenga a-tinana me nga here mo te kaha kino PIN.

I tua atu, ka tupu i roto i nga tari a te kawanatanga e hiahia ana ratou kia mahi nga mea katoa i runga i te GOST. Ko tenei waahanga 2FA mo te takiuru ki Linux ka korerohia. Ka timata ahau i tawhiti.

Ko nga waahanga PAM

Ko nga Motuhēhēnga Whakamotuhēhē Mono (PAM) he kōwae me te API paerewa me te whakatinanatanga o nga momo momo momo tikanga motuhēhēnga i roto i nga tono.
Ko nga taputapu katoa me nga tono ka taea te mahi me te PAM ka tikina ka taea te whakamahi mo te motuhēhēnga a te kaiwhakamahi.
I roto i te mahi, he penei te mahi: ka karanga te whakahau takiuru ki a PAM, e mahi ana i nga arowhai e tika ana ma te whakamahi i nga waahanga kua tohua i roto i te konae whirihoranga me te whakahoki i te hua ki te whakahau takiuru.

librtpam

Ko te kōwae i whakawhanakehia e te kamupene Aktiv ka taapiri i te whakamotuhēhēnga-rua o nga kaiwhakamahi e whakamahi ana i nga kaari atamai, i nga tohu USB ranei e whakamahi ana i nga taviri hangarite e ai ki nga paerewa hou o te tuhinga tuhi a-whare.

Kia titiro tatou ki te kaupapa o tana mahi:

  • Ka tiakina e te tohu te tiwhikete a te kaiwhakamahi me tana kii motuhake;
  • Ka tiakina te tiwhikete ki roto i te whaiaronga kainga o te kaiwhakamahi i runga i te pono.

Ka puta te tukanga motuhēhēnga e whai ake nei:

  1. Ka rapu a Rutoken i te tiwhikete whaiaro a te kaiwhakamahi.
  2. Ka tonohia te PIN tohu.
  3. Ka hainatia nga raraunga tupurangi ki runga i te kii motuhake i roto i te maramara Rutoken.
  4. Ka manatokohia te hainatanga ma te whakamahi i te taviri a te iwi mai i te tiwhikete a te kaiwhakamahi.
  5. Ka whakahokia e te kōwae te hua whakaū waitohu ki te tono waea.

Ka taea e koe te whakamotuhēhē mā te whakamahi i ngā kī GOST R 34.10-2012 (roa 256, 512 paraka ranei) te GOST R 34.10-2001 tawhito ranei.

Kare koe e maaharahara mo te haumarutanga o nga taviri - he mea hanga tika ki Rutoken karekau e waiho tona maharatanga i te wa e whakahaere ana i nga mahi cryptographic.

Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

Ko te Rutoken EDS 2.0 kua whakamanahia e te FSB me te FSTEC e ai ki te NDV 4, na reira ka taea te whakamahi i roto i nga punaha korero e tukatuka ana i nga korero muna.

Te whakamahi whaitake

Tata ki nga Linux hou ka mahi, hei tauira ka whakamahia e matou te xUbuntu 18.10.

1) Tāutahia ngā pōkai e tika ana

sudo apt-get install libccid pcscd opensc
Mena kei te pirangi koe ki te taapiri i tetahi raka papamahi me te kaitiaki mata, whakauruhia ano te kete libpam-pkcs11.

2) Tāpirihia he kōwae PAM me te tautoko GOST

Uta ana i te whare pukapuka mai https://download.rutoken.ru/Rutoken/PAM/
Tāruatia ngā ihirangi o te kōpaki PAM librtpam.so.1.0.0 ki te kōpaki pūnaha
/usr/lib/ ranei /usr/lib/x86_64-linux-gnu/ranei /usr/lib64

3) Tāutahia te mōkihi me te librtpkcs11ecp.so

Tikiake me te whakauru i te kete DEB, RPM ranei mai i te hono: https://www.rutoken.ru/support/download/pkcs/

4) Tirohia kei te mahi a Rutoken EDS 2.0 i roto i te punaha

I te tauranga ka mahia e matou
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Mena ka kite koe i te raina Rutoken ECP <no label> - te tikanga he pai nga mea katoa.

5) Panuitia te tiwhikete

Te tirotiro he tiwhikete to te taputapu
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Mena i muri i te raina:
Using slot 0 with a present token (0x0)

  • ka whakaatuhia nga korero mo nga taviri me nga tiwhikete, me panui koe i te tiwhikete ka tiakina ki te kōpae. Hei mahi i tenei, whakahaerehia te whakahau e whai ake nei, hei utu mo {id} me whakakapi koe i te ID tiwhikete i kite koe i te putanga o te whakahau o mua:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    Mena kua hangaia te kōnae cert.crt, haere ki te taahiraa 6).
  • kahore he mea, ka noho kau te taputapu. Whakapa atu ki to kaiwhakahaere, waihangahia ranei e koe nga ki me te tiwhikete ma te whai i nga mahi e whai ake nei.

5.1) Waihangatia he tiwhikete whakamatautau

Te aro! Ko nga tikanga kua whakaahuahia mo te hanga i nga taviri me nga tiwhikete e tika ana mo te whakamatautau me te kore e kii mo te whakamahi i te aratau whawhai. Hei mahi i tenei, me whakamahi koe i nga taviri me nga tiwhikete i tukuna e te mana tiwhikete pono o to whakahaere, i tetahi mana tiwhikete whaimana ranei.
Ko te kaupapa PAM i hangaia hei tiaki i nga rorohiko o te rohe me te mahi i roto i nga whakahaere iti. I te mea he iti noa nga kaiwhakamahi, ka taea e te Kaiwhakahaere te aro turuki i te whakakorenga o nga tiwhikete me te aukati i nga kaute a-ringa, me te wa whaimana o nga tiwhikete. Ko te waahanga PAM kaore ano kia mohio ki te manatoko i nga tiwhikete ma te whakamahi i nga CRL me te hanga mekameka whakawhirinaki.

Ko te huarahi ngawari (ma te tirotiro)

Ki te whiwhi tiwhikete whakamatautau, whakamahia ratonga tukutuku "Rutoken Registration Center". Ko te tukanga e kore e neke ake i te 5 meneti.

Te ara a te geek (ma te papatohu me te kaitoha pea)

Tirohia te putanga OpenSC
$ opensc-tool --version
Mena he iti ake te putanga i te 0.20, katahi ka whakahou, ka hanga ranei peka pkcs11-taputapu me te tautoko GOST-2012 mai i ta maatau GitHub (i te wa i whakaputahia ai tenei tuhinga, ko te tuku 0.20 kaore ano kia tukuna) mai i te peka matua o te kaupapa matua OpenSC i muri mai. mahia 8cf1e6f

Hangaia he takirua matua me nga tawhā e whai ake nei:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)

--id: pūtautuhi ahanoa (CKA_ID) hei tau pūāhua hex-rua mai i te ripanga ASCII. Whakamahia nga waehere ASCII anake mo nga tohu ka taea te ta, na te mea... me tuku id ki OpenSSL hei aho. Hei tauira, ko te waehere ASCII "3132" e rite ana ki te aho "12". Mo te waatea, ka taea e koe te whakamahi ratonga ipurangi mo te huri i nga aho ki nga waehere ASCII.

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

I muri mai ka hangaia he tiwhikete. E rua nga huarahi ka whakaahuahia i raro nei: ko te tuatahi ma te CA (ka whakamahi matou i nga CA whakamatautau), ko te tuarua he haina-whaiaro. Hei mahi i tenei, me whakauru tuatahi koe me te whirihora i te putanga OpenSSL 1.1 i muri mai ranei ki te mahi tahi me Rutoken ma tetahi waahanga rtengine motuhake ma te whakamahi i te pukapuka. Te whakauru me te whirihora i te OpenSSL.
Hei tauira: mo '--id 3132' i roto i te OpenSSL me tohu koe "pkcs11:id=12".

Ka taea e koe te whakamahi i nga ratonga o te whakamatautau CA, he maha, hei tauira, nana, nana и nana, mo tenei ka hanga e matou he tono mo te tiwhikete

Ko tetahi atu whiringa ko te tuku ki te mangere me te hanga i tetahi waitohu-whaiaro
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

Te tuku i te tiwhikete ki te taputapu
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

6) Rēhitahia te tiwhikete ki te punaha

Tirohia te ahua o to tiwhikete ki te konae base64:

Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

Mena he penei te ahua o to tiwhikete:

Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

katahi ka hiahia koe ki te huri i te tiwhikete mai i te whakatakotoranga DER ki te whakatakotoranga PEM (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Ka tirohia ano e matou kei te pai nga mea katoa inaianei.

Tāpirihia te tiwhikete ki te rārangi o ngā tiwhikete whakawhirinaki
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Ko te rarangi whakamutunga ka tiaki i te rarangi o nga tiwhikete whirinaki mai i te whakarereke pohehe, na etahi atu kaiwhakamahi. Ma tenei ka aukati tetahi i te taapiri i tana tiwhikete ki konei ka taea e koe te whakauru mai mo koe.

7) Whakaritehia te motuhēhēnga

Ko te whakarite i to maatau PAM he tino paerewa, he rite tonu te mahi ki te whakatu i etahi atu waahanga. Waihanga ki te konae /usr/share/pam-configs/rutoken-gost-pam kei roto te ingoa katoa o te kōwae, ahakoa kua whakahohea ma te taunoa, te kaupapa matua o te kōwae, me ngā tawhā motuhēhēnga.
Kei roto i nga tawhā motuhēhēnga ngā whakaritenga mō te angitu o te mahi:

  • e hiahiatia ana: Me whakahoki mai he urupare pai mo enei momo waahanga. Mēnā he urupare tōraro te hua o te waea kōwae, ka puta he hapa motuhēhēnga. Ka tukuna te tono, engari ka karangahia nga toenga waahanga.
  • e hiahiatia ana: He rite ki te mea e hiahiatia ana, engari ka rahua tonu te motuhēhēnga me te wareware ki etahi atu waahanga.
  • rawaka: Ki te kore tetahi o nga waahanga e hiahiatia ana, e ranea ana ranei i mua i te whakahoki mai o te hua kino, katahi ka whakahoki mai he whakautu pai. Ko te toenga o nga waahanga ka waihohia.
  • he kōwhiringa: Ki te kore he kōwae e hiahiatia ana i runga i te tāpae, ā, karekau tētahi o ngā kōwae rawaka e whakahoki mai he hua pai, me whakahoki mai he hua pai kia kotahi o nga kōwae whiriwhiri.

Kei roto i nga konae katoa /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

Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

tiakina te kōnae, ka mahia
$ sudo pam-auth-update
i te matapihi e puta mai ana, hoatu he whetūriki ki te taha Rutoken PAM GOST ka pāwhiri OK

Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

8) Tirohia nga tautuhinga

Ki te mohio kei te whirihora nga mea katoa, engari i te wa ano kaore e ngaro te kaha ki te takiuru ki te punaha, whakauruhia te whakahau
$ sudo login
Whakauruhia to ingoa kaiwhakamahi. Kua whirihora tika nga mea katoa mena ka hiahiatia e te punaha he waehere PIN taputapu.

Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

9) Whirihorahia te rorohiko kia aukatihia ina tangohia te tohu

Kei roto i te kete libpam-pkcs11 whaipainga whakaurua pkcs11_eventmgr, ka taea e koe te mahi i nga momo mahi ka puta nga kaupapa PKCS#11.
Mo nga whakaturanga pkcs11_eventmgr hei kōnae whirihoranga: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Mo nga tohatoha Linux rereke, ka rereke te whakahau e maukati ai te kaute ina tangohia he kaari atamai, tohu tohu ranei. Cm. event card_remove.
Ko te tauira o te konae whirihoranga e whakaatuhia ana i raro nei:

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

I muri i tera taapirihia te tono pkcs11_eventmgr ki te whakaoho. Hei mahi i tenei, whakatika i te konae .bash_profile:
$ nano /home/<имя_пользователя>/.bash_profile
Tāpirihia te raina pkcs11_eventmgr ki te mutunga o te konae ka whakaara ano.

Ko nga waahanga kua whakamaramatia mo te whakatuu i te punaha whakahaere ka taea te whakamahi hei tohutohu i roto i nga tohatoha Linux hou, tae atu ki nga mahi a-whare.

Me pehea te whakamahi i nga waahanga PAM mo te whakamotuhēhēnga rohe i roto i te Linux ma te whakamahi i nga taviri GOST-2012 i Rutoken

mutunga

Kei te rongonui haere nga PC Linux i roto i nga tari a te kawanatanga o Ruhia, a, ehara i te mea ngawari te whakarite motuhēhēnga-rua i roto i tenei OS. Ka koa matou ki te awhina ia koe ki te whakaoti i te "raruraru kupuhipa" me tenei aratohu me te tiaki pono i te uru ki to PC me te kore e whakapau i te wa roa ki runga.

Source: will.com

Tāpiri i te kōrero