Kutolewa kwa OpenSSH 8.2 kwa usaidizi wa tokeni za uthibitishaji wa vipengele viwili vya FIDO/U2F

Baada ya miezi minne ya maendeleo imewasilishwa kutolewa OpenSSH 8.2, mteja wazi na utekelezaji wa seva kwa kufanya kazi kupitia itifaki za SSH 2.0 na SFTP.

Uboreshaji muhimu katika kutolewa kwa OpenSSH 8.2 ulikuwa uwezo wa kutumia uthibitishaji wa vipengele viwili kwa kutumia vifaa vinavyotumia itifaki. U2F, iliyoandaliwa na muungano FIDO. U2F inaruhusu uundaji wa tokeni za maunzi za bei ya chini ili kuthibitisha uwepo wa mtumiaji, kuingiliana nao kupitia USB, Bluetooth au NFC. Vifaa vile vinakuzwa kama njia ya uthibitishaji wa vipengele viwili kwenye tovuti, tayari vinasaidiwa na vivinjari vikuu na vinatolewa na wazalishaji mbalimbali, ikiwa ni pamoja na Yubico, Feitian, Thetis na Kensington.

Ili kuingiliana na vifaa vinavyothibitisha kuwepo kwa mtumiaji, aina mpya muhimu za β€œecdsa-sk” na β€œed25519-sk” zimeongezwa kwenye OpenSSH, zinazotumia algoriti za ECDSA na Ed25519 za sahihi za dijiti, pamoja na heshi ya SHA-256. Taratibu za kuingiliana na tokeni zimewekwa kwenye maktaba ya kati, ambayo imepakiwa kwa njia sawa na maktaba kwa usaidizi wa PKCS#11 na ni kanga juu ya maktaba. libfido2, ambayo hutoa zana za kuwasiliana na tokeni kupitia USB (itifaki za FIDO U2F/CTAP 1 na FIDO 2.0/CCAP 2 zinatumika). Maktaba ya kati libsk-libfido2 iliyoandaliwa na wasanidi wa OpenSSH pamoja ndani ya libfido2 ya msingi, na vile vile HID dereva kwa OpenBSD.

Ili kuthibitisha na kuzalisha ufunguo, lazima ubainishe kigezo cha "SecurityKeyProvider" katika mipangilio au uweke kigezo cha mazingira cha SSH_SK_PROVIDER, kuonyesha njia ya maktaba ya nje libsk-libfido2.so (hamisha SSH_SK_PROVIDER=/path/to/libsk-libfido2. hivyo). Inawezekana kujenga openssh kwa usaidizi uliojengwa ndani kwa maktaba ya safu (--with-security-key-builtin), katika kesi hii unahitaji kuweka kigezo cha "SecurityKeyProvider=internal".
Ifuatayo unahitaji kuendesha "ssh-keygen -t ecdsa-sk" au, ikiwa funguo tayari zimeundwa na kusanidiwa, unganisha kwenye seva kwa kutumia "ssh". Unapoendesha ssh-keygen, jozi ya vitufe iliyozalishwa itahifadhiwa katika "~/.ssh/id_ecdsa_sk" na inaweza kutumika sawa na vitufe vingine.

Ufunguo wa umma (id_ecdsa_sk.pub) unapaswa kunakiliwa kwa seva katika faili ya authorized_keys. Kwa upande wa seva, saini ya dijiti pekee ndiyo imethibitishwa, na mwingiliano na ishara hufanywa kwa upande wa mteja (huna haja ya kusakinisha libsk-libfido2 kwenye seva, lakini seva lazima iunge mkono aina ya ufunguo wa "ecdsa-sk") . Ufunguo wa kibinafsi uliotengenezwa (id_ecdsa_sk) kimsingi ni kishikio cha ufunguo, na kutengeneza ufunguo halisi tu pamoja na mlolongo wa siri uliohifadhiwa kwenye upande wa ishara ya U2F. Ikiwa ufunguo wa id_ecdsa_sk utaanguka mikononi mwa mshambuliaji, ili kupitisha uthibitishaji atahitaji pia kupata ishara ya vifaa, bila ambayo ufunguo wa kibinafsi uliohifadhiwa kwenye faili ya id_ecdsa_sk hauna maana.

