Alat privasi percuma
Meteraikan fail
Sulitkan fail di bawah kunci sekali guna yang baharu dan hantarkannya melalui apa jua saluran yang anda suka. Sesiapa yang memegang kunci itu membukanya terus di sini, pada halaman ini. Tiada apa-apa pernah dimuat naik, tiada frasa laluan untuk dipecahkan, dan anda melihat apa yang ada di dalamnya sebelum apa-apa disimpan.
Berjalan sepenuhnya dalam tab ini. Halaman ini tidak boleh berhubung dengan mana-mana pelayan langsung.
Memeteraikan…
Termeterai.
Ini fail anda yang disulitkan. Tanpa kunci, tiada siapa boleh membacanya. Bukan kami, bukan sesiapa.
Kunci — ditunjukkan hanya sekarang
Kunci ini wujud hanya pada halaman ini, sekarang ini. Ia tidak disimpan atau dihantar ke mana-mana. Jika anda kehilangannya, tiada siapa boleh membuka fail itu, termasuk kami. Simpannya sebelum anda pergi.
Atau kongsikan kunci sebagai pautan
Kunci itu terletak selepas # dalam pautan. Pelayar tidak pernah menghantar bahagian itu ke mana-mana pelayan. Pautan itu membuka halaman ini dengan tab Buka sedia dan kunci sudah diisi, kemudian membuang kunci itu daripada bar alamat.
Hantar fail dan kunci secara berasingan.
Sesiapa yang memegang kedua-dua fail termeterai dan kunci boleh membukanya. Hantarkannya melalui saluran berbeza, contohnya fail melalui e-mel dan pautan kunci melalui mesej teks. Dengan itu tiada satu peti masuk pun pernah memegang kedua-duanya.
Kunci dibaca daripada pautan anda dan dibuang daripada bar alamat, supaya ia tidak masuk ke dalam sejarah anda.
Menyemak…
Di dalam fail termeterai ini
Tiada apa-apa disimpan lagi. Ini yang dinyatakan oleh fail termeterai itu tentang kandungannya:
- Nama
- Saiz
- Jenis
Berhati-hati — jenis fail ini boleh menjalankan kod pada peranti anda
Dinyahsulit.
Fail itu dinyahsulit pada peranti anda dan ditawarkan sebagai muat turun. Tiada apa-apa mengenainya pernah meninggalkan halaman ini.
Daripada pencipta Sealby — peti besi disulitkan untuk iPhone
Sealby menyimpan foto, fail dan nota dalam peti besi disulitkan pada iPhone anda. Tanpa akaun, tanpa pelayan, tidak boleh dibaca oleh sesiapa kecuali anda.
Setiap parameter, dinyatakan
- Sifer
- AES-256-GCM (WebCrypto), tag 128-bit bagi setiap keping
- Kunci
- 256 bit daripada CSPRNG pelayar, dijana baharu bagi setiap meterai, digunakan sekali, tidak diterbitkan daripada apa-apa
- Pengepingan
- satu manifes yang disulitkan (nama fail, saiz, jenis), kemudian fail itu dalam keping 1 MiB — setiap satu disahkan berasingan
- Nonce
- garam meterai rawak 32-bit ‖ pembilang keping 64-bit — tidak pernah berulang dalam satu fail, dan kuncinya pula sekali guna
- Data disahkan
- pengepala penuh 16 bait ditambah indeks setiap keping dan jumlah bilangan keping — menyusun semula, memotong atau menyambung keping akan merosakkan nyahsulitan
- Rentetan kunci
- base64url, 47 aksara: kunci 32 bait ditambah checksum SHA-256 3 bait, supaya kesilapan taip gagal dengan bersih dan bukannya menghasilkan sampah
Jawapan jujur tentang apa yang alat ini lakukan
Semuanya berlaku dalam pelayar anda.
Pemeteraian dan pembukaan kedua-duanya membaca fail ke dalam memori halaman ini, menjalankan AES-256-GCM di situ dengan enjin WebCrypto terbina dalam pelayar anda, dan memulangkan hasilnya sebagai muat turun. Tiada apa-apa dimuat naik. Tiada akaun dan tiada pemprosesan di pelayan. Tidak seperti seluruh laman ini, halaman ini tidak memuatkan pembilang lawatan tanpa kuki pun. Tiada analitik dalam apa jua bentuk.
Ini bukan sekadar janji. Halaman ini disajikan dengan Content-Security-Policy yang membenarkan pelayar mengambil hanya fail statik laman ini sendiri. Ia tiada cara untuk menghantar fail anda, kunci anda, atau apa-apa lain ke mana-mana pelayan, termasuk kami. Buka alat pembangun pelayar anda semasa memeteraikan dan anda akan lihat sifar permintaan. Untuk bukti paling terus terang, pasang Kotak Alat dan meteraikan dalam mod pesawat. Dengan rangkaian dimatikan, tiada apa-apa boleh keluar.
Kunci itu segala-galanya — dan kami tidak pernah memilikinya.
Setiap meterai menjana kunci rawak 256-bit yang baharu dalam pelayar anda. Ia ditunjukkan kepada anda sekali dan tidak disimpan di mana-mana: tidak dalam sistem kami (tiada satu pun terlibat), tidak dalam storan pelayar anda, tidak dalam fail termeterai itu. Tiada frasa laluan untuk diteka dan tiada apa-apa yang boleh dipecahkan secara paksa. Sesiapa yang memegang kunci dan fail boleh membukanya. Sesiapa yang tidak, tidak boleh.
Itu ada akibat yang tegas: jika kunci hilang, fail itu hilang. Tiada tetapan semula, tiada tiket sokongan, tiada pemulihan. Ini bukan kerana kami tidak mahu membantu. Salinan yang kami boleh pulihkan ialah salinan yang seseorang boleh curi atau tuntut.
Pautan kunci tidak pernah sampai ke pelayan.
Pautan kongsi meletakkan kunci selepas # dalam URL. Bahagian itu, iaitu fragmen, kekal dalam pelayar. Ia tidak pernah dimasukkan dalam apa yang dihantar pelayar ke mana-mana pelayan, kami atau sesiapa pun. Apabila halaman ini dimuatkan dengan kunci dalam pautan, ia membaca kunci itu, bertukar ke tab Buka, dan segera membuang kunci daripada bar alamat. Jadi ia tidak berlegar dalam URL yang kelihatan atau dalam sejarah pelayar.
Namun begitu, sesiapa yang mempunyai kedua-dua pautan dan fail termeterai boleh membukanya. Itulah sebabnya halaman ini memberitahu anda supaya menghantar fail dan kunci melalui saluran yang berbeza.
Anda melihat isi kandungannya sebelum apa-apa disimpan.
Membuka berlaku dalam dua langkah. Mula-mula halaman itu menyahsulit hanya manifes kecil: nama fail asal, saiz dan jenis. Ia menunjukkannya kepada anda, dengan amaran lantang bagi jenis fail yang boleh menjalankan kod (program, skrip, pemasang, dokumen makro, HTML) dan bagi nama yang disamarkan dengan sambungan berganda seperti invoice.pdf.exe. Tiada apa-apa ditulis sehingga anda mengklik untuk menyahsulit. Halaman ini tidak pernah membuka atau memaparkan kandungan yang dinyahsulit itu sendiri. Ia hanya menawarkan fail untuk dimuat turun.
Fahami dengan jelas apa yang penyulitan buktikan dan tidak buktikan. Fail termeterai adalah rahsia semasa dalam perjalanan. Pemeteraian tidak mengatakan apa-apa tentang siapa yang menghantarnya atau sama ada kandungannya selamat. Layan fail termeterai yang tidak dijangka dengan syak yang sama seperti lampiran yang tidak dijangka.
Di mana sempadan kepercayaan sebenarnya berada.
Anda menjalankan kod yang laman web ini sajikan kepada anda. Jika sealby.app atau sambungan anda kepadanya dikompromi, halaman yang berniat jahat boleh membaca apa yang anda masukkan ke dalamnya. Ini benar bagi setiap alat penyulitan berasaskan web, dan kami lebih rela menyatakannya daripada berpura-pura sebaliknya. Apa yang kami lakukan tentangnya: halaman ini fail statik, dan kami menjaganya bebas daripada kod pihak ketiga. Kotak Alat yang dipasang membolehkan anda terus menggunakan versi yang sudah anda muatkan. Dan formatnya didokumenkan di bawah, supaya alat bebas boleh dibina terhadapnya.
Peranti anda sendiri juga berada di dalam sempadan itu. Sambungan pelayar dengan akses halaman, atau perisian hasad pada mesin, boleh membaca apa sahaja yang mana-mana halaman boleh baca. Fail termeterai itu menyembunyikan kandungannya, tetapi bukan segala-galanya. Sesiapa yang memegangnya boleh melihat saiznya (lebih kurang saiz asalnya) dan bahawa ia fail termeterai Sealby.
Had dalam bahasa mudah
- Kunci hilang = fail hilang. Tiada pengecualian, secara reka bentuk.
- Kami tidak boleh melihat fail atau kunci anda, jadi kami juga tidak boleh mengimbasnya untuk perisian hasad. Amaran jenis fail itu berdasarkan nama fail sahaja. Ia bukan jaminan keselamatan.
- Sesiapa yang mempunyai kedua-dua fail termeterai dan kunci boleh membukanya. Alat ini tidak tahu atau menyemak siapa mereka.
- Saiz fail termeterai lebih kurang mendedahkan saiz fail asal.
- Satu fail, sehingga 100 MB, setiap meterai. Zipkan berbilang fail dahulu.
Format itu, bait demi bait
Semua yang diperlukan pembaca teknikal untuk mengesahkan output halaman ini secara bebas, atau membuka fail .sealed dalam tiga puluh baris Python:
| bytes | field | contents |
|---|---|---|
| 0–7 | magic | ASCII "SEALBY-W" |
| 8 | versi | 0x01 — apa-apa selain itu ditolak sebagai “dibuat dengan versi lebih baharu” |
| 9 | algoritma | 0x01 = AES-256-GCM |
| 10–13 | garam meterai | 4 bait, CSPRNG, baharu bagi setiap meterai |
| 14–15 | dikhaskan | mesti sifar |
| 16–akhir | bingkai keping | setiap satu: panjang teks sifer uint32 BE, kemudian teks sifer AES-GCM + tag 16 bait |
Keping 0 ialah manifes: JSON UTF-8 {"name":…,"size":…,"type":…}. Keping 1…N−1 ialah fail dalam cebisan 1 MiB. Bagi keping i daripada N: nonce = garam ‖ uint64 BE i; data disahkan = pengepala ‖ uint64 BE i ‖ uint64 BE N. Jadi pengusikan, pemotongan, penyusunan semula, pemindahan dan penyambungan silang fail semuanya gagal pengesahan. Setiap kes dibuktikan oleh ujian negatif yang dikomit.
Rentetan kunci: base64url (tanpa pad) bagi kunci 32 bait diikuti 3 bait pertama SHA-256-nya, 47 aksara kesemuanya. Kesilapan taip gagal checksum dan bukannya menghasilkan sampah.
Spesifikasi tepat-bait penuh (FORMAT-WEB-v1) ·Vektor ujian jawapan diketahui (JSON)
Pembuka rujukan (Python, pustaka 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"])Ini untuk fail dalam perjalanan. Peti besi untuk fail yang menetap.
Pemeteraian melindungi fail dalam perjalanannya ke suatu tempat. Sealby melindungi segala yang menetap: foto, fail dan nota dalam peti besi disulitkan pada iPhone anda. Tanpa akaun, tanpa pelayan, tidak boleh dibaca oleh sesiapa kecuali anda.
iPhone & iPad · iOS 17+ · Percuma