Lëshimi i OpenSSH 8.2 me mbështetje për tokenet e autentikimit me dy faktorë FIDO/U2F

Pas pas katër muaj zhvillimi u paraqit lëshimi OpenSSH 8.2, implementimi të hapur të klientit dhe serverit për punë sipas protokolleve SSH 2.0 dhe SFTP.

Përmirësimi kryesor në lëshimin e OpenSSH 8.2 ishte mundësia e përdorimit të autentifikimit me dy faktorë përmes pajisjeve që mbështesin protokollin U2F, e zhvilluar nga aleanca FIDO. U2F lejon krijimin e tokenëve fizikë të lirë për të konfirmuar praninë fizike të përdoruesit, me të cilët ndërveprohet përmes USB, Bluetooth ose NFC. Këto pajisje promovohen si një mjet për autentifikimin me dy faktorë në faqe, mbështeten tashmë nga shfletuesit kryesorë dhe prodhohen nga disa prodhues, përfshirë Yubico, Feitian, Thetis dhe Kensington.

Për të bashkëpunuar me pajisjet që konfirmojnë praninë e përdoruesit, në OpenSSH janë shtuar lloje të reja çelëse «ecdsa-sk» dhe «ed25519-sk», të cilat përdorin algoritmet e nënshkrimit digjital ECDSA dhe Ed25519, në kombinim me hash-in SHA-256. Procedurat për bashkëpunimin me tokenët janë nxjerrë në një bibliotekë ndërmjetëse, e cila ngarkohet ashtu siç është biblioteka për mbështetje PKCS#11 dhe është një mbështetje për bibliotekën libfido2, e cila ofron mjete për komunikim me tokenët mbi USB (mbështeten protokollet FIDO U2F/CTAP 1 dhe FIDO 2.0/CTAP 2). Biblioteka ndërmjetëse libsk-libfido2 e përgatitur nga zhvilluesit e OpenSSH është përfshirë u përfshi në përbërjen kryesore të libfido2, ashtu si drejtpërdrejtori HID për OpenBSD.

PĂ«r autentifikimin dhe gjenerimin e çelĂ«sit, Ă«shtĂ« e nevojshme tĂ« specifikohet nĂ« konfigurimin parametri «SecurityKeyProvider» ose tĂ« vendoset variabla e mjedisit SSH_SK_PROVIDER, duke treguar rrugĂ«n pĂ«r nĂ« bibliotekĂ«n e jashtme libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so). ËshtĂ« e mundur tĂ« ndĂ«rtohet openssh me mbĂ«shtetje tĂ« integruar pĂ«r bibliotekĂ«n e mbĂ«shtetjes (—with-security-key-builtin), nĂ« kĂ«tĂ« rast duhet tĂ« vendoset parametri «SecurityKeyProvider=internal».
Më pas duhet të nisni «ssh-keygen -t ecdsa-sk» ose, nëse çelësat tashmë janë krijuar dhe të konfiguruar, të lidheni me serverin përmes «ssh». Kur ekzekutohet ssh-keygen, çifti i përjetshëm do të ruhet në «~/ .ssh/id_ecdsa_sk» dhe mund të përdoret siç bëhet me çelësat e tjerë.

ÇelĂ«si i hapur (id_ecdsa_sk.pub) duhet tĂ« kopjohet nĂ« server nĂ« skedarin authorized_keys. Nga ana e serverit, vetĂ«m nĂ«nshkrimi digjital kontrollohet, ndĂ«rsa bashkĂ«punimi me tokenĂ«t bĂ«het nga ana e klientit (nĂ« server nuk Ă«shtĂ« e nevojshme tĂ« instalohet libsk-libfido2, por serveri duhet tĂ« mbĂ«shtesĂ« llojin e çelĂ«save «ecdsa-sk»). ÇelĂ«si i mbyllur i gjeneruar (id_ecdsa_sk) nĂ« thelb Ă«shtĂ« njĂ« dorac i çelĂ«sit, qĂ« formon çelĂ«sin e vĂ«rtetĂ« vetĂ«m nĂ« kombinim me njĂ« sekuencĂ« sekrete, e ruajtur nĂ« pajisjen e tokenit U2F. NĂ«se çelĂ«si id_ecdsa_sk pĂ«rfundon nĂ« duart e njĂ« sulmuesi, pĂ«r tĂ« kaluar autentifikimin do t'i nevojitet gjithashtu tĂ« ketĂ« akses nĂ« tokenin hardware, pa tĂ« cilin çelĂ«si i mbyllur i ruajtur nĂ« skedarin id_ecdsa_sk Ă«shtĂ« i pafuqishĂ«m.

