Aller au contenu

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.

Les trois canaux disponibles, et ce qu'ils coûtent réellement.
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

  1. 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.

  2. 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 ».

  3. 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é.

Découvrir Ombra