Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

Sandi basajan henteu aman, sareng kecap konci anu rumit henteu tiasa diinget. Éta sababna aranjeunna sering ditungtungan dina catetan caket handapeun kibor atanapi dina monitor. Pikeun mastikeun yén kecap akses tetep dina pikiran pamaké "poho" jeung reliabilitas panyalindungan teu leungit, aya auténtikasi dua-faktor (2FA).

Kusabab kombinasi gaduh alat sareng terang PIN na, PIN sorangan tiasa langkung saderhana sareng langkung gampang diinget. Kalemahan dina panjangna PIN atanapi randomness diimbangi ku syarat diilikan fisik sareng larangan dina gaya brute PIN.

Sajaba ti éta, éta kajadian dina instansi pamaréntah yén maranéhna rék sagalana pikeun digawé nurutkeun GOST. Pilihan 2FA ieu pikeun asup kana Linux bakal dibahas. Abdi badé ngamimitian ti tebih.

modul PAM

Modul Auténtikasi Pluggable (PAM) mangrupikeun modul sareng API standar sareng palaksanaan sababaraha mékanisme auténtikasi dina aplikasi.
Sadaya utilitas sareng aplikasi anu tiasa dianggo sareng PAM angkat sareng tiasa dianggo pikeun auténtikasi pangguna.
Dina prakna, éta tiasa dianggo sapertos kieu: paréntah login nyauran PAM, anu ngalaksanakeun sagala pamariksaan anu diperyogikeun nganggo modul anu dijelaskeun dina file konfigurasi sareng ngabalikeun hasil deui kana paréntah login.

librtpam

Modul anu dikembangkeun ku perusahaan Aktiv nambihan auténtikasi dua faktor pangguna anu nganggo kartu pinter atanapi token USB nganggo konci asimétri dumasar kana standar kriptografi domestik panganyarna.

Hayu urang nempo prinsip operasi na:

  • Token nyimpen sertipikat pangguna sareng konci pribadina;
  • Sertipikat disimpen dina diréktori asal pamaké sakumaha dipercaya.

Prosés auténtikasi lumangsung saperti kieu:

  1. Rutoken milarian sertipikat pribadi pangguna.
  2. PIN token dipénta.
  3. Data acak ditandatanganan dina konci swasta langsung dina chip Rutoken.
  4. Tanda tangan anu dihasilkeun diverifikasi nganggo konci umum tina sertipikat pangguna.
  5. modul nu mulih hasil verifikasi signature kana aplikasi nelepon.

Anjeun tiasa ngabuktoskeun kaaslianana nganggo konci GOST R 34.10-2012 (panjangna 256 atanapi 512 bit) atanapi GOST R 34.10-2001.

Anjeun teu kedah hariwang ngeunaan kaamanan konci - aranjeunna didamel langsung di Rutoken sareng henteu kantos ngantunkeun mémori nalika operasi kriptografi.

Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

Rutoken EDS 2.0 disertipikasi ku FSB sareng FSTEC nurutkeun NDV 4, ku kituna tiasa dianggo dina sistem inpormasi anu ngolah inpormasi rahasia.

Pamakéan praktis

Ampir sagala Linux modern bakal ngalakukeun, contona urang bakal ngagunakeun xUbuntu 18.10.

1) Pasang bungkusan anu diperyogikeun

sudo apt-get install libccid pcscd opensc
Upami anjeun hoyong nambihan konci desktop sareng screensaver, pasang pakét tambahan libpam-pkcs11.

2) Tambahkeun modul PAM kalayan rojongan GOST

Ngamuat perpustakaan ti https://download.rutoken.ru/Rutoken/PAM/
Salin eusi folder PAM librtpam.so.1.0.0 kana folder sistem
/usr/lib/ atawa /usr/lib/x86_64-linux-gnu/atawa /usr/lib64

3) Pasang pakét sareng librtpkcs11ecp.so

Unduh sareng pasang pakét DEB atanapi RPM tina tautan: https://www.rutoken.ru/support/download/pkcs/

4) Pariksa yén Rutoken EDS 2.0 jalan dina sistem

