Alat privasi gratis
Segel sebuah file
Enkripsi sebuah file dengan kunci sekali pakai yang baru dan kirim lewat saluran mana pun yang Anda suka. Siapa pun yang memegang kuncinya membukanya langsung di sini, di halaman ini. Tidak pernah ada yang diunggah, tidak ada frasa sandi untuk dibobol, dan Anda melihat isinya sebelum apa pun disimpan.
Berjalan sepenuhnya di tab ini. Halaman ini sama sekali tidak bisa menghubungi server mana pun.
Menyegel…
Tersegel.
Ini file terenkripsi Anda. Tanpa kuncinya, tak seorang pun bisa membacanya. Bukan kami, bukan siapa pun.
Kuncinya — ditampilkan hanya sekarang
Kunci ini hanya ada di halaman ini, saat ini juga. Ia tidak disimpan atau dikirim ke mana pun. Kalau Anda kehilangannya, tak seorang pun bisa membuka file itu, termasuk kami. Simpan sebelum Anda pergi.
Atau bagikan kuncinya sebagai tautan
Kuncinya berada setelah tanda # di tautan. Peramban tak pernah mengirim bagian itu ke server mana pun. Tautannya membuka halaman ini dengan tab Buka siap dan kuncinya terisi, lalu menghapus kuncinya dari bilah alamat.
Kirim file dan kuncinya secara terpisah.
Siapa pun yang memegang file tersegel sekaligus kuncinya bisa membukanya. Kirim keduanya lewat saluran berbeda, misalnya file lewat surel dan tautan kunci lewat pesan teks. Dengan begitu tak ada satu kotak masuk pun yang pernah memegang keduanya.
Kunci dibaca dari tautan Anda dan dihapus dari bilah alamat, agar ia tidak masuk riwayat Anda.
Memeriksa…
Di dalam file tersegel ini
Belum ada yang disimpan. Inilah yang dikatakan file tersegel itu tentang isinya:
- Nama
- Ukuran
- Jenis
Hati-hati — jenis file ini bisa menjalankan kode di perangkat Anda
Terdekripsi.
File itu didekripsi di perangkat Anda dan ditawarkan sebagai unduhan. Tak ada apa pun tentangnya yang pernah meninggalkan halaman ini.
Dari pembuat Sealby — brankas terenkripsi untuk iPhone
Sealby menyimpan foto, file, dan catatan di brankas terenkripsi di iPhone Anda. Tanpa akun, tanpa server, tak terbaca oleh siapa pun kecuali Anda.
Setiap parameter, dinyatakan
- Cipher
- AES-256-GCM (WebCrypto), tag 128-bit per potongan
- Kunci
- 256 bit dari CSPRNG peramban, dibuat baru untuk tiap segel, dipakai sekali, tidak diturunkan dari apa pun
- Pemotongan
- sebuah manifes terenkripsi (nama file, ukuran, jenis), lalu file dalam potongan 1 MiB — masing-masing diautentikasi terpisah
- Nonce
- salt segel acak 32-bit ‖ pencacah potongan 64-bit — tak pernah berulang dalam satu file, dan kuncinya toh sekali pakai
- Data terautentikasi
- seluruh header 16 byte ditambah indeks tiap potongan dan jumlah total potongan — menyusun ulang, memotong, atau menyambung potongan akan menggagalkan dekripsi
- String kunci
- base64url, 47 karakter: kunci 32 byte ditambah checksum SHA-256 3 byte, sehingga salah ketik gagal dengan bersih alih-alih menghasilkan sampah
Jawaban jujur tentang apa yang dilakukan ini
Semuanya terjadi di peramban Anda.
Menyegel dan membuka sama-sama membaca file ke dalam memori halaman ini, menjalankan AES-256-GCM di sana dengan mesin WebCrypto bawaan peramban Anda, dan menyerahkan hasilnya kembali sebagai unduhan. Tidak ada yang diunggah. Tidak ada akun dan tidak ada pemrosesan di sisi server. Tidak seperti bagian lain situs ini, halaman ini bahkan tidak memuat pencacah kunjungan tanpa cookie. Tanpa analitik jenis apa pun.
Ini bukan sekadar janji. Halaman ini disajikan dengan Content-Security-Policy yang membuat peramban hanya boleh mengambil file statis milik situs ini sendiri. Ia tidak punya cara mengirim file Anda, kunci Anda, atau apa pun ke server mana pun, termasuk milik kami. Buka alat pengembang peramban Anda sambil menyegel dan Anda akan melihat nol permintaan. Untuk bukti paling gamblang, pasang Toolbox dan menyegellah dalam mode pesawat. Dengan jaringan mati, tidak ada yang bisa keluar.
Kuncinya adalah segalanya — dan kami tak pernah memilikinya.
Setiap penyegelan menghasilkan kunci acak 256-bit yang baru di peramban Anda. Ia ditampilkan kepada Anda sekali dan tidak disimpan di mana pun: tidak di sistem kami (tidak ada yang terlibat), tidak di penyimpanan peramban Anda, tidak di dalam file tersegelnya. Tidak ada frasa sandi untuk ditebak dan tidak ada yang bisa di-brute-force. Siapa pun yang memegang kunci dan file-nya bisa membukanya. Yang tidak, tidak bisa.
Itu punya konsekuensi keras: kalau kuncinya hilang, file-nya lenyap. Tidak ada pengaturan ulang, tidak ada tiket dukungan, tidak ada pemulihan. Ini bukan kami sedang tidak membantu. Salinan yang bisa kami pulihkan adalah salinan yang bisa dicuri atau dituntut orang.
Tautan kunci tak pernah sampai ke server.
Tautan berbagi menaruh kuncinya setelah tanda # dalam URL. Bagian itu, fragmennya, tetap berada di peramban. Ia tak pernah disertakan dalam apa yang dikirim peramban ke server mana pun, milik kami maupun siapa pun. Ketika halaman ini dimuat dengan kunci di dalam tautan, ia membaca kuncinya, beralih ke tab Buka, dan langsung menghapus kuncinya dari bilah alamat. Jadi ia tidak tertinggal di URL yang terlihat atau di riwayat peramban.
Meski begitu, siapa pun yang memiliki tautannya sekaligus file tersegelnya bisa membukanya. Itulah sebabnya halaman ini menyuruh Anda mengirim file dan kuncinya lewat saluran berbeda.
Anda melihat isinya sebelum apa pun disimpan.
Membuka berlangsung dalam dua langkah. Pertama halaman ini hanya mendekripsi sebuah manifes kecil: nama file asli, ukuran, dan jenisnya. Itu ditunjukkan kepada Anda, dengan peringatan lantang untuk jenis file yang bisa menjalankan kode (program, skrip, pemasang, dokumen bermakro, HTML) dan untuk nama yang disamarkan dengan ekstensi ganda seperti invoice.pdf.exe. Tidak ada yang ditulis sampai Anda mengeklik untuk mendekripsi. Halaman ini tidak pernah membuka atau menampilkan sendiri konten yang terdekripsi. Ia hanya menawarkan file untuk diunduh.
Pahami betul apa yang dibuktikan dan tidak dibuktikan enkripsi. File tersegel bersifat rahasia selama perjalanan. Penyegelan tidak mengatakan apa-apa tentang siapa yang mengirimnya atau apakah isinya aman. Perlakukan file tersegel yang tak terduga sama skeptisnya dengan lampiran yang tak terduga.
Di mana batas kepercayaan itu sebenarnya berada.
Anda sedang menjalankan kode yang disajikan situs web ini kepada Anda. Kalau sealby.app atau koneksi Anda kepadanya disusupi, halaman jahat bisa membaca apa yang Anda masukkan ke dalamnya. Ini berlaku untuk setiap alat enkripsi berbasis web, dan kami lebih memilih mengatakannya daripada berpura-pura sebaliknya. Yang kami lakukan soal itu: halaman ini adalah file statis, dan kami menjaganya bebas dari kode pihak ketiga. Toolbox yang terpasang memungkinkan Anda terus memakai versi yang sudah Anda muat. Dan formatnya didokumentasikan di bawah, sehingga alat independen bisa dibangun berdasarkan format itu.
Perangkat Anda sendiri juga ada di dalam batas itu. Ekstensi peramban dengan akses halaman, atau malware di mesin itu, bisa membaca apa pun yang bisa dibaca halaman mana pun. File tersegel itu menyembunyikan isinya, tetapi tidak semuanya. Siapa pun yang memegangnya bisa melihat ukurannya (kira-kira sebesar aslinya) dan bahwa ia adalah file tersegel Sealby.
Batasan dalam bahasa sederhana
- Kunci hilang = file hilang. Tanpa pengecualian, secara rancangan.
- Kami tak bisa melihat file atau kunci Anda, jadi kami juga tak bisa memindainya untuk malware. Peringatan jenis file hanya berdasarkan nama file. Itu bukan jaminan keamanan.
- Siapa pun yang memiliki file tersegel sekaligus kuncinya bisa membukanya. Alat ini tidak tahu dan tidak memeriksa siapa mereka.
- Ukuran file tersegel kira-kira mengungkap ukuran file aslinya.
- Satu file, hingga 100 MB, per segel. Zip beberapa file lebih dulu.
Formatnya, byte per byte
Semua yang dibutuhkan pembaca teknis untuk memverifikasi keluaran halaman ini secara mandiri, atau membuka file .sealed dalam tiga puluh baris Python:
| bytes | field | contents |
|---|---|---|
| 0–7 | magic | ASCII "SEALBY-W" |
| 8 | versi | 0x01 — apa pun selain itu ditolak sebagai “dibuat dengan versi yang lebih baru” |
| 9 | algoritma | 0x01 = AES-256-GCM |
| 10–13 | salt segel | 4 byte, CSPRNG, baru untuk tiap segel |
| 14–15 | dicadangkan | harus nol |
| 16–akhir | bingkai potongan | masing-masing: uint32 BE panjang cipherteks, lalu cipherteks AES-GCM + tag 16 byte |
Potongan 0 adalah manifesnya: JSON UTF-8 {"name":…,"size":…,"type":…}. Potongan 1…N−1 adalah file dalam kepingan 1 MiB. Untuk potongan i dari N: nonce = salt ‖ uint64 BE i; data terautentikasi = header ‖ uint64 BE i ‖ uint64 BE N. Jadi perusakan, pemotongan, penyusunan ulang, pemindahan, dan penyambungan antarfile semuanya gagal autentikasi. Tiap kasus dibuktikan oleh uji negatif yang telah di-commit.
String kunci: base64url (tanpa padding) dari kunci 32 byte diikuti 3 byte pertama SHA-256-nya, total 47 karakter. Salah ketik gagal pada checksum alih-alih menghasilkan sampah.
Spesifikasi lengkap yang tepat byte per byte (FORMAT-WEB-v1) ·Vektor uji jawaban-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 file dalam perjalanan. Brankasnya untuk file yang menetap.
Menyegel melindungi sebuah file dalam perjalanannya ke suatu tempat. Sealby melindungi semua yang menetap: foto, file, dan catatan di brankas terenkripsi di iPhone Anda. Tanpa akun, tanpa server, tak terbaca oleh siapa pun kecuali Anda.
iPhone & iPad · iOS 17+ · Gratis