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:
- Rutoken nggoleki sertifikat pribadi pangguna.
- PIN token dijaluk.
- Data acak mlebu ing kunci pribadi langsung ing chip Rutoken.
- Tandha asil diverifikasi nggunakake kunci umum saka sertifikat pangguna.
- 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.
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
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:
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
Cara geek (liwat konsol lan bisa uga kompiler)
Priksa versi OpenSC
$ opensc-tool --version
Yen versi kurang saka 0.20, banjur nganyari utawa mbangun
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
$ ./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.
Contone: kanggo '--id 3132
' ing OpenSSL sampeyan kudu nemtokake "pkcs11:id=12
".
Sampeyan bisa nggunakake layanan saka test CA, kang ana akeh, contone,
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:
Yen sertifikat katon kaya iki:
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
simpen file kasebut, banjur eksekusi
$ sudo pam-auth-update
ing jendhela sing katon, sijine tanda bintang ing jejere Rutoken PAM GOST lan klik OK
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.
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.
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