Bezmaksas privātuma rīks

Aizzīmogot failu

Šifrējiet failu ar jaunu vienreizēju atslēgu un nosūtiet to pa jebkuru vēlamo kanālu. Ikviens, kam ir atslēga, var failu atvērt tepat šajā lapā. Nekas netiek augšupielādēts, nav uzlaužamas ieejas frāzes, un pirms saglabāšanas varat redzēt, kas atrodas failā.

Pilnībā darbojas šajā cilnē. Šī lapa vispār nevar sazināties ne ar vienu serveri.

Visi parametri ir norādīti

Šifrs
AES-256-GCM (WebCrypto), 128 bitu autentifikācijas birka katram blokam
Atslēga
256 biti no pārlūka CSPRNG; katrai aizzīmogošanai ģenerēta jauna, vienreiz lietojama un ne no kā neatvasināta atslēga
Dalījums blokos
šifrēts manifests (faila nosaukums, lielums, tips), pēc tam fails 1 MiB blokos — katrs autentificēts atsevišķi
Nonce
32 bitu nejauša aizzīmogojuma sālsvērtība ‖ 64 bitu bloka skaitītājs — failā nekad neatkārtojas, turklāt atslēga jebkurā gadījumā ir vienreizēja
Autentificēti dati
pilna 16 baitu galvene, katra bloka indekss un kopējais bloku skaits — bloku pārkārtošana, saīsināšana vai savienošana pārtrauc atšifrēšanu
Atslēgu virkne
base64url, 47 rakstzīmes: 32 baitu atslēga un 3 baitu SHA-256 kontrolsumma; tādēļ pārrakstīšanās kļūda tiek nepārprotami noraidīta, nevis rada nederīgus datus

Godīgas atbildes par to, ko tas dara

Viss notiek jūsu pārlūkprogrammā.

Gan aizzīmogošanas, gan atvēršanas laikā fails tiek nolasīts šīs lapas atmiņā, tur apstrādāts ar AES-256-GCM, izmantojot pārlūkā iebūvēto WebCrypto dzini, un rezultāts tiek piedāvāts lejupielādei. Nekas netiek augšupielādēts. Nav ne konta, ne apstrādes serverī. Atšķirībā no pārējās vietnes šī lapa pat neielādē apmeklējumu skaitītāju bez sīkdatnēm. Nekādas analītikas.

Tas nav tikai solījums. Lapa tiek nodrošināta ar Content-Security-Policy, kas pārlūkam ļauj ielādēt vienīgi šīs vietnes statiskos failus. Tā nevar nosūtīt jūsu failu, atslēgu vai jebko citu nevienam serverim, arī mūsējam. Aizzīmogošanas laikā atveriet pārlūka izstrādātāja rīkus, un redzēsiet, ka netiek veikts neviens pieprasījums. Vēl nepārprotamākam pierādījumam instalējiet rīkkopu un aizzīmogojiet failu lidmašīnas režīmā. Ja tīkls ir izslēgts, nekas nevar atstāt ierīci.

Atslēga ir viss — un mums tās nekad nav.

Katrā aizzīmogošanas reizē pārlūkā tiek ģenerēta jauna, nejauša 256 bitu atslēga. Tā tiek parādīta vienreiz un nekur netiek glabāta: ne mūsu sistēmās (tās procesā nepiedalās), ne pārlūka krātuvē, ne aizzīmogotajā failā. Nav ieejas frāzes, ko minēt, un nav nekā, kam veikt pilno pārlasi. Ikviens, kam ir atslēga un fails, var to atvērt; bez tiem — nevar.

Tam ir skarbas sekas: ja atslēga ir pazaudēta, arī fails ir zaudēts. Nav ne atiestatīšanas, ne atbalsta pieprasījuma, ne atkopšanas. Tas nav tāpēc, ka nevēlamies palīdzēt. Kopiju, kuru mēs spētu atkopt, kāds varētu arī nozagt vai pieprasīt.

Atslēgas saite nekad nesasniedz serveri.

Kopīgošanas saitē atslēga atrodas aiz URL zīmes #. Šī daļa — fragments — paliek pārlūkā un nekad netiek iekļauta datos, ko pārlūks sūta mūsu vai kādam citam serverim. Kad lapa tiek ielādēta ar atslēgu saitē, tā nolasa atslēgu, pārslēdzas uz cilni “Atvērt” un nekavējoties noņem atslēgu no adreses joslas. Tādēļ atslēga nepaliek redzamajā URL vai pārlūka vēsturē.

Tomēr ikviens, kam ir gan saite, gan aizzīmogotais fails, to var atvērt. Tāpēc šī lapa liek jums nosūtīt failu un atslēgu, izmantojot dažādus kanālus.

Jūs redzat, kas ir iekšā, pirms kaut kas tiek saglabāts.

