Besplatan alat za privatnost

Šifrujte fajl u pregledaču

Izaberite fajl i pristupnu frazu, a zatim preuzmite šifrovanu kopiju. AES-256-GCM, sa ključem izvedenim u vašem pregledaču. Ništa se ne otprema, a nakon učitavanja alat radi van mreže. Format je u nastavku dokumentovan bajt po bajt, pa ništa ne morate da prihvatite samo na našu reč.

Sve se odvija u ovoj kartici. Ništa se ne otprema, a nakon učitavanja alat radi van mreže.

Izaberite fajl

Bilo koji fajl. Veliki fajlovi zahtevaju više memorije. Pogledajte otvoreno navedena ograničenja u nastavku.

Oporavak nije moguć. Zaboravljena pristupna fraza znači da taj fajl više niko, uključujući nas, nikada ne može da otvori.

Svi parametri, otvoreno navedeni

Algoritam šifrovanja
AES-256-GCM (WebCrypto), 128-bitna oznaka
Izvođenje ključa
PBKDF2-HMAC-SHA-256, 600.000 iteracija
KDF salt
16 bajtova, CSPRNG, nov za svaki fajl
GCM nonce
12 bajtova, CSPRNG, nov za svaki fajl
Autentifikovani podaci
celo zaglavlje od 42 bajta, pa izmena bilo kog navedenog parametra onemogućava dešifrovanje
Kodiranje pristupne fraze
UTF-8, normalizovano u NFC oblik (tako ista fraza uneta na bilo kom uređaju izvodi isti ključ)

Otvoreno o ograničenjima

Ovo nije format sefa aplikacije Sealby. Aplikacija izvodi ključeve pomoću funkcije Argon2id kalibrisane za svaki uređaj, obavija ih ključem u Secure Enclave i čuva sadržaj u kontejnerima podeljenim na blokove, čije se postojanje može poreći. Veb-stranica ne može ništa od toga. Ova stranica je samostalan alat zasnovan na mogućnostima koje pregledači izvorno nude.

PBKDF2 nije memorijski zahtevna funkcija. To je jedina funkcija za izvođenje ključa koju pregledači izvorno nude. Iako 600.000 iteracija usporava svaki pokušaj, GPU oprema i dalje može da je napada mnogo brže nego funkciju Argon2id. Zato zaštita zavisi od vaše pristupne fraze: četiri nasumične reči ili više, a ne lozinka.

WebCrypto šifruje odjednom. Nema protočne obrade, pa se tokom rada ceo fajl nalazi u memoriji u dve do tri kopije. Većina uređaja bez problema obrađuje stotine megabajta. Za arhive od više gigabajta koristite program za računar. Šifrovani rezultat takođe otkriva približnu veličinu fajla. Naziv je šifrovan u njemu, ali veličina nije skrivena.

Format, bajt po bajt

Sve što je potrebno da se rezultat ove stranice samostalno proveri ili dešifruje u dvadeset redova Python koda:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8version0x01
9algorithm0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iterationsuint32, big-endian (600.000)
14–29salt16 bajtova
30–41nonce12 bajtova
42–endciphertextAES-256-GCM šifrovanje korisnog tereta, AAD = bajtovi 0–41; poslednjih 16 bajtova čini GCM oznaku

Korisni teret pre šifrovanja: [dužina naziva od 2 bajta, big-endian][naziv fajla, UTF-8][bajtovi fajla]. Izvorni naziv fajla prenosi se šifrovan; vraća se pri dešifrovanju.

Referentni program za dešifrovanje (Python, biblioteka 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)

Ovo je demonstracija. Sef je proizvod.

Jedan fajl, jedna pristupna fraza, jedna stranica. To je ono što pregledač može da uradi. Sealby to radi kako treba: Argon2id kalibrisan za vaš uređaj, ključevi u Secure Enclave i skriveni sefovi bez sačuvanog spiska ili broja.

Preuzmite u prodavnici App Store

iPhone i iPad · iOS 17+ · Besplatno