Chiffrez un fichier. Récupérez-le, octet pour octet.
NoiseCrypt met n'importe quel fichier dans un conteneur chiffré. Et quand le seul chemin disponible est une plateforme qui n'accepte que de la vidéo, il sait faire de ce conteneur une vidéo ordinaire, qui survit au réencodage et rend le fichier intact à l'arrivée.
Version 0.7.0. Windows, macOS, Linux. Gratuit, code ouvert à la lecture sous licence BZ-1.1. Aucun compte, aucune inscription, aucun serveur.
01 / L'essentiel
Le chiffrement, d'abord
C'est ce que fait NoiseCrypt, et tout le reste en découle. Un fichier entre, un
conteneur .ncry sort, et personne d'autre que le destinataire ne peut
l'ouvrir. La partie vidéo est un mode de transport optionnel, pas la raison d'être de
l'outil.
Hybride post-quantique
X25519 combiné à ML-KEM-768, les deux secrets versés dans une seule dérivation de clé. Le résultat tient tant que l'un des deux tient. Miser sur le seul réseau euclidien serait parier sur une hypothèse jeune ; miser sur le seul X25519 serait parier contre un ordinateur quantique.
Scellé par tronçons
Le contenu n'est pas authentifié par une seule empreinte globale mais tronçon par tronçon. Un octet abîmé n'annule pas tout le fichier, ce qui est la condition pour que la couche de correction d'erreurs de la vidéo puisse faire son travail.
Rien ne fuit en clair
Le nom du fichier, sa taille d'origine et sa date sont à l'intérieur du chiffré, pas dans l'en-tête. Un test du projet échoue si le nom du fichier apparaît dans les octets scellés, pour que ce ne soit pas seulement une intention.
Une identité, ou une phrase
Chiffrez pour une identité publique, la vôtre ou celle d'un correspondant, ou sous une phrase de passe protégée par Argon2id. Un clic droit sur un fichier le scelle pour l'identité de votre machine, et un double-clic le rouvre sans rien vous demander.
Ce que NoiseCrypt n'est pas
Ce n'est pas de la stéganographie, et il n'y a aucune déniabilité. Une vidéo NoiseCrypt ressemble exactement à ce qu'elle est : un motif de carrés qui n'a rien d'une vidéo ordinaire. Elle ne cache pas qu'un fichier chiffré circule, elle le fait circuler malgré un canal qui n'accepte que de la vidéo. Si votre modèle de menace exige que personne ne puisse constater l'envoi, cet outil n'est pas le bon.
Nous le disons ici plutôt que de le laisser découvrir : le public de ce projet prend des risques réels, et un outil qui laisse croire à une protection qu'il n'offre pas est plus dangereux que pas d'outil du tout.
02 / Le transport
Et ensuite, la vidéo
Certaines plateformes refusent les pièces jointes, filtrent les archives, ou ne
laissent passer que des images et des vidéos. NoiseCrypt dessine alors le conteneur
chiffré sous forme de carrés noirs et blancs, image par image, et le muxe en
.mp4. Vous téléversez une vidéo. Vous la retéléchargez plus tard, et le
fichier d'origine revient.
Pourquoi ça survit au réencodage
Une plateforme recompresse, redimensionne et ajoute des bandes noires à tout ce qu'on lui donne. Un canal vidéo abîme donc les données de deux façons sans rapport, et le codec répond aux deux : une correction d'erreurs à deux étages, une somme de contrôle par image, une démodulation qui pondère chaque cellule par sa confiance, et une détection de cadre qui retrouve la grille même après un recadrage.
| Canal | Image | Cellule | Débit utile | Éprouvé |
|---|---|---|---|---|
archive |
1920 x 1080 | 16 px | environ 21 Kio/s | local, jusqu'à CRF 23 |
social |
1080 x 1920 | 30 px | environ 3,6 Kio/s | YouTube, 9 rendus |
social-hd |
1080 x 1920 | 20 px | environ 8 Kio/s | YouTube |
C'est lent, et il faut le savoir avant
Sur le canal le plus robuste, un mébioctet de fichier devient environ cinq minutes de vidéo. Cinquante kilooctets font quinze secondes. Ce n'est pas un défaut à corriger, c'est le prix d'un canal qui doit survivre à une recompression : plus une cellule est grande, plus elle résiste, et moins il en tient à l'écran.
L'outil vous dit ce que ça va coûter avant de le dépenser, avec
noisecrypt estimate ou le bouton « What will it cost » de l'interface.
Apprendre au bout de trois heures que son fichier fait trois heures de vidéo n'aide
personne.
Vérifié contre une vraie plateforme
Le canal social n'est pas éprouvé en théorie. Un fichier a été mis en
ligne sur YouTube, récupéré dans ses neuf rendus successifs, et il est revenu
identique octet pour octet dans les neuf cas, y compris le rendu en
144 x 256 et la version AV1 à un vingtième du débit d'origine. Depuis la version 0.5.0,
il suffit de coller l'adresse de la vidéo pour que l'outil la récupère et la décode
d'un coup, si yt-dlp est installé.
03 / Le manuel
Installer, puis s'en servir
Installer
L'installateur Windows est signé, ne demande jamais les droits administrateur et s'installe pour votre seul compte. Rien n'est envoyé nulle part, et il n'y a aucun compte à créer.
Linux, par le dépôt apt
$ sudo curl -fsSL https://apt.breizhzion.com/KEY.gpg -o /usr/share/keyrings/breizhzion.asc
$ echo "deb [signed-by=/usr/share/keyrings/breizhzion.asc] https://apt.breizhzion.com stable main" \
| sudo tee /etc/apt/sources.list.d/breizhzion.list
$ sudo apt update && sudo apt install noisecrypt
La clé est servie en ASCII armoré et déposée telle quelle en .asc,
format qu'apt lit directement.
Vérifier ce que vous avez téléchargé
Chaque version publie un fichier SHA256SUMS à côté de ses binaires, et
les installateurs Windows sont signés au nom de BREIZHZION. Sur un outil de
chiffrement, vérifier l'empreinte de ce qu'on installe n'est pas de la paranoïa
décorative.
$ sha256sum -c SHA256SUMS --ignore-missing
Commencez par créer votre identité
Rien ne la crée pour vous. Tant que vous ne l'avez pas faite, l'outil retombe sur une phrase de passe et vous le dit. C'est un geste unique, et le fichier obtenu est le seul moyen d'ouvrir tout ce qui sera chiffré pour lui : sauvegardez-le.
$ noisecrypt keygen
Dans l'interface graphique, le bouton « Install on disk » de la section « This machine's identity » fait la même chose, et vous montre le chemin exact avant d'écrire quoi que ce soit.
Ensuite, trois gestes sans ouvrir de terminal
-
Clic droit sur un fichier
« Encrypt with NoiseCrypt » le scelle pour l'identité de votre machine et écrit un
.ncryà côté. Aucune phrase de passe à inventer. Si votre machine n'a pas encore d'identité, l'outil vous le dit et retombe sur une phrase de passe. -
Double-clic sur un .ncry
Le fichier d'origine revient, sans rien vous demander, parce que l'identité de la machine suffit à l'ouvrir. Un clic droit propose la même chose sous « Decrypt with NoiseCrypt ».
-
Clic droit dans un dossier
« Create a NoiseCrypt identity here » crée une identité dans ce dossier, pour la mettre sur une clé USB par exemple. Attention, ce n'est pas celle que la machine utilisera d'elle-même : l'outil vous le signale, et il faut alors la désigner avec
-identity, ou la déplacer à l'emplacement par défaut.
L'interface graphique
noisecrypt gui ouvre une page dans votre navigateur, servie par le
programme lui-même sur l'interface de bouclage. Elle n'est pas joignable depuis le
réseau, rien n'y est chargé depuis l'extérieur, et fermer le terminal l'arrête. Sous
Windows, le raccourci du menu Démarrer fait exactement ça.
La ligne de commande
Tout ce que fait l'interface se fait aussi au terminal, et quelques réglages n'existent que là : le coût du calcul appliqué à une phrase de passe, la qualité de l'encodeur vidéo, et la mesure de ce qu'un canal supporte.
$ noisecrypt seal -in rapport.pdf -to-self # chiffrer pour soi
$ noisecrypt open -in rapport.pdf.ncry # et le rouvrir
$ noisecrypt keygen # creer son identite
$ noisecrypt identity # voir sa moitie publique
$ noisecrypt estimate -in gros.zip # ce que la video coutera
$ noisecrypt encode -in gros.zip -profile social # fabriquer la video
$ noisecrypt decode -url "https://..." # recuperer depuis une adresse
noisecrypt -help liste tout, et noisecrypt <commande> -h
détaille une commande. FFmpeg n'est nécessaire que pour les commandes vidéo ; tout le
chiffrement fonctionne sans rien d'autre d'installé.
Envoyer un fichier à quelqu'un d'autre
Demandez-lui sa moitié publique, celle que noisecrypt identity
affiche. Chiffrez pour elle avec -to, et signez avec
-sign si vous voulez qu'il puisse prouver que le conteneur vient bien
de vous.
$ noisecrypt seal -in dossier.zip -to leur-identite.ncrypub -sign ~/.noisecrypt/identity.ncrykey
Lisez-vous l'empreinte de vos identités de vive voix, ou par un autre canal que celui qui a servi à les échanger. C'est tout l'intérêt d'une empreinte.
04 / Le cadre
Un outil du projet Ombra
NoiseCrypt est développé par l'association BREIZHZION dans le cadre d'Ombra, notre accompagnement numérique des militants et des groupes exposés. Ombra propose des micro-formations courtes pour apprendre à se servir soi-même des outils qui protègent, et un accompagnement au déploiement pour qui préfère ne pas tout configurer seul.
C'est ce cadre qui explique la forme de cet outil : aucun compte, aucun serveur, aucune télémétrie, rien à faire confiance à part le code, et une insistance à dire ce qu'il ne protège pas. Un outil de sécurité qui promet trop est un outil qui met en danger.
Se faire accompagner
Si vous voulez apprendre à protéger vos données et votre anonymat, ou faire chiffrer et configurer votre matériel, Ombra est là pour ça. Le premier contact se fait par Signal, et ne transmettez aucune information identifiante avant cet échange chiffré.