Atvēršana notiek divos posmos. Vispirms lapa atšifrē tikai nelielu manifestu: sākotnējo faila nosaukumu, lielumu un tipu. Tā parāda šo informāciju un skaidri brīdina par failu tipiem, kas var palaist kodu (programmām, skriptiem, instalētājiem, dokumentiem ar makro un HTML), kā arī par nosaukumiem ar maldinošu dubulto paplašinājumu, piemēram, invoice.pdf.exe. Nekas netiek ierakstīts, līdz noklikšķināt uz atšifrēšanas pogas. Lapa pati nekad neatver un neatveido atšifrēto saturu — tā tikai piedāvā failu lejupielādei.

Skaidri nošķiriet, ko šifrēšana nodrošina un ko tā nepierāda. Aizzīmogots fails pārsūtīšanas laikā ir konfidenciāls. Aizzīmogošana neko nepasaka par sūtītāja identitāti vai satura drošumu. Pret negaidītu aizzīmogotu failu izturieties tikpat piesardzīgi kā pret negaidītu pielikumu.

Kur uzticības robeža patiešām ir.

Jūs darbināt kodu, ko šī vietne jums piegādāja. Ja sealby.app vai savienojums ar to būtu apdraudēts, ļaunprātīga lapa varētu nolasīt visu, ko tajā ievadāt. Tas attiecas uz ikvienu tīmekļa šifrēšanas rīku, un mēs to pasakām atklāti. Risku mazinām šādi: lapa ir statisks fails bez trešo pušu koda; instalētā Rīkkopa ļauj turpināt izmantot jau ielādētu versiju; turklāt tālāk ir dokumentēts formāts, lai tam varētu izveidot neatkarīgus rīkus.

Arī jūsu ierīce atrodas uzticamības robežās. Pārlūka paplašinājumi ar piekļuvi lapai vai ļaunprogrammatūra datorā var nolasīt visu, ko var nolasīt lapa. Aizzīmogotais fails slēpj saturu, bet ne visu: ikviens, kam fails ir pieejams, var redzēt tā lielumu, kas aptuveni atbilst oriģināla lielumam, un to, ka tas ir ar Sealby aizzīmogots fails.

Ierobežojumi vienkāršā valodā

  • Pazaudēta atslēga = pazaudēts fails. Tā tas ir izstrādāts, bez izņēmumiem.
  • Mēs nevaram redzēt jūsu failus vai atslēgas, tāpēc nevaram arī pārbaudīt failus, vai tajos nav ļaunprogrammatūras. Brīdinājums par faila tipu balstās tikai uz faila nosaukumu. Tā nav drošības garantija.
  • Ikviens, kam ir gan aizzīmogotais fails, gan atslēga, var to atvērt. Rīks nezina un nepārbauda šīs personas identitāti.
  • Aizzīmogotā faila lielums aptuveni atklāj sākotnējā faila lielumu.
  • Katrā aizzīmogošanas reizē — viens fails līdz 100 MB. Vairākus failus vispirms ievietojiet ZIP arhīvā.

Formāts baitu pa baitam

Viss, kas tehniskam lasītājam vajadzīgs, lai neatkarīgi pārbaudītu šīs lapas izvadi vai atvērtu .sealed failu trīsdesmit Python koda rindās:

bytesfieldcontents
0–7signatūraASCII "SEALBY-W"
8versija0x01 — jebkura cita vērtība tiek noraidīta kā “izveidots ar jaunāku versiju”
9algoritms0x01 = AES-256-GCM
10–13aizzīmogojuma sālsvērtība4 baiti, CSPRNG; katrā aizzīmogošanas reizē ģenerēta no jauna
14–15rezervētsjābūt nullei
16–beigāmbloku ietvarikatram: uint32 BE šifrteksta garums, pēc tam AES-GCM šifrteksts + 16 baitu autentifikācijas birka

Bloks 0 ir manifests: UTF-8 JSON {"name":…,"size":…,"type":…}. Bloki 1…N−1 ir fails 1 MiB daļās. Katram blokam i no N: nonce = sālsvērtība ‖ uint64 BE i; autentificētie dati = galvene ‖ uint64 BE i ‖ uint64 BE N. Tādēļ pārveidošana, saīsināšana, pārkārtošana, pārvietošana un bloku savienošana no dažādiem failiem neiztur autentifikāciju. Katru gadījumu apliecina repozitorijā iekļauts negatīvais tests.

Atslēgas virkne: 32 baitu atslēgas base64url kodējums (bez papildinājuma), kam seko tās SHA-256 pirmie 3 baiti; kopā 47 rakstzīmes. Pārrakstīšanās kļūdas dēļ kontrolsummas pārbaude neizdodas, nevis tiek iegūti nederīgi dati.

Atsauces atvērējs (Python, bibliotēka 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"])

Šis rīks paredzēts pārsūtāmiem failiem. Seifs — glabājamiem failiem.

Aizzīmogošana aizsargā failu, kamēr to kādam nosūtāt. Sealby aizsargā visu, kas paliek pie jums: fotoattēlus, failus un piezīmes šifrētos seifos jūsu iPhone tālrunī. Nav ne konta, ne serveru, un saturu nevar izlasīt neviens cits.

Lejupielādēt no App Store

iPhone un iPad · iOS 17+ · Bezmaksas