Nástroj na súkromie zadarmo

Zašifruj súbor v prehliadači

Vyber súbor, zvoľ prístupovú frázu a stiahni si zašifrovanú kópiu. AES-256-GCM s kľúčom odvodeným v tvojom prehliadači. Nič sa nenahráva a po načítaní to funguje aj offline. Formát je nižšie zdokumentovaný bajt po bajte, takže nám nemusíš veriť ani slovo.

Beží celé v tejto karte. Nič sa nenahráva a po načítaní funguje offline.

Akýkoľvek súbor. Veľké súbory potrebujú pamäť. Pozri úprimné hranice nižšie.

Neexistuje žiadna obnova. Zabudnutá prístupová fráza znamená súbor, ktorý už nikdy neotvorí nikto, ani my.

Každý parameter, priznaný

Šifra
AES-256-GCM (WebCrypto), 128-bitový tag
Odvodzovanie kľúča
PBKDF2-HMAC-SHA-256, 600 000 iterácií
Soľ pre KDF
16 bajtov, CSPRNG, čerstvá pre každý súbor
Nonce pre GCM
12 bajtov, CSPRNG, čerstvý pre každý súbor
Autentifikované dáta
celá 42-bajtová hlavička, takže pozmenenie ktoréhokoľvek uvedeného parametra rozbije dešifrovanie
Kódovanie prístupovej frázy
UTF-8, normalizované do NFC (takže tá istá fráza napísaná na ktoromkoľvek zariadení odvodí ten istý kľúč)

Úprimné hranice

Toto nie je formát trezora aplikácie Sealby. Aplikácia odvodzuje kľúče cez Argon2id kalibrovaný pre každé zariadenie, zabaľuje ich v Secure Enclave a ukladá obsah do popierateľných blokových kontajnerov. Nič z toho webová stránka nedokáže. Táto stránka je samostatná pomôcka postavená na tom, čo prehliadače ponúkajú natívne.

PBKDF2 nie je pamäťovo náročný. Je to jediná funkcia na odvodzovanie kľúča, ktorú prehliadače prinášajú natívne, a 600 000 iterácií robí každý pokus pomalým, ale GPU zostava naň stále útočí oveľa rýchlejšie než na Argon2id. Ochrana preto leží v tvojej prístupovej fráze: štyri náhodné slová alebo viac, nie heslo.

WebCrypto šifruje na jeden raz. Neexistuje streamovanie, takže celý súbor sedí počas spracovania v pamäti dva- až trikrát. Stovky megabajtov sú na väčšine zariadení v pohode. Na viacgigabajtové archívy použi desktopový nástroj. Zašifrovaný výstup navyše prezrádza približnú veľkosť súboru. Názov je zašifrovaný vnútri, ale veľkosť skrytá nie je.

Formát, bajt po bajte

Všetko, čo technický čitateľ potrebuje na nezávislé overenie výstupu tejto stránky alebo na jeho dešifrovanie v dvadsiatich riadkoch Pythonu:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8verzia0x01
9algoritmus0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iterácieuint32, big-endian (600 000)
14–29soľ16 bajtov
30–41nonce12 bajtov
42–koniecšifrovaný textAES-256-GCM z obsahu, AAD = bajty 0–41; posledných 16 bajtov je GCM tag

Obsah pred zašifrovaním: [2-bajtová dĺžka názvu, big-endian][názov súboru, UTF-8][bajty súboru]. Pôvodný názov súboru putuje zašifrovaný; pri dešifrovaní sa obnoví.

Referenčný dešifrátor (Python, knižnica 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)

Toto je ukážka. Produktom je trezor.

Jeden súbor, jedna prístupová fráza, jedna stránka. Toľko zvládne prehliadač. Sealby to robí poriadne: Argon2id kalibrovaný na tvoje zariadenie, kľúče v Secure Enclave a skryté trezory, o ktorých sa nikde neukladá zoznam ani počet.

Stiahnuť v App Store

iPhone a iPad · iOS 17+ · Zadarmo