9 puntos por GN⁺ 2024-03-25 | 1 comentarios | Compartir por WhatsApp
  • tinysshd es un servidor SSH minimalista que implementa solo una parte de las funciones de SSHv2
  • Soporta al menos 128 bits de seguridad y solo admite criptografía segura resistente a ataques de temporización de caché
  • No implementa cifrados antiguos como RSA, DSA, HMAC-MD5, HMAC-SHA1, 3DES y RC4
  • No implementa funciones inseguras como autenticación por contraseña o autenticación basada en host
  • Tampoco ofrece funciones como el protocolo SSH1, compresión, reenvío de puertos, reenvío de agente o reenvío X11
  • No usa asignación dinámica de memoria, por lo que evita problemas como fallas de asignación

Primitivas criptográficas

  • Criptografía moderna: ssh-ed25519, curve25519-sha256, chacha20-poly1305@openssh.com
  • Estándares anteriores (eliminados en la versión 20190101): ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256
  • Criptografía preparada para computación cuántica: sntrup761x25519-sha512@openssh.com, chacha20-poly1305@openssh.com

Cronología del proyecto

  • Etapa experimental (2014): pensada con fines de experimentación
  • Etapa alfa (2015-2017): no apta para producción, pero lista para pruebas
  • Etapa beta (de 2018 hasta hoy): apta para producción
  • Etapa de estabilización: se espera que sea apta para producción, incluida criptografía preparada para computación cuántica

Versión actual (20240101)

  • El código está compuesto por 63899 palabras.
  • Se encuentra en estado de lanzamiento beta.

Cómo ejecutarlo

  • 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: agregar ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir al archivo /etc/inetd.conf
  • SYSTEMD: configurar y ejecutar el servicio mediante los archivos tinysshd.socket y tinysshd@.service

Opinión de GN⁺

  • tinysshd es un servidor SSH con funciones mínimas cuyo diseño, centrado en la seguridad, destaca bastante. Esto le da la ventaja de ser liviano por no tener funciones excesivas, y de reducir potencialmente la cantidad de vulnerabilidades de seguridad.
  • Como el servidor SSH es un elemento clave de la seguridad de red, un enfoque minimalista como el de tinysshd puede ser útil, especialmente en entornos donde la seguridad es crítica.
  • Sin embargo, para algunos usuarios, la ausencia de funciones avanzadas como el reenvío de puertos o el reenvío X11 puede ser una desventaja.
  • El hecho de que soporte criptografía preparada para computación cuántica muestra un enfoque orientado al futuro y refleja atención continua a la seguridad y a las actualizaciones.
  • Otro proyecto open source con funciones similares es OpenSSH, que ofrece más capacidades, pero también es más complejo y tiene más aspectos de seguridad que administrar.
  • Al adoptar tinysshd, conviene evaluar si sus limitaciones funcionales se ajustan a los requisitos del proyecto; lo que se gana es simplicidad y seguridad reforzada, y lo que se pierde es la ausencia de algunas funciones avanzadas.

1 comentarios

 
GN⁺ 2024-03-25
Comentarios de Hacker News
  • Casos de uso de TinySSH:

    • Se usa para desbloquear de forma remota unidades cifradas durante el arranque de Linux.
    • Uso en un servidor NAS sin monitor con dm-crypt/LUKS y ZFS.
    • Al actualizar el kernel/ZFS, se reinicia el servidor de forma remota y se accede, mediante TinySSH, al prompt de la clave de cifrado para desbloquear las unidades.
    • Cuando TinySSH se cierra, la sesión SSH se cierra de inmediato; si vuelves a conectarte por SSH unos segundos después, ya puedes acceder al sistema completamente arrancado.
  • Enlaces relacionados con TinySSH:

    • Actualmente es difícil acceder debido al efecto Slashdot.
    • Se puede consultar la página de TinySSH a través de un archivo web.
  • Opinión sobre la cantidad de código de TinySSH:

    • Es curioso expresar la cantidad de código en "palabras".
    • Normalmente, los repositorios donde la seguridad es importante se promocionan con "X líneas de código", pero expresarlo en "palabras" es inusual.
  • Alcance del soporte de TinySSH:

    • Es una lástima que no soporte ed25519-sk.
    • Fuera de eso, parece muy prometedor.
  • Posibilidad de auditoría de TinySSH:

    • Se cuestiona si 100,000 palabras de código realmente son un nivel fácil de auditar.
  • Pregunta sobre la diferencia entre TinySSH y Dropbear SSH.

  • Opinión sobre reemplazar OpenSSH:

    • OpenSSH es usado por mucha gente y ha sido probado durante mucho tiempo, por lo que tiene una alta estabilidad.
    • OpenSSH proviene de OpenBSD, que es cuidadoso al escribir código de seguridad.
    • En lugar de reemplazar OpenSSH, sería mejor cambiar a autenticación basada en claves y reforzarlo aún más con algunos cambios simples de configuración, incluyendo ideas de configuración de Mozilla.
  • Elogios al trabajo del desarrollador de TinySSH:

    • Además de TinySSH, ha desarrollado varias utilidades de red pequeñas y servidores.
    • Estos trabajos dan la impresión de que el desarrollador se esfuerza por "construir" algo y por entenderlo.
  • Funciones de seguridad de TinySSH:

    • TinySSH no implementa funciones inseguras como contraseñas o autenticación basada en host.
    • Pregunta sobre cómo registrar una clave privada en un dispositivo compartido.