Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

FjalĂ«kalimet e thjeshta nuk ofrojnĂ« siguri, ndĂ«rsa ato tĂ« komplikuara janĂ« tĂ« pamundura pĂ«r t'u memorizuar. Prandaj, ato shpesh pĂ«rfundojnĂ« nĂ« njĂ« shtampĂ« nĂ«n tastierĂ« apo nĂ« monitor. PĂ«r tĂ« siguruar qĂ« fjalĂ«kalimet tĂ« mbeten nĂ« mendjen e pĂ«rdoruesve "tĂ« harruar" dhe qĂ« siguria tĂ« mos humbasĂ« – ekziston autentikimi me dy faktorĂ« (2FA).

Falë kombinimit të faktorëve të pronësisë së pajisjes dhe njohjes së kodit PIN, kodin PIN mund ta ketë më të thjeshtë dhe më të lehtë për t'u mbajtur mend. Dobësitë në gjatësi ose rastësinë e kodit PIN kompensohen nga kërkesa e posedimit fizik dhe kufizimet në provimin e kodit PIN.

Për më tepër, në institucionet shtetërore ndonjëherë dëshirojnë që gjithçka të funksionojë sipas standardeve. Ky artikull do të flasë për një variant të 2FA për qasje në Linux. Do të filloj nga fillimi.

Modulet PAM

Modulet e Autentikimit të Pleshuar (Pluggable Authentication Modules, PAM) janë module me një API standard dhe realizime të mekanizmave të ndryshëm të autentikimit në aplikacione.
Të gjitha mjetet dhe aplikacionet që dinë të punojnë me PAM i mbështesin ato dhe mund t'i përdorin për autentikimin e përdoruesit.
Në praktikë, kjo funksionon si më poshtë: komanda login i drejtohet PAM, i cili kryen të gjitha kontrollimet e nevojshme përmes moduleve të specifikuara në skedarin e konfigurimit dhe i kthen rezultatin përsëri komandës login.

librtpam

Moduli i zhvilluar nga kompania "Aktiv" shton autentikimin me dy faktorë të përdoruesve përmes kartave të mençura ose tokeneve USB duke përdorur çelësa asimetrikë sipas standardeve më të fundit të kriptografisë vendase.

Le të shikojmë parimin e funksionimit të tij:

  • nĂ« token ruhet certifikata e pĂ«rdoruesit dhe çelĂ«si i tij privat;
  • certifikata Ă«shtĂ« ruajtur nĂ« katalogun e shtĂ«pisĂ« sĂ« pĂ«rdoruesit si e besueshme.

Procesi i autentikimit ndodh si më poshtë:

  1. Në Rutoken kërkohet certifikata personale e përdoruesit.
  2. Kërkohet kodi PIN i tokeneve.
  3. Nënshkrohet një të dhënë të rastësishme në çelësin privat direkt në çipin e Rutokeneve.
  4. Nënshkrimi i marrë kontrollohet me çelësin publik nga certifikata e përdoruesit.
  5. Moduli i kthen aplikacionit që e thirri rezultatin e kontrollit të nënshkrimit.

Mund të autentikoheni me çelësat e standardeve GOST R 34.10-2012 (me gjatësi 256 ose 512 bit) ose me GOST R 34.10-2001 të vjetëruar.

PĂ«r sigurinĂ« e çelĂ«save nuk duhet tĂ« shqetĂ«soheni – ata gjenerohen drejtpĂ«rdrejt nĂ« Rutoken dhe kurrĂ« nuk e braktisin memorjen e tij gjatĂ« operacioneve kriptografike.

Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

Rutoken ECP 2.0 është certifikuar nga FSB dhe FSTEK sipas NDV 4, prandaj mund të përdoret në sistemet informative që përpunojnë informacion konfidencial.

Përdorimi praktik

Çdo Linux modern do tĂ« jetĂ« i pĂ«rshtatshĂ«m, pĂ«r shembull do tĂ« pĂ«rdorim xUbuntu 18.10.

1) Instaloni paketat e nevojshme

sudo apt-get install libccid pcscd opensc
NĂ«se dĂ«shironi tĂ« shtoni bllokimin e punĂ«s me screensaver – instaloni gjithashtu paketĂ«n libpam-pkcs11.

2) Shtoni modulin PAM me mbështetje për GOST

Ngarko bibliotekën nga https://download.rutoken.ru/Rutoken/PAM/
Kopjoni përmbajtjen e folderit PAM librtpam.so.1.0.0 në folderin sistemor
/usr/lib/ ose /usr/lib/x86_64-linux-gnu/ose /usr/lib64

3) Instaloni paketin me librtpkcs11ecp.so

Ngarko dhe instaloni paketin DEB- ose RPM nga lidhja: https://www.rutoken.ru/support/download/pkcs/

4) Kontrolloni nëse Rutoken ECP 2.0 funksionon në sistem

NĂ« terminal ekzekutoni
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Nëse shihni rreshtin Rutoken ECP atëherë gjithçka është në rregull.

