Bepul maxfiylik vositasi
Faylni brauzeringizda shifrlang
Faylni tanlang, parol iborasini belgilang va shifrlangan nusxani yuklab oling. AES-256-GCM ishlatiladi, kalit brauzeringizda hosil qilinadi. Hech narsa serverga yuklanmaydi, sahifa yuklangach oflayn ham ishlaydi. Format quyida baytma-bayt hujjatlashtirilgan, shuning uchun faqat so‘zimizga ishonishingiz shart emas.
To‘liq shu varaqda ishlaydi. Hech narsa serverga yuklanmaydi, sahifa yuklangach oflayn ham ishlaydi.
Istalgan fayl. Katta fayllarga ko‘p xotira kerak. Quyidagi aniq cheklovlarni ko‘ring.
Tiklashning iloji yo‘q. Parol iborasini unutsangiz, faylni hech kim, jumladan biz ham, boshqa hech qachon ocha olmaydi.
Barcha parametrlar ochiq ko‘rsatilgan
- Shifrlash algoritmi
- AES-256-GCM (WebCrypto), 128 bitli teg
- Kalit hosil qilish
- PBKDF2-HMAC-SHA-256, 600,000 ta takrorlash
- KDF salt
- 16 bayt, CSPRNG, har bir fayl uchun yangidan
- GCM nonce
- 12 bayt, CSPRNG, har bir fayl uchun yangidan
- Autentifikatsiyalangan ma‘lumotlar
- 42 baytli sarlavhaning hammasi; ko‘rsatilgan istalgan parametr o‘zgartirilsa, shifrni ochib bo‘lmaydi
- Parol iborasini kodlash
- UTF-8, NFC-normalized (bir xil ibora istalgan qurilmada kiritilganda bir xil kalit hosil bo‘ladi)
Aniq cheklovlar
Bu Sealby ilovasining seyf formati emas. Ilova har bir qurilmaga moslangan Argon2id orqali kalitlar hosil qiladi, ularni Secure Enclave ichida o‘raydi va mazmunni mavjudligini inkor etish mumkin bo‘lgan, bo‘laklarga ajratilgan konteynerlarda saqlaydi. Veb-sahifa bularning hech birini bajara olmaydi. Bu sahifa brauzerlarning o‘z imkoniyatlari asosida qurilgan mustaqil vositadir.
PBKDF2 xotira sarfini majburiy oshiradigan algoritm emas. U brauzerlarga ichki o‘rnatilgan yagona kalit hosil qilish funksiyasidir; 600,000 ta takrorlash har bir taxminni sekinlashtiradi, ammo GPU qurilmalari to‘plami unga Argon2idga qaraganda ancha tez hujum qiladi. Shuning uchun himoya parol iborangizga bog‘liq: oddiy parol o‘rniga kamida to‘rtta tasodifiy so‘z ishlating.
WebCrypto faylni bir yo‘la shifrlaydi. Oqim bilan qayta ishlash yo‘q, shu sabab ishlov paytida butun fayl xotirada ikki-uch nusxa bo‘lib turadi. Aksariyat qurilmalarda yuzlab megabayt muammo tug‘dirmaydi. Bir necha gigabaytli arxivlar uchun kompyuter dasturidan foydalaning. Shifrlangan natijadan faylning taxminiy hajmi ham bilinadi. Nomi ichida shifrlangan, ammo hajmi yashirilmaydi.
Format baytma-bayt
Texnik bilimli o‘quvchi sahifa natijasini mustaqil tekshirishi yoki yigirma qator Python kodi bilan shifrini ochishi uchun kerakli barcha ma‘lumotlar:
| bytes | field | contents |
|---|---|---|
| 0–7 | magic | ASCII "SBXF0001" |
| 8 | version | 0x01 |
| 9 | algorithm | 0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256 |
| 10–13 | iterations | uint32, big-endian (600,000) |
| 14–29 | salt | 16 bayt |
| 30–41 | nonce | 12 bayt |
| 42–end | ciphertext | foydali yukning AES-256-GCM bilan shifrlangan ko‘rinishi, AAD = 0–41-baytlar; oxirgi 16 bayt — GCM tegi |
Shifrlashdan oldingi foydali yuk: [2 baytli nom uzunligi, big-endian][fayl nomi, UTF-8][fayl baytlari]. Asl fayl nomi shifrlangan holda uzatiladi; shifr ochilganda tiklanadi.
Namunaviy shifr ochish dasturi (Python, cryptography kutubxonasi)
import sys, hashlib, struct, unicodedata
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
raw = open(sys.argv[1], "rb").read()
assert raw[:8] == b"SBXF0001" and raw[8] == 1 and raw[9] == 1
iters = struct.unpack(">I", raw[10:14])[0] # 600000
salt, nonce, ct = raw[14:30], raw[30:42], raw[42:]
phrase = unicodedata.normalize("NFC", sys.argv[2]).encode()
key = hashlib.pbkdf2_hmac("sha256", phrase, salt, iters, 32)
plain = AESGCM(key).decrypt(nonce, ct, raw[:42]) # AAD = header
name_len = struct.unpack(">H", plain[:2])[0]
name = plain[2 : 2 + name_len].decode()
open(name, "wb").write(plain[2 + name_len :])
print("decrypted ->", name)Bu namoyish vositasi. Asosiy mahsulot — seyf.
Bitta fayl, bitta parol iborasi, bitta sahifa. Brauzerning imkoniyati shu. Sealby esa qurilmangizga moslangan Argon2id, Secure Enclave ichidagi kalitlar hamda ro‘yxati va soni saqlanmaydigan yashirin seyflardan foydalanadi.
iPhone va iPad · iOS 17+ · Bepul