Nenosiri rahisi si salama, na zile ngumu haziwezekani kukumbuka. Ndiyo maana mara nyingi huishia kwenye noti yenye kunata chini ya kibodi au kwenye kifuatiliaji. Ili kuhakikisha kuwa nywila zinabaki katika akili za watumiaji "waliosahau" na uaminifu wa ulinzi haupotee, kuna uthibitishaji wa mambo mawili (2FA).
Kutokana na mchanganyiko wa kumiliki kifaa na kujua PIN yake, PIN yenyewe inaweza kuwa rahisi na rahisi kukumbuka. Hasara za urefu wa PIN au kubahatisha hutatuliwa na hitaji la umiliki na vizuizi vya nguvu ya kikatili ya PIN.
Kwa kuongeza, hutokea katika mashirika ya serikali kwamba wanataka kila kitu kufanya kazi kulingana na GOST. Chaguo hili la 2FA la kuingia kwenye Linux litajadiliwa. Nitaanza kutoka mbali.
Sehemu za PAM
Moduli za Uthibitishaji Zinazoweza Kuchomekwa (PAM) ni moduli zilizo na API ya kawaida na utekelezaji wa mbinu mbalimbali za uthibitishaji katika programu.
Huduma zote na programu zinazoweza kufanya kazi na PAM zichukue na zinaweza kuzitumia kwa uthibitishaji wa mtumiaji.
Kwa mazoezi, inafanya kazi kama hii: amri ya kuingia inaita PAM, ambayo hufanya ukaguzi wote muhimu kwa kutumia moduli zilizoainishwa kwenye faili ya usanidi na inarudisha matokeo kwa amri ya kuingia.
librtpam
Moduli iliyotengenezwa na kampuni ya Aktiv inaongeza uthibitishaji wa vipengele viwili vya watumiaji wanaotumia kadi mahiri au tokeni za USB kwa kutumia vitufe vya ulinganifu kulingana na viwango vya hivi karibuni vya kriptografia ya nyumbani.
Wacha tuangalie kanuni ya uendeshaji wake:
- Ishara huhifadhi cheti cha mtumiaji na ufunguo wake wa kibinafsi;
- Cheti huhifadhiwa katika saraka ya nyumbani ya mtumiaji kama inavyoaminika.
Mchakato wa uthibitishaji hutokea kama ifuatavyo:
- Rutoken hutafuta cheti cha kibinafsi cha mtumiaji.
- PIN ya tokeni imeombwa.
- Data ya nasibu imetiwa saini kwenye ufunguo wa faragha moja kwa moja kwenye chipu ya Rutoken.
- Sahihi inayotokana inathibitishwa kwa kutumia ufunguo wa umma kutoka kwa cheti cha mtumiaji.
- Moduli inarejesha matokeo ya uthibitishaji wa saini kwa programu ya kupiga simu.
Unaweza kuthibitisha kwa kutumia funguo za GOST R 34.10-2012 (urefu wa 256 au 512 bits) au GOST R 34.10-2001 iliyopitwa na wakati.
Huna haja ya kuwa na wasiwasi juu ya usalama wa funguo - zinazalishwa moja kwa moja katika Rutoken na kamwe kuacha kumbukumbu yake wakati wa shughuli za cryptographic.
Rutoken EDS 2.0 imeidhinishwa na FSB na FSTEC kulingana na NDV 4, kwa hivyo inaweza kutumika katika mifumo ya habari inayochakata taarifa za siri.
Matumizi ya vitendo
Karibu Linux yoyote ya kisasa itafanya, kwa mfano tutatumia xUbuntu 18.10.
1) Weka vifurushi muhimu
sudo apt-get install libccid pcscd opensc
Ikiwa ungependa kuongeza kufuli ya eneo-kazi kwa kutumia kihifadhi skrini, sakinisha kifurushi zaidi libpam-pkcs11
.
2) Ongeza moduli ya PAM na usaidizi wa GOST
Inapakia maktaba kutoka
Nakili yaliyomo kwenye folda ya PAM librtpam.so.1.0.0 kwenye folda ya mfumo
/usr/lib/
au /usr/lib/x86_64-linux-gnu/
au /usr/lib64
3) Sakinisha kifurushi na librtpkcs11ecp.so
Pakua na usakinishe kifurushi cha DEB au RPM kutoka kwa kiungo:
4) Angalia kuwa Rutoken EDS 2.0 inafanya kazi kwenye mfumo
Katika terminal tunafanya
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Ikiwa unaona mstari Rutoken ECP <no label>
- ina maana kila kitu ni sawa.
5) Soma cheti
Inakagua kuwa kifaa kina cheti
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Ikiwa baada ya mstari:
Using slot 0 with a present token (0x0)
- habari inaonyeshwa kuhusu funguo na vyeti, unahitaji kusoma cheti na kuihifadhi kwenye diski. Ili kufanya hivyo, endesha amri ifuatayo, ambapo badala ya {id} unahitaji kubadilisha kitambulisho cha cheti ambacho uliona kwenye matokeo ya amri iliyotangulia:
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
Ikiwa faili ya cert.crt imeundwa, endelea hatua ya 6). - hakuna kitu, basi kifaa ni tupu. Wasiliana na msimamizi wako au uunde funguo na cheti mwenyewe kwa kufuata hatua inayofuata.
5.1) Unda cheti cha mtihani
Makini! Njia zilizoelezewa za kuunda funguo na cheti zinafaa kwa majaribio na hazikusudiwa kutumika katika hali ya mapigano. Ili kufanya hivyo, unahitaji kutumia funguo na vyeti vinavyotolewa na mamlaka ya uidhinishaji inayoaminika ya shirika lako au mamlaka ya uidhinishaji iliyoidhinishwa.
Moduli ya PAM imeundwa kulinda kompyuta za ndani na imeundwa kufanya kazi katika mashirika madogo. Kwa kuwa kuna watumiaji wachache, Msimamizi anaweza kufuatilia kufutwa kwa vyeti na kuzuia akaunti kwa mikono, pamoja na muda wa uhalali wa vyeti. Sehemu ya PAM bado haijui jinsi ya kuthibitisha vyeti kwa kutumia CRL na kuunda misururu ya uaminifu.
Njia rahisi (kupitia kivinjari)
Ili kupata cheti cha mtihani, tumia
Njia ya geek (kupitia koni na ikiwezekana mkusanyaji)
Angalia toleo la OpenSC
$ opensc-tool --version
Ikiwa toleo ni chini ya 0.20, basi sasisha au ujenge
Tengeneza jozi muhimu na vigezo vifuatavyo:
--key-type: GOSTR3410-2012-512:Π (ΠΠΠ‘Π’-2012 512 Π±ΠΈΡ c ΠΏΠ°ΡΠ°ΠΌΡΠ΅ΡΠΎΠΌ Π), GOSTR3410-2012-256:A (ΠΠΠ‘Π’-2012 256 Π±ΠΈΡ Ρ ΠΏΠ°ΡΠ°ΠΌΡΠ΅ΡΠΎΠΌ A)
--id:
kitambulisho cha kitu (CKA_ID) kama nambari za herufi za tarakimu mbili kutoka kwa jedwali la ASCII. Tumia misimbo ya ASCII pekee kwa herufi zinazoweza kuchapishwa, kwa sababu... id itahitaji kupitishwa kwa OpenSSL kama kamba. Kwa mfano, msimbo wa ASCII "3132" unafanana na kamba "12". Kwa urahisi, unaweza kutumia
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
Ifuatayo tutaunda cheti. Njia mbili zitaelezewa hapa chini: ya kwanza ni kupitia CA (tutatumia CA za mtihani), ya pili ni kujiandikisha. Ili kufanya hivyo, kwanza unahitaji kusakinisha na kusanidi toleo la OpenSSL 1.1 au baadaye kufanya kazi na Rutoken kupitia moduli maalum ya rtengine kwa kutumia mwongozo.
Kwa mfano: kwa '--id 3132
' katika OpenSSL unahitaji kutaja "pkcs11:id=12
".
Unaweza kutumia huduma za mtihani wa CA, ambao kuna nyingi, kwa mfano,
Chaguo jingine ni kutoa kwa uvivu na kuunda saini ya kibinafsi
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
Inapakia cheti kwenye kifaa
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) Sajili cheti kwenye mfumo
Hakikisha cheti chako kinaonekana kama faili ya base64:
Ikiwa cheti chako kinaonekana kama hii:
basi unahitaji kubadilisha cheti kutoka umbizo la DER hadi umbizo la PEM (base64)
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Tunaangalia tena kuwa kila kitu kiko sawa sasa.
Ongeza cheti kwenye orodha ya vyeti vinavyoaminika
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
Mstari wa mwisho hulinda orodha ya vyeti vinavyoaminika dhidi ya kubadilishwa kwa bahati mbaya au kimakusudi na watumiaji wengine. Hii inazuia mtu kuongeza cheti chake hapa na kuweza kuingia kwa niaba yako.
7) Weka uthibitishaji
Kuweka moduli yetu ya PAM ni kawaida kabisa na inafanywa kwa njia sawa kabisa na kusanidi moduli zingine. Unda kwa faili /usr/share/pam-configs/rutoken-gost-pam
iliyo na jina kamili la moduli, iwe imewezeshwa kwa chaguo-msingi, kipaumbele cha moduli, na vigezo vya uthibitishaji.
Vigezo vya uthibitishaji vina mahitaji ya mafanikio ya operesheni:
- inahitajika: moduli kama hizo lazima zirudishe jibu chanya. Ikiwa matokeo ya simu ya moduli yana jibu hasi, hii itasababisha hitilafu ya uthibitishaji. Ombi litaondolewa, lakini moduli zilizobaki zitaitwa.
- Requisite: Sawa na inavyotakiwa, lakini mara moja inashindwa uthibitishaji na kupuuza moduli zingine.
- ya kutosha: Ikiwa hakuna moduli zinazohitajika au za kutosha kabla ya moduli kama hiyo ilileta matokeo mabaya, basi moduli itarudisha jibu chanya. Moduli zilizosalia zitapuuzwa.
- kwa hiari: Ikiwa hakuna moduli zinazohitajika kwenye rafu na hakuna moduli ya kutosha inayoleta matokeo chanya, basi angalau moduli moja ya hiari lazima irudishe matokeo chanya.
Yaliyomo kamili ya faili /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
hifadhi faili, kisha utekeleze
$ sudo pam-auth-update
kwenye dirisha inayoonekana, weka nyota karibu nayo Rutoken PAM GOST na bonyeza OK
8) Angalia mipangilio
Ili kuelewa kuwa kila kitu kimeundwa, lakini wakati huo huo usipoteze uwezo wa kuingia kwenye mfumo, ingiza amri.
$ sudo login
Weka jina lako la mtumiaji. Kila kitu kimesanidiwa ipasavyo ikiwa mfumo unahitaji msimbo wa PIN wa kifaa.
9) Sanidi kompyuta ili kuzuiwa wakati ishara inatolewa
Imejumuishwa kwenye kifurushi libpam-pkcs11
shirika pamoja pkcs11_eventmgr,
ambayo hukuruhusu kufanya vitendo mbalimbali wakati matukio ya PKCS#11 yanapotokea.
Kwa mipangilio pkcs11_eventmgr
hutumika kama faili ya usanidi: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Kwa usambazaji tofauti wa Linux, amri inayosababisha akaunti kufungwa wakati kadi mahiri au tokeni inapoondolewa itatofautiana. Sentimita. event card_remove
.
Mfano wa faili ya usanidi umeonyeshwa hapa chini:
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";
}
}
Baada ya hayo ongeza programu pkcs11_eventmgr
kuanza. Ili kufanya hivi, hariri faili ya .bash_profile:
$ nano /home/<ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>/.bash_profile
Ongeza mstari pkcs11_eventmgr hadi mwisho wa faili na uwashe upya.
Hatua zilizoelezewa za kusanidi mfumo wa uendeshaji zinaweza kutumika kama maagizo katika usambazaji wowote wa kisasa wa Linux, pamoja na wa nyumbani.
Hitimisho
Kompyuta za Linux zinazidi kuwa maarufu katika mashirika ya serikali ya Kirusi, na kuanzisha uthibitishaji wa kuaminika wa sababu mbili katika OS hii si rahisi kila wakati. Tutafurahi kukusaidia kutatua "tatizo la nenosiri" na mwongozo huu na kulinda kwa uaminifu ufikiaji wa Kompyuta yako bila kutumia muda mwingi juu yake.
Chanzo: mapenzi.com