5) Lexoni certifikatën

Kontrolloni nëse në pajisje ka certifikatën
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Nëse pas rreshtit:
Using slot 0 with a present token (0x0)

  • informacioni shfaqet pĂ«r çelĂ«sat dhe certifikatat, atĂ«herĂ« duhet tĂ« lexoni certifikatĂ«n dhe ta ruani nĂ« disk. PĂ«r kĂ«tĂ«, ekzekutoni komandĂ«n e mĂ«poshtme, ku pĂ«r vendin e {id} duhet tĂ« vendosni ID-nĂ« e certifikatĂ«s qĂ« keni parĂ« nĂ« daljen e komandĂ«s sĂ« mĂ«parshme:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    Në rast se skedari cert.crt është krijuar kaloni në pikën 6).
  • nuk ka asgjĂ«, atĂ«herĂ« pajisja Ă«shtĂ« e zbrazĂ«t. Kontaktoni administratorin ose krijoni çelĂ«sat dhe certifikatĂ«n vetĂ«, duke ndjekur pikĂ«n e mĂ«parshme.

5.1) Krijoni një certifikatë testuese

Kujdes! Metodat e përshkruara për krijimin e çelësave dhe certifikatave janë të përshtatshme për testim dhe nuk janë të destinuara për t'u përdorur në mod të prodhimit. Për këtë, duhet të përdorni çelësa dhe certifikata të lëshuara nga një qendër e besuar të certifikimit të organizatës suaj ose një qendër të akredituar të autentikimit.
Moduli PAM është krijuar për të mbrojtur kompjuterët lokalë dhe parashikon punën në organizata të vogla. Meqenëse përdoruesit janë të pakët, administrator mund ta monitorojë vetë tërheqjen e certifikatave dhe të bllokojë manualisht llogaritë, ashtu siç është afati i vlefshmërisë së certifikatave. Moduli PAM ende nuk di të verifikojë certifikatat përmes CRL dhe të ndërtojë zinxhirë besimi.

Një rrugë e thjeshtë (nëpërmjet shfletuesit)

Për të marrë një certifikatë testimi, përdorni shërbimin në internet "Qendra e Regjistrimit RUTOKEN". Procesi do të zgjasë jo më shumë se 5 minuta.

Rruga e gjeshtrës (përmes konsolës dhe, ndoshta, kompajlerit)

Kontrolloni versionin e OpenSC
$ opensc-tool --version
Nëse versioni është më i vogël se 0.20, azhurnoni ose ndihmoni degen pkcs11-tool me mbështetje për GOST-2012 nga GitHub-i ynë (në momentin e publikimit të këtij artikulli, lëshimi 0.20 ende nuk është lëshuar) ose nga dega master e projektit kryesor OpenSC jo më vonë se komita 8cf1e6f

Tani krijojmë një çift çelësash me parametra:
--key-type: GOSTR3410-2012-512:A (GOST-2012 512 bit me parametër A), GOSTR3410-2012-256:A (GOST-2012 256 bit me parametër A)

--id: identifikuesi i objektit (CKA_ID) në formën e numrave dyshifrorë të simboleve në hex nga tabela ASCII. Përdorni vetëm kodet ASCII të simboleve të printuar, pasi id e nevojitet ta kaloni te OpenSSL në formën e një stringu. Për shembull, ASCII-kodet "3132" përkojnë me stringun "12". Për lehtësinë dhe komoditetin, mund të përdorni shërbimin online për konvertimin e stringut në kodet ASCII.

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

Tani do tĂ« krijojmĂ« certifikatĂ«n. MĂ« poshtĂ« do tĂ« pĂ«rshkruhen dy rrugĂ«: e para pĂ«rmes CA (ne do tĂ« tregojmĂ« CA testues), e dyta – vetĂ«-nĂ«nshkruar. PĂ«r kĂ«tĂ«, sĂ« pari duhet tĂ« instaloni dhe konfiguroni OpenSSL version 1.1 ose mĂ« tĂ« ri pĂ«r tĂ« punuar me RUTOKEN pĂ«rmes modulit tĂ« veçantĂ« rtengine duke pĂ«rdorur udhĂ«zimin Instalimi dhe konfigurimi i OpenSSL.
Për shembull: për '--id 3132' në OpenSSL duhet të specifikoni "pkcs11:id=12«.

Mund të shpërdoroni shërbimet e CA testuese, të cilat janë të shumta, për shembull, këtu, këtu dhe këtu, për këtë do të krijojmë një kërkesë për certifikatën

Një tjetër mundësi është të dorëzoheni dhe të krijoni një vetë-nënshkruar
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

Ngarkohet certifikata në pajisje
$ openssl req -utf8 -x509 -motor i çelësit -çelësi "pkcs11:id=12" -motor rtengine -jashtë cert.cer

6) Regjistrojeni certifikatën në sistem

Sigurohuni që certifikata juaj duket si një skedar base64:

Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

Nëse certifikata juaj duket kështu:

Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

