Mjet falas për privatësinë

Vulosni një skedar

Enkriptoni një skedar me një çelës të ri njëpërdorimësh dhe dërgojeni përmes cilitdo kanal. Kush ka çelësin e hap pikërisht këtu, në këtë faqe. Asgjë nuk ngarkohet kurrë, nuk ka frazëkalim për t’u thyer dhe ju shihni çfarë ka brenda para se të ruhet diçka.

Ekzekutohet tërësisht në këtë skedë. Kjo faqe nuk mund të komunikojë fare me asnjë server.

Çdo parametër, i deklaruar

Algoritmi i enkriptimit
AES-256-GCM (WebCrypto), etiketë 128-bitëshe për bllok
Çelësi
një çelës 256-bitësh nga CSPRNG-ja e shfletuesit, i gjeneruar rishtas për çdo vulosje, i përdorur vetëm një herë dhe jo i derivuar nga ndonjë vlerë tjetër
Ndarja në blloqe
një manifest i enkriptuar (emri i skedarit, madhësia, lloji), pastaj skedari në blloqe prej 1 MiB — secili autentikohet veçmas
Nonce
kripë e rastësishme 32-bitëshe e vulës ‖ numërues 64-bitësh i blloqeve — nuk përsëritet kurrë brenda një skedari dhe çelësi gjithsesi përdoret vetëm një herë
Të dhënat e autentikuara
i gjithë kreu 16-bajtësh plus indeksi i çdo blloku dhe numri i përgjithshëm i blloqeve — rirenditja, prerja ose bashkimi i blloqeve e prish dekriptimin
Vargu i çelësit
base64url, 47 shenja: çelësi 32-bajtësh plus një shumë kontrolli SHA-256 prej 3 bajtesh, kështu që një gabim shkrimi dështon qartë në vend që të prodhojë mbeturina

Përgjigje të sinqerta për atë që bën ky mjet

Gjithçka ndodh në shfletuesin tuaj.

Si vulosja, ashtu edhe hapja e lexojnë skedarin në memorien e kësaj faqeje, ekzekutojnë aty AES-256-GCM me mekanizmin WebCrypto të integruar në shfletues dhe e kthejnë rezultatin si shkarkim. Asgjë nuk ngarkohet. Nuk ka llogari dhe përpunim në server. Ndryshe nga pjesa tjetër e këtij sajti, kjo faqe nuk ngarkon as numëruesin e vizitave pa cookie. Asnjë lloj analitike.

Kjo nuk është thjesht një premtim. Faqja ofrohet me një Content-Security-Policy që e lejon shfletuesin të marrë vetëm skedarët statikë të vetë këtij sajti. Nuk ka asnjë mënyrë t’ia dërgojë skedarin, çelësin ose çfarëdo tjetër ndonjë serveri, përfshirë tonin. Hapni mjetet e zhvilluesit të shfletuesit gjatë vulosjes dhe do të shihni zero kërkesa. Për provën më të drejtpërdrejtë, instaloni Kutinë e mjeteve dhe vulosni në modalitet avioni. Me rrjetin të fikur, asgjë nuk mund të dalë.

Çelësi është gjithçka — dhe ne nuk e kemi kurrë.

Çdo vulosje gjeneron një çelës të ri të rastësishëm 256-bitësh në shfletuesin tuaj. Ju shfaqet një herë dhe nuk ruhet askund: as në sistemet tona (asnjë nuk përfshihet), as në hapësirën ruajtëse të shfletuesit, as në skedarin e vulosur. Nuk ka frazëkalim për t’u hamendësuar dhe asgjë për t’u sulmuar me forcë brutale. Kush ka çelësin dhe skedarin mund ta hapë. Kush nuk i ka, nuk mundet.

Kjo ka një pasojë të prerë: nëse çelësi humbet, skedari është i humbur. Nuk ka rivendosje, kërkesë mbështetjeje apo rikuperim. Kjo nuk do të thotë se nuk duam t’ju ndihmojmë. Një kopje që mund ta rikuperonim ne do të ishte një kopje që dikush mund ta vidhte ose kërkonte.

Lidhja e çelësit nuk arrin kurrë në server.

Lidhja e ndarjes e vendos çelësin pas shenjës # në URL. Ajo pjesë, fragmenti, mbetet në shfletues. Nuk përfshihet kurrë në atë që shfletuesi i dërgon ndonjë serveri, tonit ose të kujtdo tjetër. Kur kjo faqe ngarkohet me një çelës në lidhje, e lexon çelësin, kalon te skeda “Hapni” dhe e heq menjëherë nga shiriti i adresës. Kështu nuk mbetet në URL-në e dukshme ose në historikun e shfletuesit.

Megjithatë, kushdo që ka edhe lidhjen, edhe skedarin e vulosur mund ta hapë. Prandaj kjo faqe ju thotë t’i dërgoni skedarin dhe çelësin përmes kanaleve të ndryshme.

E shihni çfarë ka brenda para se të ruhet diçka.

