Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux
В wieħed mill-artikoli preċedenti tagħna tkellimna dwar l-importanza ta 'awtentikazzjoni b'żewġ fatturi fuq portali korporattivi tal-kumpaniji. L-aħħar darba urejna kif nistabbilixxu awtentikazzjoni sigura fis-server tal-web IIS.

Fil-kummenti, ġejna mitluba niktbu struzzjonijiet għas-servers tal-web l-aktar komuni għal Linux - nginx u Apache.

Tlabt - ktibna.

X'għandek bżonn biex tibda?

  • Kwalunkwe distribuzzjoni moderna tal-Linux. Għamilt setup tat-test fuq MX Linux 18.2_x64. Din hija ovvjament mhux distribuzzjoni tas-server, iżda mhux probabbli li jkun hemm xi differenzi għal Debian. Għal distribuzzjonijiet oħra, il-mogħdijiet għal-libreriji tal-konfigurazzjoni jistgħu jvarjaw ftit.
  • Token. Aħna nkomplu nużaw il-mudell Rutoken EDS PKI, li hija ideali f'termini ta 'karatteristiċi ta' veloċità għall-użu korporattiv.
  • Biex taħdem b'token fil-Linux, għandek bżonn tinstalla l-pakketti li ġejjin:
    libccid libpcsclite1 pcscd pcsc-tools opensc

Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

Ħruġ ta' ċertifikati

