Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

Tembung sandhi sing prasaja ora aman, lan sing rumit ora bisa dieling-eling. Pramila dheweke asring nempel ing cathetan ing ngisor keyboard utawa ing monitor. Kanggo mesthekake yen tembung sandhi tetep ana ing pikirane pangguna "lali" lan linuwih proteksi ora ilang, ana otentikasi rong faktor (2FA).

Amarga kombinasi ndhuweni piranti lan ngerti PIN, PIN dhewe bisa dadi luwih gampang lan gampang dieling-eling. Cacat ing dawa PIN utawa randomness diimbangi dening requirement milik fisik lan Watesan ing PIN brute force.

Kajaba iku, kedadeyan ing lembaga pemerintah dheweke pengin kabeh bisa ditindakake miturut GOST. Opsi 2FA iki kanggo mlebu menyang Linux bakal dibahas. Aku bakal miwiti saka adoh.

modul PAM

Modul Authentication Pluggable (PAM) minangka modul kanthi API standar lan implementasine saka macem-macem mekanisme otentikasi ing aplikasi.
Kabeh keperluan lan aplikasi sing bisa digunakake karo PAM njupuk lan bisa digunakake kanggo otentikasi pangguna.
Ing praktik, kerjane kaya mangkene: printah login nelpon PAM, sing nindakake kabeh pamriksa sing dibutuhake nggunakake modul sing ditemtokake ing file konfigurasi lan ngasilake asil bali menyang printah login.

librtpam

Modul sing dikembangake dening perusahaan Aktiv nambahake otentikasi rong faktor pangguna nggunakake kertu pinter utawa token USB nggunakake tombol asimetris miturut standar kriptografi domestik paling anyar.

Ayo ndeleng prinsip operasi kasebut:

  • Token nyimpen sertifikat pangguna lan kunci pribadi;
  • Sertifikat kasebut disimpen ing direktori ngarep pangguna minangka dipercaya.

Proses otentikasi kedadeyan kaya ing ngisor iki:

  1. Rutoken nggoleki sertifikat pribadi pangguna.
  2. PIN token dijaluk.
  3. Data acak mlebu ing kunci pribadi langsung ing chip Rutoken.
  4. Tandha asil diverifikasi nggunakake kunci umum saka sertifikat pangguna.
  5. Modul ngasilake asil verifikasi teken menyang aplikasi panggilan.

Sampeyan bisa keasliane nggunakake tombol GOST R 34.10-2012 (dawa 256 utawa 512 bit) utawa GOST R 34.10-2001 sing lawas.

Sampeyan ora perlu kuwatir babagan keamanan tombol - padha digawe langsung ing Rutoken lan ora bakal ninggalake memori sajrone operasi kriptografi.

Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

Rutoken EDS 2.0 disertifikasi dening FSB lan FSTEC miturut NDV 4, mula bisa digunakake ing sistem informasi sing ngolah informasi rahasia.

Panggunaan praktis

Meh kabeh Linux modern bakal nindakake, contone, kita bakal nggunakake xUbuntu 18.10.

1) Instal paket sing dibutuhake

sudo apt-get install libccid pcscd opensc
Yen sampeyan pengin nambah kunci desktop karo screensaver, nginstal paket tambahan libpam-pkcs11.

2) Tambah modul PAM kanthi dhukungan GOST

Loading perpustakaan saka https://download.rutoken.ru/Rutoken/PAM/
Nyalin isi folder PAM librtpam.so.1.0.0 menyang folder sistem
/usr/lib/ utawa /usr/lib/x86_64-linux-gnu/utawa /usr/lib64

3) Instal paket karo librtpkcs11ecp.so

Ngundhuh lan nginstal paket DEB utawa RPM saka link: https://www.rutoken.ru/support/download/pkcs/

4) Priksa manawa Rutoken EDS 2.0 bisa digunakake ing sistem kasebut

Ing terminal kita nglakokakΓ©
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Yen sampeyan ndeleng garis Rutoken ECP <no label> - tegese kabeh OK.

5) Waca sertifikat

