Şîfreyên hêsan ne ewle ne, û yên tevlihev ne mimkûn e ku bibîr bînin. Ji ber vê yekê ew pir caran di binê klavyeyê de an jî li ser ekranê de diqede. Ji bo ku şîfre di hişê bikarhênerên "jibîr" de bimîne û pêbaweriya parastinê winda nebe, pejirandina du-faktorî (2FA) heye.
Ji ber tevhevbûna xwedan amûrek û zanîna PIN-a wê, PIN bixwe dikare hêsantir û hêsan were bîranîn. Dezawantajên di dirêjahiya PIN an bêserûberiyê de ji hêla hewcedariya xwedaniya laşî û sînorkirinên li ser hêza hovane ya PIN-ê têne derxistin.
Wekî din, ew di saziyên hukûmetê de dibe ku ew dixwazin her tişt li gorî GOST-ê bixebite. Vê vebijarka 2FA ji bo têketina Linux-ê dê were nîqaş kirin. Ez ê ji dûr ve dest pê bikim.
modules PAM
Modulên Nasnameya Pluggable (PAM) modulên xwedan API-ya standard in û di serîlêdanan de mekanîzmayên cihêreng pejirandinê bicîh dikin.
Hemî karûbar û serîlêdanên ku dikarin bi PAM-ê re bixebitin wan hildibijêrin û dikarin wan ji bo rastkirina bikarhêner bikar bînin.
Di pratîkê de, ew tiştek bi vî rengî dixebite: fermana têketinê gazî PAM dike, ku hemî kontrolên pêwîst bi karanîna modulên ku di pelê vesazkirinê de hatine destnîşan kirin pêk tîne û encamê vedigerîne fermana têketinê.
librtpam
Modula ku ji hêla pargîdaniya Aktiv ve hatî pêşve xistin piştrastkirina du-faktorî ya bikarhênerên ku bi kartên jîr an tokenên USB-ê bi karanîna bişkojkên asîmetrîk bikar tînin li gorî standardên herî dawî yên krîptografiya navxweyî zêde dike.
Ka em li prensîba xebata wê binêrin:
- Token sertîfîkaya bikarhêner û mifteya wê ya taybet hilîne;
- Sertîfîka di pelrêça malê ya bikarhêner de wekî pêbawer tê tomar kirin.
Pêvajoya pejirandinê bi vî rengî pêk tê:
- Rutoken li sertîfîkaya kesane ya bikarhêner digere.
- PIN-a token tê xwestin.
- Daneyên rasthatî li ser mifteya taybet rasterast di çîpê Rutoken de têne îmze kirin.
- Îmzeya encam bi karanîna mifteya giştî ya ji sertîfîkaya bikarhêner ve tê verast kirin.
- Modul encama verastkirina îmzeyê li serîlêdana bangê vedigerîne.
Hûn dikarin bi karanîna bişkojkên GOST R 34.10-2012 (dirêj 256 an 512 bit) an GOST R 34.10-2001-a kevnar verast bikin.
Hûn ne hewce ne ku ji ewlehiya mifteyan bitirsin - ew rasterast di Rutoken de têne çêkirin û di dema operasyonên krîptografî de qet bîranîna wê nahêlin.
Rutoken EDS 2.0 ji hêla FSB û FSTEC ve li gorî NDV 4 ve hatî pejirandin, ji ber vê yekê ew dikare di pergalên agahdariyê de ku agahdariya nepenî dişoxilînin de were bikar anîn.
Bikaranîna pratîkî
Hema hema her Linux-ya nûjen dê bike, mînakî em ê xUbuntu 18.10 bikar bînin.
1) Pakêtên pêwîst saz bikin
sudo apt-get install libccid pcscd opensc
Ger hûn dixwazin kilîtkirina sermaseyê bi dîmenderek zêde bikin, pakêtê pêvek saz bikin libpam-pkcs11
.
2) Bi piştgiriya GOST re modulek PAM zêde bikin
Barkirina pirtûkxaneyê ji
Naveroka peldanka PAM-ê librtpam.so.1.0.0 li peldanka pergalê kopî bikin
/usr/lib/
an /usr/lib/x86_64-linux-gnu/
an /usr/lib64
3) Pakêtê bi librtpkcs11ecp.so saz bikin
Ji lînkê pakêta DEB an RPM dakêşin û saz bikin:
4) Kontrol bikin ku Rutoken EDS 2.0 di pergalê de dixebite
Di termînalê de em îdam dikin
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Ger hûn rêzê bibînin Rutoken ECP <no label>
- wateya ku her tişt baş e.
5) Sertîfîkayê bixwînin
Kontrol kirin ku amûrek sertîfîkayek heye
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Ger piştî rêzê:
Using slot 0 with a present token (0x0)
- agahî tê nîşandan di derbarê kilît û sertîfîkayan de, hûn hewce ne ku sertîfîkayê bixwînin û li ser dîskê tomar bikin. Ji bo vê yekê, emrê jêrîn bimeşînin, li şûna {id} hûn hewce ne ku nasnameya sertîfîkayê ya ku we di derana fermana berê de dîtiye biguhezînin:
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
Heke pelê cert.crt hate afirandin, berbi gava 6-ê ve biçin). - tiştek tune, wê demê cîhaz vala ye. Bi rêvebirê xwe re têkilî daynin an jî bi şopandina gava paşîn, mifteyan û sertîfîkayê biafirînin.
5.1) Sertîfîkaya testê biafirînin
Baldarî! Rêbazên diyarkirî yên ji bo afirandina keys û sertîfîkayan ji bo ceribandinê maqûl in û ne ji bo karanîna di moda şer de ne. Ji bo vê yekê, hûn hewce ne ku mift û sertîfîkayên ku ji hêla saziya pejirandî ya pêbawer an rayedarek pejirandî ya pejirandî ve hatine derxistin bikar bînin.
Modula PAM-ê ji bo parastina komputerên herêmî hatî çêkirin û ji bo ku di rêxistinên piçûk de bixebite hatî çêkirin. Ji ber ku hindik bikarhêner hene, Rêvebir dikare betalkirina sertîfîkayan bişopîne û bi destan hesaban asteng bike, û hem jî dema derbasbûna sertîfîkayan. Modula PAM hîna nizane ka meriv çawa sertîfîkayan bi karanîna CRL-an verast dike û zincîreyên pêbaweriyê ava dike.
Rêya hêsan (bi gerokê)
Ji bo bidestxistina sertîfîkaya testê, bikar bînin
Riya geek (bi rêya konsolê û dibe ku berhevkar)
Guhertoya OpenSC-ê kontrol bikin
$ opensc-tool --version
Ger guherto ji 0.20 kêmtir e, wê hingê nûve bikin an ava bikin
Cotek mifteyê bi pîvanên jêrîn biafirînin:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)
--id:
Nasnameya objeyê (CKA_ID) wekî hejmarên karaktera hex du-hejmar ji tabloya ASCII. Ji bo tîpên çapkirî tenê kodên ASCII bikar bînin, ji ber ku ... Pêdivî ye ku id wekî rêzek ji OpenSSL re were derbas kirin. Mînakî, koda ASCII "3132" bi rêzika "12" re têkildar e. Ji bo rehetiyê, hûn dikarin bikar bînin
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
Piştre em ê sertîfîkayek çêbikin. Dê du awayên jêrîn werin diyar kirin: ya yekem bi CA-yê ye (em ê CA-yên ceribandinê bikar bînin), ya duyemîn bixwe-îmzakirî ye. Ji bo kirina vê yekê, hûn pêşî hewce ne ku hûn guhertoya OpenSSL 1.1 an dereng saz bikin û mîheng bikin da ku bi Rutoken re bi modulek rtengine taybetî ve bi karanîna manualê re bixebitin.
Mînak: ji bo '--id 3132
'di OpenSSL de divê hûn diyar bikin'pkcs11:id=12
".
Hûn dikarin karûbarên ceribandinek CA-ê bikar bînin, ku gelek jê hene, mînakî,
Vebijêrkek din jî ew e ku meriv li ber tembeliyê bide û xwe-îmza biafirîne
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
Sertîfîkayê li ser cîhazê barkirin
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) Sertîfîkayê di pergalê de tomar bikin
Piştrast bikin ku sertîfîkaya we wekî pelek base64 xuya dike:
Ger sertîfîkaya we bi vî rengî xuya dike:
wê hingê hûn hewce ne ku sertîfîkayê ji forma DER veguherînin forma PEM (base64)
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Em dîsa kontrol dikin ku niha her tişt di rê de ye.
Sertîfîkayê li navnîşa sertîfîkayên pêbawer zêde bikin
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
Rêza paşîn navnîşa sertîfîkayên pêbawer diparêze ku bi xeletî an bi mebest ji hêla bikarhênerên din ve were guheztin. Ev rê nade ku kesek sertîfîkaya xwe li vir zêde bike û bikaribe li ser navê we têkeve.
7) Verastkirinê saz bikin
Sazkirina modula meya PAM-ê bi tevahî standard e û tam bi heman awayê sazkirina modulên din tê kirin. Ji bo pelê çêbikin /usr/share/pam-configs/rutoken-gost-pam
Navê tevahî ya modulê vedihewîne, gelo ew ji hêla xwerû ve hatî çalak kirin, pêşîniya modulê, û pîvanên erêkirinê.
Parametreyên erêkirinê hewcedariyên ji bo serkeftina operasyonê vedihewîne:
- pêdivî ye: Divê modulên weha bersivek erênî vegerînin. Ger di encama bangek modulê de bersivek neyînî hebe, ev ê bibe sedema xeletiyek erêkirinê. Daxwaz dê were avêtin, lê modulên mayî dê bêne gazî kirin.
- pêdiviya: Mîna pêdivî ye, lê tavilê erêkirinê têk dibe û modulên din paşguh dike.
- bes: Ger yek ji modulên hewce an têr berî modulek wusa encamek neyînî negerîne, wê hingê modul dê bersivek erênî vegerîne. Modulên mayî dê werin paşguh kirin.
- vebijarkî: Ger tu modulên pêwîst li ser stikê tunebin û yek ji modulên têr encamek erênî venegerîne, wê hingê divê herî kêm yek ji modulên vebijarkî encamek erênî vegerîne.
Naveroka pelê tevahî /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
pelê hilînin, paşê bicîh bikin
$ sudo pam-auth-update
di pencereya ku xuya dike de, stêrkek li tenişta wê bixin Rutoken PAM GOST û bikirtînin OK
8) Mîhengan kontrol bikin
Ji bo ku fêm bikin ku her tişt hatî mîheng kirin, lê di heman demê de şiyana têketina pergalê winda neke, emrê têkevin
$ sudo login
Navê bikarhênerê xwe binivîse. Ger pergalê kodek PIN-a cîhazê hewce bike, her tişt rast tê mîheng kirin.
9) Komputerê mîheng bikin ku dema token tê derxistin were asteng kirin
Di nav pakêtê de libpam-pkcs11
bikêrhatî tê de pkcs11_eventmgr,
ku dihêle hûn gava ku bûyerên PKCS#11 diqewimin çalakiyên cihêreng pêk bînin.
Ji bo mîhengan pkcs11_eventmgr
wekî pelê vesazkirinê kar dike: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Ji bo dabeşkirinên cihêreng ên Linux, fermana ku dibe sedem ku hesabek were girtin dema ku qerta zîrek an token were rakirin dê cûda be. Cm. event card_remove
.
Mînakek pelê mîhengê li jêr tê nîşandan:
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";
}
}
Piştî wê serîlêdanê lê zêde bike pkcs11_eventmgr
ji bo destpêkirinê. Ji bo vê yekê, pelê .bash_profile biguherînin:
$ nano /home/<имя_пользователя>/.bash_profile
Rêza pkcs11_eventmgr li dawiya pelê zêde bikin û ji nû ve bidin destpêkirin.
Pêngavên diyarkirî yên ji bo sazkirina pergala xebitandinê dikare wekî rêwerzan di her belavkirina nûjen a Linux-ê de, tevî yên navxweyî, were bikar anîn.
encamê
PC-yên Linux-ê di saziyên hukûmeta rûsî de her ku diçe populer dibin, û sazkirina piştrastkirina du-faktorî ya pêbawer di vê OS-ê de her gav ne hêsan e. Em ê kêfxweş bibin ku ji we re bibin alîkar ku hûn bi vê rêbernameyê re "pirsgirêka şîfreyê" çareser bikin û bi pêbawer gihîştina PC-ya xwe biparêzin bêyî ku gelek wext li ser wê xerc bikin.
Source: www.habr.com