Gratis personvernverktøy

Forsegl en fil

Krypter en fil under en fersk engangsnøkkel og send den gjennom hvilken kanal du vil. Den som har nøkkelen, åpner den her, rett på denne siden. Ingenting lastes noen gang opp, det finnes ingen passfrase å knekke, og du ser innholdet før noe som helst lagres.

Kjører i sin helhet i denne fanen. Denne siden kan ikke snakke med noen server i det hele tatt.

Hver parameter, oppgitt

Chiffer
AES-256-GCM (WebCrypto), 128-bits tag per blokk
Nøkkel
256 bit fra nettleserens CSPRNG, generert ferskt per forsegling, brukt én gang, utledet fra ingenting
Oppdeling
et kryptert manifest (filnavn, størrelse, type), deretter filen i blokker på 1 MiB – hver autentisert for seg
Nonce
32-bits tilfeldig forseglingssalt ‖ 64-bits blokkteller – aldri gjentatt innenfor en fil, og nøkkelen er uansett engangsbruk
Autentiserte data
hele headeren på 16 byte pluss indeksen til hver blokk og det totale blokkantallet – å endre rekkefølge, avkorte eller spleise blokker bryter dekrypteringen
Nøkkelstreng
base64url, 47 tegn: nøkkelen på 32 byte pluss en SHA-256-kontrollsum på 3 byte, slik at en skrivefeil feiler rent i stedet for å gi søppel

Ærlige svar om hva dette gjør

Alt skjer i nettleseren din.

Både forsegling og åpning leser filen inn i minnet til denne siden, kjører AES-256-GCM der med nettleserens innebygde WebCrypto-motor, og gir resultatet tilbake som en nedlasting. Ingenting lastes opp. Det finnes ingen konto og ingen behandling på server. I motsetning til resten av dette nettstedet laster denne siden ikke engang den informasjonskapselfrie besøkstelleren. Ingen analyse av noe slag.

Dette er ikke bare et løfte. Siden leveres med en Content-Security-Policy som lar nettleseren hente bare dette nettstedets egne statiske filer. Den har ingen mulighet til å sende filen din, nøkkelen din eller noe annet til noen server, våre inkludert. Åpne utviklerverktøyene i nettleseren mens du forsegler, så vil du se null forespørsler. For det mest håndfaste beviset: installer verktøykassen og forsegl i flymodus. Med nettverket avslått kan ingenting forlate enheten.

Nøkkelen er alt – og vi har den aldri.

Hver forsegling genererer en fersk, tilfeldig 256-bits nøkkel i nettleseren din. Den vises til deg én gang og oppbevares ingen steder: ikke i våre systemer (ingen er involvert), ikke i nettleserens lagring, ikke i den forseglede filen. Det finnes ingen passfrase å gjette og ingenting å brute-force. Den som har nøkkelen og filen, kan åpne den. Den som ikke har dem, kan ikke.

Det har en hard konsekvens: mistes nøkkelen, er filen borte. Det finnes ingen tilbakestilling, ingen supporthenvendelse, ingen gjenoppretting. Dette er ikke oss som er vrange. En kopi vi kunne gjenopprettet, ville vært en kopi noen kunne stjålet eller krevd utlevert.

Nøkkellenken kommer aldri til en server.

Delingslenken legger nøkkelen etter # i URL-en. Den delen – fragmentet – beholdes av nettleseren og tas aldri med i det den sender til noen server, verken vår eller andres. Når denne siden lastes med en nøkkel i lenken, leser den nøkkelen, bytter til Åpne-fanen, og fjerner umiddelbart nøkkelen fra adressefeltet. Så den ligger ikke igjen i den synlige URL-en eller i nettleserhistorikken.

Likevel: alle som har både lenken og den forseglede filen, kan åpne den. Derfor sier denne siden at du skal sende filen og nøkkelen gjennom ulike kanaler.

Du ser hva som er inni før noe lagres.