Priksa manawa piranti kasebut duwe sertifikat
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Yen sawise baris:
Using slot 0 with a present token (0x0)

  • informasi ditampilake babagan tombol lan sertifikat, sampeyan kudu maca sertifikat lan simpen ing disk. Kanggo nindakake iki, jalanake printah ing ngisor iki, ing ngendi tinimbang {id} sampeyan kudu ngganti ID sertifikat sing sampeyan deleng ing output perintah sadurunge:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    Yen file cert.crt wis digawe, nerusake menyang langkah 6).
  • ora ana apa-apa, banjur piranti kosong. Hubungi administrator utawa gawe kunci lan sertifikat dhewe kanthi ngetutake langkah sabanjure.

5.1) Nggawe sertifikat test

manungsa waΓ©! Cara sing diterangake kanggo nggawe kunci lan sertifikat cocog kanggo tes lan ora dimaksudake kanggo digunakake ing mode pertempuran. Kanggo nindakake iki, sampeyan kudu nggunakake kunci lan sertifikat sing ditanggepi dening panguwasa sertifikasi sing dipercaya organisasi utawa panguwasa sertifikasi sing akreditasi.
Modul PAM dirancang kanggo nglindhungi komputer lokal lan dirancang kanggo bisa digunakake ing organisasi cilik. Amarga ana sawetara pangguna, Administrator bisa ngawasi pencabutan sertifikat lan mblokir akun kanthi manual, uga periode validitas sertifikat. Modul PAM durung ngerti carane verifikasi sertifikat nggunakake CRL lan mbangun rantai kepercayaan.

Cara sing gampang (liwat browser)

Kanggo entuk sertifikat tes, gunakake layanan web "Pusat Registrasi Rutoken". Proses bakal njupuk ora luwih saka 5 menit.

Cara geek (liwat konsol lan bisa uga kompiler)

Priksa versi OpenSC
$ opensc-tool --version
Yen versi kurang saka 0.20, banjur nganyari utawa mbangun cabang pkcs11-alat kanthi dhukungan GOST-2012 saka GitHub kita (nalika nerbitake artikel iki, release 0.20 durung dirilis) utawa saka cabang master proyek OpenSC utama ora mengko tundhuk 8cf1e6f

Gawe pasangan kunci kanthi parameter ing ngisor iki:
--key-type: GOSTR3410-2012-512:А (Π“ΠžΠ‘Π’-2012 512 Π±ΠΈΡ‚ c парамсСтом А), GOSTR3410-2012-256:A (Π“ΠžΠ‘Π’-2012 256 Π±ΠΈΡ‚ с парамсСтом A)

--id: pengenal obyek (CKA_ID) minangka rong digit nomer karakter hex saka tabel ASCII. Gunakake kode ASCII mung kanggo karakter sing bisa dicithak, amarga... id kudu dikirim menyang OpenSSL minangka string. Contone, kode ASCII "3132" cocog karo senar "12". Kanggo penak, sampeyan bisa nggunakake layanan online kanggo ngowahi strings kanggo kode ASCII.

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

Sabanjure kita bakal nggawe sertifikat. Rong cara bakal diterangake ing ngisor iki: pisanan liwat CA (kita bakal nggunakake test CAs), kaloro iku dhewe mlebu. Kanggo nindakake iki, sampeyan kudu nginstal lan ngatur OpenSSL versi 1.1 utawa mengko kanggo nggarap Rutoken liwat modul rtengine khusus nggunakake manual. Nginstal lan ngatur OpenSSL.
Contone: kanggo '--id 3132' ing OpenSSL sampeyan kudu nemtokake "pkcs11:id=12".

Sampeyan bisa nggunakake layanan saka test CA, kang ana akeh, contone, lah, lah ΠΈ lah, kanggo iki kita bakal nggawe panjalukan kanggo sertifikat

Pilihan liyane kanggo menehi kesed lan nggawe dhewe mlebu
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

Ngunggah sertifikat menyang piranti
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

6) Ndhaptar sertifikat ing sistem