Për më tepër, siçi parazgjedhje, gjatë kryerjes së operacioneve të çdo lloji me çelësat (si gjatë gjenerimit, ashtu edhe gjatë autentikimit) kërkohet një konfirmim lokal fizik i pranisë së përdoruesit, për shembull, ofrohet të prekë sensorin në token, i cili e vështirëson realizimin e sulmeve të largëta ndaj sistemeve me token të lidhur. Si një hap tjetër mbrojtjeje, gjatë procesit të nisjes, ssh-keygen gjithashtu mund të kërkojë një fjalëkalim për qasje në skedarin me çelësin.

Në versionin e ri të OpenSSH gjithashtu është shpallur transferimi i algoritmeve që përdorin hash SHA-1 në kategorinë e algoritmeve të vjetra, lidhur me përmirësimin e efikasitetit të sulmeve me kolizion me prefiks të caktuar (kostoja e gjenerimit të kolizionit është e vlerësuar rreth 45 mijë dollarë). Në një nga publikimet e afërta planifikohet që të deaktivizohet me parazgjedhje mundësia e përdorimit të algoritmit të nënshkrimit dixhital me çelësa publikë «ssh-rsa», i cili përmendet në RFC origjinal për protokollin SSH dhe vazhdon të jetë i përhapur në praktikë (për të verifikuar përdorimin e ssh-rsa në sistemet e tij, mund të provoni të lidhni nëpërmjet ssh me opsionin «-oHostKeyAlgorithms=-ssh-rsa»).

Për të lehtësuar kalimin në algoritmet e reja në OpenSSH, në një nga versionet e ardhshme, do të jetë e mundur të aktivizohet parazgjedhur konfigurimi UpdateHostKeys, i cili do të lejojë automatikisht ndërrimin e klientëve në algoritme më të sigurta. Mes algoritmeve të rekomanduara për migrim, përmenden rsa-sha2-256/512 bazuar në RFC8332 RSA SHA-2 (e mbështetur nga OpenSSH 7.2 dhe përdoret parazgjedhur), ssh-ed25519 (e mbështetur nga OpenSSH 6.5) dhe ecdsa-sha2-nistp256/384/521 bazuar në RFC5656 ECDSA (e mbështetur nga OpenSSH 5.7).

NĂ« versionin OpenSSH 8.2, mundĂ«sia pĂ«r t'u lidhur duke pĂ«rdorur ‘ssh-rsa’ ende Ă«shtĂ« lĂ«nĂ«, por ky algoritĂ«m Ă«shtĂ« hequr nga lista CASignatureAlgorithms, e cila pĂ«rcakton algoritmet e lejuara pĂ«r nĂ«nshkrimin digjital tĂ« certifikatave tĂ« reja. Po ashtu, algoritmi diffie-hellman-group14-sha1 Ă«shtĂ« hequr nga algoritmet e mbĂ«shtetura parazgjedhje pĂ«r shkĂ«mbim çelĂ«sash. Theksohet se pĂ«rdorimi i SHA-1 nĂ« certifikata Ă«shtĂ« i lidhur me rrezik shtesĂ«, pasi sulmuesi ka kohĂ« tĂ« pakufizuar pĂ«r tĂ« kĂ«rkuar njĂ« kolizion pĂ«r njĂ« certifikatĂ« ekzistuese, ndĂ«rsa koha e sulmit ndaj çelĂ«save tĂ« hostit Ă«shtĂ« e kufizuar nga skadon e lidhjes (LoginGraceTime).

GjatĂ« kryerjes sĂ« ssh-keygen, tani parazgjedhur aplikohet algoritmi rsa-sha2-512, i cili mbĂ«shtetet qĂ« nga OpenSSH 7.2, diçka qĂ« mund tĂ« krijojĂ« probleme me pĂ«rputhshmĂ«rinĂ« kur pĂ«rpiqeni tĂ« trajtoni certifikata tĂ« nĂ«nshkruara nĂ« OpenSSH 8.2 nĂ« sisteme me versione tĂ« vjetra tĂ« OpenSSH (pĂ«r tĂ« anashkaluar problemin gjatĂ« formimit tĂ« nĂ«nshkrimit, mund tĂ« specifikoni qartĂ« ‘ssh-keygen -t ssh-rsa’ ose tĂ« pĂ«rdorni algoritmet e ecdsa-sha2-nistp256/384/521, tĂ« mbĂ«shtetura qĂ« nga OpenSSH 5.7).