Åpning skjer i to trinn. Først dekrypterer siden bare et lite manifest: det opprinnelige filnavnet, størrelsen og typen. Den viser deg det, med en tydelig advarsel for filtyper som kan kjøre kode (programmer, skript, installasjonsfiler, makrodokumenter, HTML) og for navn forkledd med dobbelt filendelse som invoice.pdf.exe. Ingenting skrives før du klikker for å dekryptere. Siden åpner eller viser aldri det dekrypterte innholdet selv. Den tilbyr bare filen for nedlasting.

Vær klar over hva kryptering beviser og ikke beviser. En forseglet fil er konfidensiell underveis. Forseglingen sier ingenting om hvem som sendte den eller om innholdet er trygt. Behandle en uventet forseglet fil like skeptisk som et uventet vedlegg.

Hvor tillitsgrensen faktisk går.

Du kjører kode som dette nettstedet har levert til deg. Hvis sealby.app eller forbindelsen din til det ble kompromittert, kunne en ondsinnet side lest det du legger inn i den. Dette gjelder for alle nettbaserte krypteringsverktøy, og vi sier det heller enn å late som noe annet. Det vi gjør med det: siden er en statisk fil, og vi holder den fri for tredjepartskode. Den installerte verktøykassen lar deg fortsette å bruke en versjon du allerede har lastet. Og formatet er dokumentert nedenfor, slik at uavhengige verktøy kan bygges mot det.

Din egen enhet er også innenfor grensen. Nettleserutvidelser med sidetilgang, eller skadeprogrammer på maskinen, kan lese alt en side kan. Den forseglede filen skjuler innholdet sitt, men ikke alt. Alle som har den, kan se størrelsen (omtrent som originalens) og at det er en Sealby-forseglet fil.

Begrensninger i klarspråk

  • Tapt nøkkel = tapt fil. Ingen unntak, av design.
  • Vi kan ikke se filene eller nøklene dine, så vi kan heller ikke skanne dem for skadeprogrammer. Advarselen om filtype er basert bare på filnavnet. Den er ikke en trygghetsgaranti.
  • Alle som har både den forseglede filen og nøkkelen, kan åpne den. Verktøyet vet ikke og sjekker ikke hvem de er.
  • Størrelsen på den forseglede filen røper omtrent størrelsen på originalfilen.
  • Én fil, opptil 100 MB, per forsegling. Pakk flere filer som zip først.

Formatet, byte for byte

Alt en teknisk leser trenger for å verifisere resultatet fra denne siden uavhengig, eller for å åpne en .sealed-fil på tretti linjer Python:

bytesfieldcontents
0–7magicASCII "SEALBY-W"
8versjon0x01 – alt annet avvises som «laget med en nyere versjon»
9algoritme0x01 = AES-256-GCM
10–13forseglingssalt4 byte, CSPRNG, ferskt per forsegling
14–15reservertmå være null
16–sluttblokkrammerhver: uint32 BE chiffertekstlengde, deretter AES-GCM-chifferteksten + 16-byte tag

Blokk 0 er manifestet: UTF-8-JSON {"name":…,"size":…,"type":…}. Blokk 1 … N−1 er filen i stykker på 1 MiB. For blokk i av N: nonce = salt ‖ uint64 BE i; autentiserte data = header ‖ uint64 BE i ‖ uint64 BE N. Så manipulasjon, avkorting, omrokering, flytting og spleising på tvers av filer feiler alle autentiseringen. Hvert tilfelle er bevist av en negativ test som ligger i kodebasen.

Nøkkelstreng: base64url (uten utfylling) av nøkkelen på 32 byte fulgt av de tre første bytene av dens SHA-256, 47 tegn til sammen. En skrivefeil feiler kontrollsummen i stedet for å gi søppel.

Referanseåpner (Python, cryptography-biblioteket)
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"])

Dette er for filer underveis. Hvelvet er for filer som ligger i ro.

Forsegling beskytter en fil på vei et sted. Sealby beskytter alt som blir værende: bilder, filer og notater i krypterte hvelv på din iPhone. Ingen konto, ingen servere, lesbart for ingen andre enn deg.

Last ned fra App Store

iPhone og iPad · iOS 17+ · Gratis