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:
| bytes | field | contents |
|---|---|---|
| 0–7 | magic | ASCII "SBXF0001" |
| 8 | verzia | 0x01 |
| 9 | algoritmus | 0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256 |
| 10–13 | iterácie | uint32, big-endian (600 000) |
| 14–29 | soľ | 16 bajtov |
| 30–41 | nonce | 12 bajtov |
| 42–koniec | šifrovaný text | AES-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.
iPhone a iPad · iOS 17+ · Zadarmo