Tasuta privaatsustööriist
Krüptige fail brauseris
Valige fail ja paroolifraas ning laadige alla krüptitud koopia. AES-256-GCM, võti tuletatakse brauseris. Midagi ei laadita üles ning pärast laadimist töötab tööriist võrguühenduseta. Vorming on allpool bait-baidilt dokumenteeritud, nii et midagi ei tule pelgalt meie sõna põhjal uskuda.
Töötab täielikult sellel vahekaardil. Midagi ei laadita üles ning pärast laadimist töötab see võrguühenduseta.
Mis tahes fail. Suured failid vajavad mälu. Vaadake allpool ausalt kirjeldatud piiranguid.
Taastamisvõimalust pole. Unustatud paroolifraas tähendab faili, mida ei saa enam kunagi avada mitte keegi, ka meie.
Kõik parameetrid avalikult välja toodud
- Šiffer
- AES-256-GCM (WebCrypto), 128-bitine märgend
- Võtmetuletus
- PBKDF2-HMAC-SHA-256, 600,000 iteratsiooni
- KDF-sool
- 16 baiti, CSPRNG, iga faili jaoks uus
- GCM-i nonce
- 12 baiti, CSPRNG, iga faili jaoks uus
- Autenditud andmed
- kogu 42-baidine päis, mistõttu mis tahes avaldatud parameetri muutmine rikub dekrüptimise
- Paroolifraasi kodeering
- UTF-8, normaliseeritud NFC-ga (et eri seadmetes sisestatud sama fraas tuletaks sama võtme)
Ausad piirangud
See ei ole Sealby rakenduse seifivorming. Rakendus tuletab võtmed seadme järgi kalibreeritud Argon2id-ga, pakendab need Secure Enclave’i abil ja talletab sisu eitatavates tükeldatud konteinerites. Veebileht ei saa midagi sellist teha. See leht on eraldiseisev utiliit, mis kasutab brauserite kohalikke võimalusi.
PBKDF2 ei ole mälumahukas. See on ainus brauseritesse sisseehitatud võtmetuletusfunktsioon ning 600,000 iteratsiooni muudab iga katse aeglaseks, kuid GPU-seadmed ründavad seda siiski palju kiiremini kui Argon2id-d. Seetõttu sõltub kaitse paroolifraasist: vähemalt neli juhuslikku sõna, mitte parool.
WebCrypto krüptib ühe korraga. Voogtöötlust pole, mistõttu kogu fail asub töötlemise ajal mälus kahe- kuni kolmekordselt. Enamik seadmeid saab sadade megabaitidega hakkama. Mitmegigabaidiste arhiivide jaoks kasutage töölauarakendust. Krüptitud väljund paljastab ka faili ligikaudse mahu. Nimi on sees krüptitud, kuid maht pole varjatud.
Vorming bait baidi haaval
Kõik, mida tehniline lugeja vajab lehe väljundi sõltumatuks kontrollimiseks või selle dekrüptimiseks kahekümne Pythoni koodirea abil:
| bytes | field | contents |
|---|---|---|
| 0–7 | tunnus | ASCII "SBXF0001" |
| 8 | versioon | 0x01 |
| 9 | algoritm | 0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256 |
| 10–13 | iteratsioonid | uint32, big-endian (600,000) |
| 14–29 | sool | 16 baiti |
| 30–41 | nonce | 12 baiti |
| 42–lõpp | šifreeritud tekst | Kasuliku koormuse AES-256-GCM, AAD = baidid 0–41; viimased 16 baiti on GCM-i märgend |
Kasulik koormus enne krüptimist: [2-baidine nime pikkus, big-endian][failinimi, UTF-8][faili baidid]. Algne failinimi liigub krüptituna ning taastatakse dekrüptimisel.
Näidisdekrüptor (Python, teek 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)See on näidis. Seif on toode.
Üks fail, üks paroolifraas, üks leht. Seda suudab brauser. Sealby teeb asja korralikult: seadme järgi kalibreeritud Argon2id, võtmed Secure Enclave’is ja peidetud seifid, mille loendit ega arvu ei salvestata.
iPhone ja iPad · iOS 17+ · tasuta