Tukunga o OpenSSH 8.2 me te tautoko mo nga tohu whakamotuhēhēnga-rua FIDO/U2F

I muri i nga marama e wha o te whakawhanaketanga i tukuna tuku Tuwhera 8.2.HXNUMX, he kiritaki tuwhera me te whakatinanatanga tūmau mo te mahi ma te SSH 2.0 me nga tikanga SFTP.

Ko te tino whakapai ake i te tukunga o OpenSSH 8.2 ko te kaha ki te whakamahi motuhēhēnga-rua ma te whakamahi i nga taputapu e tautoko ana i te kawa. U2F, i whakawhanakehia e te hononga FIDO. Ka taea e U2F te hanga tohu taputapu iti-utu ki te manatoko i te noho tinana o te kaiwhakamahi, te taunekeneke ki a raatau ma te USB, Nihokikorangi, NFC ranei. Ko enei taputapu e whakatairangahia ana hei huarahi mo te whakamotuhēhēnga-rua i runga i nga paetukutuku, kua tautokohia e nga kaitirotiro nui, ka hangaia e nga momo kaihanga, tae atu ki a Yubico, Feitian, Thetis me Kensington.

Hei pahekoheko me nga taputapu e whakapumau ana i te noho mai o te kaiwhakamahi, ko nga momo matua hou "ecdsa-sk" me "ed25519-sk" kua taapirihia ki OpenSSH, e whakamahi ana i te ECDSA me te Ed25519 tohu tohu algorithm, me te SHA-256 hash. Ko nga tikanga mo te taunekeneke me nga tohu ka tuu ki roto i te whare pukapuka takawaenga, he rite te utaina ki te whare pukapuka mo te tautoko PKCS#11, he takai kei runga ake o te whare pukapuka. libfido2, e whakarato ana i nga taputapu mo te whakawhitiwhiti me nga tohu i runga i te USB (FIDO U2F / CTAP 1 me FIDO 2.0 / CTAP 2 kawa e tautokohia ana). Ko te whare pukapuka takawaenga libsk-libfido2 i whakaritea e nga kaihanga OpenSSH whakauru ki te libfido2 matua, me taraiwa HID mo OpenBSD.

Hei whakamotuhēhē me te whakaputa kī, me whakapūtā koe i te tawhā "SecurityKeyProvider" i roto i nga tautuhinga, te tautuhi ranei i te taurangi taiao SSH_SK_PROVIDER, e tohu ana i te ara ki te whare pukapuka waho libsk-libfido2.so (kaweake SSH_SK_PROVIDER=/path/to/libsk-libfido2. na). Ka taea te hanga openssh me te tautoko i hangaia mo te whare pukapuka paparanga (--with-security-key-builtin), i tenei keehi me tautuhi koe i te tawhā "SecurityKeyProvider=roto".
I muri mai ka hiahia koe ki te whakahaere "ssh-keygen -t ecdsa-sk" ranei, ki te mea kua oti te hanga me te whirihora nga taviri, hono atu ki te tūmau ma te whakamahi "ssh". Ina whakahaere koe i te ssh-keygen, ka tiakina te takirua matua i hangaia ki "~/.ssh/id_ecdsa_sk" ka taea te whakamahi rite ki etahi atu taviri.

Me tārua te kī tūmatanui (id_ecdsa_sk.pub) ki te tūmau i roto i te kōnae authorized_keys. I te taha tūmau, ko te waitohu mamati anake ka whakamanahia, ka mahihia te taunekeneke me nga tohu ki te taha o te kiritaki (kaore koe e hiahia ki te whakauru i te libsk-libfido2 ki runga i te tūmau, engari me tautoko te tūmau i te momo matua "ecdsa-sk") . Ko te taviri motuhake i hangaia (id_ecdsa_sk) he kakau matua, ka hanga he matua mau anake me te raupapa huna e rongoa ana ki te taha tohu U2F. Mēnā ka taka te kī id_ecdsa_sk ki te ringa o te kaitukino, ki te tuku motuhēhēnga me uru atu ano ia ki te tohu taputapu, me te kore e whai hua te kī tūmataiti kei roto i te konae id_ecdsa_sk.

