9 pontos por GN⁺ 2024-03-25 | 1 comentários | Compartilhar no WhatsApp
  • O tinysshd é um servidor SSH minimalista que implementa apenas parte dos recursos do SSHv2
  • Suporta no mínimo 128 bits de segurança e apenas criptografia segura contra ataques de cache timing
  • Não implementa criptografias antigas como RSA, DSA, HMAC-MD5, HMAC-SHA1, 3DES e RC4
  • Não implementa recursos inseguros como autenticação por senha ou baseada em host
  • Também não oferece recursos como protocolo SSH1, compressão, encaminhamento de porta, encaminhamento de agente e encaminhamento X11
  • Não usa alocação dinâmica de memória, evitando problemas como falhas de alocação

Primitivos criptográficos

  • Criptografia moderna: ssh-ed25519, curve25519-sha256, chacha20-poly1305@openssh.com
  • Padrões anteriores (removidos na versão 20190101): ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256
  • Criptografia preparada para computadores quânticos: sntrup761x25519-sha512@openssh.com, chacha20-poly1305@openssh.com

Linha do tempo do projeto

  • Fase experimental (2014): voltada a experimentação
  • Fase alfa (2015-2017): não adequada para produção, mas pronta para testes
  • Fase beta (de 2018 até o presente): adequada para produção
  • Fase de estabilização: espera-se que seja adequada para produção, incluindo criptografia preparada para computadores quânticos

Release atual (20240101)

  • O código é composto por 63899 palavras.
  • Está em status de release beta.

Como executar

  • TCPSERVER: tcpserver -HRDl0 0.0.0.0 22 /usr/sbin/tinysshd -v /etc/tinyssh/sshkeydir &
  • BUSYBOX: busybox tcpsvd 0 22 tinysshd -v /etc/tinyssh/sshkeydir &
  • INETD: adicionar ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir ao arquivo /etc/inetd.conf
  • SYSTEMD: configurar e executar o serviço por meio dos arquivos tinysshd.socket e tinysshd@.service

Opinião do GN⁺

  • O tinysshd é um servidor SSH com recursos mínimos, com um design claramente focado em segurança. Isso traz a vantagem de ser leve por não ter recursos excessivos e de possivelmente ter menos vulnerabilidades de segurança.
  • Como o servidor SSH é um elemento central da segurança de rede, uma abordagem minimalista como a do tinysshd pode ser especialmente útil em ambientes onde a segurança é crítica.
  • Por outro lado, para alguns usuários, a ausência de recursos avançados como encaminhamento de porta ou encaminhamento X11 pode ser uma desvantagem.
  • O suporte a criptografia preparada para computadores quânticos é uma abordagem voltada para o futuro, refletindo atenção contínua à segurança e atualizações constantes.
  • Um projeto open source semelhante é o OpenSSH, que oferece mais recursos, mas também é mais complexo e traz mais aspectos de segurança para administrar.
  • Ao adotar o tinysshd, é preciso considerar se suas limitações de recursos atendem aos requisitos do projeto; os ganhos são simplicidade e segurança reforçada, enquanto a perda está na ausência de alguns recursos avançados.

1 comentários

 
GN⁺ 2024-03-25
Comentários do Hacker News
  • Casos de uso do TinySSH:

    • Usado para desbloquear remotamente unidades criptografadas durante a inicialização do Linux.
    • Em um servidor NAS sem monitor, usando dm-crypt/LUKS e ZFS.
    • Ao atualizar o kernel/ZFS, o servidor é reiniciado remotamente e, por meio do TinySSH, acessa-se o prompt da chave de criptografia para desbloquear a unidade.
    • Quando o TinySSH é encerrado, a sessão SSH é desconectada imediatamente e, alguns segundos depois, ao se conectar novamente via SSH, já é possível acessar o sistema totalmente inicializado.
  • Links relacionados ao TinySSH:

    • No momento, está difícil acessar por causa do efeito Slashdot.
    • É possível ver a página do TinySSH por meio do arquivo da web.
  • Opinião sobre a quantidade de código do TinySSH:

    • É curioso expressar a quantidade de código em “palavras”.
    • Em geral, repositórios sensíveis à segurança costumam ser anunciados como tendo “X linhas de código”, então usar “palavras” é incomum.
  • Escopo de suporte do TinySSH:

    • É uma pena que não ofereça suporte a ed25519-sk.
    • Fora isso, parece muito promissor.
  • Auditabilidade do TinySSH:

    • Levanta-se a dúvida se 100.000 palavras de código realmente estão em um nível fácil de auditar.
  • Pergunta sobre a diferença entre TinySSH e Dropbear SSH.

  • Opinião sobre substituir o OpenSSH:

    • O OpenSSH é usado por muita gente e foi validado ao longo de muito tempo, então tem alta confiabilidade.
    • O OpenSSH veio do OpenBSD, que é cuidadoso ao escrever código de segurança.
    • Em vez de substituir o OpenSSH, seria melhor migrar para autenticação por chave e reforçá-lo ainda mais com algumas mudanças simples de configuração, incluindo ideias de configuração da Mozilla.
  • Elogios ao trabalho do desenvolvedor do TinySSH:

    • Além do TinySSH, ele também desenvolve vários pequenos utilitários e servidores de rede.
    • Esses trabalhos passam a impressão de que o desenvolvedor se esforça para “construir” algo e para entendê-lo.
  • Recursos de segurança do TinySSH:

    • O TinySSH não implementa recursos inseguros, como senha ou autenticação baseada em host.
    • Pergunta sobre como registrar uma chave privada em um dispositivo compartilhado.