F'artikoli preċedenti, aħna bbażajna ruħna fuq il-fatt li ċ-ċertifikati tas-server u tal-klijent se jinħarġu bl-użu ta 'Microsoft CA. Iżda peress li qed inwaqqfu kollox fil-Linux, aħna ser ngħidulek ukoll dwar mod alternattiv kif toħroġ dawn iċ-ċertifikati - mingħajr ma titlaq minn Linux.
Aħna se nużaw XCA bħala CA (https://hohnstaedt.de/xca/), li hija disponibbli fuq kwalunkwe distribuzzjoni moderna tal-Linux. L-azzjonijiet kollha li se nwettqu f'XCA jistgħu jsiru fil-modalità tal-linja tal-kmand billi tuża l-utilitajiet tal-għodda OpenSSL u pkcs11, iżda għal aktar sempliċità u ċarezza, mhux se nippreżentawhom f'dan l-artikolu.

Getting Started

  1. Installa:
    $ apt-get install xca
  2. U niġru:
    $ xca
  3. Noħolqu d-database tagħna għal CA - /root/CA.xdb
    Nirrakkomandaw li taħżen id-database tal-Awtorità taċ-Ċertifikati f'folder fejn l-amministratur biss ikollu aċċess. Dan huwa importanti biex jiġu protetti ċ-ċwievet privati ​​taċ-ċertifikati tal-għeruq, li jintużaw biex jiffirmaw iċ-ċertifikati l-oħra kollha.

Oħloq ċwievet u ċertifikat CA tal-għeruq

Infrastruttura taċ-ċavetta pubblika (PKI) hija bbażata fuq sistema ġerarkika. Il-ħaġa prinċipali f'din is-sistema hija l-awtorità taċ-ċertifikazzjoni tal-għeruq jew l-għerq CA. Iċ-ċertifikat tiegħu għandu jinħoloq l-ewwel.

  1. Aħna noħolqu ċavetta privata RSA-2048 għas-CA. Biex tagħmel dan, fuq it-tab Ċwievet Privati imbotta Ċavetta Ġdida u agħżel it-tip xieraq.
  2. Issettja isem għall-par taċ-ċwievet il-ġdid. I imsejħa CA Key.
  3. Aħna noħorġu ċ-ċertifikat CA innifsu, billi nużaw il-par taċ-ċwievet maħluqa. Biex tagħmel dan, mur fit-tab Ċertifikati u kklikkja Ċertifikat Ġdid.
  4. Kun żgur li tagħżel SHA-256, minħabba li l-użu ta 'SHA-1 ma jistax jibqa' jitqies sigur.
  5. Kun żgur li tagħżel bħala mudell [default]CA. Tinsiex tikklikkja fuq Applika kollha, inkella l-mudell ma jiġix applikat.
  6. Fit-tab suġġett agħżel il-par ewlieni tagħna. Hemmhekk tista' timla l-oqsma ewlenin kollha taċ-ċertifikat.

Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

Ħolqien taċ-ċwievet u ċertifikat tas-server https

  1. B'mod simili, noħolqu ċavetta privata RSA-2048 għas-server, sejħitha Server Key.
  2. Meta noħolqu ċertifikat, aħna nagħżlu li ċ-ċertifikat tas-server għandu jkun iffirmat b'ċertifikat CA.
  3. Tinsiex tagħżel SHA-256.
  4. Aħna nagħżlu bħala mudell [default] HTTPS_server. Ikklikkja fuq Applika kollha.
  5. Imbagħad fuq it-tab suġġett agħżel iċ-ċavetta tagħna u imla l-oqsma meħtieġa.

Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

Oħloq ċwievet u ċertifikat għall-utent

  1. Iċ-ċavetta privata tal-utent se tkun maħżuna fuq it-token tagħna. Biex taħdem magħha, trid tinstalla l-librerija PKCS#11 mill-websajt tagħna. Għal distribuzzjonijiet popolari, aħna nqassmu pakketti lesti, li jinsabu hawn - https://www.rutoken.ru/support/download/pkcs/. Għandna wkoll assemblaġġi għal arm64, armv7el, armv7hf, e2k, mipso32el, li jistgħu jitniżżlu mill-SDK tagħna - https://www.rutoken.ru/developers/sdk/. Minbarra assemblaġġi għal Linux, hemm ukoll assemblaġġi għal macOS, freebsd u android.
  2. Iż-żieda ta' Fornitur PKCS#11 ġdid ma' XCA. Biex tagħmel dan, mur fil-menu Għażliet għat-tab PKCS#11 Fornitur.
  3. Aħna nagħfas Żid u agħżel it-triq għal-librerija PKCS#11. Fil-każ tiegħi huwa usrliblibrtpkcs11ecp.so.
  4. Ikollna bżonn token Rutoken EDS PKI ifformattjat. Niżżel l-utilità rtAdmin - https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. Aħna nwettqu
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u <PIN-код пользователя>
  6. Aħna nagħżlu ċ-ċavetta RSA-2048 għar-Rutoken EDS PKI bħala t-tip ewlieni. Sejjaħt din iċ-ċavetta Client Key.

    Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

  7. Daħħal il-kodiċi PIN. U nistennew għat-tlestija tal-ġenerazzjoni tal-ħardwer tal-par taċ-ċavetta

    Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

  8. Aħna noħolqu ċertifikat għall-utent b'analoġija maċ-ċertifikat tas-server. Din id-darba nagħżlu mudell [default] HTTPS_client u tinsiex tikklikkja Applika kollha.
  9. Fit-tab suġġett daħħal informazzjoni dwar l-utent. Aħna nwieġbu fl-affermattiv għat-talba biex issalva ċ-ċertifikat għat-token.

Bħala riżultat, fuq it-tab Ċertifikati f'XCA għandek tikseb xi ħaġa bħal din.

Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux
Dan is-sett minimu ta 'ċwievet u ċertifikati huwa biżżejjed biex tibda twaqqaf is-servers infushom.

Biex tikkonfigura, għandna bżonn nesportaw iċ-ċertifikat CA, iċ-ċertifikat tas-server u ċ-ċavetta privata tas-server.

Biex tagħmel dan, agħżel l-entrata mixtieqa fuq it-tab korrispondenti f'XCA u kklikkja Esportazzjoni.

Nginx

Mhux se nikteb kif ninstalla u tħaddem server nginx - hemm biżżejjed artikli dwar dan is-suġġett fuq l-Internet, biex ma nsemmux id-dokumentazzjoni uffiċjali. Ejja nibdew nistabbilixxu HTTPS u awtentikazzjoni b'żewġ fatturi billi tuża token.

Żid il-linji li ġejjin mat-taqsima tas-server f'nginx.conf:

server {
	listen 443 ssl;
	ssl_verify_depth 1;
	ssl_certificate /etc/nginx/Server.crt;
	ssl_certificate_key /etc/nginx/ServerKey.pem;
	ssl_client_certificate /etc/nginx/CA.crt;
	ssl_verify_client on;
}

Deskrizzjoni dettaljata tal-parametri kollha relatati mal-konfigurazzjoni ta' ssl f'nginx tista' tinstab hawn - https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

Se niddeskrivi fil-qosor dawk li staqsejt lili nnifsi:

  • ssl_verify_client - jispeċifika li l-katina ta' fiduċja għaċ-ċertifikat jeħtieġ li tiġi vverifikata.
  • ssl_verify_depth - Jiddefinixxi l-fond tat-tfittxija għaċ-ċertifikat tal-għeruq fdat fil-katina. Peress li ċ-ċertifikat tal-klijent tagħna huwa ffirmat immedjatament fuq iċ-ċertifikat ta 'l-għeruq, il-fond huwa ssettjat għal 1. Jekk iċ-ċertifikat ta' l-utent ikun iffirmat fuq CA intermedjarju, allura 2 għandu jiġi speċifikat f'dan il-parametru, eċċ.
  • ssl_client_certificate - jispeċifika l-mogħdija għaċ-ċertifikat tal-għerq fdat, li jintuża meta tiċċekkja l-fiduċja fiċ-ċertifikat tal-utent.
  • ssl_certificate/ssl_certificate_key - indika t-triq għaċ-ċertifikat tas-server/ċ-ċavetta privata.

Tinsiex tħaddem nginx -t biex tiċċekkja li m'hemmx typos fil-konfigurazzjoni, u li l-fajls kollha huma fil-post it-tajjeb, eċċ.

U dak kollu! Kif tistgħu taraw, is-setup huwa sempliċi ħafna.

Iċċekkja li qed taħdem fil-Firefox

Peress li nagħmlu kollox kompletament fil-Linux, se nassumu li l-utenti tagħna jaħdmu wkoll fil-Linux (jekk għandhom il-Windows, allura ara l-istruzzjonijiet għat-twaqqif tal-browsers fl-artikolu preċedenti.

  1. Ejja nniedu Firefox.
  2. Ejja nippruvaw nilloggjaw mingħajr token l-ewwel. Nirċievu din l-istampa:

    Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

  3. Immorru dwar: preferenzi # privatezza, u mmorru Apparat tas-Sigurtà...
  4. Aħna nagħfas tagħbijabiex iżżid Sewwieq tal-Apparat PKCS#11 ġdid u speċifika t-triq għal librtpkcs11ecp.so tagħna.
  5. Biex tiċċekkja li ċ-ċertifikat ikun viżibbli, tista’ tmur fuq Maniġer taċ-Ċertifikat. Inti se tintalab iddaħħal il-PIN tiegħek. Wara input korrett, tista 'tiċċekkja x'inhu fuq it-tab Iċ-Ċertifikati Tiegħek deher iċ-ċertifikat tagħna mit-token.
  6. Issa mmorru bit-token. Firefox iqanqlek tagħżel ċertifikat li se jintgħażel għas-server. Agħżel iċ-ċertifikat tagħna.

    Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

  7. QLIGĦ!

    Awtentikazzjoni b'żewġ fatturi fuq is-sit bl-użu ta 'token USB. Issa wkoll għal Linux

Is-setup isir darba, u kif tistgħu taraw fit-tieqa tat-talba taċ-ċertifikat, nistgħu nsalvaw l-għażla tagħna. Wara dan, kull darba li nilloggjaw fil-portal, ikollna bżonn biss li ndaħħlu token u ndaħħlu l-kodiċi PIN tal-utent li kien speċifikat waqt l-ifformattjar. Wara tali awtentikazzjoni, is-server diġà jaf liema utent illoggja u ma tistax aktar toħloq twieqi addizzjonali għall-verifika, iżda immedjatament ħalli l-utent jidħol fil-kont personali tiegħu.

Apache

Eżatt bħal ma nginx, ħadd m'għandu jkollu xi problemi biex jinstalla apache. Jekk ma tafx kif tinstalla dan is-server tal-web, uża biss id-dokumentazzjoni uffiċjali.

U nibdew inwaqqfu l-HTTPS tagħna u l-awtentikazzjoni b'żewġ fatturi:

  1. L-ewwel trid tattiva mod_ssl:
    $ a2enmod ssl
  2. U mbagħad ippermetti l-issettjar HTTPS default tas-sit:
    $ a2ensite default-ssl
  3. Issa neditjaw il-fajl tal-konfigurazzjoni: /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

    Kif tistgħu taraw, l-ismijiet tal-parametri prattikament jikkoinċidu mal-ismijiet tal-parametri f'nginx, għalhekk mhux se nispjegahom. Għal darb'oħra, kull min hu interessat fid-dettalji huwa mistieden fid-dokumentazzjoni.
    Issa nerġgħu nibdew is-server tagħna:

    $ service apache2 reload
    $ service apache2 restart

  4. Kif tistgħu taraw, it-twaqqif ta 'awtentikazzjoni b'żewġ fatturi fuq kwalunkwe server tal-web, kemm jekk fuq Windows jew Linux, jieħu massimu ta' siegħa. U t-twaqqif tal-browsers jieħu madwar 5 minuti. Ħafna nies jaħsbu li t-twaqqif u l-ħidma b'awtentikazzjoni b'żewġ fatturi huwa diffiċli u mhux ċar. Nittama li l-artiklu tagħna jneħħi din il-ħrafa, għall-inqas ftit.

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Għandek bżonn struzzjonijiet biex twaqqaf TLS b'ċertifikati skont GOST 34.10-2012:

  • Iva, TLS-GOST huwa meħtieġ ħafna

  • Le, l-irfinar bl-algoritmi GOST mhuwiex interessanti

44 utent ivvutaw. 9-il utent astjenew.

Sors: www.habr.com

Żid kumment