Hei taapiri, ma te taunoa, i te wa e mahi ana i nga mahi me nga taviri (i te wa o te whakatipuranga me te wa whakamotuhēhēnga), ka hiahiatia te whakapumautanga a-rohe o te noho tinana o te kaiwhakamahi, hei tauira, ka whakaarohia kia pa atu ki te pukoro i runga i te tohu, he uaua ki te mahi. kawe i nga whakaeke mamao ki nga punaha me te tohu hono. Hei rarangi whakamarumaru ano, ka taea hoki te tautuhi i tetahi kupuhipa i te wa o te timatanga o te ssh-keygen ki te uru atu ki te konae matua.

I panuitia ano e te putanga hou o OpenSSH te whakakorenga o nga algorithms ma te whakamahi i nga tohu SHA-1 na te mea whakatairanga te whai huatanga o nga whakaeke tukinga me te tohu tuatahi (ko te utu mo te kowhiri i te tukinga kei te tata ki te 45 mano taara). I roto i tetahi o nga putanga e haere ake nei, ka whakamahere ratou ki te whakakore i te taunoa te kaha ki te whakamahi i te tohu tohu tohu a te iwi whanui "ssh-rsa", e whakahuahia ana i roto i te RFC taketake mo te kawa SSH me te noho whanui i roto i nga mahi (ki te whakamatautau i te whakamahinga. o ssh-rsa i roto i o punaha, ka taea e koe te ngana ki te hono ma te ssh me te whiringa "-oHostKeyAlgorithms=-ssh-rsa").

Hei whakaene i te whakawhiti ki nga algorithms hou i OpenSSH, hei te tukunga e heke mai nei ka whakahohea te tautuhinga UpdateHostKeys ma te taunoa, ka heke aunoa i nga kaihoko ki nga algorithms pono ake. Ko nga algorithms e taunakihia ana mo te heke ko te rsa-sha2-256/512 i runga i te RFC8332 RSA SHA-2 (tautokohia mai i te OpenSSH 7.2 me te whakamahi taunoa), ssh-ed25519 (tautokohia mai i OpenSSH 6.5) me ecdsa-sha2-nistp256/384/521 i runga i te RFC5656 ECDSA (tautokohia mai i te OpenSSH 5.7).

I roto i te OpenSSH 8.2, ko te kaha ki te hono ma te whakamahi i te "ssh-rsa" kei te waatea tonu, engari kua tangohia tenei algorithm mai i te rarangi CASignatureAlgorithms, e whakaatu ana i nga algorithms e whakaaetia ana mo te hainatanga mamati i nga tiwhikete hou. Waihoki, ko te diffie-hellman-group14-sha1 algorithm kua tangohia mai i nga huringa whakawhiti matua taunoa e tautokohia ana. Kua tohuhia ko te whakamahi i te SHA-1 i roto i nga tiwhikete e pa ana ki etahi atu tupono, na te mea he wa mutunga kore te kaitukino ki te rapu tukinga mo te tiwhikete o naianei, ko te wa o te whakaeke i nga taviri kaihautu e iti ana i te mutunga o te hononga (LoginGraceTime ).

Ko te whakahaere i te ssh-keygen inaianei ka taunoa ki te rsa-sha2-512 algorithm, e tautokohia ana mai i te OpenSSH 7.2, tera pea ka hanga take hototahi i te wa e ngana ana ki te tukatuka i nga tiwhikete kua hainatia ki OpenSSH 8.2 i runga i nga punaha e whakahaere ana i nga putanga OpenSSH tawhito (ki te mahi i te take i te wa Ahea. te whakaputa i te hainatanga, ka taea e koe te tohu "ssh-keygen -t ssh-rsa" ka whakamahi ranei i te ecdsa-sha2-nistp256/384/521 algorithms, i tautokohia mai i te OpenSSH 5.7).

