Π Π΅Π»ΠΈΠ· OpenSSH 8.2 c ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ FIDO/U2F

ПослС Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСдставлСн Ρ€Π΅Π»ΠΈΠ· OpenSSH 8.2, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ SSH 2.0 ΠΈ SFTP.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² выпускС OpenSSH 8.2 стала Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ устройств, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» U2F, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ альянсом FIDO. U2F позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ для подтвСрТдСния физичСского присутствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, взаимодСйствиС с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ производится Ρ‡Π΅Ρ€Π΅Π· USB, Bluetooth ΠΈΠ»ΠΈ NFC. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ устройства ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π² качСствС срСдства для Π΄Π²ΡƒΡ…Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° сайтах, ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ основными Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ производитСлями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Yubico, Feitian, Thetis ΠΈ Kensington.

Для взаимодСйствия с устройствами, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌΠΈ присутствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π² OpenSSH Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ «ecdsa-sk» ΠΈ «ed25519-sk», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи ECDSA ΠΈ Ed25519, Π² сочСтании с Ρ…ΡΡˆΠ΅ΠΌ SHA-256. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ взаимодСйствия с Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ вынСсСны Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, которая загруТаСтся ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ PKCS#11 ΠΈ являСтся обвязкой Π½Π°Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ libfido2, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ срСдства для ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ… USB (поддСрТиваСтся ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ FIDO U2F/CTAP 1 ΠΈ FIDO 2.0/CTAP 2). ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ OpenSSH промСТуточная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libsk-libfido2 Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² основной состав libfido2, ΠΊΠ°ΠΊ ΠΈ HID-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для OpenBSD.

Для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² настройках ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «SecurityKeyProvider» ΠΈΠ»ΠΈ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния SSH_SK_PROVIDER, ΡƒΠΊΠ°Π·Π°Π² ΠΏΡƒΡ‚ΡŒ ΠΊ внСшнСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so). Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° сборка openssh со встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ-прослойки (—with-security-key-builtin), Π² этом случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «SecurityKeyProvider=internal».
Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ «ssh-keygen -t ecdsa-sk» ΠΈΠ»ΠΈ, Ссли ΠΊΠ»ΡŽΡ‡ΠΈ ΡƒΠΆΠ΅ созданы ΠΈ настроСны, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвСру ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ «ssh». ΠŸΡ€ΠΈ запускС ssh-keygen созданная ΠΏΠ°Ρ€Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ сохранСна Π² «~/.ssh/id_ecdsa_sk» ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π°ΠΌ.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (id_ecdsa_sk.pub) слСдуСт ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сСрвСр Π² Ρ„Π°ΠΉΠ» authorized_keys. На сторонС сСрвСра Ρ‚ΠΎΠ»ΡŒΠΊΠΎ провСряСтся цифровая подпись, Π° взаимодСйствиС с Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ производится Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π½Π° сСрвСрС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ libsk-libfido2, Π½ΠΎ сСрвСр Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ «ecdsa-sk»). Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (id_ecdsa_sk) ΠΏΠΎ сути являСтся дСскриптором ΠΊΠ»ΡŽΡ‡Π°, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΌ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² сочСтании с сСкрСтной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ Π½Π° сторонС Ρ‚ΠΎΠΊΠ΅Π½Π° U2F. Π’ случаС попадания ΠΊΠ»ΡŽΡ‡Π° id_ecdsa_sk Π² Ρ€ΡƒΠΊΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ, для прохоТдСния Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΆΠ΅ потрСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ Ρ‚ΠΎΠΊΠ΅Π½Ρƒ, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сохранённый Π² Ρ„Π°ΠΉΠ»Π΅ id_ecdsa_sk Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ бСсполСзСн.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π»ΡŽΠ±Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ (ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ) трСбуСтся локальноС ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ физичСского присутствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, прСдлагаСтся ΠΊΠΎΡΠ½ΡƒΡ‚ΡŒΡΡ сСнсора Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π΅, Ρ‡Ρ‚ΠΎ затрудняСт ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ Π½Π° систСмы с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ. Π’ качСствС Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€ΡƒΠ±Π΅ΠΆΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π° этапС запуска ssh-keygen Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии OpenSSH Ρ‚Π°ΠΊΠΆΠ΅ объявлСно ΠΎ прСдстоящСм ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π² разряд ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Ρ…Π΅ΡˆΠΈ SHA-1, Π² связи с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ΠΌ эффСктивности ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ прСфиксом (ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ оцСниваСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 45 тысяч Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ²). Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… выпусков ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… подписСй ΠΏΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ «ssh-rsa», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ упоминаСтся Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ RFC для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° SSH ΠΈ остаётся ΡˆΠΈΡ€ΠΎΠΊΠΎ распространённым Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ (для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ примСнСния ssh-rsa Π² своих систСмах ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ssh с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «-oHostKeyAlgorithms=-ssh-rsa»).