Kwa kuongeza, kwa default, wakati wa kufanya shughuli yoyote na funguo (wote wakati wa kizazi na wakati wa uthibitishaji), uthibitisho wa ndani wa uwepo wa kimwili wa mtumiaji unahitajika, kwa mfano, inapendekezwa kugusa sensor kwenye ishara, ambayo inafanya kuwa vigumu kutekeleza mashambulizi ya mbali kwenye mifumo yenye ishara iliyounganishwa. Kama safu nyingine ya utetezi, nenosiri linaweza pia kubainishwa wakati wa awamu ya kuanza ya ssh-keygen kufikia faili muhimu.

Toleo jipya la OpenSSH pia lilitangaza uachaji kazi ujao wa algoriti kwa kutumia heshi za SHA-1 kutokana na kukuza ufanisi wa mashambulizi ya mgongano na kiambishi awali (gharama ya kuchagua mgongano inakadiriwa kuwa takriban dola elfu 45). Katika moja ya matoleo yajayo, wanapanga kuzima kwa chaguo-msingi uwezo wa kutumia algoriti ya ufunguo wa saini ya dijiti ya "ssh-rsa", ambayo imetajwa katika RFC asili ya itifaki ya SSH na inasalia kuenea katika mazoezi (kujaribu matumizi. ya ssh-rsa kwenye mifumo yako, unaweza kujaribu kuunganisha kupitia ssh na chaguo "-oHostKeyAlgorithms=-ssh-rsa").

Ili kulainisha uhamishaji wa algoriti mpya katika OpenSSH, katika toleo la baadaye mipangilio ya UpdateHostKeys itawashwa kwa chaguomsingi, ambayo itahamisha wateja kiotomatiki hadi kwenye algoriti zinazotegemeka zaidi. Algoriti zinazopendekezwa za uhamiaji ni pamoja na rsa-sha2-256/512 kulingana na RFC8332 RSA SHA-2 (inatumika tangu OpenSSH 7.2 na kutumika kwa chaguomsingi), ssh-ed25519 (inatumika tangu OpenSSH 6.5) na ecdsa-sha2-nistp256/384 kwenye RFC521 ECDSA (inatumika tangu OpenSSH 5656).

Katika OpenSSH 8.2, uwezo wa kuunganisha kwa kutumia "ssh-rsa" bado unapatikana, lakini algoriti hii imeondolewa kwenye orodha ya CASsignatureAlgorithms, ambayo inafafanua algoriti zinazoruhusiwa kwa kusaini vyeti vipya kidijitali. Vile vile, algoriti ya diffie-hellman-group14-sha1 imeondolewa kwenye algoriti chaguo-msingi ya kubadilishana vitufe inayotumika. Inafahamika kuwa matumizi ya SHA-1 katika vyeti yanahusishwa na hatari ya ziada, kwa kuwa mshambulizi ana muda usio na kikomo wa kutafuta mgongano wa cheti kilichopo, wakati muda wa kushambuliwa kwa funguo za seva pangishi hupunguzwa kwa muda wa muunganisho kuisha (LoginGraceTime )

Uendeshaji wa ssh-keygen sasa ni chaguomsingi kwa algoriti ya rsa-sha2-512, ambayo inatumika tangu OpenSSH 7.2, ambayo inaweza kuunda masuala ya uoanifu wakati wa kujaribu kuchakata vyeti vilivyotiwa saini katika OpenSSH 8.2 kwenye mifumo inayoendesha matoleo ya zamani ya OpenSSH (kushughulikia suala hilo lini. kutengeneza saini, unaweza kubainisha kwa uwazi β€œssh-keygen -t ssh-rsa” au kutumia algoriti za ecdsa-sha2-nistp256/384/521, zinazotumika tangu OpenSSH 5.7).

