Brezplačno orodje za zasebnost

Šifriraj datoteko v brskalniku

Izberi datoteko, izberi geslo in prenesi šifrirano kopijo. AES-256-GCM, s ključem, izpeljanim v tvojem brskalniku. Nič se ne naloži, po nalaganju pa deluje brez povezave. Format je spodaj dokumentiran bajt za bajtom, da ti ni treba ničesar verjeti na besedo.

Teče v celoti v tem zavihku. Nič se ne naloži, po nalaganju deluje brez povezave.

Katera koli datoteka. Velike datoteke potrebujejo pomnilnik. Glej poštene omejitve spodaj.

Obnovitve ni. Pozabljeno geslo pomeni datoteko, ki je ne more nikoli odpreti nihče, niti mi ne.

Vsak parameter, naveden

Šifra
AES-256-GCM (WebCrypto), 128-bitna oznaka
Izpeljava ključa
PBKDF2-HMAC-SHA-256, 600.000 iteracij
Sol za KDF
16 bajtov, CSPRNG, nova za vsako datoteko
Nonce GCM
12 bajtov, CSPRNG, nov za vsako datoteko
Overjeni podatki
celotna 42-bajtna glava, zato poseg v kateri koli naveden parameter zlomi dešifriranje
Kodiranje gesla
UTF-8, normalizirano po NFC (da ista fraza, natipkana na kateri koli napravi, izpelje isti ključ)

Poštene omejitve

To ni format trezorja iz aplikacije Sealby. Aplikacija ključe izpelje z Argon2id, umerjenim za vsako napravo, jih ovije v Secure Enclave in vsebino hrani v vsebnikih po kosih, ki omogočajo zanikanje. Ničesar od tega spletna stran ne zmore. Ta stran je samostojen pripomoček, zgrajen na tem, kar brskalniki ponujajo izvorno.

PBKDF2 ni pomnilniško zahteven. Je edina funkcija za izpeljavo ključa, ki jo brskalniki prinašajo izvorno, in 600.000 iteracij vsako ugibanje upočasni, a naprava z grafičnimi karticami ga vseeno napade veliko hitreje kot Argon2id. Zato zaščita živi v tvojem geslu: štiri naključne besede ali več, ne geslo iz enega niza.

WebCrypto šifrira v enem kosu. Pretakanja ni, zato med obdelavo celotna datoteka dvakrat do trikrat hkrati leži v pomnilniku. Nekaj sto megabajtov je na večini naprav v redu. Za večgigabajtne arhive uporabi namizno orodje. Šifriran izhod razkrije tudi približno velikost datoteke. Ime je šifrirano znotraj, velikost pa ni skrita.

Format, bajt za bajtom

Vse, kar tehnični bralec potrebuje, da izhod te strani neodvisno preveri ali ga dešifrira v dvajsetih vrsticah Pythona:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8različica0x01
9algoritem0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iteracijeuint32, big-endian (600.000)
14–29sol16 bajtov
30–41nonce12 bajtov
42–konecšifropisAES-256-GCM koristnega tovora, AAD = bajti 0–41; zadnjih 16 bajtov je oznaka GCM

Koristni tovor pred šifriranjem: [2-bajtna dolžina imena, big-endian][ime datoteke, UTF-8][bajti datoteke]. Izvirno ime datoteke potuje šifrirano; ob dešifriranju se obnovi.

Referenčni dešifrirnik (Python, knjiž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)

To je predstavitev. Izdelek je trezor.

Ena datoteka, eno geslo, ena stran. To je tisto, kar zmore brskalnik. Sealby to naredi, kot je treba: Argon2id, umerjen za tvojo napravo, ključi v Secure Enclave in skriti trezorji brez shranjenega seznama ali števila.

Prenesi iz App Stora

iPhone in iPad · iOS 17+ · Brezplačno