
Lihtsad paroolid ei kaitse ja keerulisi on vĂ”imatu meeles pidada. SeetĂ”ttu satuvad need sageli klaviatuuri alla vĂ”i kĂ”rvale postitatud sticky note'ile. Et paroolid jÀÀksid âunustavateâ kasutajate mĂ€llu ning kaitse usaldusvÀÀrsus ei vĂ€heneks, on olemas kahefaktoriline autentimine (2FA).
SĂ”ltuvalt seadme omamisest ja PIN-koodi teadmisest vĂ”ib ise PIN-kood olla lihtsam ja kergem meeles pidada. LĂŒhikese vĂ”i juhusliku PIN-koodi puudused kompenseerivad fĂŒĂŒsilise omamise nĂ”uded ja piirangud PIN-koodi proovimisele.
Lisaks on riigiasutustes sageli soov, et kÔik toimiks vastavalt riiklikele standarditele. Sellest kahekordse autentimise variandist Linuxi sisenemisel juttu tuleb. Alustan kaugemalt.
PAM-moodulid
Plug-in autentimise moodulid (Pluggable Authentication Modules, PAM) on moodulid standardse API ja erinevate autentimismehhanismide rakendustega rakendustes.
KÔik tööriistad ja rakendused, mis oskavad PAM-iga töötada, vÔtavad need kasutusele ja saavad neid kasutada kasutaja autentimiseks.
Töös on see umbes nii: kÀsk login pöördub PAM-i poole, mis sooritab kÔik vajalikud kontrollid konfigureerimisfailis mÀÀratud moodulite abil ja tagastab tulemuse tagasi kÀskudele login.
librtpam
EttevĂ”tte Aktiiv vĂ€lja töötatud moodul lisab kahefaktorilise autentimise kasutajatele nutikaartide vĂ”i USB-tokenitega, kasutades asĂŒmmeetrilisi vĂ”tmeid viimaste kodumaiste krĂŒptograafia standardite kohaselt.
Vaatleme selle tööpÔhimÔtet:
- tokenil on talletatud kasutaja sertifikaat ja tema privaatvÔti;
- sertifikaat on salvestatud kasutaja kodukatalooge kui usaldusvÀÀrne.
Autentimise protsess toimub jÀrgmiselt:
- RĂŒtokenil otsitakse kasutaja isiklikku sertifikaati.
- KĂŒside tokeni PIN-koodi.
- Juhtub, et juhuslikke andmeid allkirjastatakse privaatvĂ”tmega otse RĂŒtokeni kiibis.
- Saadud allkiri kontrollitakse kasutaja sertifikaadi avaliku vÔtmega.
- Moodul tagastab kutsuvatele rakendustele allkirja kontrollimise tulemuse.
Saate autentida vastavalt GOST R 34.10-2012 vÔtmetele (pikkusega 256 vÔi 512 bitti) vÔi aegunud GOST R 34.10-2001.
VĂ”tmete turvalisuse pĂ€rast ei pea muretsema â need genereeritakse otse RŃŃĐŸĐșĐ”Đœis ja ei lahku kunagi oma mĂ€lust krĂŒptograafiliste operatsioonide ajal.