Hapja ndodh në dy hapa. Së pari faqja dekripton vetëm një manifest të vogël: emrin origjinal të skedarit, madhësinë dhe llojin. Jua tregon me një paralajmërim të fortë për llojet e skedarëve që mund të ekzekutojnë kod (programe, skripte, instalues, dokumente me makro, HTML) dhe për emrat e maskuar me prapashtesë të dyfishtë si invoice.pdf.exe. Asgjë nuk shkruhet derisa të klikoni për ta dekriptuar. Faqja nuk e hap ose shfaq kurrë vetë përmbajtjen e dekriptuar. Vetëm e ofron skedarin për shkarkim.

Jini të qartë për atë që provon dhe nuk provon enkriptimi. Një skedar i vulosur është konfidencial gjatë transmetimit. Vulosja nuk thotë asgjë për atë që e dërgoi ose nëse përmbajtja është e sigurt. Trajtojeni një skedar të vulosur të papritur me po aq dyshim sa një bashkëngjitje të papritur.

Ku është në të vërtetë kufiri i besimit.

Po ekzekutoni kod që ky sajt jua ka ofruar. Nëse sealby.app ose lidhja juaj me të komprometohej, një faqe keqdashëse mund të lexonte atë që vendosni në të. Kjo vlen për çdo mjet enkriptimi në ueb dhe parapëlqejmë ta themi sesa të shtiremi ndryshe. Çfarë bëjmë për këtë: faqja është skedar statik dhe e mbajmë pa kod të palëve të treta. Kutia e mjeteve e instaluar ju lejon të vazhdoni të përdorni një version që e keni ngarkuar tashmë. Dhe formati dokumentohet më poshtë, që të mund të ndërtohen mjete të pavarura për të.

Edhe pajisja juaj është brenda kufirit. Shtesat e shfletuesit me qasje në faqe ose programet keqdashëse në pajisje mund të lexojnë gjithçka që mund të lexojë cilado faqe. Skedari i vulosur fsheh përmbajtjen, por jo gjithçka. Kushdo që e ka mund të shohë madhësinë e tij (afërsisht sa origjinali) dhe se është një skedar i vulosur nga Sealby.

Kufizimet me fjalë të thjeshta

  • Çelësi i humbur = skedar i humbur. Pa përjashtime, qëllimisht.
  • Nuk mund t’i shohim skedarët ose çelësat tuaj, ndaj as nuk mund t’i skanojmë për programe keqdashëse. Paralajmërimi për llojin e skedarit bazohet vetëm në emrin e tij. Nuk është garanci sigurie.
  • Kushdo që ka edhe skedarin e vulosur, edhe çelësin mund ta hapë. Mjeti nuk e di ose kontrollon se kush është.
  • Madhësia e skedarit të vulosur zbulon afërsisht madhësinë e skedarit origjinal.
  • Një skedar, deri në 100 MB, për çdo vulosje. Ngjeshini fillimisht në zip skedarët e shumtë.

Formati, bajt për bajt

Gjithçka që i duhet një lexuesi teknik për të verifikuar në mënyrë të pavarur daljen e kësaj faqeje ose për të hapur një skedar .sealed në tridhjetë rreshta Python:

bytesfieldcontents
0–7shenja magjikeASCII "SEALBY-W"
8versioni0x01 — çdo gjë tjetër refuzohet si “e krijuar me një version më të ri”
9algoritmi0x01 = AES-256-GCM
10–13kripa e vulës4 bajte, CSPRNG, e re për çdo vulosje
14–15rezervuarduhet të jetë zero
16–fundikornizat e blloqevesecila: gjatësia uint32 BE e tekstit të enkriptuar, pastaj teksti i enkriptuar AES-GCM + etiketa prej 16 bajtësh

Blloku 0 është manifesti: JSON UTF-8 {"name":…,"size":…,"type":…}. Blloqet 1…N−1 janë skedari në pjesë prej 1 MiB. Për bllokun i nga N: nonce = kripa ‖ uint64 BE i; të dhënat e autentikuara = kreu ‖ uint64 BE i ‖ uint64 BE N. Kështu, manipulimi, shkurtimi, rirenditja, zhvendosja dhe bashkimi mes skedarëve bëjnë që autentikimi të dështojë. Çdo rast provohet nga një test negativ i përfshirë në kod.

Vargu i çelësit: base64url (pa mbushje) i çelësit 32-bajtësh, i ndjekur nga 3 bajtet e para të SHA-256 të tij, gjithsej 47 shenja. Një gabim shkrimi zbulohet nga shuma e kontrollit në vend që të prodhojë të dhëna të pavlefshme.

Program referencë për hapjen (Python, biblioteka 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"])

Kjo është për skedarët në transmetim. Kasaforta është për skedarët në ruajtje.

Vulosja mbron një skedar gjatë rrugës. Sealby mbron gjithçka që mbetet: fotografi, skedarë dhe shënime në kasaforta të enkriptuara në iPhone-in tuaj. Pa llogari, pa serverë, të lexueshme vetëm nga ju.

Shkarkojeni në App Store

iPhone dhe iPad · iOS 17+ · Falas