Priksa manawa sertifikat sampeyan katon kaya file base64:

Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

Yen sertifikat katon kaya iki:

Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

banjur sampeyan kudu ngowahi sertifikat saka format DER menyang format PEM (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Kita mriksa maneh yen kabeh wis rapi saiki.

Tambah sertifikat menyang dhaptar sertifikat sing dipercaya
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Baris pungkasan nglindhungi dhaptar sertifikat sing dipercaya saka ora sengaja utawa sengaja diganti dening pangguna liyane. Iki ngalangi wong saka nambah sertifikat ing kene lan bisa mlebu kanggo jeneng sampeyan.

7) Nggawe otentikasi

Nyetel modul PAM kita pancen standar lan ditindakake kanthi cara sing padha karo nyetel modul liyane. Nggawe file /usr/share/pam-configs/rutoken-gost-pam ngemot jeneng lengkap modul, apa wis diaktifake kanthi gawan, prioritas modul, lan paramèter otentikasi.
Parameter otentikasi ngemot syarat kanggo sukses operasi:

  • dibutuhake: modul kuwi kudu bali respon positif. Yen asil telpon modul ngemot respon negatif, iki bakal nyebabake kesalahan otentikasi. Panjaluk kasebut bakal dibuwang, nanging modul sing isih ana bakal diarani.
  • requisite: Padha dibutuhake, nanging langsung gagal bukti asli lan nglirwakake modul liyane.
  • cekap: Yen ora ana modul dibutuhake utawa cukup sadurunge modul kuwi bali asil negatif, modul bakal bali respon positif. Modul sing isih ana bakal diabaikan.
  • opsional: Yen ora ana modul sing dibutuhake ing tumpukan lan ora ana modul sing cukup kanggo ngasilake asil positif, banjur paling ora siji saka modul opsional kudu ngasilake asil positif.

Isi file lengkap /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

Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

simpen file kasebut, banjur eksekusi
$ sudo pam-auth-update
ing jendhela sing katon, sijine tanda bintang ing jejere Rutoken PAM GOST lan klik OK

Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

8) Priksa setelan

Kanggo mangerteni yen kabeh wis diatur, nanging ing wektu sing padha ora kelangan kemampuan kanggo mlebu menyang sistem, ketik printah
$ sudo login
Ketik jeneng pangguna sampeyan. Kabeh wis diatur kanthi bener yen sistem mbutuhake kode PIN piranti.

Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

9) Konfigurasi komputer sing bakal diblokir nalika token diekstrak

Klebu ing paket libpam-pkcs11 sarana klebu pkcs11_eventmgr, sing ngijini sampeyan kanggo nindakake macem-macem tumindak nalika PKCS # 11 acara kelakon.
Kanggo setelan pkcs11_eventmgr serves minangka file konfigurasi: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Kanggo distribusi Linux sing beda-beda, prentah sing nyebabake akun dikunci nalika kertu pinter utawa token dibusak bakal beda. Cm. event card_remove.
Conto file konfigurasi ditampilake ing ngisor iki:

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";
    }
}

SawisΓ© iku, nambah aplikasi pkcs11_eventmgr kanggo miwiti. Kanggo nindakake iki, sunting file .bash_profile:
$ nano /home/<имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ>/.bash_profile
Tambah baris pkcs11_eventmgr menyang mburi file lan urip maneh.

Langkah-langkah sing diterangake kanggo nyetel sistem operasi bisa digunakake minangka instruksi ing distribusi Linux modern, kalebu sing domestik.

Cara nggunakake modul PAM kanggo otentikasi lokal ing Linux nggunakake tombol GOST-2012 ing Rutoken

kesimpulan

PC Linux dadi saya populer ing agensi pamarΓ©ntah Rusia, lan nyetel otentikasi loro-faktor sing dipercaya ing OS iki ora gampang. Kita bakal seneng mbantu sampeyan ngatasi "masalah sandhi" karo pandhuan iki lan kanthi dipercaya nglindhungi akses menyang PC tanpa mbuwang akeh wektu.

Source: www.habr.com

Add a comment