Mabadiliko mengine:

  • Maagizo ya Jumuisha yameongezwa kwa sshd_config, ambayo hukuruhusu kujumuisha yaliyomo kwenye faili zingine katika nafasi ya sasa ya faili ya usanidi (vinyago vya glob vinaweza kutumika wakati wa kubainisha jina la faili);
  • Chaguo "hakuna-kugusa-inahitajika" imeongezwa kwa ssh-keygen, ambayo inalemaza hitaji la kudhibitisha ufikiaji wa tokeni wakati wa kutengeneza ufunguo;
  • Maagizo ya PubkeyAuthOptions yameongezwa kwa sshd_config, ambayo inachanganya chaguo mbalimbali zinazohusiana na uthibitishaji wa ufunguo wa umma. Kwa sasa, ni alama ya "hakuna-kugusa-inahitajika" pekee ndiyo inaauniwa ili kuruka ukaguzi wa uwepo wa mtu kwa uthibitishaji wa tokeni. Kwa mlinganisho, chaguo la "hakuna-kugusa-inahitajika" limeongezwa kwenye faili ya authorized_keys;
  • Imeongezwa chaguo la "-O write-attestation=/path" kwa ssh-keygen ili kuruhusu vyeti vya ziada vya uthibitisho vya FIDO kuandikwa wakati wa kutengeneza funguo. OpenSSH bado haitumii vyeti hivi, lakini vinaweza kutumika baadaye kuthibitisha kuwa ufunguo umewekwa kwenye duka la maunzi linaloaminika;
  • Katika mipangilio ya ssh na sshd, sasa inawezekana kuweka hali ya kipaumbele ya trafiki kupitia maagizo ya IPQoS. LE DSCP (Tabia ya Juhudi ya Chini ya Per-Hop);
  • Katika ssh, wakati wa kuweka thamani "AddKeysToAgent=yes", ikiwa ufunguo hauna sehemu ya maoni, itaongezwa kwa wakala wa ssh inayoonyesha njia ya ufunguo kama maoni. KATIKA
    ssh-keygen na ssh-agent pia sasa hutumia lebo za PKCS#11 na jina la somo la X.509 badala ya njia ya maktaba kama maoni kwenye kitufe;

  • Imeongeza uwezo wa kusafirisha PEM kwa funguo za DSA na ECDSA kwa ssh-keygen;
  • Imeongezwa mpya inayoweza kutekelezeka, ssh-sk-helper, inayotumika kutenga maktaba ya ufikiaji wa tokeni ya FIDO/U2F;
  • Imeongeza chaguo la kujenga "--with-zlib" kwa ssh na sshd kwa ujumuishaji na usaidizi wa maktaba ya zlib;
  • Kwa mujibu wa mahitaji ya RFC4253, onyo kuhusu kuzuia upatikanaji kutokana na kuzidi mipaka ya MaxStartups hutolewa kwenye bendera iliyoonyeshwa wakati wa kuunganisha. Ili kurahisisha uchunguzi, kichwa cha mchakato wa sshd, kinachoonekana wakati wa kutumia matumizi ya ps, sasa kinaonyesha idadi ya viunganisho vilivyothibitishwa sasa na hali ya kikomo cha MaxStartups;
  • Katika ssh na ssh-agent, unapoita programu kuonyesha mwaliko kwenye skrini, iliyobainishwa kupitia $SSH_ASKPASS, bendera yenye aina ya mwaliko sasa inatumwa zaidi: "thibitisha" - kidirisha cha uthibitishaji (ndiyo/hapana), "hapana ” - ujumbe wa habari, "tupu" - ombi la nenosiri;
  • Imeongeza operesheni mpya ya sahihi za kidijitali "pata wakuu" kwa ssh-keygen ili kutafuta faili ya watia saini wanaoruhusiwa kwa mtumiaji anayehusishwa na sahihi ya dijitali iliyobainishwa;
  • Usaidizi ulioboreshwa wa kutenganisha mchakato wa sshd kwenye Linux kwa kutumia utaratibu wa seccomp: kuzima simu za mfumo wa IPC, kuruhusu clock_gettime64(), clock_nanosleep_time64 na clock_nanosleep().

Chanzo: opennet.ru

Kuongeza maoni