Yksinkertaiset salasanat eivät ole turvallisia, ja monimutkaisia on mahdotonta muistaa. Siksi ne päätyvät niin usein tarralapuille näppäimistön alle tai näytölle. Sen varmistamiseksi, että salasanat pysyvät "unohtelevien" käyttäjien mielessä ja suojauksen luotettavuus ei menetä, on olemassa kaksivaiheinen todennus (2FA).
Laitteen omistamisen ja sen PIN-koodin tuntemisen yhdistelmän ansiosta itse PIN voi olla yksinkertaisempi ja helpompi muistaa. PIN-koodin pituuden tai satunnaisuuden haitat kompensoivat fyysisen hallussapitovaatimuksen ja PIN-koodin raa'an voiman rajoitukset.
Lisäksi valtion virastoissa tapahtuu, että he haluavat kaiken toimivan GOST: n mukaan. Tätä 2FA-vaihtoehtoa Linuxiin kirjautumiseen käsitellään. Aloitan kaukaa.
PAM-moduulit
Pluggable Authentication Modules (PAM) ovat moduuleja, joissa on standardi API ja sovellusten erilaisten todennusmekanismien toteutukset.
Kaikki apuohjelmat ja sovellukset, jotka voivat toimia PAM:n kanssa, poimivat ne ja voivat käyttää niitä käyttäjien todentamiseen.
Käytännössä se toimii suunnilleen näin: sisäänkirjautumiskomento kutsuu PAM:ia, joka suorittaa kaikki tarvittavat tarkistukset konfiguraatiotiedostossa määritetyillä moduuleilla ja palauttaa tuloksen takaisin sisäänkirjautumiskomennolle.
librtpam
Aktiv-yrityksen kehittämä moduuli lisää älykortteja tai USB-tokeneita käyttävien käyttäjien kaksivaiheisen todennuksen epäsymmetrisillä avaimilla uusimpien kotimaisen kryptografian standardien mukaisesti.
Katsotaanpa sen toimintaperiaatetta:
- Tunnus tallentaa käyttäjän varmenteen ja sen yksityisen avaimen;
- Varmenne tallennetaan käyttäjän kotihakemistoon luotetuksi.
Todennusprosessi tapahtuu seuraavasti:
- Rutoken etsii käyttäjän henkilökohtaista varmennetta.
- Tunnus-PIN-koodia pyydetään.
- Satunnaisdata allekirjoitetaan yksityisellä avaimella suoraan Rutoken-sirulle.
- Tuloksena oleva allekirjoitus varmistetaan käyttäjän varmenteen julkisella avaimella.
- Moduuli palauttaa allekirjoituksen vahvistuksen tuloksen kutsuvalle sovellukselle.
Voit todentaa käyttämällä GOST R 34.10-2012 avaimia (pituus 256 tai 512 bittiä) tai vanhentunutta GOST R 34.10-2001.
Sinun ei tarvitse huolehtia avainten turvallisuudesta - ne luodaan suoraan Rutokenissa eivätkä koskaan poistu sen muistista salaustoimintojen aikana.
Rutoken EDS 2.0 on FSB:n ja FSTEC:n NDV 4:n mukaan sertifioima, joten sitä voidaan käyttää luottamuksellisia tietoja käsittelevissä tietojärjestelmissä.
Käytännön käyttö
Melkein mikä tahansa nykyaikainen Linux käy, esimerkiksi käytämme xUbuntu 18.10.
1) Asenna tarvittavat paketit
sudo apt-get install libccid pcscd opensc
Jos haluat lisätä työpöydän lukituksen näytönsäästäjällä, asenna paketti lisäksi libpam-pkcs11
.
2) Lisää PAM-moduuli GOST-tuella
Ladataan kirjastoa kohteesta
Kopioi PAM-kansion sisältö librtpam.so.1.0.0 järjestelmäkansioon
/usr/lib/
tai /usr/lib/x86_64-linux-gnu/
tai /usr/lib64
3) Asenna paketti librtpkcs11ecp.so
Lataa ja asenna DEB- tai RPM-paketti linkistä:
4) Tarkista, että Rutoken EDS 2.0 toimii järjestelmässä
Suoritamme terminaalissa
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Jos näet viivan Rutoken ECP <no label>
- Se tarkoittaa, että kaikki on kunnossa.
5) Lue todistus
Tarkistetaan, että laitteessa on varmenne
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Jos rivin jälkeen:
Using slot 0 with a present token (0x0)
- tiedot näytetään avaimista ja varmenteista, sinun on luettava varmenne ja tallennettava se levylle. Voit tehdä tämän suorittamalla seuraavan komennon, jossa {id}:n sijaan sinun on korvattava varmennetunnus, jonka näit edellisen komennon tulosteessa:
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
Jos cert.crt-tiedosto on luotu, siirry vaiheeseen 6). - ei ole mitään, laite on tyhjä. Ota yhteyttä järjestelmänvalvojaan tai luo avaimet ja varmenne itse noudattamalla seuraavaa vaihetta.
5.1) Luo testitodistus
Huomio! Kuvatut menetelmät avainten ja varmenteiden luomiseksi soveltuvat testaukseen, eikä niitä ole tarkoitettu käytettäväksi taistelutilassa. Tätä varten sinun on käytettävä avaimia ja varmenteita, jotka organisaatiosi luotettava varmenneviranomainen tai akkreditoitu varmenneviranomainen on myöntänyt.
PAM-moduuli on suunniteltu suojaamaan paikallisia tietokoneita ja se on suunniteltu toimimaan pienissä organisaatioissa. Koska käyttäjiä on vähän, järjestelmänvalvoja voi valvoa varmenteiden peruuttamista ja manuaalisesti estää tilejä sekä varmenteiden voimassaoloaikaa. PAM-moduuli ei vielä osaa tarkistaa varmenteita CRL:ien avulla ja rakentaa luottamusketjuja.
Helppo tapa (selaimen kautta)
Käytä testitodistusta saadaksesi
Nörttien tapa (konsolin ja mahdollisesti kääntäjän kautta)
Tarkista OpenSC-versio
$ opensc-tool --version
Jos versio on pienempi kuin 0.20, päivitä tai rakenna
Luo avainpari seuraavilla parametreilla:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)
--id:
objektitunniste (CKA_ID) kaksinumeroisina heksadesimaalilukuina ASCII-taulukosta. Käytä tulostettavissa oleville merkeille vain ASCII-koodeja, koska... id on välitettävä OpenSSL:lle merkkijonona. Esimerkiksi ASCII-koodi "3132" vastaa merkkijonoa "12". Mukavuuden vuoksi voit käyttää
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
Seuraavaksi luomme sertifikaatin. Alla kuvataan kaksi tapaa: ensimmäinen on CA:n kautta (käytämme testivarmenteita), toinen on itse allekirjoitettu. Tätä varten sinun on ensin asennettava ja määritettävä OpenSSL-versio 1.1 tai uudempi toimimaan Rutokenin kanssa erityisen rtengine-moduulin kautta käsikirjan avulla
Esimerkiksi: '--id 3132
"OpenSSL:ssä sinun on määritettävä"pkcs11:id=12
".
Voit käyttää testivarmentajan palveluita, joita on monia mm.
Toinen vaihtoehto on antaa periksi laiskuudelle ja luoda oma-allekirjoitus
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
Varmenteen lataaminen laitteeseen
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) Rekisteröi varmenne järjestelmään
Varmista, että varmenne näyttää base64-tiedostolta:
Jos todistuksesi näyttää tältä:
sitten sinun on muutettava varmenne DER-muodosta PEM-muotoon (base64)
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Tarkistamme uudelleen, että kaikki on nyt kunnossa.
Lisää varmenne luotettujen varmenteiden luetteloon
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
Viimeinen rivi suojaa luotettujen varmenteiden luetteloa muiden käyttäjien vahingossa tai tarkoituksella muuttamiselta. Tämä estää ketään lisäämästä varmenteensa tähän ja kirjautumasta sisään puolestasi.
7) Määritä todennus
PAM-moduulimme asentaminen on täysin vakiona ja se tehdään täsmälleen samalla tavalla kuin muiden moduulien asentaminen. Luo tiedostoon /usr/share/pam-configs/rutoken-gost-pam
sisältää moduulin koko nimen, onko se oletusarvoisesti käytössä, moduulin prioriteetin ja todennusparametrit.
Todennusparametrit sisältävät vaatimukset toiminnan onnistumiselle:
- vaaditaan: Tällaisten moduulien on palautettava myönteinen vastaus. Jos moduulikutsun tulos sisältää negatiivisen vastauksen, tämä johtaa todennusvirheeseen. Pyyntö hylätään, mutta jäljellä olevat moduulit kutsutaan.
- Requisite: Samanlainen kuin vaadittu, mutta epäonnistuu heti todennus ja ohittaa muut moduulit.
- riittävä: Jos mikään vaadituista tai riittävistä moduuleista ennen tällaista moduulia ei antanut negatiivista tulosta, moduuli palauttaa positiivisen vastauksen. Loput moduulit ohitetaan.
- valinnainen: Jos pinossa ei ole vaadittuja moduuleja eikä mikään riittävistä moduuleista anna positiivista tulosta, vähintään yhden valinnaisista moduuleista on palautettava positiivinen tulos.
Koko tiedoston sisältö /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
tallenna tiedosto ja suorita sitten
$ sudo pam-auth-update
kirjoita näkyviin tulevassa ikkunassa sen viereen tähti Rutoken PAM GOST ja napsauta OK
8) Tarkista asetukset
Ymmärtääksesi, että kaikki on määritetty, mutta et samalla menetä kykyäsi kirjautua järjestelmään, anna komento
$ sudo login
Syötä käyttäjänimesi. Kaikki on määritetty oikein, jos järjestelmä vaatii laitteen PIN-koodin.
9) Määritä tietokone estettäväksi, kun tunnus puretaan
Mukana pakkauksessa libpam-pkcs11
apuohjelma mukana pkcs11_eventmgr,
jonka avulla voit suorittaa erilaisia toimintoja PKCS#11-tapahtumien sattuessa.
Asetuksiin pkcs11_eventmgr
toimii asetustiedostona: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Eri Linux-jakeluissa komento, joka lukitsee tilin, kun sirukortti tai -tunnus poistetaan, on erilainen. cm. event card_remove
.
Esimerkki konfiguraatiotiedostosta näkyy alla:
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";
}
}
Lisää sen jälkeen sovellus pkcs11_eventmgr
käynnistykseen. Voit tehdä tämän muokkaamalla .bash_profile-tiedostoa:
$ nano /home/<имя_пользователя>/.bash_profile
Lisää rivi pkcs11_eventmgr tiedoston loppuun ja käynnistä uudelleen.
Kuvattuja käyttöjärjestelmän asennuksen vaiheita voidaan käyttää ohjeina missä tahansa nykyaikaisessa Linux-jakelussa, myös kotimaisissa.
Johtopäätös
Linux-tietokoneista on tulossa yhä suositumpia Venäjän valtion virastoissa, ja luotettavan kaksivaiheisen todennuksen määrittäminen tässä käyttöjärjestelmässä ei ole aina helppoa. Autamme mielellämme ratkaisemaan "salasanaongelman" tämän oppaan avulla ja suojaamaan tietokoneesi luotettavasti käyttämättä siihen paljon aikaa.
Lähde: will.com