SSH3, безпечна версія SSH, яка використовує HTTP3

SSH3

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

Нарешті, я запрошую вас ознайомитися з документацією щодо використання та впровадження додаткових функцій у наступне посилання.