Besplatan alat za privatnost
Zapečatite fajl
Šifrujte fajl pomoću novog jednokratnog ključa i pošaljite ga bilo kojim kanalom. Ko god ima ključ može da ga otvori upravo ovde, na ovoj stranici. Ništa se nikada ne otprema, nema pristupne fraze koja može da se probije, a pre čuvanja bilo čega videćete šta se nalazi unutra.
Radi u potpunosti na ovoj kartici. Ova stranica uopšte ne može da komunicira ni sa jednim serverom.
Zapečaćivanje…
Zapečaćeno.
Ovo je Vaš šifrovani fajl. Bez ključa niko ne može da ga pročita. Ni mi ni bilo ko drugi.
Ključ — prikazan samo sada
Ovaj ključ postoji samo na ovoj stranici, upravo sada. Ne čuva se niti šalje bilo gde. Ako ga izgubite, niko ne može da otvori fajl, pa ni mi. Sačuvajte ga pre nego što napustite stranicu.
Ili podelite ključ kao link
Ključ se nalazi iza znaka # u linku. Pregledači taj deo nikada ne šalju nijednom serveru. Link otvara ovu stranicu sa spremnom karticom „Otvorite” i popunjenim ključem, a zatim uklanja ključ iz adresne trake.
Pošaljite fajl i ključ odvojeno.
Ko god ima i zapečaćeni fajl i ključ može da ga otvori. Pošaljite ih različitim kanalima, na primer fajl e-poštom, a link sa ključem SMS porukom. Tako nijedno prijemno sanduče nikada ne sadrži oboje.
Ključ je pročitan iz Vašeg linka i uklonjen iz adresne trake, pa ne ulazi u istoriju pregledača.
Provera…
Sadržaj ovog zapečaćenog fajla
Još ništa nije sačuvano. Prema podacima u zapečaćenom fajlu, on sadrži sledeće:
- Naziv
- Veličina
- Tip
Oprez — ovaj tip fajla može da pokrene kôd na Vašem uređaju
Dešifrovano.
Fajl je dešifrovan na Vašem uređaju i ponuđen za preuzimanje. Ništa u vezi sa njim nikada nije napustilo ovu stranicu.
Od autora aplikacije Sealby — šifrovanog sefa za iPhone
Sealby čuva fotografije, fajlove i beleške u šifrovanim sefovima na Vašem iPhone uređaju. Bez naloga i servera; niko osim Vas ne može da ih pročita.
Svaki parametar, jasno naveden
- Algoritam šifrovanja
- AES-256-GCM (WebCrypto), 128-bitna oznaka po segmentu
- Ključ
- ključ od 256 bitova iz CSPRNG-a pregledača, iznova generisan za svako zapečaćivanje, koristi se samo jednom i ne izvodi se ni iz čega
- Podela na segmente
- šifrovani manifest (naziv fajla, veličina, tip), zatim fajl u segmentima od 1 MiB — svaki se zasebno autentifikuje
- Nonce
- 32-bitni nasumični salt zapečaćivanja ‖ 64-bitni brojač segmenata — nikada se ne ponavlja unutar fajla, a ključ se svakako koristi samo jednom
- Autentifikovani podaci
- celo zaglavlje od 16 bajtova, indeks svakog segmenta i ukupan broj segmenata — promena redosleda, skraćivanje ili spajanje segmenata onemogućava dešifrovanje
- Zapis ključa
- base64url, 47 znakova: ključ od 32 bajta i SHA-256 kontrolna suma od 3 bajta, tako da se greška u kucanju jasno otkrije pri proveri umesto da proizvede besmislene podatke
Otvoreni odgovori o tome šta ovaj alat radi
Sve se odvija u Vašem pregledaču.
I zapečaćivanje i otvaranje učitavaju fajl u memoriju ove stranice, tamo pokreću AES-256-GCM pomoću WebCrypto mehanizma ugrađenog u Vaš pregledač i vraćaju rezultat kao fajl za preuzimanje. Ništa se ne otprema. Nema naloga ni obrade na serveru. Za razliku od ostatka ovog sajta, ova stranica ne učitava čak ni brojač poseta bez kolačića. Nema nikakve analitike.
Ovo nije samo obećanje. Stranica se isporučuje uz Content-Security-Policy koji pregledaču dozvoljava da učitava samo statičke fajlove sa ovog sajta. Ne postoji način da Vaš fajl, ključ ili bilo šta drugo pošalje bilo kom serveru, uključujući naš. Otvorite razvojne alatke pregledača tokom zapečaćivanja i videćete da nema nijednog zahteva. Za najdirektniji dokaz, instalirajte Toolbox i zapečatite fajl u režimu rada u avionu. Kada je mreža isključena, ništa ne može da napusti uređaj.
Ključ je sve — a mi ga nikada nemamo.
Pri svakom zapečaćivanju u Vašem pregledaču pravi se nov nasumični 256-bitni ključ. Prikazuje Vam se jednom i nigde se ne čuva: ni u našim sistemima (nijedan nije uključen), ni u skladištu Vašeg pregledača, ni u zapečaćenom fajlu. Nema pristupne fraze koja može da se pogađa niti bilo čega što može da se probije grubom silom. Ko ima ključ i fajl može da ga otvori. Ko ih nema, ne može.
To ima neizbežnu posledicu: ako se ključ izgubi, fajl je izgubljen. Nema resetovanja, zahteva korisničkoj podršci ni oporavka. Nije reč o tome da ne želimo da pomognemo. Kopija koju bismo mogli da oporavimo bila bi kopija koju bi neko mogao da ukrade ili zahteva.
Link sa ključem nikada ne stiže do servera.
Link za deljenje stavlja ključ iza znaka # u URL-u. Taj deo, fragment, ostaje u pregledaču. Nikada se ne uključuje u ono što pregledač šalje bilo kom serveru, našem ili tuđem. Kada se ova stranica učita sa ključem u linku, čita ključ, prebacuje se na karticu „Otvorite” i odmah uklanja ključ iz adresne trake. Zato ključ ne ostaje u vidljivom URL-u ni u istoriji pregledača.
Ipak, svako ko ima i link i zapečaćeni fajl može da ga otvori. Zato Vam ova stranica savetuje da fajl i ključ pošaljete različitim kanalima.
Videćete šta se nalazi unutra pre nego što se bilo šta sačuva.
Otvaranje se odvija u dva koraka. Stranica najpre dešifruje samo mali manifest: originalni naziv fajla, veličinu i tip. Prikazuje te podatke uz upadljivo upozorenje za tipove fajlova koji mogu da pokrenu kôd (programe, skripte, instalacione programe, dokumente sa makroima, HTML) i za nazive maskirane dvostrukom ekstenzijom, poput invoice.pdf.exe. Ništa se ne zapisuje dok ne kliknete na dešifrovanje. Stranica nikada sama ne otvara niti prikazuje dešifrovani sadržaj. Samo nudi fajl za preuzimanje.
Važno je jasno razumeti šta šifrovanje dokazuje, a šta ne. Zapečaćeni fajl je poverljiv tokom prenosa. Zapečaćivanje ne govori ništa o tome ko ga je poslao niti da li je njegov sadržaj bezbedan. Neočekivanom zapečaćenom fajlu pristupite sa istim oprezom kao neočekivanom prilogu.
Gde se granica poverenja zaista nalazi.
Pokrećete kôd koji Vam je ovaj veb-sajt isporučio. Ako bi sealby.app ili Vaša veza sa njim bili ugroženi, zlonamerna stranica mogla bi da pročita ono što u nju unesete. To važi za svaki veb-alat za šifrovanje i radije ćemo to jasno reći nego se pretvarati da nije tako. Preduzimamo sledeće: stranica je statički fajl i ne sadrži kôd trećih strana. Instalirani Toolbox omogućava Vam da nastavite da koristite verziju koja je već učitana. Format je dokumentovan ispod, pa na osnovu njega mogu da se naprave nezavisni alati.
I Vaš uređaj je unutar te granice. Proširenja pregledača sa pristupom stranici ili malver na računaru mogu da pročitaju sve što može da pročita bilo koja stranica. Zapečaćeni fajl skriva svoj sadržaj, ali ne i sve drugo. Ko god ga ima može da vidi njegovu veličinu (približno veličinu originala) i da je to fajl zapečaćen alatom Sealby.
Ograničenja jednostavnim jezikom
- Izgubljen ključ = izgubljen fajl. Bez izuzetaka, po dizajnu.
- Ne možemo da vidimo Vaše fajlove ili ključeve, pa ne možemo ni da ih proverimo na malver. Upozorenje o tipu fajla zasniva se samo na nazivu. Ono nije garancija bezbednosti.
- Svako ko ima i zapečaćeni fajl i ključ može da ga otvori. Alat ne zna niti proverava o kome je reč.
- Veličina zapečaćenog fajla približno otkriva veličinu originalnog fajla.
- Jedan fajl, do 100 MB, po zapečaćivanju. Više fajlova prvo spakujte u ZIP arhivu.
Format, bajt po bajt
Sve što je stručnom čitaocu potrebno da nezavisno proveri izlaz ove stranice ili da otvori .sealed fajl u trideset redova Python koda:
| bytes | field | contents |
|---|---|---|
| 0–7 | magična vrednost | ASCII "SEALBY-W" |
| 8 | verzija | 0x01 — svaka druga vrednost se odbija kao „napravljeno novijom verzijom” |
| 9 | algoritam | 0x01 = AES-256-GCM |
| 10–13 | salt zapečaćivanja | 4 bajta, CSPRNG, nov za svako zapečaćivanje |
| 14–15 | rezervisano | mora biti nula |
| 16–kraj | okviri segmenata | svaki: uint32 BE dužina šifrata, zatim AES-GCM šifrat + oznaka od 16 bajtova |
Segment 0 je manifest: UTF-8 JSON {"name":…,"size":…,"type":…}. Segmenti 1…N−1 čine fajl u delovima od 1 MiB. Za segment i od N: nonce = salt ‖ uint64 BE i; autentifikovani podaci = zaglavlje ‖ uint64 BE i ‖ uint64 BE N. Zato menjanje, skraćivanje, promena redosleda, premeštanje i spajanje između fajlova ne prolaze autentifikaciju. Svaki slučaj je dokazan negativnim testom koji je deo repozitorijuma.
Zapis ključa: base64url (bez dopune) ključa od 32 bajta iza kojeg slede prva 3 bajta njegovog SHA-256 heša, ukupno 47 znakova. Greška u kucanju otkriva se proverom kontrolne sume umesto da proizvede besmislene podatke.
Potpuna specifikacija tačna do bajta (FORMAT-WEB-v1) ·Testni vektori sa poznatim odgovorima (JSON)
Referentni alat za otvaranje (Python, biblioteka cryptography)
import base64, hashlib, json, struct, sys
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
raw = open(sys.argv[1], "rb").read()
assert raw[:8] == b"SEALBY-W" and raw[8] == 1 and raw[9] == 1
assert raw[14:16] == b"\x00\x00"
header, salt = raw[:16], raw[10:14]
frames, off = [], 16
while off < len(raw):
(n,) = struct.unpack(">I", raw[off:off + 4]); off += 4
frames.append(raw[off:off + n]); off += n
assert off == len(raw)
kb = base64.urlsafe_b64decode(sys.argv[2] + "=") # 47-char key string
key, check = kb[:32], kb[32:35]
assert hashlib.sha256(key).digest()[:3] == check # typo check
N = len(frames)
def chunk(i):
nonce = salt + struct.pack(">Q", i)
aad = header + struct.pack(">QQ", i, N)
return AESGCM(key).decrypt(nonce, frames[i], aad)
manifest = json.loads(chunk(0))
data = b"".join(chunk(i) for i in range(1, N))
assert len(data) == manifest["size"]
open(manifest["name"], "wb").write(data)
print("decrypted ->", manifest["name"])Ovo je za fajlove u prenosu. Sef je za fajlove u mirovanju.
Zapečaćivanje štiti fajl dok putuje do odredišta. Sealby štiti sve što ostaje: fotografije, fajlove i beleške u šifrovanim sefovima na Vašem iPhone uređaju. Bez naloga i servera; niko osim Vas ne može da ih pročita.
iPhone i iPad · iOS 17+ · Besplatno