Di terminal urang laksanakeun
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Lamun ningali garis Rutoken ECP <no label> - eta hartina sagalana OK.

5) Baca sertipikat

Mariksa yen alat boga sertipikat
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Lamun sanggeus baris:
Using slot 0 with a present token (0x0)

  • inpormasi dipintonkeun ngeunaan konci sareng sertipikat, anjeun kedah maca sertipikat sareng simpen kana disk. Jang ngalampahkeun ieu, jalankeun paréntah di handap ieu, dimana tinimbang {id} anjeun kedah ngagentos ID sertipikat anu anjeun tingali dina kaluaran paréntah sateuacana:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    Lamun file cert.crt geus dijieun, lumangsungna lengkah 6).
  • henteu aya nanaon, teras alatna kosong. Taroskeun ka administrator anjeun atanapi jieun konci sareng sertipikat anjeun nyalira ku nuturkeun léngkah salajengna.

5.1) Jieun sertipikat tés

Perhatosan! Metodeu anu dijelaskeun pikeun nyiptakeun konci sareng sertipikat cocog pikeun uji sareng henteu dimaksudkeun pikeun dianggo dina mode tempur. Jang ngalampahkeun ieu, anjeun kedah nganggo konci sareng sertipikat anu dikaluarkeun ku otoritas sertifikasi dipercaya organisasi anjeun atanapi otoritas sertifikasi akreditasi.
Modul PAM dirancang pikeun ngajaga komputer lokal sareng dirancang pikeun dianggo dina organisasi leutik. Kusabab aya sababaraha pangguna, Administrator tiasa ngawas panyabutan sertipikat sareng meungpeuk akun sacara manual, kitu ogé periode validitas sertipikat. Modul PAM henteu acan terang kumaha pariksa sertipikat nganggo CRL sareng ngawangun ranté kapercayaan.

Cara anu gampang (ngaliwatan browser)

Pikeun ménta sertipikat test, make jasa wéb "Pusat Pendaptaran Rutoken". Prosésna bakal nyandak henteu langkung ti 5 menit.

Jalan geek (ngaliwatan konsol sareng kamungkinan kompiler)

Pariksa versi OpenSC
$ opensc-tool --version
Upami versina kirang ti 0.20, teras ngapdet atanapi ngawangun cabang pkcs11-alat jeung rojongan GOST-2012 ti GitHub kami (dina waktos publikasi artikel ieu, sékrési 0.20 henteu acan dileupaskeun) atanapi ti cabang master proyék OpenSC utama henteu engké. komitmen 8cf1e6f

Ngahasilkeun pasangan konci kalayan parameter ieu:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)

--id: identifier obyék (CKA_ID) salaku dua digit angka karakter hex tina tabel ASCII. Paké ngan kode ASCII pikeun karakter diprint, sabab... id kedah disalurkeun ka OpenSSL salaku senar. Contona, kode ASCII "3132" pakait jeung string "12". Pikeun genah, anjeun tiasa nganggo jasa online pikeun ngarobah string kana kode ASCII.

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

Salajengna urang bakal nyieun sertipikat. Dua cara bakal dijelaskeun di handap: kahiji ngaliwatan CA (urang bakal make test CAs), kadua ditandatanganan sorangan. Jang ngalampahkeun ieu, Anjeun mimitina kudu masang sarta ngonpigurasikeun OpenSSL versi 1.1 atanapi engké pikeun digawe sareng Rutoken ngaliwatan modul rtengine husus ngagunakeun manual. Masang sareng ngonpigurasikeun OpenSSL.
Contona: pikeun '--id 3132' dina OpenSSL anjeun kedah netepkeun "pkcs11:id=12".

Anjeun tiasa nganggo jasa tes CA, anu seueur, contona, di dieu, di dieu и di dieu, pikeun ieu kami bakal nyieun pamundut pikeun sertipikat

pilihan séjén nyaéta pikeun masihan ka Puguh sarta nyieun hiji diri ditandatanganan
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

Unggah sertipikat ka alat
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

6) Ngadaptarkeun sertipikat dina sistem

Pastikeun sertipikat anjeun sapertos file base64:

Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