Ndryshime të tjera:

  • NĂ« sshd_config Ă«shtĂ« shtuar direktiva Include, e cila lejon pĂ«rfshirjen e pĂ«rmbajtjes sĂ« skedareve tĂ« tjera nĂ« pozitĂ«n aktuale tĂ« skedarit tĂ« konfigurimit (kur caktohet emri i skedarit, pĂ«rdorimi i maskave glob Ă«shtĂ« i lejueshĂ«m);
  • NĂ« ssh-keygen Ă«shtĂ« shtuar opsioni «no-touch-required», qĂ« çaktivizon nevojĂ«n pĂ«r konfirmim fizik tĂ« aksesit nĂ« token gjatĂ« gjenerimit tĂ« çelĂ«sit;
  • NĂ« sshd_config Ă«shtĂ« shtuar direktiva PubkeyAuthOptions, qĂ« bashkon opsione tĂ« ndryshme tĂ« lidhura me autentifikimin me çelĂ«sa publikĂ«. Tani mbĂ«shtetet vetĂ«m flagu «no-touch-required» pĂ«r tĂ« kaluar verifikimin e pranisĂ« fizike gjatĂ« autorizimit me token. Po ashtu, nĂ« skedarin authorized_keys Ă«shtĂ« shtuar opsioni «no-touch-required»;
  • NĂ« ssh-keygen Ă«shtĂ« shtuar opsioni «-O write-attestation=/path», qĂ« lejon regjistrimin e certifikatave tĂ« tjera tĂ« atestimit FIDO gjatĂ« gjenerimit tĂ« çelĂ«save. OpenSSH pĂ«r momentin nuk pĂ«rdor kĂ«to certifikata, por ato mĂ« vonĂ« mund tĂ« pĂ«rdoren pĂ«r tĂ« verifikuar vendndodhjen e çelĂ«sit nĂ« njĂ« depo tĂ« besueshme harduerike;
  • NĂ« konfigurimet e ssh dhe sshd pĂ«rmes direktivĂ«s IPQoS tani Ă«shtĂ« e mundur vendosja e modit tĂ« prioritetizimit tĂ« trafikut LE DSCP (Lower-Effort Per-Hop Behavior);
  • NĂ« ssh, kur vendoset vlera «AddKeysToAgent=yes», nĂ«se çelĂ«si nuk ka njĂ« fushĂ« me koment, ai do tĂ« shtohet nĂ« ssh-agent me tregimin e rrugĂ«s si koment. NĂ«
    ssh-keygen dhe ssh-agent, si komente gjithashtu tani përdoren etiketat PKCS#11 dhe emri i subjektit X.509 në vend të rrugës për bibliotekën;
  • NĂ« ssh-keygen Ă«shtĂ« shtuar mundĂ«sia e eksportit PEM pĂ«r çelĂ«sat DSA dhe ECDSA;
  • ËshtĂ« shtuar njĂ« skedar ekzekutues i ri ssh-sk-helper, qĂ« pĂ«rdoret pĂ«r izolimin e bibliotekĂ«s pĂ«r aksesin nĂ« tokenat FIDO/U2F;
  • NĂ« ssh dhe sshd Ă«shtĂ« shtuar opsioni i ndĂ«rtimit «—with-zlib» pĂ«r kompilimin me mbĂ«shtetje pĂ«r bibliotekĂ«n zlib;
  • NĂ« pĂ«rputhje me kĂ«rkesĂ«n RFC4253, nĂ« bannerin e shfaqur gjatĂ« lidhjes Ă«shtĂ« siguruar shfaqja e njĂ« paralajmĂ«rimi pĂ«r ndalimin e aksesit pĂ«r shkak tĂ« tejkalimit tĂ« limiteve MaxStartups. PĂ«r tĂ« thjeshtuar diagnostikimin, nĂ« titullin e procesit sshd, i dukshĂ«m gjatĂ« pĂ«rdorimit tĂ« utilitarit ps, Ă«shtĂ« siguruar shfaqja e numrit tĂ« lidhjeve tĂ« autentikuara nĂ« atĂ« moment dhe gjendja e limitit MaxStartups;
  • NĂ« ssh dhe ssh-agent, gjatĂ« thirrjes sĂ« programit pĂ«r shfaqjen e ftesĂ«s, e cila caktohet pĂ«rmes $SSH_ASKPASS, tani gjithashtu kalon njĂ« flag me tipin e ftesĂ«s: «confirm» – dialog pĂ«r konfirmim (po/jo), «none» – mesazh informues, «blank» – kĂ«rkesĂ« pĂ«r fjalĂ«kalim;
  • NĂ« ssh-keygen Ă«shtĂ« shtuar njĂ« operacion i ri me nĂ«nshkrime digjitale «find-principals» pĂ«r tĂ« kĂ«rkuar nĂ« skedarin allowed-signers tĂ« pĂ«rdoruesit, qĂ« lidhet me nĂ«nshkrimin digjital tĂ« caktuar;
  • PĂ«rmirĂ«simi i mbĂ«shtetjes pĂ«r izolimin e procesit sshd nĂ« Linux pĂ«rmes mekanizmit seccomp: janĂ« ndaluar thirrjet sistematike IPC, janĂ« lejuar clock_gettime64(), clock_nanosleep_time64 dhe clock_nanosleep().

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster