Pasahitz sinpleak ez dira seguruak, eta konplexuak ezinezkoak dira gogoratu. Horregatik, askotan, teklatuaren azpian edo monitorean ohar itsaskor batean amaitzen dute. Pasahitzak erabiltzaile "ahaztunen" buruan geratzen direla eta babesaren fidagarritasuna galtzen ez dela ziurtatzeko, bi faktoreko autentifikazioa dago (2FA).
Gailu baten jabe izatea eta PINa jakitearen konbinazioa dela eta, PINa bera errazago eta errazagoa izan daiteke gogoratzeko. PINaren luzeraren edo ausazkotasunaren desabantailak jabetza fisikoaren eskakizunak eta PIN indar gordinaren murrizketak konpentsatzen ditu.
Horrez gain, gobernu agentzietan gertatzen da dena GOSTren arabera funtzionatzea nahi dutela. Linux-en saioa hasteko 2FA aukera hau eztabaidatuko da. Urrutitik hasiko naiz.
PAM moduluak
Pluggable Authentication Modules (PAM) API estandar batekin eta aplikazioetan autentifikazio-mekanismo ezberdinen ezarpenak dituzten moduluak dira.
PAM-ekin lan egin dezaketen utilitate eta aplikazio guztiek jasotzen dituzte eta erabiltzaileak autentifikatzeko erabil ditzakete.
Praktikan, honela funtzionatzen du: login komandoak PAM deitzen du, eta horrek beharrezko egiaztapen guztiak egiten ditu konfigurazio fitxategian zehaztutako moduluak erabiliz eta emaitza berriro saioa hasteko komandora itzultzen du.
librtpam
Aktiv enpresak garatutako moduluak erabiltzaileen bi faktoreko autentifikazioa gehitzen du txartel adimendunak edo USB tokenak erabiliz gako asimetrikoak erabiliz, etxeko kriptografiaren azken estandarren arabera.
Ikus dezagun bere funtzionamenduaren printzipioa:
- Tokenak erabiltzailearen ziurtagiria eta bere gako pribatua gordetzen ditu;
- Ziurtagiria erabiltzailearen hasierako direktorioa fidagarri gisa gordetzen da.
Autentifikazio-prozesua honela gertatzen da:
- Rutoken-ek erabiltzailearen ziurtagiri pertsonala bilatzen du.
- Token PINa eskatzen da.
- Ausazko datuak gako pribatuan sinatzen dira zuzenean Rutoken txipan.
- Lortutako sinadura erabiltzailearen ziurtagiriaren gako publikoa erabiliz egiaztatzen da.
- Moduluak sinadura egiaztatzeko emaitza itzultzen dio deitzen duen aplikazioari.
GOST R 34.10-2012 gakoak (luzera 256 edo 512 bit) edo GOST R 34.10-2001 zaharkitua erabiliz autentifikatu dezakezu.
Ez duzu gakoen segurtasunaz kezkatu beharrik - Rutoken-en zuzenean sortzen dira eta inoiz ez dute bere memoria uzten kriptografiko eragiketetan.
Rutoken EDS 2.0 FSBk eta FSTECek NDV 4ren arabera ziurtatuta dago, beraz, isilpeko informazioa prozesatzen duten informazio sistemetan erabil daiteke.
Erabilera praktikoa
Linux moderno ia edozeinek egingo du, adibidez xUbuntu 18.10 erabiliko dugu.
1) Instalatu beharrezko paketeak
sudo apt-get install libccid pcscd opensc
Mahaigaineko blokeoa pantaila-babesle batekin gehitu nahi baduzu, instalatu paketea gainera libpam-pkcs11
.
2) Gehitu PAM modulu bat GOST laguntzarekin
Liburutegia hemendik kargatzen
Kopiatu PAM karpetaren edukia librtpam.so.1.0.0 sistemaren karpetara
/usr/lib/
edo /usr/lib/x86_64-linux-gnu/
edo /usr/lib64
3) Instalatu paketea librtpkcs11ecp.so-rekin
Deskargatu eta instalatu DEB edo RPM paketea estekatik:
4) Egiaztatu Rutoken EDS 2.0 sisteman funtzionatzen duela
Terminalean exekutatzen dugu
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Lerroa ikusten baduzu Rutoken ECP <no label>
- Dena ondo dagoela esan nahi du.
5) Irakurri ziurtagiria
Gailuak ziurtagiria duela egiaztatzea
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Lerroaren ondoren:
Using slot 0 with a present token (0x0)
- informazioa bistaratzen da gakoei eta ziurtagiriei buruz, ziurtagiria irakurri eta diskoan gorde behar duzu. Horretarako, exekutatu komando hau, non {id} ordez aurreko komandoaren irteeran ikusi zenuen ziurtagiri IDa ordezkatu behar duzun:
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
cert.crt fitxategia sortu bada, jarraitu 6. urratsera). - ez dago ezer, orduan gailua hutsik dago. Jarri harremanetan zure administratzailearekin edo sortu gakoak eta ziurtagiria zeuk hurrengo urratsa jarraituz.
5.1) Sortu proba-ziurtagiria
Kontuz! Gakoak eta ziurtagiriak sortzeko deskribatutako metodoak egokiak dira probak egiteko eta ez daude borroka moduan erabiltzeko pentsatuta. Horretarako, zure erakundeko ziurtapen-agintari fidagarriak edo akreditatutako ziurtagiri-agintari batek emandako gakoak eta ziurtagiriak erabili behar dituzu.
PAM modulua tokiko ordenagailuak babesteko diseinatuta dago eta erakunde txikietan lan egiteko diseinatuta dago. Erabiltzaile gutxi direnez, Administratzaileak ziurtagirien baliogabetzearen jarraipena egin dezake eta eskuz blokeatu kontuak, baita ziurtagirien balio-epea ere. PAM moduluak ez daki oraindik CRLak erabiliz ziurtagiriak egiaztatzen eta konfiantzazko kateak eraikitzen.
Modu erraza (arakatzailearen bidez)
Proba-ziurtagiria lortzeko, erabili
Geek-en modua (kontsolaren bidez eta agian konpiladorearen bidez)
Egiaztatu OpenSC bertsioa
$ opensc-tool --version
Bertsioa 0.20 baino txikiagoa bada, eguneratu edo eraiki
Sortu gako-pare bat parametro hauekin:
--key-type: GOSTR3410-2012-512:Π (ΠΠΠ‘Π’-2012 512 Π±ΠΈΡ c ΠΏΠ°ΡΠ°ΠΌΡΠ΅ΡΠΎΠΌ Π), GOSTR3410-2012-256:A (ΠΠΠ‘Π’-2012 256 Π±ΠΈΡ Ρ ΠΏΠ°ΡΠ°ΠΌΡΠ΅ΡΠΎΠΌ A)
--id:
objektuaren identifikatzailea (CKA_ID) ASCII taulako bi zifrako karaktere hexadecimaleko zenbaki gisa. Erabili ASCII kodeak soilik inprima daitezkeen karaktereetarako, zeren... id-a OpenSSLra pasa beharko da kate gisa. Adibidez, "3132" ASCII kodea "12" kateari dagokio. Erosotasuna lortzeko, erabil dezakezu
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
Ondoren, ziurtagiri bat sortuko dugu. Jarraian bi modu deskribatuko dira: lehena CA baten bidezkoa (probako CAak erabiliko ditugu), bigarrena autosinatua da. Horretarako, lehenik eta behin OpenSSL 1.1 bertsioa edo berriagoa instalatu eta konfiguratu behar duzu Rutokenekin lan egiteko rtengine modulu berezi baten bidez eskuliburua erabiliz.
Adibidez: '-rako-id 3132
' OpenSSL-n " zehaztu behar duzupkcs11:id=12
".
Probako CA baten zerbitzuak erabil ditzakezu, eta horietako asko daude, adibidez,
Beste aukera bat da alferkeriari amore ematea eta autosinatua sortzea
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
Ziurtagiria gailura igotzea
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) Ziurtagiria sisteman erregistratu
Ziurtatu zure ziurtagiriak base64 fitxategi baten itxura duela:
Zure ziurtagiria honelakoa bada:
ondoren, ziurtagiria DER formatutik PEM formatura bihurtu behar duzu (base64)
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Dena ondo dagoela egiaztatzen dugu berriro.
Gehitu ziurtagiria ziurtagiri fidagarrien zerrendara
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
Azken lerroak babesten du konfiantzazko ziurtagirien zerrenda beste erabiltzaileek ustekabean edo nahita alda ez dezaten. Honek, norbaitek bere ziurtagiria hemen gehitzea eta zure izenean saioa hasi ahal izatea eragozten du.
7) Konfiguratu autentifikazioa
Gure PAM modulua konfiguratzea guztiz estandarra da eta beste modulu batzuk konfiguratzeko modu berean egiten da. Sortu fitxategirako /usr/share/pam-configs/rutoken-gost-pam
moduluaren izen osoa, lehenespenez gaituta dagoen ala ez, moduluaren lehentasuna eta autentifikazio-parametroak dituena.
Autentifikazio-parametroek operazioaren arrakasta izateko baldintzak dituzte:
- beharrezkoa: Horrelako moduluek erantzun positiboa eman behar dute. Modulu-dei baten emaitzak erantzun negatiboa badu, autentifikazio-errore bat sortuko da. Eskaera kendu egingo da, baina gainerako moduluak deituko dira.
- Baldintza: Beharrezkoaren antzekoa, baina berehala huts egiten du autentifikazioak eta beste modulu batzuk alde batera uzten ditu.
- nahikoa: Modulu horren aurretik beharrezko edo nahikoa modulu batek emaitza negatiborik ematen ez badu, orduan moduluak erantzun positiboa emango du. Gainerako moduluak ez dira aintzat hartuko.
- aukerakoa: pilan beharrezkoak diren modulurik ez badago eta modulu nahiko batek emaitza positiborik ematen ez badu, aukerako moduluetako batek gutxienez emaitza positibo bat itzuli beharko du.
Fitxategien eduki osoa /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
gorde fitxategia, gero exekutatu
$ sudo pam-auth-update
agertzen den leihoan, jarri izartxo bat ondoan Rutoken PAM GOST eta egin klik OK
8) Egiaztatu ezarpenak
Dena konfiguratuta dagoela ulertzeko, baina, aldi berean, sisteman saioa hasteko gaitasuna galtzeko, idatzi komandoa
$ sudo login
Sartu zure erabiltzaile-izena. Dena behar bezala konfiguratuta dago sistemak gailuaren PIN kodea behar badu.
9) Konfiguratu ordenagailua tokena ateratzen denean blokeatu beharrekoa
Paketean sartuta libpam-pkcs11
erabilgarritasuna barne pkcs11_eventmgr,
PKCS#11 gertaerak gertatzen direnean hainbat ekintza egiteko aukera ematen duena.
Ezarpenetarako pkcs11_eventmgr
konfigurazio fitxategi gisa balio du: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Linux banaketa desberdinetarako, txartel adimenduna edo token bat kentzean kontu bat blokeatzea eragiten duen komandoa desberdina izango da. cm. event card_remove
.
Behean konfigurazio fitxategi adibide bat erakusten da:
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";
}
}
Horren ondoren, gehitu aplikazioa pkcs11_eventmgr
martxan jartzeko. Horretarako, editatu .bash_profile fitxategia:
$ nano /home/<ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>/.bash_profile
Gehitu pkcs11_eventmgr lerroa fitxategiaren amaieran eta berrabiarazi.
Sistema eragilea konfiguratzeko deskribatutako urratsak argibide gisa erabil daitezke edozein Linux banaketa modernotan, etxekoetan barne.
Ondorioa
Linux ordenagailuak gero eta ezagunagoak dira Errusiako gobernu agentzietan, eta sistema eragile honetan bi faktoreko autentifikazio fidagarria ez da beti erraza izaten. Pozik egongo gara gida honekin "pasahitz arazoa" konpontzen eta zure ordenagailurako sarbidea modu fidagarrian babesten denbora asko eman gabe.
Iturria: www.habr.com