Достъпен е първият официален release на експериментална реализация на сървър и клиент за протокол SSH3, оформен като надстройка върху протокола HTTP/3, използващ QUIC (на база UDP) и TLS 1.3 за установяване на защитен комуникационен канал и механизми на HTTP за автентикация на потребителите. Проектът се разработва от Франсуа Мишел (François Michel), аспирант в Католическия университет в Лувен (Белгия), с участието на Оливие Бонавентура (Olivier Bonaventure), професор в същия университет, известен с разработката на подсистемата Multipath TCP и кода за сегментна маршрутизация на IPv6 за ядрото на Linux, както и съавтор на 10 RFC и черновици на над 60 мрежови спецификации. Кодът на еталонната реализация на клиента и сървъра е написан на езика Go и се разпространява под лицензия Apache 2.0.
Развитието на SSH3 е резултат от пълен преглед на протокола SSH, проведен от отделна група изследователи независимо от OpenSSH и други проекти, които развиват реализации на класическия протокол SSH. В SSH3 семантиката на класическия протокол SSH е реализирана чрез механизми на HTTP, което позволява реализирането на някои допълнителни възможности и осигурява скриване на свързаната с SSH активност сред друг трафик.
При използването на SSH3 сървърът не е различим от HTTP сървър и приема заявки на 443 мрежовия порт (HTTPS), а трафикът SSH3 се слива с типичния HTTP трафик, което затруднява провеждането на атаки, свързани със сканиране на портове и откриване на SSH сървъри за подбиране на пароли. За усложняване на извършването на атаки на сървъри SSH3, освен знанието за наличието на сървър на зададения IP адрес, може да се задава и секретен път-идентификатор на SSH3 сървъра. Без предоставяне на коректен идентификатор, сървърът ще обработи отговорите като обикновен HTTPS сървър и няма да разкрие наличието на възможност за свързване по SSH3. Например, при задаване на идентификатора „e6ae772cbdaafd6918865cc2ce449dae“ свързването със сървъра е възможно само чрез URL „https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae“, а ако идентификаторът е зададен неправилно, сървърът ще върне стандартната грешка „404“.
В разширената функционалност на SSH3 се споменава възможността за използване на сертификати X.509 за удостоверяване и методи OAuth 2.0/OpenID Connect, наред с класическите методи SSH; поддръжка на пренасочване на UDP портове през SSH тунел в допълнение към възможността за пренасочване на TCP портове (например, за пробиване на QUIC, DNS и RTP); използване на разширени функции на протокола QUIC, като миграция на връзки без прекъсване и установяване на multipath връзки за паралелно предаване на трафика по няколко маршрута.
Особено се отбелязва значителното намаляване на времето за установяване на връзка при използване на SSH3. При свързване към сървър SSH3 се изисква да се извършат само 3 мрежови итерации (Round Trip), докато за SSHv2 се извършват 5-7 итерации на обмен на пакети. Времето за реакция на клавиатурния вход за вече установените сесии в SSH3 и SSHv2 е на едно ниво.

За криптиране на комуникационния канал в SSH3 е използван протокол TLS 1.3, а за удостоверяване могат да се използват класически методи на база пароли и публични ключове (RSA и EdDSA/ed25519). Освен това, в SSH3 могат да се прилагат методи на основата на протокола OAuth 2.0, позволяващи прехвърляне на удостоверяването на външни доставчици, например, за осигуряване на вход с потвърждение чрез сметки в услугите на Google, Microsoft и GitHub. За свързване към сървърите по ключове, освен SSH ключовете, могат да се използват сертификати X.509, използвани за HTTPS.
Публикуваната реализация на клиента и сървера SSH3 поддържа много основни функции на OpenSSH, сред които:
- Подкрепа на файла ~/.ssh/authorized_keys с настройки на ключовете на сървър.
- Възможност за използване на конфигурационен файл ~/.ssh/config от страна на клиента. В момента се поддържат параметрите Hostname, User, Port и IdentityFile, а останалите се игнорират.
- Подкрепа за удостоверяване на свързването към сървъра на основата на сертификати.
- Подкрепа на механизма known_hosts (в ситуации, когато не се прилагат сертификати X.509).
- Подкрепа за работа на клиента с OpenSSH Agent (ssh-agent) и автоматично използване на агента за удостоверяване по публични ключове.
- Подкрепа на функцията за пренасочване през SSH агента за използване на локални ключове на външен сървър.
- Директно пробиване на TCP портове.
Източник: opennet.ru
