Lihtsad paroolid ei ole turvalised ja keerukaid on võimatu meeles pidada. Seetõttu satuvad need nii sageli klaviatuuri või monitori all olevale kleeppaberile. Tagamaks, et paroolid jääksid “unustavatele” kasutajatele meelde ja kaitse usaldusväärsus ei kaoks, on olemas kahefaktoriline autentimine (2FA).
Seadme omamise ja selle PIN-koodi tundmise kombinatsiooni tõttu võib PIN-kood ise olla lihtsam ja hõlpsamini meeldejääv. PIN-koodi pikkuse või juhuslikkuse puudused kompenseerivad füüsilise omamise nõue ja PIN-koodi toore jõu kasutamise piirangud.
Lisaks juhtub valitsusasutustes, et nad tahavad, et kõik töötaks vastavalt GOST-ile. Seda 2FA võimalust Linuxi sisselogimiseks arutatakse. Alustan kaugelt.
PAM moodulid
Pluggable Authentication Modules (PAM) on standardse API-ga moodulid, millel on rakendustes erinevad autentimismehhanismid.
Kõik PAM-iga töötavad utiliidid ja rakendused võtavad need üles ja saavad neid kasutaja autentimiseks kasutada.
Praktikas töötab see umbes nii: sisselogimiskäsk kutsub välja PAM-i, mis teeb kõik vajalikud kontrollid konfiguratsioonifailis määratud moodulite abil ja tagastab tulemuse sisselogimiskäsule tagasi.
librtpam
Ettevõtte Aktiv arendatud moodul lisab kodumaise krüptograafia uusimatele standarditele vastava asümmeetriliste võtmete abil kiipkaarte või USB-märke kasutavate kasutajate kahefaktorilise autentimise.
Vaatame selle tööpõhimõtet:
- Token salvestab kasutaja sertifikaadi ja selle privaatvõtme;
- Sertifikaat salvestatakse kasutaja kodukataloogi usaldusväärsena.
Autentimisprotsess toimub järgmiselt:
- Rutoken otsib kasutaja isiklikku sertifikaati.
- Küsitakse märgi PIN-koodi.
- Juhuslikud andmed allkirjastatakse privaatvõtmega otse Rutokeni kiibis.
- Saadud allkirja kontrollitakse kasutaja sertifikaadi avaliku võtmega.
- Moodul tagastab helistavale rakendusele allkirja kontrollimise tulemuse.
Saate autentida võtmete GOST R 34.10-2012 (pikkus 256 või 512 bitti) või vananenud GOST R 34.10-2001 abil.
Te ei pea muretsema võtmete turvalisuse pärast – need genereeritakse otse Rutokenis ja ei lahku kunagi krüptograafiliste toimingute ajal selle mälust.
Rutoken EDS 2.0 on FSB ja FSTEC poolt NDV 4 järgi sertifitseeritud, mistõttu saab seda kasutada konfidentsiaalset infot töötlevates infosüsteemides.
Praktiline kasutamine
Peaaegu iga kaasaegne Linux sobib, näiteks kasutame xUbuntu 18.10.
1) Installige vajalikud paketid
sudo apt-get install libccid pcscd opensc
Kui soovite lisada ekraanisäästjaga töölaualuku, installige pakett täiendavalt libpam-pkcs11
.
2) Lisage GOST-i toega PAM-moodul
Teegi laadimine aadressilt
Kopeerige PAM-i kausta librtpam.so.1.0.0 sisu süsteemikausta
/usr/lib/
või /usr/lib/x86_64-linux-gnu/
või /usr/lib64
3) Installige pakett failiga librtpkcs11ecp.so
Laadige alla ja installige DEB- või RPM-pakett lingilt:
4) Kontrollige, kas Rutoken EDS 2.0 töötab süsteemis
Terminalis teostame
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Kui näete joont Rutoken ECP <no label>
- see tähendab, et kõik on korras.
5) Lugege tunnistust
Kontrollige, kas 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 peate sertifikaadi läbi lugema ja kettale salvestama. Selleks käivitage järgmine käsk, kus {id} asemel peate asendama sertifikaadi ID, mida 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, jätkake sammuga 6). - seal pole midagi, siis on seade tühi. Võtke ühendust oma administraatoriga või looge võtmed ja sertifikaat ise, järgides järgmist sammu.
5.1) Koostage katsesertifikaat
Tähelepanu! Kirjeldatud võtmete ja sertifikaatide loomise meetodid sobivad testimiseks ega ole mõeldud kasutamiseks lahingurežiimis. Selleks peate kasutama võtmeid ja sertifikaate, mille on välja andnud teie organisatsiooni usaldusväärne sertifitseerimisasutus või akrediteeritud sertifitseerimisasutus.
PAM-moodul on mõeldud kohalike arvutite kaitsmiseks ja mõeldud töötama väikestes organisatsioonides. Kuna kasutajaid on vähe, saab Administraator jälgida sertifikaatide tühistamist ja kontode käsitsi blokeerimist ning sertifikaatide kehtivusaega. PAM-moodul ei tea veel, kuidas kontrollida sertifikaate CRL-ide abil ja luua usaldusahelaid.
Lihtne viis (brauseri kaudu)
Katsesertifikaadi saamiseks kasutage
Nohiku viis (konsooli ja võib-olla ka kompilaatori kaudu)
Kontrollige OpenSC versiooni
$ opensc-tool --version
Kui versioon on väiksem kui 0.20, värskendage või ehitage
Looge järgmiste parameetritega võtmepaar:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)
--id:
objekti identifikaator (CKA_ID) kahekohaliste kuueteistkümnendmärkide numbritena ASCII tabelist. Kasutage prinditavate märkide jaoks ainult ASCII koode, kuna... ID tuleb anda OpenSSL-ile stringina. Näiteks ASCII kood “3132” vastab stringile “12”. Mugavuse huvides võite kasutada
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
Järgmisena koostame sertifikaadi. Allpool kirjeldatakse kahte võimalust: esimene on läbi CA (kasutame test CA-sid), teine on ise allkirjastatud. Selleks peate esmalt installima ja konfigureerima OpenSSL-i versiooni 1.1 või uuema, et töötada Rutokeniga spetsiaalse rtengine-mooduli kaudu, kasutades juhendit
Näiteks: '--id 3132
"OpenSSL-is peate määrama "pkcs11:id=12
"
Saate kasutada test-CA teenuseid, mida on palju, näiteks
Teine võimalus on laiskusele järele anda ja ise allkirjastatud luua
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
Sertifikaadi üleslaadimine seadmesse
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) Registreeri sertifikaat süsteemis
Veenduge, et teie sertifikaat näeks välja nagu base64 fail:
Kui teie sertifikaat näeb välja selline:
siis peate teisendama sertifikaadi DER-vormingust PEM-vormingusse (base64)
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Kontrollime uuesti, et nüüd on kõik korras.
Lisage sertifikaat usaldusväärsete sertifikaatide loendisse
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
Viimane rida kaitseb usaldusväärsete sertifikaatide loendit kogemata või tahtliku muutmise eest teiste kasutajate poolt. See ei lase kellelgi oma sertifikaati siia lisada ja teie nimel sisse logida.
7) Seadistage autentimine
Meie PAM-mooduli seadistamine on täiesti standardne ja toimub täpselt samamoodi nagu teiste moodulite seadistamine. Loo failiks /usr/share/pam-configs/rutoken-gost-pam
sisaldab mooduli täisnime, kas see on vaikimisi lubatud, mooduli prioriteeti ja autentimisparameetreid.
Autentimisparameetrid sisaldavad nõudeid toimingu õnnestumiseks:
- nõutav: sellised moodulid peavad andma positiivse vastuse. Kui mooduli kõne tulemus sisaldab negatiivset vastust, põhjustab see autentimisvea. Taotlus tühistatakse, kuid ülejäänud moodulid kutsutakse välja.
- nõutav: sarnane nõutavaga, kuid autentimine ebaõnnestub koheselt ja ignoreerib teisi mooduleid.
- piisav: kui ükski nõutud või piisav moodul enne sellist moodulit ei andnud negatiivset tulemust, tagastab moodul positiivse vastuse. Ülejäänud mooduleid ignoreeritakse.
- valikuline: kui virnas pole nõutavaid mooduleid ja ükski piisav moodul ei anna positiivset tulemust, peab vähemalt üks valikulistest moodulitest tagastama positiivse tulemuse.
Täielik faili sisu /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
salvestage fail ja seejärel käivitage
$ sudo pam-auth-update
lisage ilmuvas aknas selle kõrvale tärn Rutoken PAM GOST ja vajutage OK
8) Kontrollige seadeid
Et mõista, et kõik on konfigureeritud, kuid samal ajal mitte kaotada võimalust süsteemi sisse logida, sisestage käsk
$ sudo login
Sisestage oma kasutajanimi. Kõik on õigesti seadistatud, kui süsteem nõuab seadme PIN-koodi.
9) Konfigureerige arvuti blokeerimiseks, kui token ekstraheeritakse
Pakendis kaasas libpam-pkcs11
utiliit kaasas pkcs11_eventmgr,
mis võimaldab PKCS#11 sündmuste toimumisel teha erinevaid toiminguid.
Seadete jaoks pkcs11_eventmgr
toimib konfiguratsioonifailina: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Erinevate Linuxi distributsioonide puhul erineb käsk, mis põhjustab konto lukustamise pärast kiipkaardi või loa eemaldamist. cm. event card_remove
.
Konfiguratsioonifaili näide on näidatud allpool:
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";
}
}
Pärast seda lisage rakendus pkcs11_eventmgr
käivitamiseks. Selleks muutke faili .bash_profile:
$ nano /home/<имя_пользователя>/.bash_profile
Lisage faili lõppu rida pkcs11_eventmgr ja taaskäivitage.
Kirjeldatud operatsioonisüsteemi seadistamise samme saab kasutada juhistena mis tahes kaasaegses Linuxi distributsioonis, sealhulgas kodumaises.
Järeldus
Linuxi arvutid muutuvad Venemaa valitsusasutustes üha populaarsemaks ja usaldusväärse kahefaktorilise autentimise seadistamine selles OS-is pole alati lihtne. Aitame teil selle juhendiga hea meelega lahendada parooliprobleemi ja kaitsta usaldusväärselt juurdepääsu teie arvutile, kulutamata sellele palju aega.
Allikas: www.habr.com