IT & Engineering

Lemmacmd : un outil simple de chiffrement de fichiers

Il nous arrive à tous d'avoir besoin de chiffrer des fichiers dans le cadre de notre travail. Ce besoin de chiffrer des fichiers se présente pour diverses raisons : pour intégrer des informations sensibles dans un dépôt, pour transférer des données via un média non sécurisé, ou encore pour laisser sur un disque des éléments nécessitant des contrôles d'accès plus stricts que ceux fournis par le système d'exploitation.
Image pour Lemmacmd : un outil simple de chiffrement de fichiers

Il nous arrive à tous d’avoir besoin de chiffrer des fichiers dans le cadre de notre travail. Ce besoin de chiffrer des fichiers se présente pour diverses raisons : pour intégrer des informations sensibles dans un dépôt, pour transférer des données via un média non sécurisé, ou encore pour laisser sur un disque des éléments nécessitant des contrôles d’accès plus stricts que ceux fournis par le système d’exploitation.

Bien qu’il existe de nombreuses options, la plupart sont complexes, peu intuitives, ou pire encore, donnent un faux sentiment de sécurité. Par exemple, GPG est souvent recommandé pour chiffrer des fichiers, mais il est fourni avec plusieurs algorithmes obsolètes et son utilisation n’a jamais été son point fort. OpenSSL propose un outil en ligne de commande pratique appelé « openssl enc », mais il ne prend en fait en charge aucune forme de chiffrement authentifié.

Mailgun a développé un outil simple appelé lemmacmd qui utilise NaCl et PBKDF#2 en arrière-plan pour chiffrer et déchiffrer de petits fichiers sur le disque. Il présente de nombreux avantages :

  • Facile à utiliser : lemmacmd encrypt -in foo.txt -out foo.txt.enc
  • Il prend en charge à la fois les clés et les phrases secrètes, ce qui permet de l’utiliser de manière automatisée ou interactive.
  • Lorsqu’il est utilisé avec une phrase secrète, il emploie une fonction de dérivation de clé (PBKDF#2) avec un nombre élevé d’itérations : 524 288.
  • Il utilise un algorithme de chiffrement authentifié : Salsa 20 avec Poly1305 comme code d’authentification de message (MAC) provenant de la bibliothèque NaCl.
  • Il s’agit d’un petit fichier binaire de 4 Mo lié statiquement qui peut être placé n’importe où et fonctionner.
  • Il est rapide : le chiffrement d’un fichier de 10 Mo prend un peu plus d’une seconde.
  • Il est facilement auditable : lemmacmd ne fait que 222 lignes, la bibliothèque lemma seulement 365 lignes, et le code cryptographique de NaCl et PBKDF#2 ne compte que 226 lignes.

Si vous souhaitez consulter le code source ou y contribuer, il est disponible sur GitHub ainsi que la dernière version.

Comme toujours, si vous rencontrez des problèmes (ou des failles de sécurité !), n’hésitez pas à nous contacter sur GitHub.