Для сглаТивания ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π² OpenSSH Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° настройка UpdateHostKeys, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ автоматичСски пСрСвСсти ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. Π‘Ρ€Π΅Π΄ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Ρ… для ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² упомянуты rsa-sha2-256/512 Π½Π° Π±Π°Π·Π΅ RFC8332 RSA SHA-2 (поддСрТиваСтся с OpenSSH 7.2 ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), ssh-ed25519 (поддСрТиваСтся с OpenSSH 6.5) ΠΈ ecdsa-sha2-nistp256/384/521 Π½Π° Π±Π°Π·Π΅ RFC5656 ECDSA (поддСрТиваСтся с OpenSSH 5.7).

Π’ вСрсии OpenSSH 8.2 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с использованиСм «ssh-rsa» ΠΏΠΎΠΊΠ° оставлСна, Π½ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΈΠ· списка CASignatureAlgorithms, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, допустимыС для Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи Π½ΠΎΠ²Ρ‹Ρ… сСртификатов. Аналогично ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π°Π»Π³Ρ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ diffie-hellman-group14-sha1. ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ использованиС SHA-1 Π² сСртификатах сопряТСно с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ риском, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ врСмя Π½Π° поиск ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сСртификата, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ врСмя Π°Ρ‚Π°ΠΊΠΈ Π½Π° хостовыС ΠΊΠ»ΡŽΡ‡ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (LoginGraceTime).

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ssh-keygen Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ примСняСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ rsa-sha2-512, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поддСрТиваСтся начиная с OpenSSH 7.2, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСртификатов, Π·Π°Π²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π² OpenSSH 8.2, Π½Π° систСмах со старыми выпусками OpenSSH (для ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ подписи ΠΌΠΎΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ «ssh-keygen -t ssh-rsa» ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ecdsa-sha2-nistp256/384/521, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ с OpenSSH 5.7).

Π”Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния:

  • Π’ sshd_config Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Include, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ содСрТимоС Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (ΠΏΡ€ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° допускаСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ glob-масок);
  • Π’ ssh-keygen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «no-touch-required», ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ физичСского подтвСрТдСния доступа ΠΊ Ρ‚ΠΎΠΊΠ΅Π½Ρƒ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π°;
  • Π’ sshd_config Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° PubkeyAuthOptions, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π°Ρ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ, связанныС с Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π°ΠΌ. Π’ настоящСС врСмя поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π»Π°Π³ «no-touch-required» для пропуска ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ физичСского присутствия ΠΏΡ€ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Π°. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Π² Ρ„Π°ΠΉΠ» authorized_keys Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «no-touch-required»;
  • Π’ ssh-keygen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «-O write-attestation=/path», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ аттСстационныС сСртификаты FIDO ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. OpenSSH ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ сСртификаты, Π½ΠΎ ΠΎΠ½ΠΈ Π² дальнСйшСм ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ размСщСния ΠΊΠ»ΡŽΡ‡Π° Π² Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ довСрия Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅;
  • Π’ настройках ssh ΠΈ sshd Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ IPQoS Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° установка Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Π·Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° LE DSCP (Lower-Effort Per-Hop Behavior);
  • Π’ ssh ΠΏΡ€ΠΈ установкС значСния «AddKeysToAgent=yes», Ссли ΠΊΠ»ΡŽΡ‡ Π½Π΅ содСрТит поля с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ssh-agent c ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π² качСствС коммСнтария ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΠ»ΡŽΡ‡Ρƒ. Π’
    ssh-keygen ΠΈ ssh-agent Π² качСствС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² ΠΊΠ»ΡŽΡ‡Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΊΠΈ PKCS#11 ΠΈ имя ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚Π° X.509 вмСсто ΠΏΡƒΡ‚ΠΈ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅;

  • Π’ ssh-keygen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ экспорта PEM для ΠΊΠ»ΡŽΡ‡Π΅ΠΉ DSA ΠΈ ECDSA;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» ssh-sk-helper, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для изоляции Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ доступа ΠΊ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌ FIDO/U2F;
  • Π’ ssh ΠΈ sshd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° сборочная опция «—with-zlib» для компиляции с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ zlib;
  • Π’ соотвСтствии с Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ RFC4253 Π² Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π±Π°Π½Π½Π΅Ρ€Π΅ обСспСчСн ΠΏΠΎΠΊΠ°Π· прСдупрСТдСния ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ доступа ΠΈΠ·-Π·Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² MaxStartups. Для упрощСния диагностики Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ процСсса sshd, Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌ ΠΏΡ€ΠΈ использовании ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ps, обСспСчСно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ числа Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ соСдинСний ΠΈ состояниС Π»ΠΈΠΌΠΈΡ‚Π° MaxStartups;
  • Π’ ssh ΠΈ ssh-agent ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· $SSH_ASKPASS, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ пСрСдаётся Ρ„Π»Π°Π³ с Ρ‚ΠΈΠΏΠΎΠΌ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ: «confirm» — Π΄ΠΈΠ°Π»ΠΎΠ³ подтвСрТдСния (yes/no), «none» — ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ сообщСниС, «blank» — запрос пароля;
  • Π’ ssh-keygen Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая опСрация с Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ подписями «find-principals» для поиска Π² Ρ„Π°ΠΉΠ»Π΅ allowed-signers ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, связанного с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью;
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° изоляции процСсса sshd Π² Linux ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° seccomp: Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ IPC, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ clock_gettime64(), clock_nanosleep_time64 ΠΈ clock_nanosleep().

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