RŃŃĐŸĐșĐ”Đœ ĐĐŠĐ 2.0 on sertifitseeritud FSB ja FSTEK poolt vastavalt NĐĐ 4, mistĂ”ttu vĂ”ib seda kasutada teabe sĂŒsteemides, mis töötlevad konfidentsiaalset teavet.
Praktiline kasutamine
Peaaegu iga kaasaegne Linux sobib, nÀitena kasutame xUbuntu 18.10.
1) Paigaldame vajalikud paketid
sudo apt-get install libccid pcscd opensc
Kui soovite lisada töölaua lukustamise ekraanile, paigaldage tÀiendavalt paket libpam-pkcs11.
2) Lisage PAM-moodul GOSTide toega
Laadige raamatukogu
Kopeerige PAM-i kausta librtpam.so.1.0.0 sisu sĂŒsteemi kausta
/usr/lib/ vÔi /usr/lib/x86_64-linux-gnu/vÔi /usr/lib64
3) Paigaldage paket librtpkcs11ecp.so
Laadige alla ja paigaldage DEB- vÔi RPM-paket aadressilt:
4) Kontrollige, kas RŃŃĐŸĐșĐ”Đœ ĐĐŠĐ 2.0 töötab sĂŒsteemis
Terminalis kÀivitage
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Kui nĂ€ete rida Rutoken ECP â tĂ€hendab, et kĂ”ik on korras.
5) Loe vÀlja sertifikaat
Kontrollige, et seadmel on sertifikaat
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Kui pÀrast rida:
Using slot 0 with a present token (0x0)
- kuvatakse teave vÔtmete ja sertifikaatide kohta, on vajalik sertifikaadi lugemine ja selle salvestamine kettale. Selleks kÀivitage jÀrgmine kÀsk, kus {id} tuleb asendada sertifikaadi ID-ga, mille nÀgite eelmise kÀsu vÀljundis:
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
Kui fail cert.crt on loodud, liigume 6. punkti juurde. - ei ole midagi, siis on seade tĂŒhi. Palun pöörduge administraatori poole vĂ”i looge vĂ”tmed ja sertifikaat ise, jĂ€rgides jĂ€rgmist punkti.
5.1) Looge testsertifikaat
TÀhelepanu! Kirjeldatud vÔtmete ja sertifikaatide loomise meetodid sobivad testimiseks ja ei ole mÔeldud kasutamiseks reaalsetes tingimustes. Selleks tuleb kasutada sertifikaate ja vÔtmeid, mille on vÀlja andnud usaldusvÀÀrne sertifitseerimiskeskus teie organisatsioonis vÔi akrediteeritud isikutuvastus keskus.
PAM-moodul on loodud kaitsma kohalikke arvuteid ja eeldab tööd vÀikestes organisatsioonides. Kuna kasutajaid on vÀhe, saab administraator ise jÀlgida sertifikaatide tagasivÔtmist ja kÀsitsi blokeerida kontosid, samuti sertifikaatide kehtivusaja jÀlgimist. PAM-moodul ei oska veel kontrollida sertifikaate CRLi kaudu ega luua usaldusasutuste ahelaid.
Lihtne tee (brauseri kaudu)
Testsertifikaadi saamiseks kasutage . Protsess vÔtab aega mitte rohkem kui 5 minutit.
Gikide tee (kokkuvÔtte ja ehk ka kompilaatori kaudu)
Kontrollige OpenSC versiooni
$ opensc-tool --version
Kui versioon on vÀiksem kui 0.20, siis uuendage vÔi koostage meie GitHubist (artikli avaldamise ajal pole vÀljalasket 0.20 veel ilmunud) vÔi OpenSC-i pÔhiprojekti master-harust hiljemalt
Generame vÔtme paari jÀrgmiste parameetritega:
--key-type: GOSTR3410-2012-512:A (GOST-2012 512 bitti parameetriga A), GOSTR3410-2012-256:A (GOST-2012 256 bitti parameetriga A)
--id: objekti identifikaator (CKA_ID) kujul kahekohalised numbrid hex formaadis ASCII tabelist. Kasutage ainult ASCII-koodide trĂŒkitud mĂ€rke, kuna id tuleb edastada OpenSSL-ile stringina. NĂ€iteks ASCII-koodile "3132" vastab string "12". Mugavuse huvides vĂ”ib kasutada .
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
JĂ€rgmisena hakkame looma sertifikaati. Allpool on kirjeldatud kahte teed: esimene lĂ€bi CA (kasutame test CA-sid), teine â isesignitud. Selleks tuleb esmalt paigaldada ja konfigureerida OpenSSL versioon 1.1 vĂ”i uuem Rutokeni jaoks, kasutades erimoodulit rtengine, jĂ€rgides juhendit .
NÀiteks: "--id 3132" OpenSSL-is tuleb mÀrkida "pkcs11:id=12«.
VÔite kasutada test CA teenuseid, mida on palju, nÀiteks , ja , selleks loome sertifikaadi taotluse
Teine vÔimalus on lihtsalt laiskus ja luua isesignitud
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
Laadige sertifikaat seadmesse
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) Registreerige sertifikaat sĂŒsteemis
Veenduge, et teie sertifikaat nÀeks vÀlja nagu base64 fail:

Kui teie sertifikaat nÀeb vÀlja nii:

