Comme le savent les lecteurs de longue date, alors que j’essaie de rester informé sur les nombreuses sous-disciplines de la technologie de l’information, ma passion est la sécurité de l’information. Comme cela fait un moment que je n’ai pas apporté de savoir-faire InfoSec, je voulais rectifier cela. Je n’aurais pas pu mieux chronométrer cette prise de conscience, car (comme vous le verrez) les techniques exposées sont parfaites pour protéger votre déluge de documents de la saison des impôts.
Dans cet article, mon objectif est de fournir une gamme d’options simples mais efficaces pour chiffrer un petit nombre de fichiers. En particulier, ces options sont importantes pour des cas d’utilisation tels que la déclaration de revenus, où les utilisateurs envoient des documents sensibles à des destinataires dont le degré de compétence technique est inconnu. Comme je suis fan de PGP, je parie votre chèque de remboursement que votre comptable ne sait rien de son utilisation.
Avant d’aller plus loin, je noterai que toutes ces techniques de cryptage de fichiers nécessitent que vous utilisiez un canal supplémentaire pour transmettre des secrets partagés, principalement des mots de passe. Le fichier sera envoyé via un canal pré-convenu, tandis que les moyens de décryptage seront envoyés via un autre.
Il y a trop de canaux auxiliaires viables à énumérer, mais assurez-vous simplement de prendre des mesures raisonnables pour en choisir un qui ne soit pas facilement compromis. Le fait que vous utilisiez un canal supplémentaire est en soi une protection contre la compromission du fichier : sans lui, l’envoi d’un fichier chiffré et de son mot de passe de déchiffrement sur le même canal crée un point de défaillance unique. L’utilisation de deux canaux nécessite que deux attaques réussies de vos adversaires échouent.
Commençons par la technique de complexité (et de sécurité) la plus faible et passons à la plus élevée. Certaines entrées ultérieures concernent les types de sécurité les plus exigeants, mais il y en a pour tous les goûts.
ZIP crypté, style CLI
Ma vie a changé pour toujours quand j’ai appris que je pouvais chiffrer des archives ZIP. Ce qui rend le cryptage ZIP si utile, c’est l’omniprésence des ZIP. Pratiquement tous les systèmes peuvent traiter les ZIP, et tous ceux qui le font peuvent gérer le cryptage.
L’interface pour les décrypter est d’une simplicité époustouflante : l’utilisateur clique sur le ZIP, une fenêtre apparaît demandant un mot de passe, l’utilisateur entre le mot de passe et le ZIP commence l’extraction (en supposant que le mot de passe est correct, bien sûr). Cela rend le cryptage ZIP idéal pour transférer des fichiers à des destinataires dont la compétence technique ne peut être établie.
Il existe une interface graphique pour compresser les fichiers, bien sûr, mais l’interface de ligne de commande (CLI) donne un coup de fouet à la facilité et à l’efficacité du processus. Vous exécutez littéralement la commande « zip » avec le drapeau « -e », le nom que vous souhaitez donner à l’archive et un ou plusieurs fichiers existants que vous souhaitez chiffrer et compresser, tous délimités par des espaces :
archive zip ‐e fichier1 fichier2
Une fois que vous avez exécuté la commande, une invite vous demandera d’entrer et de confirmer un mot de passe de déchiffrement. Notez-le car c’est ce que vous devrez partager avec votre destinataire pour ouvrir le ZIP. Vous pouvez déchiqueter/incinérer le papier plus tard, écrivez-le simplement.
Il y a quelques points techniques qui méritent d’être couverts. Tout d’abord, les fichiers originaux ne sont pas modifiés. La commande « zip » compresse et crypte automatiquement les copies. Deuxièmement, les noms des fichiers compressés sont lisibles lors de l’ouverture de l’archive avant même le décryptage. Par conséquent, le cryptage ne protégera aucun nom de fichier sensible contre quiconque obtient le code postal, mot de passe ou non.
En supposant que vous êtes d’accord avec ces mises en garde et que vous avez effectué les étapes ci-dessus, la dernière étape consiste à envoyer à votre destinataire le fichier et le mot de passe par des moyens séparés. Un attaquant a besoin des deux pièces, alors faites en sorte qu’il soit aussi difficile pour lui de le faire que raisonnablement possible.
OpenSSL : plus seulement pour les navigateurs
Pour ceux qui veulent une sécurité supérieure aux humbles ZIP cryptés, vous pouvez créer OpenSSL. Pour les utilisateurs de Linux, leur système met cela à portée de main avec le package « openssl » préinstallé. Comme avec la compression chiffrée, vous pouvez chiffrer votre fichier à l’aide d’OpenSSL avec une seule commande :
openssl aes‐256‐cbc ‐a ‐salt ‐in file ‐out file.enc
Décomposons cela.
- « aes-256-cbc » est le chiffrement utilisé. À moins que vous n’ayez des opinions bien arrêtées sur les chiffrements, utilisez celui-là.
- Le drapeau « -a » encode la sortie en base64, ce qui est important si nous voulons que d’autres programmes fonctionnent bien avec le fichier de sortie crypté. L’alternative est un fichier binaire, que les services de messagerie et d’autres programmes signalent comme un risque de sécurité (ironiquement, dans ce cas).
- L’indicateur « -salt » ajoute une valeur aléatoire au mélange pour réduire le risque qu’un attaquant connaissant quelque chose sur vos pratiques de chiffrement puisse le casser. « openssl » vous avertit également de ne jamais utiliser de sel, donc il y a aussi cela ; et,
- Comme vos lecteurs avertis peuvent l’imaginer, « -in » spécifie le fichier d’entrée et « -out » définit le nom du fichier de sortie cible. Vous pouvez techniquement nommer votre fichier de sortie comme vous le souhaitez, jusqu’à l’extension de fichier. Cependant, assurez-vous simplement de ne pas le nommer de la même manière que le fichier d’entrée, sinon votre sortie écrasera votre entrée.
Lors de l’exécution de la commande, il demandera un mot de passe deux fois. Encore une fois, enregistrez ceci quelque part afin que quelqu’un puisse déchiffrer votre fichier. Le déchiffrement est tout aussi simple. Tenez simplement le sel et passez le drapeau « -d » pour le décryptage. Évidemment, cette fois, le fichier crypté est l’entrée et un nom de fichier décrypté est la sortie :
openssl aes‐256‐cbc ‐d ‐a ‐in file.enc ‐out file.new
Encore une fois, vous pouvez nommer le fichier de sortie comme vous le souhaitez. Tout comme avec les ZIP cryptés, vous aurez besoin d’un canal secondaire approprié pour transmettre le mot de passe de décryptage.
Pour les surperformants, il y a toujours PGP
Destiné aux vrais nerds d’InfoSec qui ne craignent pas le travail supplémentaire (et qui ont des amis qui ne le font pas non plus), il y a PGP. Ces étapes supposent donc que vous et le destinataire du fichier savez comment l’utiliser. Je n’entrerai pas dans ces détails ici, mais heureusement pour vous, je l’ai déjà fait auparavant.
Pour utiliser le chiffrement de fichiers PGP, le destinataire doit disposer d’une paire de clés PGP. Techniquement, vous ne le faites pas, juste pour envoyer le fichier. Mais si vous attendez un fichier en retour, en toute sécurité, vous devrez vous-même disposer d’une paire de clés PGP.
Contrairement aux ZIP cryptés et à OpenSSL, où l’expéditeur effectue le cryptage, puis transmet le fichier et le secret partagé au destinataire ; avec PGP, le destinataire du fichier doit envoyer sa clé publique à l’expéditeur avant que tout cryptage puisse avoir lieu. Si l’expéditeur veut signer le fichier, il aura besoin de sa propre paire de clés pour pouvoir donner sa clé publique au destinataire.
Aussi complexe que soit cette danse, il y a un gros avantage : sa structure de clé asymétrique rend l’échange de clés beaucoup plus sûr, car les attaquants ne peuvent pas casser votre cryptage à partir de la clé publique. Cela vous offre une flexibilité dans votre échange de clés. Vous pouvez à la fois télécharger vos clés publiques sur un serveur de clés et l’appeler un jour.
Si vous préférez que le monde entier ne sache pas que vous avez des clés PGP, vous pouvez échanger des clés publiques sur une autre plate-forme cryptée. Bien sûr, si vous ne voulez vraiment pas que vos clés publiques touchent Internet, vous pouvez les échanger en personne. Là encore, si vous pouviez le faire, alors pourquoi ne pas simplement échanger votre fichier à ce stade ?
Avec tout cela à l’écart, il est temps de chiffrer réellement. Il y a un flot de drapeaux à déchiffrer ici :
gpg ‐o outfile ‐e ‐a ‐r destinataire infile
- Le drapeau « -o » et son « outfile » associé spécifient le nom de fichier du produit fini. Nommez-le comme vous le souhaitez, mais je suggère d’inclure un suffixe pour vous rappeler qu’il est crypté.
- Le drapeau « -e » ordonne à GPG d’effectuer une opération de chiffrement.
- Le drapeau « -a » permet à GPG d’encoder la sortie cryptée en base64, tout comme ce drapeau le fait dans « openssl ».
- « -r » et son « destinataire » déterminent quelle clé publique est utilisée. Ceci est important car PGP utilise une clé publique chaque fois qu’il chiffre, et seul le détenteur de la clé privée sœur de la clé publique peut déchiffrer ce chiffrement. Spécifiez le destinataire par l’adresse e-mail associée à sa clé publique. Enfin, vous devez pointer vers le fichier à chiffrer.
La commande de déchiffrement est beaucoup plus simple :
gpg ‐o fichier de sortie ‐d fichier d’entrée
Le destinataire transmet l’indicateur « -d » pour le déchiffrement, choisit comment appeler la sortie et définit l’entrée. C’est ça.
Entre ces trois techniques, vous avez tout ce dont vous avez besoin pour des heures de plaisir cryptographique… et un sommeil réparateur en sachant que vos fichiers sont en sécurité. Bon chiffrement !
Laisser un commentaire