Ilmainen yksityisyystyökalu
Sinetöi tiedosto
Salaa tiedosto tuoreella kertakäyttöavaimella ja lähetä se minkä tahansa kanavan kautta. Se, jolla on avain, avaa sen juuri täällä, tällä sivulla. Mitään ei koskaan ladata palvelimelle, murrettavaa salalausetta ei ole, ja näet sisällön ennen kuin mitään tallennetaan.
Toimii kokonaan tässä välilehdessä. Tämä sivu ei voi ottaa yhteyttä yhteenkään palvelimeen.
Sinetöidään…
Sinetöity.
Tämä on salattu tiedostosi. Ilman avainta kukaan ei voi lukea sitä. Emme me, ei kukaan.
Avain — näytetään vain nyt
Tämä avain on olemassa vain tällä sivulla, juuri nyt. Sitä ei tallenneta eikä lähetetä minnekään. Jos kadotat sen, kukaan ei voi avata tiedostoa, mekään mukaan lukien. Tallenna se ennen kuin poistut.
Tai jaa avain linkkinä
Avain sijaitsee linkin #-merkin jälkeen. Selaimet eivät koskaan lähetä sitä osaa millekään palvelimelle. Linkki avaa tämän sivun Avaa-välilehti valmiina ja avain täytettynä, minkä jälkeen se poistaa avaimen osoiteriviltä.
Lähetä tiedosto ja avain erikseen.
Kuka tahansa, jolla on sekä sinetöity tiedosto että avain, voi avata sen. Lähetä ne eri kanavien kautta, esimerkiksi tiedosto sähköpostilla ja avainlinkki tekstiviestillä. Näin molemmat eivät koskaan päädy samaan postilaatikkoon.
Avain luettu linkistäsi ja poistettu osoiteriviltä, joten se ei jää historiaasi.
Tarkistetaan…
Tämän sinetöidyn tiedoston sisällä
Mitään ei ole vielä tallennettu. Tämä sinetöity tiedosto kertoo sisältävänsä:
- Nimi
- Koko
- Tyyppi
Varo — tämä tiedostotyyppi voi suorittaa koodia laitteellasi
Salaus purettu.
Tiedoston salaus purettiin laitteellasi ja se tarjottiin ladattavaksi. Mikään siihen liittyvä ei koskaan poistunut tältä sivulta.
Sealbyn tekijöiltä — salattu holvi iPhonelle
Sealby säilyttää kuvat, tiedostot ja muistiinpanot salatuissa holveissa iPhonellasi. Ei tiliä, ei palvelimia, kenenkään muun kuin sinun luettavissa.
Jokainen parametri, kerrottuna
- Salausalgoritmi
- AES-256-GCM (WebCrypto), 128-bittinen tagi per lohko
- Avain
- 256 bittiä selaimen CSPRNG:stä, luodaan tuoreena joka sinetöinnille, käytetään kerran, ei johdeta mistään
- Lohkotus
- salattu manifesti (tiedostonimi, koko, tyyppi), sitten tiedosto 1 MiB:n lohkoina — kukin erikseen todennettuna
- Nonssi
- 32-bittinen satunnainen sinettisuola ‖ 64-bittinen lohkolaskuri — ei koskaan toistu tiedoston sisällä, ja avain on joka tapauksessa kertakäyttöinen
- Todennettu data
- koko 16 tavun otsake sekä kunkin lohkon indeksi ja lohkojen kokonaismäärä — lohkojen uudelleenjärjestely, katkaisu tai vaihtaminen rikkoo salauksen purun
- Avainmerkkijono
- base64url, 47 merkkiä: 32 tavun avain sekä 3 tavun SHA-256-tarkiste, joten kirjoitusvirhe epäonnistuu siististi sen sijaan, että tuottaisi roskaa
Rehelliset vastaukset siitä, mitä tämä tekee
Kaikki tapahtuu selaimessasi.
Sekä sinetöinti että avaaminen lukevat tiedoston tämän sivun muistiin, ajavat siellä AES-256-GCM:n selaimesi sisäänrakennetulla WebCrypto-moottorilla ja ojentavat tuloksen takaisin latauksena. Mitään ei ladata palvelimelle. Ei tiliä eikä palvelinpuolen käsittelyä. Toisin kuin muu tämä sivusto, tämä sivu ei lataa edes evästeetöntä kävijälaskuria. Ei minkäänlaista analytiikkaa.
Tämä ei ole pelkkä lupaus. Sivu tarjoillaan Content-Security-Policyllä, joka sallii selaimen hakea vain tämän sivuston omat staattiset tiedostot. Sillä ei ole mitään keinoa lähettää tiedostoasi, avaintasi tai mitään muuta millekään palvelimelle, meidän palvelimemme mukaan lukien. Avaa selaimesi kehittäjätyökalut sinetöinnin aikana, niin näet nolla pyyntöä. Suorimman todisteen saat asentamalla Työkalupakin ja sinetöimällä lentokonetilassa. Kun verkko on poissa päältä, mitään ei voi lähteä.
Avain on kaikki kaikessa — eikä se ole koskaan meillä.
Jokainen sinetöinti luo selaimessasi tuoreen satunnaisen 256-bittisen avaimen. Se näytetään sinulle kerran eikä sitä säilytetä missään: ei meidän järjestelmissämme (niitä ei ole mukana), ei selaimesi tallennustilassa, ei sinetöidyssä tiedostossa. Arvattavaa salalausetta ei ole eikä mitään raa’alla voimalla murrettavaa. Se, jolla on avain ja tiedosto, voi avata sen. Se, jolla ei ole, ei voi.
Sillä on kova seuraus: jos avain katoaa, tiedosto on mennyttä. Ei nollausta, ei tukipyyntöä, ei palautusta. Tässä ei ole kyse siitä, että olisimme hankalia. Kopio, jonka voisimme palauttaa, olisi kopio, jonka joku voisi varastaa tai vaatia.
Avainlinkki ei koskaan päädy palvelimelle.
Jakolinkki laittaa avaimen URL-osoitteen #-merkin jälkeen. Tuon osan, fragmentin, selain pitää itsellään. Sitä ei koskaan sisällytetä siihen, mitä selain lähettää millekään palvelimelle, meidän tai kenenkään muun. Kun tämä sivu latautuu linkistä, jossa on avain, se lukee avaimen, vaihtaa Avaa-välilehdelle ja poistaa avaimen välittömästi osoiteriviltä. Näin se ei jää näkyvään URL-osoitteeseen tai selainhistoriaan.
Silti kuka tahansa, jolla on sekä linkki että sinetöity tiedosto, voi avata sen. Siksi tämä sivu kehottaa lähettämään tiedoston ja avaimen eri kanavien kautta.
Näet sisällön ennen kuin mitään tallennetaan.
Avaaminen tapahtuu kahdessa vaiheessa. Ensin sivu purkaa vain pienen manifestin: alkuperäisen tiedostonimen, koon ja tyypin. Se näyttää sen sinulle äänekkäällä varoituksella niistä tiedostotyypeistä, jotka voivat suorittaa koodia (ohjelmat, skriptit, asennusohjelmat, makrodokumentit, HTML) ja nimistä, jotka on naamioitu kaksoispäätteellä kuten invoice.pdf.exe. Mitään ei kirjoiteta ennen kuin napsautat purkua. Sivu ei koskaan itse avaa tai näytä purettua sisältöä. Se vain tarjoaa tiedoston ladattavaksi.
Ole selvillä siitä, mitä salaus todistaa ja mitä ei. Sinetöity tiedosto on luottamuksellinen matkalla. Sinetöinti ei kerro mitään siitä, kuka sen lähetti tai onko sen sisältö turvallista. Suhtaudu odottamattomaan sinetöityyn tiedostoon yhtä epäillen kuin odottamattomaan liitetiedostoon.
Missä luottamuksen raja oikeasti kulkee.
Ajat koodia, jonka tämä sivusto tarjoili sinulle. Jos sealby.app tai yhteytesi siihen olisi vaarantunut, haitallinen sivu voisi lukea sen, mitä siihen syötät. Tämä pätee jokaiseen selainpohjaiseen salaustyökaluun, ja sanomme sen mieluummin kuin esitämme toisin. Mitä me teemme sen suhteen: sivu on staattinen tiedosto, ja pidämme sen vapaana kolmannen osapuolen koodista. Asennetun Työkalupakin avulla voit jatkaa jo lataamasi version käyttöä. Ja muoto on dokumentoitu alla, jotta sitä vasten voi rakentaa riippumattomia työkaluja.
Myös oma laitteesi on rajan sisäpuolella. Selainlaajennukset, joilla on pääsy sivuun, tai koneella oleva haittaohjelma voivat lukea kaiken, minkä mikä tahansa sivu voi. Sinetöity tiedosto piilottaa sisältönsä muttei kaikkea. Kuka tahansa sen haltija näkee sen koon (suunnilleen alkuperäisen) ja sen, että kyseessä on Sealbyn sinetöimä tiedosto.
Rajat selkokielellä
- Kadonnut avain = kadonnut tiedosto. Ei poikkeuksia, tarkoituksella.
- Emme näe tiedostojasi tai avaimiasi, joten emme myöskään voi tarkistaa niitä haittaohjelmien varalta. Tiedostotyypin varoitus perustuu pelkästään tiedostonimeen. Se ei ole turvallisuustakuu.
- Kuka tahansa, jolla on sekä sinetöity tiedosto että avain, voi avata sen. Työkalu ei tiedä eikä tarkista, kuka hän on.
- Sinetöidyn tiedoston koko paljastaa suunnilleen alkuperäisen tiedoston koon.
- Yksi tiedosto, enintään 100 Mt, sinetöintiä kohden. Pakkaa useampi tiedosto ensin zipiksi.
Muoto, tavu tavulta
Kaikki mitä tekninen lukija tarvitsee tämän sivun tulosteen itsenäiseen varmistamiseen, tai .sealed-tiedoston avaamiseen kolmellakymmenellä rivillä Pythonia:
| bytes | field | contents |
|---|---|---|
| 0–7 | taikatavut | ASCII "SEALBY-W" |
| 8 | versio | 0x01 — kaikki muu hylätään ”uudemmalla versiolla tehtynä” |
| 9 | algoritmi | 0x01 = AES-256-GCM |
| 10–13 | sinettisuola | 4 tavua, CSPRNG, tuore joka sinetöinnille |
| 14–15 | varattu | oltava nolla |
| 16–loppu | lohkokehykset | kukin: uint32 BE salatekstin pituus, sitten AES-GCM-salateksti + 16 tavun tagi |
Lohko 0 on manifesti: UTF-8-JSON {"name":…,"size":…,"type":…}. Lohkot 1…N−1 ovat tiedosto 1 MiB:n paloina. Lohkolle i / N: nonssi = suola ‖ uint64 BE i; todennettu data = otsake ‖ uint64 BE i ‖ uint64 BE N. Näin ollen peukalointi, katkaisu, uudelleenjärjestely, siirtäminen ja tiedostojen välinen palojen vaihto epäonnistuvat kaikki todennuksessa. Kukin tapaus todistetaan omalla sitoutetulla negatiivisella testillä.
Avainmerkkijono: base64url (ilman täytettä) 32 tavun avaimesta ja sen SHA-256-tiivisteen kolmesta ensimmäisestä tavusta, yhteensä 47 merkkiä. Kirjoitusvirhe kaatuu tarkisteeseen sen sijaan, että tuottaisi roskaa.
Täysi tavutarkka määritys (FORMAT-WEB-v1) ·Known-answer-testivektorit (JSON)
Viiteavaaja (Python, cryptography-kirjasto)
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"])Tämä on matkalla oleville tiedostoille. Holvi on paikallaan oleville.
Sinetöinti suojaa tiedostoa sen matkalla jonnekin. Sealby suojaa kaiken sen mikä jää: kuvat, tiedostot ja muistiinpanot salatuissa holveissa iPhonellasi. Ei tiliä, ei palvelimia, kenenkään muun kuin sinun luettavissa.
iPhone ja iPad · iOS 17+ · Ilmainen