Ētahi atu huringa:

  • Kua taapirihia he tohutohu Whakauru ki te sshd_config, ka taea e koe te whakauru i nga ihirangi o etahi atu konae ki te tuunga o naianei o te konae whirihoranga (ka taea te whakamahi i nga kopare glob ina tohua te ingoa konae);
  • Ko te kōwhiringa "kaore e pa ki te hiahia" kua taapirihia ki te ssh-keygen, ka whakakore i te hiahia ki te whakauru tinana ki te tohu i te wa e whakaputa ana i te kii;
  • Kua taapirihia he tohutohu PubkeyAuthOptions ki te sshd_config, e whakakotahi ana i nga momo whiringa e pa ana ki te whakamotuhēhēnga kī tūmatanui. I tenei wa, ko te haki "kore-pa-hiahia" anake e tautokohia ana ki te peke i nga arowhai tinana mo te whakamotuhēhēnga tohu. Ma te whakataurite, kua taapirihia te whiringa "kaore e pa atu" ki te konae_keys mana;
  • Kua taapirihia te "-O write-attestation=/path" ki te ssh-keygen hei tuku i etahi atu tiwhikete whakamana FIDO kia tuhia ina whakaputa ana nga taviri. Kaore ano a OpenSSH e whakamahi i enei tiwhikete, engari ka taea te whakamahi i muri mai hei manatoko kei te whakauruhia te ki ki roto i te toa taputapu pono;
  • I roto i nga tautuhinga ssh me te sshd, ka taea te whakarite i te aratau kaupapa tuatahi ma te tohu IPQoS LE DSCP (Nga Mahi Whakararo mo ia-Hop Behavior);
  • I roto i te ssh, i te wa e tautuhi ana i te uara "AddKeysToAgent = ae", ki te kore te matua e whai waahi korero, ka taapirihia ki te ssh-agent e tohu ana i te ara ki te matua hei korero. IN
    Ko te ssh-keygen me te ssh-agent ka whakamahi i nga tapanga PKCS#11 me te ingoa kaupapa X.509 hei utu mo te ara whare pukapuka hei korero i roto i te matua;

  • Kua taapirihia te kaha ki te kaweake PEM mo nga taviri DSA me ECDSA ki ssh-keygen;
  • Kua taapirihia he kaawhina hou, ssh-sk-helper, i whakamahia hei wehe i te whare pukapuka uru tohu FIDO/U2F;
  • Kua taapirihia "--with-zlib" te waahanga hanga ki te ssh me te sshd mo te whakahiato me te tautoko whare pukapuka zlib;
  • I runga i nga whakaritenga a RFC4253, he whakatupato mo te aukati uru na te nui o nga rohe o MaxStartups ka tukuna i roto i te kara e whakaatuhia ana i te wa e hono ana. Hei whakamaarama i nga taatai, ko te pane sshd tukanga, ka kitea i te wa e whakamahi ana i te taputapu ps, ka whakaatu inaianei i te maha o nga hononga kua whakamanahia i tenei wa me te mana o te rohe MaxStartups;
  • I roto i te ssh me te ssh-agent, i te wa e karanga ana i tetahi papatono ki te whakaatu i tetahi powhiri ki runga i te mata, kua tohua ma te $SSH_ASKPASS, ka tukuna ano he haki me te momo powhiri: "whakapumau" - korero whakau (ae/kao), "kaore ” - karere korero, “patea” — tono kupuhipa;
  • I taapirihia he mahinga waitohu mamati hou "rapu-tumuaki" ki te ssh-keygen ki te rapu i te konae hainatanga kua whakaaetia mo te kaiwhakamahi e hono ana ki tetahi waitohu mamati kua tohua;
  • He pai ake te tautoko mo te wehenga sshd tukanga i runga i te Linux ma te whakamahi i te tikanga seccomp: te whakakore i nga waea punaha IPC, ka taea clock_gettime64(), clock_nanosleep_time64 me clock_nanosleep().

Source: opennet.ru

Tāpiri i te kōrero