Itusilẹ ti OpenSSH 8.2 pẹlu atilẹyin fun FIDO/U2F awọn ami ijẹrisi ifosiwewe meji

Lẹhin oṣu mẹrin ti idagbasoke gbekalẹ tu silẹ OpenSSH 8.2, alabara ṣiṣi ati imuse olupin fun ṣiṣẹ nipasẹ SSH 2.0 ati awọn ilana SFTP.

Ilọsiwaju bọtini kan ninu itusilẹ ti OpenSSH 8.2 ni agbara lati lo ijẹrisi ifosiwewe meji nipa lilo awọn ẹrọ ti o ṣe atilẹyin ilana naa. U2F, ni idagbasoke nipasẹ awọn Alliance Fido. U2F ngbanilaaye ẹda ti awọn ami ohun elo iye owo kekere lati rii daju wiwa ti ara olumulo, ibaraenisepo pẹlu wọn nipasẹ USB, Bluetooth tabi NFC. Iru awọn ẹrọ bẹẹ ni igbega bi ọna ti ijẹrisi ifosiwewe meji lori awọn oju opo wẹẹbu, ti ni atilẹyin tẹlẹ nipasẹ awọn aṣawakiri pataki ati ti ṣejade nipasẹ ọpọlọpọ awọn aṣelọpọ, pẹlu Yubico, Feitian, Thetis ati Kensington.

Lati ṣe ajọṣepọ pẹlu awọn ẹrọ ti o jẹrisi wiwa olumulo, awọn oriṣi bọtini tuntun “ecdsa-sk” ati “ed25519-sk” ti ṣafikun si OpenSSH, eyiti o lo ECDSA ati Ed25519 awọn algoridimu Ibuwọlu oni nọmba, ni idapo pẹlu hash SHA-256. Awọn ilana fun ibaraenisepo pẹlu awọn ami ni a gbe sinu ile-ikawe agbedemeji, eyiti o kojọpọ ni ọna ti o jọra si ile-ikawe fun atilẹyin PKCS # 11 ati pe o jẹ ipari si oke ile-ikawe naa. libfido2, eyi ti o pese awọn irinṣẹ fun ibaraẹnisọrọ pẹlu awọn ami lori USB (FIDO U2F/CTAP 1 ati awọn ilana FIDO 2.0/CTAP 2 ni atilẹyin). Ile-ikawe agbedemeji libsk-libfido2 ti a pese sile nipasẹ awọn olupilẹṣẹ OpenSSH to wa sinu libfido2 mojuto, bakannaa awakọ HID fun OpenBSD.

Lati jẹrisi ati ṣe ina bọtini kan, o gbọdọ pato “SecurityKeyProvider” paramita ninu awọn eto tabi ṣeto agbegbe SSH_SK_PROVIDER oniyipada, nfihan ọna si ile-ikawe ita libsk-libfido2.so (ṣe okeere SSH_SK_PROVIDER=/ona/to/libsk-libfido2). bẹ). O ṣee ṣe lati kọ openssh pẹlu atilẹyin ti a ṣe sinu ile ikawe Layer (-with-security-key-builtin), ninu ọran yii o nilo lati ṣeto paramita “SecurityKeyProvider= abẹnu”.
Nigbamii o nilo lati ṣiṣẹ “ssh-keygen -t ecdsa-sk” tabi, ti awọn bọtini ba ti ṣẹda tẹlẹ ati tunto, sopọ si olupin naa nipa lilo “ssh”. Nigbati o ba ṣiṣẹ ssh-keygen, bata bọtini ti ipilẹṣẹ yoo wa ni fipamọ ni “~/.ssh/id_ecdsa_sk” ati pe o le ṣee lo bakanna si awọn bọtini miiran.

Bọtini gbogbo eniyan (id_ecdsa_sk.pub) yẹ ki o daakọ si olupin ni faili aṣẹ_keys. Ni ẹgbẹ olupin, ibuwọlu oni-nọmba nikan ni o jẹri, ati ibaraenisepo pẹlu awọn ami ni a ṣe ni ẹgbẹ alabara (iwọ ko nilo lati fi libsk-libfido2 sori olupin naa, ṣugbọn olupin naa gbọdọ ṣe atilẹyin iru bọtini “ecdsa-sk”) . Bọtini ikọkọ ti ipilẹṣẹ (id_ecdsa_sk) jẹ pataki mimu bọtini kan, ti o ṣẹda bọtini gidi kan nikan ni apapo pẹlu ọna aṣiri ti o fipamọ sori ẹgbẹ ami ami U2F. Ti bọtini id_ecdsa_sk ba ṣubu si ọwọ ikọlu kan, lati ṣe ijẹrisi yoo tun nilo lati ni iraye si ami ohun elo, laisi eyiti bọtini ikọkọ ti o fipamọ sinu faili id_ecdsa_sk ko wulo.

