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.

Faylni tanlash

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:

bytesfieldcontents
0–7magicASCII "SBXF0001"
8version0x01
9algorithm0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256
10–13iterationsuint32, big-endian (600,000)
14–29salt16 bayt
30–41nonce12 bayt
42–endciphertextfoydali 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.

App Store orqali yuklab oling

iPhone va iPad · iOS 17+ · Bepul