Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

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:

  1. Rutoken etsii käyttäjän henkilökohtaista varmennetta.
  2. Tunnus-PIN-koodia pyydetään.
  3. Satunnaisdata allekirjoitetaan yksityisellä avaimella suoraan Rutoken-sirulle.
  4. Tuloksena oleva allekirjoitus varmistetaan käyttäjän varmenteen julkisella avaimella.
  5. 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.

Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

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 https://download.rutoken.ru/Rutoken/PAM/
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ä: https://www.rutoken.ru/support/download/pkcs/

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 verkkopalvelu "Rutoken Registration Center". Prosessi kestää enintään 5 minuuttia.

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 pkcs11-työkaluhaara GOST-2012-tuella GitHubistamme (tämän artikkelin julkaisuhetkellä julkaisua 0.20 ei ole vielä julkaistu) tai OpenSC-pääprojektin päähaaralta viimeistään sitoa 8cf1e6f

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ää online-palvelu merkkijonojen muuntamiseen ASCII-koodeiksi.

$ ./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 OpenSSL:n asennus ja konfigurointi.
Esimerkiksi: '--id 3132"OpenSSL:ssä sinun on määritettävä"pkcs11:id=12".

Voit käyttää testivarmentajan palveluita, joita on monia mm. täällä, täällä и täällä, tätä varten luomme varmennepyynnön

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:

Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

Jos todistuksesi näyttää tältä:

Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

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

Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

tallenna tiedosto ja suorita sitten
$ sudo pam-auth-update
kirjoita näkyviin tulevassa ikkunassa sen viereen tähti Rutoken PAM GOST ja napsauta OK

Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

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.

Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

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.

Kuinka käyttää PAM-moduuleja paikalliseen todentamiseen Linuxissa käyttämällä Rutokenin GOST-2012-avaimia

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

Lisää kommentti