Nástroj pro soukromí zdarma

Zašifruj soubor v prohlížeči

Vyber soubor, zvol přístupovou frázi a stáhni zašifrovanou kopii. AES-256-GCM s klíčem odvozeným ve tvém prohlížeči. Nic se nenahrává a po načtení to funguje offline. Formát je níže zdokumentovaný bajt po bajtu, takže nám nemusíš nic věřit na slovo.

Běží celé v téhle záložce. Nic se nenahrává a po načtení funguje offline.

Jakýkoli soubor. Velké soubory potřebují paměť. Viz poctivé meze níže.

Žádná obnova neexistuje. Zapomenutá fráze znamená soubor, který nikdo, nás nevyjímaje, už nikdy neotevře.

Každý parametr, uvedený

Šifra
AES-256-GCM (WebCrypto), 128bitový tag
Odvození klíče
PBKDF2-HMAC-SHA-256, 600 000 iterací
Sůl pro KDF
16 bajtů, CSPRNG, čerstvá pro každý soubor
Nonce pro GCM
12 bajtů, CSPRNG, čerstvý pro každý soubor
Autentizovaná data
celá 42bajtová hlavička, takže zásah do kteréhokoli uvedeného parametru rozbije dešifrování
Kódování fráze
UTF-8, normalizované v NFC (takže tatáž fráze napsaná na jakémkoli zařízení odvodí tentýž klíč)

Poctivé meze

Tohle není formát trezoru z aplikace Sealby. Aplikace odvozuje klíče pomocí Argon2id kalibrovaného pro každé zařízení, obaluje je v Secure Enclave a ukládá obsah do popiratelných blokových kontejnerů. Nic z toho webová stránka neumí. Tahle stránka je samostatná pomůcka postavená na tom, co prohlížeče nabízejí nativně.

PBKDF2 není paměťově náročná. Je to jediná funkce pro odvození klíče, kterou prohlížeče nativně nabízejí, a 600 000 iterací dělá každý odhad pomalým, sestava s GPU ji ale pořád napadá mnohem rychleji než Argon2id. Ochrana tak leží ve tvé frázi: čtyři náhodná slova nebo víc, ne heslo.

WebCrypto šifruje najednou. Žádné streamování neexistuje, takže celý soubor sedí při zpracování v paměti dvakrát až třikrát. Stovky megabajtů jsou na většině zařízení v pohodě. Na víc než gigabajtové archivy použij desktopový nástroj. Zašifrovaný výstup navíc prozradí přibližnou velikost souboru. Název je zašifrovaný uvnitř, velikost ale skrytá není.

Formát, bajt po bajtu

Všechno, co technický čtenář potřebuje k nezávislému ověření výstupu téhle stránky, nebo k dešifrování ve dvaceti řádcích Pythonu:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8verze0x01
9algoritmus0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iteraceuint32, big-endian (600 000)
14–29sůl16 bajtů
30–41nonce12 bajtů
42–konecšifrový textAES-256-GCM datové části, AAD = bajty 0–41; posledních 16 bajtů je tag GCM

Datová část před zašifrováním: [2bajtová délka názvu, big-endian][název souboru, UTF-8][bajty souboru]. Původní název souboru cestuje zašifrovaný; při dešifrování se obnoví.

Referenční dešifrátor (Python, knihovna 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)

Tohle je ukázka. Produktem je trezor.

Jeden soubor, jedna fráze, jedna stránka. Víc prohlížeč nesvede. Sealby to dělá pořádně: Argon2id kalibrovaný pro tvé zařízení, klíče v Secure Enclave a skryté trezory, jejichž seznam ani počet se nikde neukládá.

Stáhnout v App Storu

iPhone a iPad · iOS 17+ · Zdarma