Недавно стало известно официальный запуск первой экспериментальной версии сервера и клиента для Протокол 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-агента
- Переадресация агента 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
Наконец, я приглашаю вас ознакомиться с документацией по использованию и реализации дополнительных функций в по следующей ссылке.