atëherë duhet ta konvertoni certifikatën nga formati DER në formatin PEM (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Rishikoni përsëri nëse tani gjithçka është në rregull.

Shtoni certifikatën në listën e certifikatave të besuara
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Rreshti i fundit mbron listën e certifikatave të besuara nga ndryshimi i rastësishëm ose të qëllimshëm nga përdorues të tjerë. Kjo përjashton situatën kur dikush do të dorihet këtu certifikatën e tij dhe do të mund të hyjë në sistem në emrin tuaj.

7) Konfiguroni autentikimin

Konfigurimi i modulit tonë PAM është krejt standard dhe bëhet po ashtu si dhe konfigurimi i moduleve të tjera. Krijoni një skedar /usr/share/pam-configs/rutoken-gost-pam duke përfshirë emrin e plotë të modulit, nëse është aktivizuar nga default, prioritetin e modulit dhe parametrat e autentikimit.
Në parametrat e autentikimit ka kërkesa për suksesin e operacionit:

  • required (e domosdoshme): modulet e tilla duhet tĂ« kthejnĂ« njĂ« pĂ«rgjigje pozitive. NĂ«se rezultati i thirrjes sĂ« modulit ka njĂ« pĂ«rgjigje negative, kjo do tĂ« çojĂ« nĂ« njĂ« gabim autentikimi. KĂ«rkesa do tĂ« pĂ«rjashtohet, por modulet e tjera do tĂ« thirren.
  • requisite (e nevojshme): e ngjashme me required, por menjĂ«herĂ« çon nĂ« dĂ«shtimin e autentikimit dhe injoron modulet e tjera.
  • sufficient (i mjaftueshĂ«m): nĂ«se para njĂ« moduli tĂ« tillĂ« asnjĂ« nga modulet required ose sufficient nuk ktheu njĂ« rezultat negativ, atĂ«herĂ« moduli do tĂ« kthejĂ« njĂ« pĂ«rgjigje pozitive. Modulet e mbetura do tĂ« injorohen.
  • optional (shtesĂ«): nĂ«se nĂ« grumbullin nuk ka module required dhe asnjĂ« nga modulet sufficient nuk ktheu njĂ« rezultat pozitiv, atĂ«herĂ« tĂ« paktĂ«n njĂ« nga modulet optional duhet tĂ« kthejĂ« njĂ« pĂ«rgjigje pozitive.

Përmbajtja e plotë e skedarit /usr/share/pam-configs/rutoken-gost-pam:
Emri: Rutoken PAM GOST
Parazgjedhja: po
Prioriteti: 800
Tipi i Autentikimit: Primar
Autentikimi: i mjaftueshëm /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

ruani skedarin, pastaj përfundoni
$ sudo pam-auth-update
në dritaren që do të shfaqet vendosni një yll pranë Rutoken PAM GOST dhe klikojmë OK

Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

8) Kontrolloni konfigurimin

Për të kuptuar nëse gjithçka është konfiguruar, por në të njëjtën kohë mos humbni mundësinë e hyrjes në sistem, futni komandën
$ sudo login
Shkruani emrin e përdoruesit. Gjithçka është konfiguruar saktë nëse sistemi kërkon PIN-in e pajisjes.

Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

9) Konfiguroni bllokimin e kompjuterit gjatë nxjerrjes së token-it

Në paketë libpam-pkcs11 është përfshirë utilitari pkcs11_eventmgr, i cili lejon të kryhen veprime të ndryshme në rastin e ngjarjeve PKCS#11.
Për konfigurimin Për konfigurimin pkcs11_eventmgr /etc/pam_pkcs11/pkcs11_eventmgr.conf
shërben skedari i konfigurimit: Për distro të ndryshme Linux, komanda që thërret bllokimin e llogarisë gjatë nxjerrjes së kartave inteligjente ose token-it do të ndryshojë. Shih..
event card_remove

Shembulli i skedarit të konfigurimit është i paraqitur më poshtë:

Pas kësaj shtoni aplikacionin Për konfigurimin në ngarkesën automatike. Për këtë, redaktoni skedarin .bash_profile:
$ nano /home//.bash_profile
Shtoni në fund të skedarit rreshtin pkcs11_eventmgr dhe rindezuni.

Hapat e përshkruar për konfigurimin e sistemit operativ mund të përdoren si udhëzim në çdo distribuim modern të Linux, përfshirë ato vendas.

Si të përdorni modulat PAM për autentifikim lokal në Linux me çelësat GOST-2012 në Rutoken

Përfundimi

PC-të me Linux në strukturat shtetërore ruse po bëhen gjithnjë e më të popullarizuar, dhe konfigurimi i një autentifikimi të dyfishtë të besueshëm në këtë OS nuk është gjithmonë i lehtë. Ne jemi të lumtur që me këtë udhëzues mund t'ju ndihmojmë të zgjidhni "problemin e fjalëkalimeve" dhe të siguroni aksesin në PC pa shpenzuar shumë kohë.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster