
Protocolo de shell rápido e seguro construído sobre HTTP/3, QUIC e TLS 1.3. Suporta OAuth2, OpenID Connect e autenticação SSH clássica com encaminhamento de porta UDP e capacidades de servidor oculto.
[!NOTE] SSH3 provavelmente vai mudar de nome. Ainda é o Protocolo de Conexão SSH (RFC4254) rodando sobre HTTP/3 Extended connect, mas as mudanças necessárias são pesadas e muito distantes da filosofia das implementações populares de SSH para serem consideradas para integração. O rascunho de especificação já foi renomeado ("Terminais Remotos sobre HTTP/3"), mas precisamos de algum tempo para criar um nome permanente adequado.
SSH3 é uma revisão completa do protocolo SSH, mapeando sua semântica sobre os mecanismos HTTP. Ele vem do nosso trabalho de pesquisa e nós (pesquisadores) o propusemos recentemente como um Internet-Draft (draft-michel-remote-terminal-http3-00).
Em poucas palavras, o SSH3 usa QUIC+TLS1.3 para estabelecimento de canal seguro e os mecanismos de Autorização HTTP para autenticação de usuário. Entre outros, o SSH3 permite as seguintes melhorias:
[!TIP] Quer começar rapidamente? Veja como instalar o SSH3. Você aprenderá a configurar um servidor SSH3 e usar o cliente SSH3.
Mais rápido para estabelecimento de sessão, não para vazão! O SSH3 oferece um estabelecimento de sessão significativamente mais rápido que o SSHv2. Estabelecer uma nova sessão com o SSHv2 pode levar de 5 a 7 viagens de ida e volta na rede, o que pode ser facilmente notado pelo usuário. O SSH3 precisa apenas de 3 viagens de ida e volta. A latência de digitação em uma sessão em execução permanece inalterada.
SSH3 (topo) VS SSHv2 (base) estabelecimento de sessão com um ping de 100ms para o servidor.
Enquanto o SSHv2 define seus próprios protocolos para autenticação de usuário e estabelecimento de canal seguro, o SSH3 depende dos mecanismos robustos e testados pelo tempo do TLS 1.3, QUIC e HTTP. Esses protocolos já são amplamente usados para proteger aplicações críticas de segurança na Internet, como comércio eletrônico e Internet banking.
O SSH3 já implementa os métodos comuns de autenticação baseada em senha e chave pública (RSA e EdDSA/ed25519). Ele também suporta novos métodos de autenticação como OAuth 2.0 e permite fazer login em seus servidores usando suas contas Google/Microsoft/Github.
Embora o SSH3 seja promissor para um estabelecimento de sessão mais rápido, ainda está em um estágio inicial de prova de conceito. Como qualquer novo protocolo complexo, uma revisão criptográfica especializada em um período prolongado é necessária antes que conclusões razoáveis de segurança possam ser feitas.
Estamos desenvolvendo o SSH3 como um projeto de código aberto para facilitar o feedback e a análise da comunidade. No entanto, ainda não podemos endossar sua adequação para sistemas de produção sem uma revisão por pares adicional. Colabore conosco se você tiver expertise relevante!
Dado o estado atual do protótipo, aconselhamos testar o SSH3 em ambientes isolados ou redes privadas. Esteja ciente que disponibilizar servidores experimentais diretamente acessíveis na Internet pode introduzir riscos antes de uma verificação de segurança aprofundada.
Embora ocultar servidores atrás de caminhos secretos tenha benefícios potenciais, isso não elimina a necessidade de uma análise rigorosa de vulnerabilidades antes de entrar em produção. Estamos animados com as possibilidades futuras do SSH3, mas incentivamos uma análise adicional primeiro.
Usando SSH3, você pode evitar o estresse usual de varredura e ataques de dicionário contra seu servidor SSH. Similarmente aos seus documentos secretos do Google Drive, seu servidor SSH3 pode ser ocultado atrás de um link secreto e responder apenas a tentativas de autenticação que fizerem uma requisição HTTP para este link específico, como o seguinte:
ssh3-server -bind 192.0.2.0:443 -url-path <my-long-secret>
Substituindo <my-long-secret> por, digamos, o valor aleatório M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU, seu servidor SSH3 responderá apenas a tentativas de conexão SSH3 feitas à URL https://192.0.2.0:443/M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU e responderá 404 Not Found para outras requisições. Atacantes e rastreadores na Internet não podem, portanto, detectar a presença do seu servidor SSH3. Eles verão apenas um simples servidor web respondendo códigos de status 404 para toda requisição.
NOTA BEM: colocar seu servidor SSH3 atrás de uma URL secreta pode reduzir o impacto de ataques de varredura, mas nunca substituirá os mecanismos de autenticação clássicos. O link secreto deve ser usado apenas para evitar que seu host seja descoberto. Saber a URL secreta não deve conceder acesso ao seu servidor. Use os mecanismos de autenticação clássicos descritos acima para proteger seu servidor.
SSH3 fornece novos recursos que não poderiam ser fornecidos pelo protocolo SSHv2.