Upami sertipikat anjeun sapertos kieu:

Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

teras anjeun kedah ngarobih sertipikat tina format DER kana format PEM (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Urang pariksa deui yén sagalana aya dina urutan ayeuna.

Tambahkeun sertipikat kana daptar sertipikat anu dipercaya
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Baris panungtung ngajaga daptar sertipikat anu dipercaya tina teu kahaja atanapi ngahaja dirobih ku pangguna sanés. Ieu nyegah batur tina nambahkeun sertipikat maranéhanana di dieu sarta bisa log in atas nama anjeun.

7) Nyetél auténtikasi

Nyetel modul PAM urang sagemblengna baku sarta dipigawé dina cara nu sarua salaku nyetel modul lianna. Jieun file /usr/share/pam-configs/rutoken-gost-pam ngandung nami lengkep modul, naha éta diaktipkeun sacara standar, prioritas modul, sareng parameter auténtikasi.
Parameter auténtikasi ngandung sarat pikeun kasuksésan operasi:

  • diperlukeun: modul misalna kudu balik respon positif. Lamun hasil panggero modul ngandung respon négatip, ieu bakal ngakibatkeun kasalahan auténtikasi. Paménta bakal dileungitkeun, tapi modul sésana bakal disebut.
  • requisite: Sarupa jeung diperlukeun, tapi geuwat gagal auténtikasi sarta ignores modul séjén.
  • cukup: Lamun taya sahiji modul diperlukeun atawa cukup saméméh modul sapertos balik hasil négatip, lajeng modul bakal balik respon positif. Modul sésana bakal dipaliré.
  • pilihan: Mun euweuh modul diperlukeun dina tumpukan jeung euweuh modul cukup balik hasil positif, lajeng sahenteuna salah sahiji modul pilihan kudu balik hasil positif.

Eusi file lengkep /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

Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

simpen file, teras laksanakeun
$ sudo pam-auth-update
dina jandela nu nembongan, nempatkeun tanda bintang gigireun eta Rutoken PAM GOST teras klik OK

Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

8) Pariksa setélan

Pikeun ngarti yén sagalana geus ngonpigurasi, tapi dina waktos anu sareng teu leungit kamampuhan pikeun asup kana sistem, asupkeun paréntah
$ sudo login
Lebetkeun ngaran pamaké anjeun. Sadayana dikonpigurasi leres upami sistem peryogi kode PIN alat.

Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

9) Konpigurasikeun komputer pikeun diblokir nalika token diekstrak

Kaasup dina pakét libpam-pkcs11 utiliti kaasup pkcs11_eventmgr, nu ngidinan Anjeun pikeun ngalakukeun rupa lampah nalika PKCS # 11 kajadian.
Pikeun sétting pkcs11_eventmgr fungsina salaku file konfigurasi: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Pikeun distribusi Linux anu béda, paréntah anu nyababkeun akun dikonci nalika kartu pinter atanapi token dipiceun bakal béda. Cm. event card_remove.
Conto file konfigurasi dipidangkeun di handap:

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

Sanggeus éta nambahkeun aplikasi pkcs11_eventmgr pikeun ngamimitian. Jang ngalampahkeun ieu, édit file .bash_profile:
$ nano /home/<имя_пользователя>/.bash_profile
Tambahkeun garis pkcs11_eventmgr ka tungtung file sareng reboot.

Léngkah-léngkah anu dijelaskeun pikeun nyetél sistem operasi tiasa dianggo salaku petunjuk dina distribusi Linux modern, kalebet anu domestik.

Kumaha ngagunakeun modul PAM pikeun auténtikasi lokal dina Linux nganggo konci GOST-2012 dina Rutoken

kacindekan

PC Linux jadi beuki populer di instansi pamaréntah Rusia, sarta nyetél auténtikasi dua-faktor dipercaya dina OS ieu teu salawasna gampang. Kami bakal bagja ngabantosan anjeun ngarengsekeun "masalah sandi" sareng pituduh ieu sareng ngajagi aksés ka PC anjeun tanpa nyéépkeun waktos.

sumber: www.habr.com

Tambahkeun komentar