siis peate konvertima sertifikaadi DER-formaadist PEM-formaati (base64)
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Kontrollime uuesti, et nĂŒĂŒd on kĂ”ik korras.
Lisame sertifikaadi usaldussertifikaatide loetellu
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
Viimane rida kaitseb usaldussertifikaatide loetelu teiste kasutajate juhuslike vÔi tahtlike muudatuste eest. See vÀlistab olukorra, kus keegi lisab siia oma sertifikaadi ja suudab teie nimel sisse logida.
7) Seame ĂŒles autentimise
Meie PAM mooduli seadistamine on tÀiesti tavaline ja toimub tÀpselt nagu teiste moodulite seadistamine. Loome faili /usr/share/pam-configs/rutoken-gost-pam , mis sisaldab mooduli tÀisnime, kas see on vaikesÀtetega lubatud, mooduli prioriteeti ja autentimise parameetreid.
Autentimise parameetrites on nÔuded operatsiooni edule:
- required (nĂ”utav): sellised moodulid peavad tagastama positiivse vastuse. Kui mooduli vĂ€ljakutse tulemus sisaldab negatiivset vastust, toob see kaasa autentimise vea. PĂ€ring katab Ă€ra, kuid teised moodulid kutsutakse ĂŒles.
- requisite (vajalik): sarnane requiredâiga, kuid viib kohe autentimise ebaĂ”nnestumiseni ja ignoreerib ĂŒlejÀÀnud mooduleid.
- sufficient (piisav): kui enne sellist moodulit ei ole ĂŒhtegi required vĂ”i sufficient moodulit tagastanud negatiivset tulemust, tagastab moodul positiivse vastuse. ĂlejÀÀnud mooduleid jĂ€etakse tĂ€helepanuta.
- optional (valikuline): kui virnas ei ole mooduleid required ja ĂŒkski sufficient moodulitest ei ole tagastanud positiivset tulemust, peab vĂ€hemalt ĂŒks optional moodulitest tagastama positiivse vastuse.
Faili tÀielik sisu /usr/share/pam-configs/rutoken-gost-pam:
Nimi: Rutoken PAM GOST
Vaikimisi: jah
Prioriteet: 800
Auth-TĂŒĂŒp: Peamine
Auth: piisav /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

salvesta fail, seejÀrel kÀivita
$ sudo pam-auth-update
avatud aknas pane tÀheke Rutoken PAM GOST ja vajutame OK

8) Kontrollime seadistust
Kuna kogu on seadistatud, kuid samas ei kaota vĂ”imalust sĂŒsteemi sisenemiseks, sisestage kĂ€sk
$ sudo login
Sisestage kasutajanimi. KĂ”ik on Ă”igesti seadistatud, kui sĂŒsteem nĂ”uab seadme PIN-koodi.

9) Seame ĂŒles arvuti lukustamise tokeni eemaldamisel
Paketi koosseisus libpam-pkcs11 on utiliit pkcs11_eventmgr, mis vĂ”imaldab tĂ€ita erinevaid toiminguid PKCS#11 sĂŒndmuste tekkimisel.
Seadistamiseks pkcs11_eventmgr teenindab konfiguratsioonifail: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Erinevates Linuxi distributsioonides on kÀsk, mis kutsub esile konto lukustamise nutikaardi vÔi tokeni eemaldamisel, erinev. Vaata. event card_remove.
Konfiguratsioonifaili nÀidis on toodud allpool:
pkcs11_eventmgr
{
# KĂ€ivitamine taustal
daemon = true;
# SĂŒsteemiteate seadistamine
debug = false;
# KĂŒsimise aeg sekundites
polling_time = 1;
# Aegumise ajastamise seade kaardi eemaldamiseks
# Vaikimisi 0
expire_time = 0;
# Paigaldage pkcs11 teek RUT Tokeniga töötamiseks
pkcs11_module = usr/lib/librtpkcs11ecp.so;
# Tegevused kaardiga
# Kaart on sisestatud:
event card_insert {
# JĂ€tame vaikeseaded (mitte midagi ei toimu)
on_error = ignore ;
action = "/bin/false";
}
# Kaart on eemaldatud
event card_remove {
on_error = ignore;
# KĂ€ivitage ekraani lukustamise funktsioon
# GNOME jaoks
action = "dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock";
# XFCE jaoks
# action = "xflock4";
# Astra Linuxi (FLY) jaoks
# action = "fly-wmfunc FLYWM_LOCK";
}
# Kaart on pikka aega eemaldatud
event expire_time {
# JĂ€tame vaikeseaded (mitte midagi ei toimu)
on_error = ignore;
action = "/bin/false";
}
}PÀrast seda lisage rakendus pkcs11_eventmgr automaatsesse kÀivitamisse. Selleks redigeerige faili .bash_profile:
$ nano /home//.bash_profile
Lisage faili lÔpus rida pkcs11_eventmgr ja taaskÀivitage arvuti.
Kirjeldatud seadistamisetapid operatsioonisĂŒsteemi jaoks vĂ”ivad olla juhendiks igas kaasaegses Linuxi jaotuses, sealhulgas kohalikud.

KokkuvÔte
Linuxi PC-d Venemaa riigisektoris muutuvad jĂ€rjest populaarsemaks, kuid usaldusvÀÀrse kahefaasilise autentimise seadistamine selles opsĂŒsteemis ei ole alati lihtne. Meie juhend aitab lahendada "paroolide probleemi" ja usaldusvÀÀrselt kaitsta juurdepÀÀsu PC-le, kulutades sellele mitte liiga palju aega.
Allikas: habr.com
