SSH3: По-бърза, по-богата защитена обвивка, използваща HTTP/3
Наскоро стана известно официалното стартиране на първата експериментална версия на сървъра и клиента за SSH3 протокол, проектиран като допълнение към HTTP3 протокола и който използва QUIC (базиран на UDP), TLS 1.3, който се възползва от HTTP механизмите за удостоверяване на потребителя, както и за установяване на защитен комуникационен канал
SSH3 използва механизми за оторизация, базирани на HTTP протокола, които позволяват нови методи за удостоверяване, в допълнение към класическото удостоверяване с помощта на парола и двойка ключове, плюс в SSH3 можете да конфигурирате достъп до отдалечен сървър чрез доставчика на идентичност на организация или с акаунт в Google или GitHub. SSH3 е базиран на HTTP/3 и QUIC и в допълнение към нормалното TCP пренасочване предлага също UDP пренасочване на портове и по-бързо и по-сигурно установяване на сесия.
Относно SSH3
Разработчиците на проекта споменават, че създаването на SSH3 възникна в резултат на пълен преглед на SSH протокола, извършено от независима група изследователи, отделно от екипите, работещи по проекти като OpenSSH и други реализации на класическия SSH протокол. в SSH3, семантиката на класическия SSH протокол се реализира чрез HTTP механизми, което не само позволява допълнителни възможности, но също така гарантира, че свързаните със SSH дейности са скрити сред останалия трафик, наред с други неща, SSH3 позволява следните подобрения в сравнение с протокола SSH2 не може да предостави, както и много от популярните функции на OpenSSH:
- Значително по-бързо установяване на сесия
- Нови методи за HTTP удостоверяване, като OAuth 2.0 и OpenID Connect, в допълнение към класическото SSH удостоверяване.
- Разбор на ~/.ssh/authorized_keys на сървъра.
Анализира ~/.ssh/config на клиента и обработва опциите Hostname, User и Portconfig IdentityFile (другите опции в момента се игнорират)
Базирано на сертификат удостоверяване на сървъра - Устойчивост срещу атаки за сканиране на портове: вашият SSH3 сървър може да стане невидим за други интернет потребители
- Пренасочване на UDP портове – вече можете да получите достъп до вашия QUIC, DNS, RTP или който и да е UDP базиран сървър, до който можете да получите достъп само от вашия SSH3 хост.
- X.509 сертификати: Вече можете да използвате вашите класически HTTPS сертификати за удостоверяване на вашия SSH3 сървър. Този механизъм е по-сигурен от класическия механизъм за хост SSHv2 ключ.
- Възможност за скриване на сървъра зад секретна връзка.
- Всички функции, активирани от модерния протокол QUIC: включително миграция на връзка и многопътни връзки
- Автоматично използване на удостоверяване с публичен ключ на ssh-agent
- Пренасочване на SSH агент за използване на вашите локални ключове на вашия отдалечен сървър
- Защитете потребителско удостоверяване без ключ с помощта на OpenID Connect.
За да шифрова комуникационния канал, SSH3 използва протокола TLS 1.3 и могат да се използват традиционни методи, базирани на пароли и публични ключове (RSA и EdDSA/ed25519). Освен това SSH3 предлага опцията за използване на методи, базирани на протокола OAuth 2.0, което позволява удостоверяването да бъде прехвърлено към външни доставчици.
Друго от Силните страни на SSH3 са, че предлага значително по-бързо установяване на сесия от SSH2, Например установяването на нова сесия с SSH2 може да отнеме 5 до 7 мрежови итерации (обиколка), което потребителят може лесно да забележи, тъй като SSH3 се нуждае само от 3 итерации.
Ако се интересувате да научите повече за него, трябва да знаете, че клиентът и сървърът са написани на Go и се разпространяват под лиценза Apache 2.0, можете да се консултирате с подробностите В следващия линк.
Освен това си струва да се спомене, че SSH3 все още е експериментален и използването му не се препоръчва за производствени или критични среди и като такова инсталирането му се препоръчва само за да научите за неговите функционалности или за да можете да тествате.
Изтеглете и инсталирайте SSH3
За интересуват се от възможността да внедрят SSH3 сървър за тестване, Можете да направите това, като компилирате изходния код с Go, следвайки инструкциите, които споделяме по-долу.
git clone https://github.com/francoismichel/ssh3 cd ssh3 go build -o ssh3 cmd/ssh3/main.go CGO_ENABLED=1 go build -o ssh3-server cmd/ssh3-server/main.go
След като това е направено, сега продължаваме да добавяме нашата променлива на средата в .bashrc с:
export PATH=$PATH:/path/to/the/ssh3/directory
По отношение на внедряването на сървъра, тъй като SSH3 работи над HTTP3, е необходим сертификат и такъв може да бъде генериран със скрипта:
sh ./generate_openssl_selfsigned_certificate.sh
И накрая, каня ви да се консултирате с документацията относно използването и внедряването на допълнителни функции в следваща връзка.