Ni afikun, nipasẹ aiyipada, nigbati o ba n ṣe awọn iṣẹ eyikeyi pẹlu awọn bọtini (mejeeji lakoko iran ati lakoko ijẹrisi), iṣeduro agbegbe ti wiwa ti ara olumulo ni a nilo, fun apẹẹrẹ, o dabaa lati fi ọwọ kan sensọ lori ami ami naa, eyiti o jẹ ki o nira lati gbe awọn ikọlu latọna jijin lori awọn ọna ṣiṣe pẹlu ami ti o sopọ. Gẹgẹbi laini aabo miiran, ọrọ igbaniwọle tun le ṣe pato lakoko ipele ibẹrẹ ti ssh-keygen lati wọle si faili bọtini.

Ẹya tuntun ti OpenSSH tun kede ilọkuro ti n bọ ti awọn algoridimu nipa lilo awọn hashes SHA-1 nitori igbega imunadoko awọn ikọlu ikọlu pẹlu asọtẹlẹ ti a fun (iye owo ti yiyan ijamba ni ifoju ni isunmọ 45 ẹgbẹrun dọla). Ninu ọkan ninu awọn idasilẹ ti n bọ, wọn gbero lati mu nipasẹ aiyipada agbara lati lo algoridimu Ibuwọlu oni nọmba ti gbogbo eniyan “ssh-rsa”, eyiti o mẹnuba ninu RFC atilẹba fun ilana SSH ati pe o wa ni ibigbogbo ni iṣe (lati ṣe idanwo lilo naa). ti ssh-rsa ninu awọn ọna ṣiṣe rẹ, o le gbiyanju sisopọ nipasẹ ssh pẹlu aṣayan “-oHostKeyAlgorithms = -ssh-rsa”).

Lati ṣe iyipada iyipada si awọn algoridimu tuntun ni OpenSSH, ni itusilẹ ọjọ iwaju eto UpdateHostKeys yoo ṣiṣẹ nipasẹ aiyipada, eyiti yoo gbe awọn alabara lọ laifọwọyi si awọn algoridimu igbẹkẹle diẹ sii. Awọn algoridimu ti a ṣe iṣeduro fun iṣiwa pẹlu rsa-sha2-256/512 ti o da lori RFC8332 RSA SHA-2 (atilẹyin niwon OpenSSH 7.2 ati lilo nipasẹ aiyipada), ssh-ed25519 (atilẹyin niwon OpenSSH 6.5) ati ecdsa-sha2-nistp256/384/521 orisun lori RFC5656 ECDSA (atilẹyin niwon OpenSSH 5.7).

Ni OpenSSH 8.2, agbara lati sopọ pẹlu lilo “ssh-rsa” ṣi wa, ṣugbọn algorithm yii ti yọkuro lati inu atokọ CSignatureAlgorithms, eyiti o ṣalaye awọn algoridimu laaye fun iforukọsilẹ oni-nọmba titun awọn iwe-ẹri. Bakanna, diffie-hellman-group14-sha1 alugoridimu ti yọkuro lati awọn algoridimu paṣipaarọ bọtini aiyipada ni atilẹyin. O ṣe akiyesi pe lilo SHA-1 ni awọn iwe-ẹri ni nkan ṣe pẹlu eewu afikun, nitori olukolu naa ni akoko ailopin lati wa ijamba fun ijẹrisi ti o wa, lakoko ti akoko ikọlu lori awọn bọtini ogun jẹ opin nipasẹ akoko asopọ (LoginGraceTime). ).

Nṣiṣẹ ssh-keygen ni bayi jẹ aiyipada si algorithm rsa-sha2-512, eyiti o ṣe atilẹyin lati OpenSSH 7.2, eyiti o le ṣẹda awọn ọran ibamu nigbati o n gbiyanju lati ṣe ilana awọn iwe-ẹri ti o fowo si ni OpenSSH 8.2 lori awọn eto ṣiṣe awọn idasilẹ OpenSSH agbalagba (lati ṣiṣẹ ni ayika ọran naa nigbati Nigbawo ti n ṣẹda ibuwọlu, o le sọ ni pato “ssh-keygen -t ssh-rsa” tabi lo awọn algoridimu ecdsa-sha2-nistp256/384/521, atilẹyin lati igba OpenSSH 5.7).

