9 points par GN⁺ 2024-03-25 | 1 commentaires | Partager sur WhatsApp
  • tinysshd est un serveur SSH minimal qui n’implémente qu’une partie des fonctionnalités de SSHv2
  • Il prend en charge une sécurité minimale de 128 bits et ne propose que des algorithmes sûrs, protégés contre les attaques par timing sur le cache
  • Il n’implémente pas les anciens algorithmes de chiffrement comme RSA, DSA, HMAC-MD5, HMAC-SHA1, 3DES et RC4
  • Il n’implémente pas non plus de fonctionnalités peu sûres comme l’authentification par mot de passe ou basée sur l’hôte
  • Il ne fournit pas non plus de fonctionnalités comme le protocole SSH1, la compression, le port forwarding, l’agent forwarding ou le X11 forwarding
  • Il n’utilise pas d’allocation mémoire dynamique, ce qui évite les problèmes comme les échecs d’allocation

Primitives cryptographiques

  • Cryptographie moderne : ssh-ed25519, curve25519-sha256, chacha20-poly1305@openssh.com
  • Anciennes normes (supprimées dans la version 20190101) : ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256
  • Cryptographie préparée à l’ère des ordinateurs quantiques : sntrup761x25519-sha512@openssh.com, chacha20-poly1305@openssh.com

Chronologie du projet

  • Phase expérimentale (2014) : destinée à l’expérimentation
  • Phase alpha (2015-2017) : non adaptée à la production, mais prête pour les tests
  • Phase bêta (de 2018 à aujourd’hui) : adaptée à la production
  • Phase de stabilisation : devrait convenir à la production, y compris avec une cryptographie préparée à l’ère quantique

Version actuelle (20240101)

  • Le code se compose de 63899 mots.
  • Il s’agit d’une version bêta.

Exécution

  • 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 : ajouter ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir au fichier /etc/inetd.conf
  • SYSTEMD : configurer et lancer le service via les fichiers tinysshd.socket et tinysshd@.service

Avis de GN⁺

  • tinysshd est un serveur SSH aux fonctionnalités minimales, avec une conception clairement orientée sécurité. Son absence de fonctionnalités superflues le rend léger et réduit potentiellement la surface de vulnérabilité.
  • Un serveur SSH étant un élément central de la sécurité réseau, une approche minimaliste comme celle de tinysshd peut être particulièrement utile dans les environnements où la sécurité est critique.
  • En revanche, pour certains utilisateurs, l’absence de fonctions avancées comme le port forwarding ou le X11 forwarding peut être un inconvénient.
  • La prise en charge d’une cryptographie préparée à l’ère des ordinateurs quantiques reflète une approche tournée vers l’avenir et un effort continu de mise à jour en matière de sécurité.
  • Parmi les autres projets open source offrant des fonctions similaires, on peut citer OpenSSH, qui propose davantage de fonctionnalités, mais s’accompagne aussi d’une complexité plus élevée et de davantage d’aspects de sécurité à gérer.
  • Avant d’adopter tinysshd, il faut vérifier que ses limitations fonctionnelles correspondent bien aux besoins du projet ; ses avantages sont la simplicité et une sécurité renforcée, tandis que son principal compromis est l’absence de certaines fonctions avancées.

1 commentaires

 
GN⁺ 2024-03-25
Avis sur Hacker News
  • Cas d’usage de TinySSH :

    • Utilisé pour déverrouiller à distance des disques chiffrés pendant le démarrage de Linux.
    • Utilisé sur un serveur NAS sans écran avec dm-crypt/LUKS et ZFS.
    • Lors de mises à jour du noyau/ZFS, le serveur est redémarré à distance, puis l’accès à l’invite de clé de chiffrement se fait via TinySSH pour déverrouiller les disques.
    • Quand TinySSH s’arrête, la session SSH se ferme immédiatement, puis quelques secondes plus tard, une nouvelle connexion SSH permet d’accéder au système complètement démarré.
  • Liens liés à TinySSH :

    • L’accès est actuellement difficile à cause de l’effet Slashdot.
    • La page TinySSH peut être consultée via une archive du web.
  • Avis sur la taille du code de TinySSH :

    • Il est amusant d’exprimer la taille du code en « mots ».
    • En général, les dépôts critiques pour la sécurité sont présentés en « X lignes de code », mais l’exprimer en « mots » est inhabituel.
  • Portée du support de TinySSH :

    • C’est dommage qu’il ne prenne pas en charge ed25519-sk.
    • À part cela, le projet semble très prometteur.
  • Possibilité d’audit de TinySSH :

    • Certains s’interrogent sur le fait que 100 000 mots de code soient réellement faciles à auditer.
  • Question sur la différence entre TinySSH et Dropbear SSH.

  • Avis sur le remplacement d’OpenSSH :

    • OpenSSH est largement utilisé et éprouvé depuis longtemps, ce qui lui donne une grande stabilité.
    • OpenSSH vient d’OpenBSD, avec une approche prudente de l’écriture de code sécurisé.
    • Plutôt que de remplacer OpenSSH, il vaudrait mieux passer à l’authentification par clé et renforcer OpenSSH avec quelques changements de configuration simples, notamment des idées de configuration de Mozilla.
  • Éloges sur le travail du développeur de TinySSH :

    • En plus de TinySSH, il développe plusieurs petits utilitaires réseau et serveurs.
    • Ces travaux donnent l’impression qu’il cherche à « construire » quelque chose et à le comprendre.
  • Fonctions de sécurité de TinySSH :

    • TinySSH n’implémente pas de fonctionnalités non sûres comme les mots de passe ou l’authentification basée sur l’hôte.
    • Question sur la manière d’enregistrer une clé privée sur un appareil partagé.