Outil de confidentialité gratuit
Chiffrer un fichier dans votre navigateur
Choisissez un fichier, choisissez une phrase secrète, et téléchargez une copie chiffrée. AES-256-GCM, avec la clé dérivée dans votre navigateur. Rien n’est envoyé, et ça fonctionne hors ligne une fois la page chargée. Le format est documenté octet par octet ci-dessous, pour que vous n’ayez à nous croire sur parole en rien.
S’exécute entièrement dans cet onglet. Rien n’est envoyé, et fonctionne hors ligne une fois chargé.
N’importe quel fichier. Les gros fichiers demandent de la mémoire. Voir les limites honnêtes ci-dessous.
Il n’existe aucune récupération. Une phrase secrète oubliée, c’est un fichier que personne, nous compris, ne pourra jamais ouvrir.
Chaque paramètre, énoncé
- Chiffrement
- AES-256-GCM (WebCrypto), tag de 128 bits
- Dérivation de clé
- PBKDF2-HMAC-SHA-256, 600 000 itérations
- Sel du KDF
- 16 octets, CSPRNG, nouveau à chaque fichier
- Nonce GCM
- 12 octets, CSPRNG, nouveau à chaque fichier
- Données authentifiées
- l’en-tête complet de 42 octets, de sorte qu’altérer n’importe quel paramètre annoncé casse le déchiffrement
- Encodage de la phrase secrète
- UTF-8, normalisé NFC (pour que la même phrase saisie sur n’importe quel appareil dérive la même clé)
Limites honnêtes
Ce n’est pas le format de coffre de l’application Sealby. L’application dérive les clés avec Argon2id calibré par appareil, les enveloppe dans la Secure Enclave, et stocke le contenu dans des conteneurs déniables découpés en blocs. Aucune page web ne peut faire cela. Cette page est un utilitaire autonome bâti sur ce que les navigateurs offrent nativement.
PBKDF2 n’est pas à coût mémoire élevé. C’est la seule fonction de dérivation de clé que les navigateurs proposent nativement, et 600 000 itérations rendent chaque tentative lente, mais une ferme de GPU l’attaque tout de même bien plus vite qu’Argon2id. La protection réside donc dans votre phrase secrète : quatre mots aléatoires ou plus, pas un mot de passe.
WebCrypto chiffre en une seule passe. Il n’y a pas de traitement en flux, donc le fichier entier occupe la mémoire deux à trois fois pendant le traitement. Quelques centaines de mégaoctets : sans problème sur la plupart des appareils. Pour les archives de plusieurs gigaoctets : utilisez un outil de bureau. La sortie chiffrée révèle par ailleurs la taille approximative du fichier. Le nom est chiffré à l’intérieur, mais la taille n’est pas dissimulée.
Le format, octet par octet
Tout ce qu’un lecteur technique doit savoir pour vérifier la sortie de cette page de façon indépendante, ou la déchiffrer en vingt lignes de Python :
| bytes | field | contents |
|---|---|---|
| 0–7 | magic | ASCII "SBXF0001" |
| 8 | version | 0x01 |
| 9 | algorithme | 0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256 |
| 10–13 | itérations | uint32, gros-boutiste (600 000) |
| 14–29 | sel | 16 octets |
| 30–41 | nonce | 12 octets |
| 42–fin | texte chiffré | AES-256-GCM de la charge utile, AAD = octets 0–41 ; les 16 derniers octets sont le tag GCM |
Charge utile avant chiffrement : [longueur du nom sur 2 octets, gros-boutiste][nom de fichier, UTF-8][octets du fichier]. Le nom d’origine voyage chiffré ; au déchiffrement, il est restauré.
Déchiffreur de référence (Python, bibliothèque cryptography)
import sys, hashlib, struct, unicodedata
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
raw = open(sys.argv[1], "rb").read()
assert raw[:8] == b"SBXF0001" and raw[8] == 1 and raw[9] == 1
iters = struct.unpack(">I", raw[10:14])[0] # 600000
salt, nonce, ct = raw[14:30], raw[30:42], raw[42:]
phrase = unicodedata.normalize("NFC", sys.argv[2]).encode()
key = hashlib.pbkdf2_hmac("sha256", phrase, salt, iters, 32)
plain = AESGCM(key).decrypt(nonce, ct, raw[:42]) # AAD = header
name_len = struct.unpack(">H", plain[:2])[0]
name = plain[2 : 2 + name_len].decode()
open(name, "wb").write(plain[2 + name_len :])
print("decrypted ->", name)Ceci est la démo. Le coffre, c’est le produit.
Un fichier, une phrase secrète, une page. Voilà ce qu’un navigateur sait faire. Sealby le fait correctement : Argon2id calibré pour votre appareil, clés dans la Secure Enclave, et des coffres cachés sans aucune liste ni décompte enregistré.
iPhone et iPad · iOS 17+ · Gratuit