Strumento gratuito per la privacy
Sigilla un file
Cifra un file con una chiave usa e getta appena generata e mandalo per il canale che preferisci. Chi ha la chiave lo apre proprio qui, su questa pagina. Non viene mai caricato nulla, non c’è nessuna passphrase da forzare, e vedi il contenuto prima che venga salvato qualcosa.
Funziona interamente in questa scheda. Questa pagina non può contattare alcun server, senza eccezioni.
Sigillatura…
Sigillato.
Questo è il tuo file cifrato. Senza la chiave, nessuno può leggerlo. Né noi, né chiunque altro.
La chiave — mostrata solo adesso
Questa chiave esiste solo su questa pagina, in questo momento. Non viene conservata né inviata da nessuna parte. Se la perdi, nessuno potrà aprire il file, noi compresi. Salvala prima di andartene.
Oppure condividi la chiave come link
La chiave si trova dopo il # nel link. I browser non inviano mai quella parte a nessun server. Il link apre questa pagina con la scheda Apri già pronta e la chiave già inserita, poi rimuove la chiave dalla barra degli indirizzi.
Invia il file e la chiave separatamente.
Chiunque abbia sia il file sigillato sia la chiave può aprirlo. Mandali per canali diversi, per esempio il file via e-mail e il link con la chiave via messaggio. Così nessuna singola casella di posta contiene mai entrambi.
Chiave letta dal tuo link e rimossa dalla barra degli indirizzi, così resta fuori dalla cronologia.
Controllo in corso…
Dentro questo file sigillato
Non è stato ancora salvato nulla. Ecco che cosa il file sigillato dichiara di contenere:
- Nome
- Dimensione
- Tipo
Attenzione — questo tipo di file può eseguire codice sul tuo dispositivo
Decifrato.
Il file è stato decifrato sul tuo dispositivo e proposto come download. Nulla che lo riguardi ha mai lasciato questa pagina.
Dagli autori di Sealby — la cassaforte cifrata per iPhone
Sealby custodisce foto, file e note in casseforti cifrate sul tuo iPhone. Niente account, niente server, leggibili solo da te.
Ogni parametro, dichiarato
- Cifrario
- AES-256-GCM (WebCrypto), tag a 128 bit per blocco
- Chiave
- 256 bit dal CSPRNG del browser, generata nuova a ogni sigillatura, usata una sola volta, non derivata da nulla
- Suddivisione in blocchi
- un manifest cifrato (nome del file, dimensione, tipo), poi il file in blocchi da 1 MiB — ciascuno autenticato separatamente
- Nonce
- salt di sigillatura casuale a 32 bit ‖ contatore dei blocchi a 64 bit — mai ripetuto all’interno di un file, e comunque la chiave è monouso
- Dati autenticati
- l’intera intestazione di 16 byte più l’indice di ogni blocco e il numero totale di blocchi — riordinare, troncare o innestare blocchi rompe la decifratura
- Stringa della chiave
- base64url, 47 caratteri: la chiave di 32 byte più un checksum SHA-256 di 3 byte, così un errore di battitura fallisce in modo pulito invece di produrre spazzatura
Risposte oneste su cosa fa questo strumento
Tutto avviene nel tuo browser.
Sia la sigillatura sia l’apertura leggono il file nella memoria di questa pagina, vi eseguono AES-256-GCM con il motore WebCrypto integrato nel browser e restituiscono il risultato come download. Non viene caricato nulla. Non c’è nessun account né alcuna elaborazione lato server. A differenza del resto del sito, questa pagina non carica nemmeno il contatore di visite senza cookie. Nessuna analisi di alcun tipo.
Non è solo una promessa. La pagina viene servita con una Content-Security-Policy che consente al browser di caricare solo i file statici di questo sito. Non ha alcun modo di inviare il tuo file, la tua chiave o qualsiasi altra cosa a un server, nemmeno al nostro. Apri gli strumenti per sviluppatori del browser mentre sigilli e vedrai zero richieste. Per la prova più netta, installa la Sealby Toolbox e sigilla in modalità aereo. Con la rete spenta, non può uscire nulla.
La chiave è tutto — e noi non l’abbiamo mai.
Ogni sigillatura genera nel tuo browser una nuova chiave casuale di 256 bit. Ti viene mostrata una volta sola e non viene conservata da nessuna parte: non nei nostri sistemi (non ne è coinvolto nessuno), non nella memoria del browser, non nel file sigillato. Non c’è nessuna passphrase da indovinare e niente su cui fare forza bruta. Chi ha la chiave e il file può aprirlo. Chi non ce l’ha, no.
Questo ha una conseguenza dura: se la chiave si perde, il file è perso. Non esiste nessun reset, nessun ticket di assistenza, nessun recupero. Non è cattiva volontà da parte nostra. Una copia che potessimo recuperare noi sarebbe una copia che qualcuno potrebbe rubare o pretendere.
Il link con la chiave non arriva mai a un server.
Il link di condivisione mette la chiave dopo il # nell’URL. Quella parte, il frammento, resta nel browser. Non viene mai inclusa in ciò che il browser invia a un server, né al nostro né a quello di altri. Quando questa pagina viene aperta con una chiave nel link, la legge, passa alla scheda Apri e rimuove subito la chiave dalla barra degli indirizzi. Così non resta nell’URL visibile né nella cronologia del browser.
Resta però il fatto che chiunque abbia sia il link sia il file sigillato può aprirlo. Per questo la pagina ti dice di inviare il file e la chiave per canali diversi.
Vedi cosa c’è dentro prima che venga salvato qualcosa.
L’apertura avviene in due passi. Prima la pagina decifra soltanto un piccolo manifest: nome originale del file, dimensione e tipo. Te lo mostra, con un avviso ben visibile per i tipi di file che possono eseguire codice (programmi, script, installer, documenti con macro, HTML) e per i nomi camuffati con una doppia estensione come invoice.pdf.exe. Non viene scritto nulla finché non fai clic per decifrare. La pagina non apre né mostra mai da sé il contenuto decifrato. Si limita a offrire il file per il download.
Sia chiaro cosa prova e cosa non prova la cifratura. Un file sigillato è riservato durante il tragitto. La sigillatura non dice nulla su chi lo ha inviato né sul fatto che il suo contenuto sia sicuro. Tratta un file sigillato inatteso con lo stesso scetticismo di un allegato inatteso.
Dov’è davvero il confine della fiducia.
Stai eseguendo codice che questo sito ti ha consegnato. Se sealby.app o la tua connessione a esso venissero compromessi, una pagina malevola potrebbe leggere ciò che ci inserisci. Vale per qualsiasi strumento di cifratura via web, e preferiamo dirlo piuttosto che far finta di niente. Cosa facciamo al riguardo: la pagina è un file statico, e la teniamo libera da codice di terze parti. La cassetta degli attrezzi installata ti permette di continuare a usare una versione che hai già caricato. E il formato è documentato qui sotto, così si possono costruire strumenti indipendenti compatibili.
Anche il tuo dispositivo sta dentro quel confine. Le estensioni del browser con accesso alla pagina, o un malware sulla macchina, possono leggere tutto ciò che può leggere una qualsiasi pagina. Il file sigillato nasconde il proprio contenuto, ma non tutto. Chi lo possiede può vederne la dimensione (all’incirca quella dell’originale) e capire che è un file sigillato con Sealby.
I limiti, in parole semplici
- Chiave persa = file perso. Nessuna eccezione, per scelta progettuale.
- Non possiamo vedere i tuoi file né le tue chiavi, quindi non possiamo nemmeno analizzarli in cerca di malware. L’avviso sul tipo di file si basa solo sul nome del file. Non è una garanzia di sicurezza.
- Chiunque abbia sia il file sigillato sia la chiave può aprirlo. Lo strumento non sa né verifica di chi si tratti.
- La dimensione del file sigillato rivela all’incirca la dimensione del file originale.
- Un file per sigillatura, fino a 100 MB. Se sono più file, comprimili prima in uno zip.
Il formato, byte per byte
Tutto ciò che serve a un lettore tecnico per verificare in autonomia l’output di questa pagina, o per aprire un file .sealed in trenta righe di Python:
| bytes | field | contents |
|---|---|---|
| 0–7 | magic | ASCII "SEALBY-W" |
| 8 | versione | 0x01 — qualsiasi altro valore viene rifiutato come «creato con una versione più recente» |
| 9 | algoritmo | 0x01 = AES-256-GCM |
| 10–13 | salt di sigillatura | 4 byte, CSPRNG, nuovo a ogni sigillatura |
| 14–15 | riservati | devono essere zero |
| 16–fine | frame dei blocchi | ciascuno: lunghezza del testo cifrato in uint32 BE, poi il testo cifrato AES-GCM + tag di 16 byte |
Il blocco 0 è il manifest: JSON UTF-8 {"name":…,"size":…,"type":…}. I blocchi 1…N−1 sono il file in pezzi da 1 MiB. Per il blocco i di N: nonce = salt ‖ uint64 BE i; dati autenticati = intestazione ‖ uint64 BE i ‖ uint64 BE N. Così manomissione, troncamento, riordino, spostamento e innesto tra file diversi falliscono tutti l’autenticazione. Ogni caso è dimostrato da un test negativo incluso nel codice.
Stringa della chiave: base64url (senza padding) della chiave di 32 byte seguita dai primi 3 byte del suo SHA-256, 47 caratteri in totale. Un errore di battitura fa fallire il checksum invece di produrre spazzatura.
Specifica completa byte per byte (FORMAT-WEB-v1) ·Vettori di test a risposta nota (JSON)
Lettore di riferimento (Python, libreria 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"])Questo serve ai file in transito. La cassaforte serve ai file a riposo.
La sigillatura protegge un file mentre viaggia. Sealby protegge tutto ciò che resta: foto, file e note in casseforti cifrate sul tuo iPhone. Niente account, niente server, leggibili solo da te.
iPhone e iPad · iOS 17+ · Gratis