I password simplici ùn sò micca sicuri, è quelli cumplessi sò impussibili di ricurdà. Hè per quessa chì spessu finiscinu nantu à una nota appiccicosa sottu à u teclatu o nantu à u monitor. Per assicurà chì e password restanu in a mente di l'utilizatori "dimentichi" è l'affidabilità di a prutezzione ùn hè micca persa, ci hè l'autentificazione à dui fattori (2FA).
A causa di a cumminazzioni di pussede un dispositivu è cunnosce u so PIN, u PIN stessu pò esse più simplice è più faciule da ricurdà. I svantaghji in a lunghezza di u PIN o l'aleatoriu sò compensati da u requisitu di pussessu fisicu è e restrizioni à a forza bruta di PIN.
Inoltre, succede in l'agenzii di u guvernu chì volenu chì tuttu u travagliu secondu GOST. Questa opzione 2FA per accede à Linux serà discututa. Cuminciaraghju da luntanu.
Moduli PAM
Pluggable Authentication Modules (PAM) sò moduli cù una API standard è implementazioni di varii meccanismi di autenticazione in applicazioni.
Tutte l'utilità è l'applicazioni chì ponu travaglià cù PAM piglialli è ponu aduprà per l'autentificazione di l'utilizatori.
In pratica, funziona qualcosa di questu: u cumandamentu di login chjama PAM, chì eseguisce tutti i cuntrolli necessarii cù i moduli specificati in u schedariu di cunfigurazione è torna u risultatu à u cumandamentu di login.
librtpam
U modulu sviluppatu da a cumpagnia Aktiv aghjusta l'autentificazione à dui fattori di l'utilizatori chì utilizanu smart cards o tokens USB chì utilizanu chjavi asimmetrici secondu l'ultimi standard di criptografia domestica.
Fighjemu u principiu di u so funziunamentu:
- U token guarda u certificatu di l'utilizatore è a so chjave privata;
- U certificatu hè salvatu in u cartulare di casa di l'utilizatore cum'è fiduciale.
U prucessu d'autentificazione si faci cusì:
- Rutoken cerca u certificatu persunale di l'utilizatore.
- U token PIN hè dumandatu.
- I dati casuali sò firmati nantu à a chjave privata direttamente in u chip Rutoken.
- A firma resultanti hè verificata cù a chjave publica da u certificatu di l'utilizatore.
- U modulu torna u risultatu di verificazione di a firma à l'applicazione di chjama.
Pudete autentificà cù e chjave GOST R 34.10-2012 (lunghezza 256 o 512 bit) o GOST R 34.10-2001 obsoleti.
Ùn avete micca preoccupatu di a sicurità di e chjave - sò generati direttamente in Rutoken è ùn lascianu mai a so memoria durante l'operazioni criptografiche.
Rutoken EDS 2.0 hè certificatu da u FSB è FSTEC secondu NDV 4, per quessa pò esse usatu in sistemi d'infurmazione chì processanu infurmazioni cunfidenziale.
Usu praticu
Quasi ogni Linux mudernu farà, per esempiu useremu xUbuntu 18.10.
1) Installa i pacchetti necessarii
sudo apt-get install libccid pcscd opensc
Se vulete aghjunghje un serratura di u scrittore cù un screensaver, installate u pacchettu in più libpam-pkcs11
.
2) Aghjunghjite un modulu PAM cù supportu GOST
Caricà a biblioteca da
Copia u cuntenutu di u cartulare PAM librtpam.so.1.0.0 à u cartulare di u sistema
/usr/lib/
o /usr/lib/x86_64-linux-gnu/
o /usr/lib64
3) Installa u pacchettu cù librtpkcs11ecp.so
Scaricate è installate u pacchettu DEB o RPM da u ligame:
4) Verificate chì Rutoken EDS 2.0 travaglia in u sistema
In u terminal eseguimu
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Se vede a linea Rutoken ECP <no label>
- significa chì tuttu hè bè.
5) Leghjite u certificatu
Verificate chì u dispusitivu hà un certificatu
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Se dopu a linea:
Using slot 0 with a present token (0x0)
- l'infurmazione hè visualizata circa chjavi è certificati, vi tocca à leghje u certificatu è salvà lu à u discu. Per fà questu, eseguite u cumandimu seguitu, induve invece di {id} avete bisognu di rimpiazzà l'ID di certificatu chì avete vistu in l'output di u cumandimu precedente:
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
Se u schedariu cert.crt hè statu creatu, andate à u passu 6). - ùn ci hè nunda, allura u dispusitivu hè viotu. Cuntattate u vostru amministratore o creanu e chjave è certificate sè stessu seguitendu u prossimu passu.
5.1) Crea un certificatu di prova
Attenzione ! I metudi descritti per creà chjavi è certificati sò adattati per a prova è ùn sò micca pensati per l'usu in modu di cummattimentu. Per fà questu, avete bisognu di utilizà chjavi è certificati emessi da l'autorità di certificazione di fiducia di a vostra urganizazione o una autorità di certificazione accreditata.
U modulu PAM hè pensatu per prutege l'urdinatori lucali è hè pensatu per travaglià in picculi urganisazioni. Siccomu ci sò pochi utilizatori, l'Amministratore pò monitorà a revocazione di certificati è bluccà manualmente i cunti, è ancu u periodu di validità di i certificati. U modulu PAM ùn sapi ancu cumu verificà i certificati utilizendu CRL è custruisce catene di fiducia.
U modu faciule (via navigatore)
Per uttene un certificatu di prova, utilizate
U modu di geek (via a cunsola è possibbilmente u compilatore)
Verificate a versione OpenSC
$ opensc-tool --version
Se a versione hè menu di 0.20, allora aghjurnà o custruisce
Generate una coppia di chjave cù i seguenti parametri:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)
--id:
identificatore di l'ughjettu (CKA_ID) cum'è numeri di caratteri hexadecimale di dui cifre da a tabella ASCII. Aduprate solu codici ASCII per i caratteri stampabili, perchè ... id duverà esse passatu à OpenSSL cum'è una stringa. Per esempiu, u codice ASCII "3132" currisponde à a stringa "12". Per comodità, pudete aduprà
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
Dopu avemu da creà un certificatu. Dui manere seranu descritti quì sottu: u primu hè attraversu un CA (avemu aduprà CA di prova), u sicondu hè firmatu da sè stessu. Per fà questu, prima deve installà è cunfigurà OpenSSL versione 1.1 o più tardi per travaglià cù Rutoken per mezu di un modulu rtengine speciale cù u manuale.
Per esempiu: per '--id 3132
' in OpenSSL avete bisognu di specificà "pkcs11:id=12
".
Pudete aduprà i servizii di una prova CA, di quale ci sò assai, per esempiu,
Un'altra opzione hè di dà à a pigrizia è di creà un autofirmatu
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
Caricà u certificatu à u dispusitivu
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) Registrate u certificatu in u sistema
Assicuratevi chì u vostru certificatu s'assumiglia à un schedariu base64:
Se u vostru certificatu pare cusì:
dopu avete bisognu di cunvertisce u certificatu da u formatu DER à u formatu PEM (base64)
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Avemu verificatu di novu chì tuttu hè in ordine avà.
Aghjunghjite u certificatu à a lista di certificati di fiducia
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
L'ultima linea prutege a lista di certificati di fiducia da esse cambiatu accidentalmente o intenzionalmente da altri utilizatori. Questu impedisce à qualcunu di aghjunghje u so certificatu quì è di pudè login in u vostru nome.
7) Configurate l'autentificazione
L'installazione di u nostru modulu PAM hè cumplettamente standard è hè fatta esattamente in u listessu modu cum'è a creazione di altri moduli. Crea à u schedariu /usr/share/pam-configs/rutoken-gost-pam
chì cuntene u nome cumpletu di u modulu, s'ellu hè attivatu per automaticamente, a priorità di u modulu è i paràmetri di autentificazione.
I paràmetri di autentificazione cuntenenu esigenze per u successu di l'operazione:
- necessariu: tali moduli devenu vultà una risposta positiva. Se u risultatu di una chjama di modulu cuntene una risposta negativa, questu risultatu in un errore di autentificazione. A dumanda serà abbandunata, ma i moduli rimanenti seranu chjamati.
- requisite: Simile à ubligatoriu, ma subitu falla l'autentificazione è ignora altri moduli.
- suffissu: Se nimu di i moduli richiesti o sufficienti prima chì un tali modulu hà restituutu un risultatu negativu, u modulu restituverà una risposta positiva. I moduli rimanenti seranu ignorati.
- optional: Se ùn ci sò micca moduli richiesti nantu à a pila è nimu di i moduli suffirenti restituiscenu un risultatu pusitivu, allora almenu unu di i moduli opzionali deve rinvià un risultatu pusitivu.
Cuntinutu cumpletu di u schedariu /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
salvà u schedariu, poi eseguite
$ sudo pam-auth-update
in a finestra chì appare, mette un asteriscu accantu Rutoken PAM GOST è cliccate OK
8) Verificate i paràmetri
Per capisce chì tuttu hè cunfiguratu, ma à u stessu tempu ùn perde micca a capacità di log in u sistema, entre in u cumandimu
$ sudo login
Inserite u vostru nome d'utilizatore. Tuttu hè cunfiguratu currettamente se u sistema richiede un codice PIN di u dispositivu.
9) Configurate l'urdinatore per esse bluccatu quandu u token hè estrattu
Inclusu in u pacchettu libpam-pkcs11
utilità inclusa pkcs11_eventmgr,
chì vi permette di fà diverse azzioni quandu l'avvenimenti PKCS # 11 accadenu.
Per i paràmetri pkcs11_eventmgr
serve cum'è un schedariu di cunfigurazione: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Per e diverse distribuzioni Linux, u cumandamentu chì provoca un contu per esse chjusu quandu una smart card o token hè sguassatu serà diversu. Cm. event card_remove
.
Un esempiu di schedariu di cunfigurazione hè mostratu quì sottu:
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";
}
}
Dopu quì aghjunghje l'applicazione pkcs11_eventmgr
per inizià. Per fà questu, edità u schedariu .bash_profile:
$ nano /home/<имя_пользователя>/.bash_profile
Aghjunghjite a linea pkcs11_eventmgr à a fine di u schedariu è reboot.
I passi descritti per a stallazione di u sistema operatore ponu esse aduprati cum'è struzzioni in ogni distribuzione Linux moderna, cumpresi quelli domestici.
cunchiusioni
I PC Linux sò diventati sempre più populari in l'agenzii di u guvernu russu, è a creazione di l'autentificazione affidabile à dui fattori in questu OS ùn hè micca sempre faciule. Seremu cuntenti di aiutà vi risolve u "prublemu di password" cù sta guida è prutegge in modu affidabile l'accessu à u vostru PC senza passà assai tempu nantu à questu.
Source: www.habr.com