- SSH3 é um protocolo de shell seguro de próxima geração que opera sobre HTTP/3 e melhora drasticamente a velocidade de estabelecimento de sessão em comparação com o SSHv2 tradicional
- Forma um canal seguro com QUIC e TLS 1.3 e oferece suporte a sistemas modernos de autenticação, como OAuth 2.0 e OpenID Connect
- Pode ocultar o servidor atrás de um caminho secreto, tornando-o mais resistente a ataques como varredura de portas, além de oferecer novos recursos como encaminhamento de porta UDP e multipath do QUIC
- Já adotou vários recursos centrais do OpenSSH, mas ainda está em estágio experimental, portanto não é recomendável implantá-lo em ambientes reais de produção
- Como muitos consideram que o nome SSH3 não é apropriado, o rascunho de padronização foi alterado para “Remote Terminals over HTTP/3”, e a mudança de nome está em andamento
Visão geral e importância do projeto SSH3
- SSH3 é uma solução open source que redesenha o protocolo SSH existente para HTTP/3 e tecnologias web modernas
- Reinterpreta a semântica do protocolo de conexão SSH existente (RFC4254) sobre HTTP/3 Extended CONNECT e canais QUIC + TLS 1.3
- Foi proposto no Internet-Draft da IETF draft-michel-remote-terminal-http3 e oferece várias vantagens, como redução significativa na velocidade de estabelecimento de sessão e expansão para métodos modernos de autenticação
- Em comparação com outras implementações de SSH, destaca-se por ideias inovadoras como o uso de QUIC e a configuração de servidor oculto
Principais recursos e características
- Estabelecimento de sessão mais rápido
- Enquanto uma conexão SSHv2 tradicional exige em média de 5 a 7 idas e voltas de rede, o SSH3 precisa de apenas 3 idas e voltas, reduzindo bastante a latência percebida pelo usuário
- A latência de digitação permanece em nível semelhante ao atual
- Segurança reforçada
- Baseado em TLS1.3, QUIC e autenticação HTTP, aproveita protocolos de segurança já validados e amplamente usados em comércio eletrônico e internet banking
- Suporta autenticação por chave pública com RSA e EdDSA/ed25519, além de vários métodos como OAuth 2.0 e OpenID Connect
- Também permite login com contas Google, Microsoft e Github
- Recurso de ocultar o servidor
- O servidor pode ficar atrás de uma URL secreta específica (por exemplo, https://192.0.2.0:443/M3MzkxYWMx...) e só responde quando uma solicitação de autenticação chega por essa URL
- Para outras solicitações, retorna 404 Not Found, impedindo que atacantes e crawlers na internet detectem a existência do servidor
- No entanto, o caminho secreto não substitui a autenticação, portanto ainda é fortemente recomendado usar um mecanismo separado de autenticação, como chave pública, senha ou OIDC
- Projeto experimental em desenvolvimento contínuo
- Estruturalmente, ainda precisa de uma validação confiável de segurança e não é recomendável adotá-lo em servidores de produção
- O projeto está recolhendo feedback da comunidade em ambientes de teste ou redes fechadas
- Compatibilidade com OpenSSH e recursos adicionais
- Suporte a parsing de ~/.ssh/authorized_keys e known_hosts, integração com ssh-agent, encaminhamento de porta TCP/UDP e Proxy Jump
- Com suporte a encaminhamento UDP, oferece acesso a servidores baseados em UDP, como serviços DNS, RTP e QUIC, usando caminho de QUIC datagram
- Recurso de autenticação de servidor em nível de HTTPS por meio de certificados X.509
- Autenticação sem chave (Keyless): com OpenID Connect, é possível se conectar sem copiar chave pública, usando apenas SSO corporativo ou contas externas como Google e GitHub
Conclusão
- SSH3 é um projeto open source experimental que busca evoluir o ambiente SSH ao introduzir protocolos de rede e autenticação modernos
- Ele reforça bastante velocidade, flexibilidade e segurança, mas é preciso cautela no uso em produção antes de uma validação suficiente
- Oferece uma experiência de uso semelhante à do OpenSSH e também traz muitos novos recursos
- Com uma avaliação de segurança adequada e participação da comunidade, tem potencial para se firmar como o SSH da próxima geração
1 comentários
Comentários do Hacker News
ssh3, então achei bom ver no topo do repositório algo como: “SSH3 terá o nome alterado. Por enquanto, ele ainda é o SSH Connection Protocol (RFC4254) rodando sobre HTTP/3 Extended CONNECT, mas são necessárias muitas mudanças e ele é diferente demais do SSH existente para ser integrado com facilidade. O rascunho da especificação já foi renomeado para ‘Remote Terminals over HTTP/3’, e precisamos de tempo para pensar em um nome permanente melhor”SSH/3não ficaria melhor (com aquela sensação de SSH + HTTP/3)bike-sheddingSSH2/3funcionasse, já que na maioria dos casos é SSH2, mas rodando sobre HTTP/3scpde arquivos grandes a partir de várias partes do mundossh3, há uma boa chance de o bloqueio de head-of-line ter sido resolvido, então ele deve ser mais rápido ao multiplexar várias portas ou conexões em uma mesma conexão físicaSet-Locationé preferível acd; um nome comoremote-terminals-over-http3seria melhor quessh3