Awọn iyipada miiran:

  • A ti ṣafikun itọsọna kan si sshd_config, eyiti o fun ọ laaye lati ṣafikun awọn akoonu ti awọn faili miiran ni ipo lọwọlọwọ ti faili iṣeto (awọn iboju iparada glob le ṣee lo nigbati o n ṣalaye orukọ faili);
  • Aṣayan "ko si-ifọwọkan-ti beere fun" ni a ti fi kun si ssh-keygen, eyi ti o mu iwulo lati jẹrisi ti ara si ami ami naa nigbati o ba n ṣe bọtini;
  • A ti ṣafikun itọsọna PubkeyAuthOptions si sshd_config, eyiti o ṣajọpọ awọn aṣayan pupọ ti o ni ibatan si ijẹrisi bọtini gbogbo eniyan. Lọwọlọwọ, asia "ko si-ifọwọkan-ti beere" nikan ni atilẹyin lati fo awọn sọwedowo wiwa ti ara fun ijẹrisi ami. Nipa afiwe, aṣayan “ko si-ifọwọkan-ti beere fun” ti ṣafikun si faili aṣẹ_keys;
  • Ṣafikun aṣayan "-O write-attestation=/path" lati ssh-keygen lati gba awọn iwe-ẹri FIDO ni afikun lati kọ nigbati o ba n ṣe awọn bọtini. OpenSSH ko tii lo awọn iwe-ẹri wọnyi, ṣugbọn wọn le ṣee lo nigbamii lati rii daju pe a gbe bọtini naa si ile itaja ohun elo ti o gbẹkẹle;
  • Ninu awọn eto ssh ati sshd, o ṣee ṣe bayi lati ṣeto ipo iṣaju ijabọ nipasẹ itọsọna IPQoS LE DSCP (Iwa-Igbiyanju-kekere Per-Hop ihuwasi);
  • Ni ssh, nigbati o ba ṣeto iye “AddKeysToAgent = bẹẹni”, ti bọtini ko ba ni aaye asọye kan, yoo ṣafikun si aṣoju ssh ti n tọka ọna si bọtini bi asọye. IN
    ssh-keygen ati aṣoju ssh tun lo awọn aami PKCS # 11 ati orukọ koko-ọrọ X.509 dipo ọna ile-ikawe gẹgẹbi awọn asọye ninu bọtini;

  • Ṣe afikun agbara lati okeere PEM fun DSA ati awọn bọtini ECDSA si ssh-keygen;
  • Ṣe afikun iṣẹ ṣiṣe tuntun kan, ssh-sk-oluranlọwọ, ti a lo lati ya sọtọ ile-ikawe wiwọle ami FIDO/U2F;
  • Ṣafikun “-with-zlib” aṣayan kikọ lati ssh ati sshd fun akojọpọ pẹlu atilẹyin ikawe zlib;
  • Ni ibamu pẹlu ibeere ti RFC4253, ikilọ nipa idinamọ wiwọle nitori awọn opin MaxStartups ti o kọja ti pese ni asia ti o han lakoko asopọ. Lati jẹ ki awọn iwadii simplify, akọsori ilana sshd, ti o han nigba lilo ohun elo ps, ni bayi ṣafihan nọmba awọn asopọ ti o jẹrisi lọwọlọwọ ati ipo ti opin MaxStartups;
  • Ni ssh ati aṣoju ssh, nigbati o ba n pe eto kan lati ṣafihan ifiwepe loju iboju, ti a sọ pato nipasẹ $SSH_ASKPASS, asia kan pẹlu iru ifiwepe ti wa ni afikun ni afikun: “jẹrisi” - ifọrọwerọ ifẹsẹmulẹ (bẹẹni / rara), “ko si ọkan "- ifiranṣẹ alaye, "òfo" - ìbéèrè ọrọigbaniwọle;
  • Ṣafikun iṣẹ awọn ibuwọlu oni nọmba tuntun “wa-awọn oludari” si ssh-keygen lati wa faili ti o gba laaye fun olumulo ti o ni nkan ṣe pẹlu ibuwọlu oni nọmba kan pato;
  • Atilẹyin ilọsiwaju fun ipinya ilana sshd lori Lainos ni lilo ẹrọ iṣẹju-aaya: pa awọn ipe eto IPC kuro, gbigba clock_gettime64 (), clock_nanosleep_time64 ati clock_nanosleep ().

orisun: opennet.ru

Fi ọrọìwòye kun