ProHoster > Blog > Rêveberî > Nasnameya du-faktorî li ser malperê bi karanîna tokenek USB-ê. Niha jî ji bo Linux
Nasnameya du-faktorî li ser malperê bi karanîna tokenek USB-ê. Niha jî ji bo Linux
В yek ji gotarên me yên berê me li ser girîngiya rastkirina du-faktorî li ser portalên pargîdanî yên pargîdaniyan axivî. Cara paşîn me destnîşan kir ka meriv çawa di servera webê ya IIS de pejirandina ewledar saz dike.
Di şîroveyan de, ji me hate xwestin ku em rêwerzên ji bo serverên webê yên herî gelemperî yên Linux - nginx û Apache binivîsin.
We pirsî - me nivîsand.
Hûn çi hewce ne ku hûn dest pê bikin?
Her belavkirina Linux ya nûjen. Min li MX Linux 18.2_x64 sazkirinek ceribandinê kir. Ev bê guman ne belavkirinek serverê ye, lê ne mimkûn e ku ji bo Debian cûdahî hebin. Ji bo belavkirinên din, rêyên pirtûkxaneyên mîhengê dibe ku hinekî cûda bibin.
Token. Em berdewam dikin ku modela bikar bînin Rutoken EDS PKI, ku di warê taybetmendiyên bilez de ji bo karanîna pargîdanî îdeal e.
Ji bo ku hûn bi tokenek li Linux-ê bixebitin, hûn hewce ne ku pakêtên jêrîn saz bikin:
libccid libpcsclite1 pcscd pcsc-tools opensc
Belavkirina sertîfîkayan
Di gotarên berê de, me pişta xwe da vê yekê ku sertîfîkayên server û xerîdar dê bi karanîna Microsoft CA-ê werin derxistin. Lê ji ber ku em her tiştî li Linux-ê saz dikin, em ê di heman demê de ji we re rêyek alternatîf a weşandina van sertîfîkayan jî - bêyî ku ji Linux-ê derbikevin- vebêjin.
Em ê XCA wekî CA bikar bînin (https://hohnstaedt.de/xca/), ku li ser her belavkirina Linux ya nûjen heye. Hemî kiryarên ku em ê di XCA de pêk bînin dikarin di moda rêzika fermanê de bi karanîna amûrên OpenSSL û pkcs11-ê bêne kirin, lê ji bo sadebûn û zelaliyek mezintir, em ê wan di vê gotarê de pêşkêş nekin.
Destpêkirin
Lêkirin:
$ apt-get install xca
Û em direvin:
$ xca
Em databasa xwe ji bo CA - /root/CA.xdb diafirînin
Em pêşniyar dikin ku databasa Desthilatdariya Sertîfîkayê di peldankek ku tenê rêveber tê de heye were hilanîn. Ev girîng e ji bo parastina mifteyên taybet ên sertîfîkayên root, ku ji bo îmzekirina hemî sertîfîkayên din têne bikar anîn.
Bişkojk û sertîfîkaya CA ya root biafirînin
Binesaziya mifteya gelemperî (PKI) li ser pergala hiyerarşîk ava dibe. Di vê pergalê de tiştê sereke desthilatdariya pejirandina root an CA-ya root e. Divê pêşî sertîfîkaya wê were afirandin.
Em ji bo CA mifteyek taybet a RSA-2048 diafirînin. Ji bo vê yekê, li ser tabê Keysên Taybet lêqellibînî Key New û celebê guncan hilbijêrin.
Ji bo cotê mifteya nû navek saz bikin. Min jê re got CA Key.
Em sertîfîkaya CA bixwe, bi karanîna cotê mifteyê çêkirî, derdixin. Ji bo vê yekê, biçin tabê sertîfîkayên û bikirtînin Sertîfîkaya Nû.
Bê guman hilbijêrin SHA-256, ji ber ku karanîna SHA-1 nema dikare ewle were hesibandin.
Bawer bikin ku wekî şablonê hilbijêrin [default] CA. Ji bîr nekin ku li ser bitikînin Hemî bicîh bikin, wekî din şablon nayê sepandin.
Di tabê de Mijar cotê key me hilbijêrin. Li wir hûn dikarin hemî qadên sereke yên sertîfîkayê dagirin.
Afirandina keys û sertîfîkaya servera https
Bi vî rengî, em ji bo serverê mifteyek taybet a RSA-2048 diafirînin, min jê re got Key Server.
Dema ku sertîfîkayekê diafirînin, em hildibijêrin ku sertîfîkaya serverê divê bi sertîfîkayek CA re were îmze kirin.
Ji bîr nekin ku hilbijêrin SHA-256.
Em wekî şablonê hilbijêrin [default] HTTPS_server. Kılik lı ser Hemî bicîh bikin.
Piştre li ser tabê Mijar mifteya me hilbijêrin û qadên pêwîst dagirin.
Ji bo bikarhêner mift û sertîfîkayê biafirînin
Mifteya taybet a bikarhêner dê li ser tokena me were hilanîn. Ji bo ku hûn pê re bixebitin, hûn hewce ne ku pirtûkxaneya PKCS#11 ji malpera me saz bikin. Ji bo belavkirinên populer, em pakêtên amadekirî yên ku li vir in belav dikin - https://www.rutoken.ru/support/download/pkcs/. Ji bo arm64, armv7el, armv7hf, e2k, mipso32el jî meclîsên me hene, ku dikarin ji SDK-ya me werin dakêşandin - https://www.rutoken.ru/developers/sdk/. Ji bilî meclîsên ji bo Linux, meclîsên ji bo macOS, freebsd û android jî hene.
Zêdekirina Pêşkêşkarek nû ya PKCS#11 li XCA. Ji bo vê yekê, biçin menuê Vebijêrkên ber tabê PKCS # 11 Pêşkêşkar.
Em çap dikin Lêzêdekirin û riya pirtûkxaneya PKCS # 11 hilbijêrin. Di doza min de ew usrliblibrtpkcs11ecp.so ye.
Em mifteya RSA-2048 ji bo Rutoken EDS PKI wekî celebê mifteyê hilbijêrin. Min navê vê mifteyê kir Client Key.
PIN-kodê binivîse. Û em li benda qedandina hilberîna hardware ya cotê mifteyê ne
Em ji bo bikarhêner bi sertîfîkaya serverê re bi analogî sertîfîkayek diafirînin. Vê carê em şablonek hilbijêrin [default] HTTPS_client û ji bîr nekin ku bikirtînin Hemî bicîh bikin.
Di tabê de Mijar agahdariya li ser bikarhênerê binivîse. Em bi erênî bersivê didin daxwaza tomarkirina sertîfîkayê ji bo tokenê.
Di encamê de, li ser tabê Taybetmendî di XCA de divê hûn tiştek weha bistînin.
Ev mînîmal komek keys û sertîfîkayan bes e ku meriv bixwe dest bi sazkirina serveran bike.
Ji bo veavakirinê, divê em sertîfîkaya CA, sertîfîkaya serverê û mifteya taybet a serverê derxînin.
Ji bo vê yekê, navnîşa xwestinê li ser tabloya têkildar a XCA-yê hilbijêrin û bikirtînin Eksport.
nginx
Ez ê nenivîsim ka meriv çawa serverek nginx saz dike û dimeşîne - li ser Înternetê li ser vê mijarê bes gotar hene, ne ku behsa belgeyên fermî bikin. Werin em rasterast dest bi sazkirina HTTPS û pejirandina du-faktorî bi karanîna tokenek bikin.
Di nginx.conf de rêzikên jêrîn li beşa serverê zêde bikin:
Ez ê bi kurtasî behsa wan kesan bikim ku min ji xwe pirsî:
ssl_verify_client - diyar dike ku zincîra pêbaweriyê ji bo sertîfîkayê pêdivî ye ku were verast kirin.
ssl_verify_depth - Ji bo sertîfîkaya root pêbawer a di zincîrê de kûrahiya lêgerînê diyar dike. Ji ber ku sertîfîkaya muwekîlê me tavilê li ser sertîfîkaya root tê îmza kirin, kûrahî li ser 1 tête danîn. Heke sertîfîkaya bikarhêner li ser CA-ya navîn hatî îmzekirin, wê hingê divê 2 di vê parametreyê de were destnîşan kirin, û hwd.
ssl_client_certificate - riya sertîfîkaya root ya pêbawer diyar dike, ku dema ku pêbaweriya sertîfîkaya bikarhêner tê kontrol kirin tê bikar anîn.
ssl_certificate/ssl_certificate_key - rêya sertîfîkaya serverê/mifteya taybet nîşan bide.
Ji bîr nekin ku hûn nginx -t bimeşînin da ku kontrol bikin ku di vesazkirinê de xeletiyên tîpan tune ne, û hemî pel li cîhê rast in, û hwd.
Û ev hemû! Wekî ku hûn dikarin bibînin, sazkirinê pir hêsan e.
Werin em pêşî hewl bidin ku bêyî nîşanek têkevinê. Em vê wêneyê digirin:
Biçe li ser: preferences # nepenîtiyê, û em diçin Amûrên Ewlekariyê…
Em çap dikin Gazînameji bo ku ajokarek cîhaza PKCS#11 ya nû lê zêde bike û riya librtpkcs11ecp.so me diyar bike.
Ji bo kontrol bikin ku sertîfîka xuya ye, hûn dikarin biçin Gerînendeyê Belgeyê. Ji we tê xwestin ku hûn PIN-a xwe binivîsin. Piştî têketina rast, hûn dikarin kontrol bikin ka li ser tabê çi ye Sertîfîkayên we sertîfîkaya me ji token xuya bû.
Niha em bi tokenê re biçin. Firefox ji we daxwaz dike ku hûn sertîfîkayek ku dê ji bo serverê were hilbijartin hilbijêrin. Sertîfîkaya me hilbijêrin.
PROFIT!
Sazkirin carekê tê kirin, û wekî ku hûn di pencereya daxwaza sertîfîkayê de dibînin, em dikarin hilbijartina xwe hilînin. Piştî vê yekê, her gava ku em têkevin portalê, em ê tenê hewce ne ku nîşanek têxin û koda PIN-a bikarhêner a ku di dema formatkirinê de hatî destnîşan kirin têkevin. Piştî verastkirinek wusa, server jixwe dizane ku kîjan bikarhêner têketî ye û hûn êdî nekarin ji bo verastkirinê pencereyên din biafirînin, lê tavilê bikarhêner bihêlin nav hesabê xweya kesane.
Apache
Mîna nginx-ê, divê tu kes di sazkirina apache-yê de pirsgirêk tune be. Heke hûn nizanin ka meriv çawa vê servera malperê saz bike, tenê belgeya fermî bikar bînin.
Û em dest bi sazkirina HTTPS û rastkirina du-faktorê xwe dikin:
Pêşî hûn hewce ne ku mod_ssl çalak bikin:
$ a2enmod ssl
Û dûv re mîhengên xwerû yên HTTPS-ê yên malperê çalak bikin:
$ a2ensite default-ssl
Naha em pelê veavakirinê biguherînin: /etc/apache2/sites-enabled/default-ssl.conf:
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/apache2/sites-enabled/Server.crt
SSLCertificateKeyFile /etc/apache2/sites-enabled/ServerKey.pem
SSLCACertificateFile /etc/apache2/sites-enabled/CA.crt
SSLVerifyClient require
SSLVerifyDepth 10
Wekî ku hûn dikarin bibînin, navên pîvanan bi pratîkî bi navên parametreyên di nginx re hevaheng in, ji ber vê yekê ez ê wan rave nekim. Dîsa, her kesê ku bi hûrguliyan re eleqedar e bi xêr hatî belgeyê.
Naha em servera xwe ji nû ve dest pê dikin:
$ service apache2 reload
$ service apache2 restart
Wekî ku hûn dikarin bibînin, sazkirina pejirandina du-faktorî li ser her serverek malperê, çi li ser Windows an Linux, herî zêde yek saetê digire. Û sazkirina gerokan bi qasî 5 hûrdem digire. Pir kes difikirin ku sazkirin û xebata bi rastkirina du-faktorî dijwar û ne diyar e. Ez hêvî dikim ku gotara me bi kêmanî piçek vê efsaneyê hilweşîne.
Tenê bikarhênerên qeydkirî dikarin beşdarî anketê bibin. Têketinji kerema xwe.
Ma hûn ji bo sazkirina TLS bi sertîfîkayan li gorî GOST 34.10-2012 rêwerzan hewce dikin:
Erê, TLS-GOST pir pêwîst e
Na, ahengkirina bi algorîtmayên GOST ne balkêş e
44 bikarhêneran deng dan. 9 bikarhêner jî betal bûn.