Sigurnosna arhitektura: cjeloviti tehnički sklop
Vaultaire se ne oslanja na jedan algoritam ni na jedan pametan trik. Koristi slojevitu kriptografsku arhitekturu u kojoj svaka komponenta ima određen zadatak, a pad jednog sloja ne ugrožava ostale. Ovo je svaka šifra, protokol i odluka o dizajnu koja stoji između vaših privatnih podataka i ostatka svijeta.
Vaultaire koristi AES-256-GCM za autentificirano šifriranje indeksa trezora, omotanih ključeva, zaglavlja datoteka, sadržaja, minijatura i metapodataka. PBKDF2-HMAC-SHA512 izvodi lokalni ključ trezora iz uzorka i Keychain soli zajedničke za cijeli uređaj. Taj ključ trezora omata zaseban nasumični 256-bitni glavni ključ koji šifrira datoteke putem CryptoKita u procesu aplikacije.
Kriptografski sklop
Vaultaire koristi nekoliko kriptografskih mehanizama koji rade zajedno, a svaki je odabran za određen zadatak. PBKDF2 pretvara ljudsku vjerodajnicu u ključ trezora ili ključ za oporavak. AES-256-GCM štiti indekse, omote, metapodatke, minijature i sadržaj datoteka. Nasumični glavni ključ odvaja dugotrajno šifriranje datoteka od uzorka koji se može promijeniti. Keychain i iOS Data Protection štite sol vezanu uz uređaj i zapise za oporavak dok je uređaj zaključan. Nijedan ključ za dešifriranje u rukama pružatelja ne daje razvojnom programeru rutinski pristup otvorenom tekstu trezora.
To nije složenost radi složenosti. Svaki sloj pokriva drugu površinu napada. AES-256-GCM spaja povjerljivost i autentifikaciju, pa izmijenjeni šifrirani tekst ne prolazi provjeru. PBKDF2 povećava cijenu provjere svakog uzorka ili fraze. Nasumični glavni ključ znači da se pri promjeni uzorka ponovno omata jedan ključ umjesto ponovnog šifriranja svih datoteka. Zaštita podataka u Keychainu čuva lokalnu sol i zapise za oporavak, a aplikacija pritom priznaje da se simetrično šifriranje odvija u memoriji procesa.
Zajedno ti slojevi čine arhitekturu dubinske obrane, ali nisu sve međusobno neovisne prepreke. Pogođeni uzorak može se provjeriti prema nazivu datoteke indeksa i AES-GCM autentifikaciji, a kompromitirani otključani uređaj može vidjeti ključeve ili otvoreni tekst u procesu aplikacije. Arhitektura zato ovisi o entropiji vjerodajnice, cijeni PBKDF2, zaštiti iOS uređaja i ispravnom rukovanju autentificiranim šifriranjem, a ne samo o snazi samog AES-a.
Zamislite Vaultaireovu hijerarhiju kao niz zaključanih spremnika jedan u drugome. Ključ trezora izveden iz uzorka otvara autentificirani indeks. Indeks otpušta omotani nasumični glavni ključ. Taj glavni ključ štiti datoteke i metapodatke. PBKDF2, AES-GCM, Keychain i iOS Data Protection pridonose različitim svojstvima, ali sigurnosna tvrdnja jaka je samo koliko i cijeli lanac.
AES-256-GCM: šifriranje datoteka
Svaka fotografija, videozapis i dokument pohranjen u Vaultaireu šifrira se algoritmom AES-256-GCM — standardom Advanced Encryption Standard s 256-bitnim ključem u načinu Galois/Counter Mode. Vaultaire AES-GCM koristi i za indekse trezora, zaglavlja datoteka, minijature i omotnice ključeva. Algoritam i veličina ključa standardizirani su; Vaultaireova sigurnost i dalje ovisi o rukovanju nonceovima, upravljanju ključevima, snazi vjerodajnice i ispravnosti implementacije.
“256” u AES-256 označava duljinu ključa u bitovima. 256-bitni ključ ima 2256 mogućih vrijednosti. Za usporedbu: u opazivom svemiru ima otprilike 1080 atoma. Kad bi svaki atom bio superračunalo koje od Velikog praska provjerava milijardu ključeva u sekundi, pretražili bi manje od bilijuntinke bilijuntinke jednog postotka prostora ključeva. AES-256 neće biti probijen grubom silom. Ni danas. Ni u ovom stoljeću. Ni prije nego što zvijezde izgore.
Zašto je način GCM važan
AES je blokovna šifra — šifrira podatke u blokovima od 128 bitova. “Način” određuje kako se ti blokovi povezuju. GCM (Galois/Counter Mode) donosi dvije stvari koje jednostavniji načini poput CBC-a nemaju: paralelno šifriranje i ugrađenu autentifikaciju.
Autentifikacija je ključna. GCM za svaku šifriranu datoteku stvara kriptografsku oznaku. Ta oznaka djeluje kao pečat protiv neovlaštenih izmjena. Ako se promijeni i jedan bit šifriranog teksta — bilo zbog zlonamjernog napadača ili oštećenog sektora diska — oznaka autentifikacije neće odgovarati i dešifriranje neće uspjeti. Ne dobivate oštećene podatke. Dobivate jasan znak da nešto nije u redu. To se svojstvo zove autentificirano šifriranje i sprječava cijelu skupinu napada u kojima protivnik mijenja šifrirane podatke kako bi utjecao na dešifrirani rezultat.
PBKDF2: izvođenje ključeva
Vaultaire izvodi različite ključeve za različite zadatke. Uzorak i Keychain sol zajednička za cijeli uređaj prolaze kroz PBKDF2-HMAC-SHA512 sa 600.000 iteracija kako bi nastao lokalni ključ trezora. Determinističko izvođenje iz uzorka daje zaseban ključ sigurnosne kopije u oblaku. Normalizirana fraza za oporavak prolazi kroz 800.000 PBKDF2 iteracija i daje ključ za omotnicu za oporavak. Nijedno od tih izvođenja ne pretvara ljudsku vjerodajnicu u 256 bitova entropije samo zato što je izlaz dug 256 bitova.
Kako PBKDF2 štiti vaš uzorak
Temeljna ideja PBKDF2 jest namjerni rad. Uzima serijalizirani uzorak ili normaliziranu frazu i izvodi stotine tisuća HMAC-SHA512 iteracija. Legitiman korisnik tu cijenu plaća jednom pri otključavanju ili pokušaju oporavka. Napadač je plaća za svakog kandidata, iako stvarnu brzinu pogađanja određuju paralelni hardver i odabir implementacije.
Vaultaire konfigurira PBKDF2 sa 600.000 iteracija za ključeve izvedene iz uzorka. To poskupljuje svaki pokušaj, ali odgovorna procjena napada mora navesti izmjereno vrijeme po kandidatu i pretpostavke o hardveru. Uz točno jednu milisekundu po kandidatu, milijarda uzastopnih pokušaja traje oko 11,6 dana, a ne godinama. 256-bitni rezultat ne povećava entropiju predvidljivog uzorka.
Lokalno izvođenje iz uzorka koristi jednu kriptografski nasumičnu sol za uređaj, pohranjenu kao Keychain stavka WhenUnlockedThisDeviceOnly. Sol nije tajna i dijele je svi trezori na tom uređaju. Sprječava da se tablica izrađena za jedan uređaj izravno primijeni na drugi uređaj s drugom soli, ali ne tjera napadača da krene ispočetka za svaki trezor na istom uređaju.
AES-256-GCM: zaštita metapodataka
Šifriranje sadržaja datoteka nije dovoljno. Nazivi datoteka, datumi stvaranja, dimenzije minijatura i struktura trezora metapodaci su — a metapodaci mogu otkriti jednako mnogo kao i sami podaci. Datoteka nazvana “porezna-prijava-2025.pdf” napadaču točno govori što sadrži, čak i ako je sadržaj šifriran. Vremenska oznaka pokazuje kada ste koristili trezor. Veličina minijature otkriva je li nešto fotografija ili videozapis.
Vaultaire te metapodatke štiti algoritmom AES-256-GCM, a ne ChaCha20. Nazivi datoteka i MIME vrste kodirani su u šifrirana zaglavlja datoteka. Šifrirani indeks trezora sadrži zapise o datotekama, datume, podatke o veličini, raspored pohrane i omotani glavni ključ. I podaci minijatura šifrirani su nasumičnim glavnim ključem.
Zašto autentificirano šifriranje za metapodatke?
Metapodaci trebaju cjelovitost jednako kao i povjerljivost. AES-GCM za svaku šifriranu vrijednost stvara oznaku autentifikacije, pa Vaultaire može odbiti izmijenjeno zaglavlje, indeks, minijaturu ili omotnicu umjesto da prihvati otvoreni tekst pod kontrolom napadača. Dizajn namjerno koristi jednu konstrukciju autentificiranog šifriranja u svim tim formatima pohrane umjesto da tvrdi kriptografsku raznolikost koju implementacija ne pruža.
Ista šifra ne znači da se isti ključ ili nonce slijepo ponovno koriste. Ključ trezora štiti indeks i omata nasumični glavni ključ; glavni ključ štiti materijal datoteka. CryptoKit stvara autentificirane zapečaćene kutije sa svježim nonceovima, a Vaultaireov format za strujanje izvodi zaseban nonce za svaki uređeni dio. Bitna jamstva proizlaze iz razdvajanja ključeva, discipline nonceova i autentifikacije, a ne iz druge šifre za metapodatke.
Arhitektura s nultim znanjem
Evo pitanja koje vrijedi postaviti o svakoj sigurnosnoj aplikaciji: što se događa ako tvrtku iza nje netko hakira, dobije sudski poziv ili jednostavno postane zlonamjerna?
Kod većine aplikacija odgovor je neugodan. One drže vaše podatke, vaše ključeve ili oboje. Sudski nalog prisiljava ih da ih predaju. Curenje podataka ih otkriva. Nesavjestan zaposlenik im pristupa. Sigurnost aplikacije jaka je samo koliko i operativna sigurnost tvrtke — a povijest pokazuje da se u tvrtke redovito provaljuje.
Vaultaire nema korisnički račun ni uslugu pohrane koja prima vaš uzorak, tajnu frazu, ključeve za dešifriranje ili čitljiv sadržaj trezora. Šifriranje i dešifriranje odvijaju se u procesu aplikacije na vašem uređaju. Kada je iCloud sigurnosna kopija uključena, aplikacija šalje autentificirani šifrirani tekst u vašu privatnu CloudKit bazu podataka, a ne u uslugu trezora pod Vaultaireovom kontrolom.
Što nulto znanje znači u praksi
Ako tijelo za provedbu zakona Vaultaireu uruči sudski poziv kojim traži otvoreni tekst trezora, tvrtka nema uzorak, frazu za oporavak, ključ trezora, ključ sigurnosne kopije ni glavni ključ potreban za dešifriranje. Šifrirani iCloud zapisi nalaze se u korisnikovoj privatnoj CloudKit bazi podataka. Na uređaju se, međutim, materijal za oporavak čuva u šifriranoj Keychain bazi podataka, a simetrični ključevi postoje u memoriji aplikacije dok CryptoKit šifrira ili dešifrira otvoreni trezor.
Ta granica prema pružatelju svojstvo je arhitekture, a ne obećanje da je svaki dio okruženja klijenta izvan modela povjerenja. Vaultaire nema ključ za dešifriranje na poslužitelju koji bi mogao predati za rutinski oporavak trezora. Isporučena aplikacija, iOS, otključani uređaj i kriptografska implementacija i dalje mogu obrađivati čitljive podatke i treba im vjerovati u skladu s tim.
Vaultaireova granica prema pružatelju uklanja iz uobičajenog dizajna ključ za dešifriranje u rukama tvrtke. To smanjuje ono što proboj u sam Vaultaire može otkriti. Ne uklanja potrebu da vjerujete isporučenom klijentu, iOS-u, stanju uređaja ili implementaciji dokumentirane hijerarhije ključeva. Te granice treba procjenjivati zasebno, a ne ih stapati u apsolutno obećanje.
Keychain i granica procesa aplikacije
Appleov Secure Enclave može štititi podržane privatne ključeve i sudjeluje u dijelovima sigurnosne arhitekture platforme, ali njegovi javni API-ji ne primaju proizvoljan simetrični ključ izveden PBKDF2-om i ne izvode Vaultaireove AES-GCM operacije nad datotekama unutar koprocesora. Vaultaire zato svoju šifru trezora ne opisuje kao AES u Secure Enclaveu.
Vaultaire koristi obične iOS Keychain stavke za generičke lozinke za nasumičnu sol uređaja, šifriranu bazu podataka za oporavak i nasumični ključ koji štiti tu bazu. Te stavke koriste razred dostupnosti WhenUnlockedThisDeviceOnly. Keychain i Data Protection stvaraju stvarnu granicu uređaja, posebno dok je telefon zaključan, ali ta se arhitektura razlikuje od ključa u Secure Enclaveu koji se ne može izvesti.
Kada nacrtate uzorak, CommonCrypto izvodi ključ trezora u procesu aplikacije. CryptoKit i Vaultaireov CryptoEngine zatim u tom procesu koriste bajtove simetričnog ključa kako bi autentificirali i dešifrirali indeks, otpakirali glavni ključ i obradili datoteke. Aplikacija briše aktivno stanje kad se zaključa, ali napadač s dovoljnim ovlastima koji promatra otključanu sesiju ima drugačiju priliku od forenzičara koji ima samo šifrirani tekst sa zaključanog uređaja.
Jailbreakan ili na drugi način kompromitiran operacijski sustav može ciljati unos uzorka, memoriju aplikacije, dešifrirane pretpreglede, izvoze ili zaslon. Vaultaire preporučuje ažuran iPhone bez jailbreaka jer se dizajn oslanja na izolaciju procesa u iOS-u, Keychain i Data Protection. Ne tvrdi da root kompromitacija ostavlja simetrične ključeve otvorenog trezora nedostupnima.
Inicijalizacijski vektori po datoteci
Kada dvije jednake datoteke šifrirate istim ključem, naivna implementacija dala bi jednak šifrirani tekst. To je problem. Napadač koji vidi dva jednaka šifrirana bloba zna — bez ikakvog dešifriranja — da su dvije izvorne datoteke iste. U trezoru punom fotografija takva analiza uzoraka može otkriti informacije i kroz šifriranje.
Vaultaire sprječava deterministički šifrirani tekst tako što za svaku AES-256-GCM operaciju pečaćenja stvara svjež kriptografski nonce. Zaglavlja i sadržaj datoteka pečate se zasebno, a velike datoteke koriste autentificirani format za strujanje s nasumičnim osnovnim nonceom i zasebnim nonceom za svaki uređeni dio. Dvije kopije iste fotografije zato ne daju isti šifrirani prikaz.
Nonceovi se pohranjuju uz šifrirani tekst i nisu tajni; njihov sigurnosni zahtjev jest jedinstvenost pod danim ključem. Vaultaire za jednokratno šifriranje traži 96-bitne nonceove od Appleova kriptografskog generatora slučajnih brojeva i bilježi osnovni nonce u zaglavlju strujanja. Rizik sudara ovisi o broju šifriranja pod jednim ključem, pa implementacija stvara svježu vrijednost umjesto da 96-bitnu veličinu predstavlja kao fiksno jamstvo od jedan prema 296 za cijeli životni vijek.
Upravljanje memorijom: brisanje aktivnog stanja ključeva
Česta pogreška u sigurnosnom softveru jest ostavljanje osjetljivih podataka u memoriji nakon što više nisu potrebni. Ključevi za šifriranje, izvedene lozinke i dešifrirani podaci mogu ostati u RAM-u dugo nakon što ih aplikacija prestane koristiti. Forenzički alati mogu preuzeti memoriju uređaja i tražiti te ostatke — tehnika poznata kao cold boot napad ili analiza ispisa memorije.
Vaultaire ograničava koliko dugo aktivno stanje ključeva i dešifrirani podaci sučelja ostaju dostupni. Kada se aplikacija zaključa ili se sesija ugasi, njezin kod slijedi nekoliko puteva čišćenja:
- Aktivno stanje trezora se odbacuje. Aplikacija uklanja trenutačnu sesiju ključa trezora i traži novo otključavanje prije prikaza sadržaja trezora.
- Omoti ključeva brišu vlastite međuspremnike. Vaultaireovi sigurni spremnici bajtova prepisuju međuspremnike koje posjeduju kada se ti spremnici oslobode.
- Stanje glavnog ključa u predmemoriji se poništava. Dešifrirani glavni ključ koji se čuva za otvoreni indeks odbacuje se na odgovarajućim putevima zaključavanja i poništavanja predmemorije.
- Dešifrirane predmemorije sučelja brišu se ondje gdje ih Vaultaire kontrolira. Čišćenje minijatura i pretpregleda smanjuje preostalo stanje aplikacije, bez tvrdnje da kontrolira svaku kopiju koju naprave Swift, iOS ili drugi proces.
Sljedeći put kad se Vaultaire otvori u zaključanom stanju, nacrtate uzorak i aplikacija ponovno izvodi ključ trezora prije nego što može autentificirati indeks i otpakirati glavni ključ. To je čišćenje sesije, a ne tvrdnja da je svaka prolazna kopija u memoriji dokazivo prebrisana u više prolaza ili da je uništena referenca na ključ u Secure Enclaveu. Nakon rušenja iOS preuzima proces, ali kod za čišćenje ne može se izvršiti nakon svakog naglog prekida.
Često postavljana pitanja
Može li se AES-256 uopće probiti?
AES-256 standardizirana je i temeljito analizirana blokovna šifra. Nije javno poznat nijedan praktičan napad na ispravno implementiran AES-256-GCM s nasumičnim 256-bitnim ključem, ali to ne znači da se cijeli trezor ne može probiti. Entropija vjerodajnice, cijena PBKDF2, rukovanje nonceovima, čuvanje ključeva, oporavak, stanje uređaja i pogreške u implementaciji ostaju putevi napada.
Zašto koristiti PBKDF2 za izvođenje ključeva?
Vaultaire koristi PBKDF2-HMAC-SHA512 putem CommonCrypta: 600.000 iteracija za uzorke i 800.000 za fraze za oporavak. Lokalno izvođenje iz uzorka koristi jednu nasumičnu sol za cijeli uređaj pohranjenu u Keychainu. PBKDF2 poskupljuje svaki pokušaj, ali uzorku ne dodaje entropiju, pa vrijeme napada ovisi o snazi vjerodajnice, izmjerenoj brzini hardvera i paralelizmu.
Koje podatke Vaultaire šalje na svoje poslužitelje?
Vaultaireovi poslužitelji nikada ne primaju vaše datoteke, uzorak ni ključeve. Aplikacija komunicira s četiri vrste usluga. Šifrirana iCloud sigurnosna kopija uključena je prema zadanim postavkama i pohranjuje šifrirani tekst u vaš privatni iCloud račun, šifriran na vašem uređaju ključem koji Apple nema; možete je isključiti. Anonimni podaci o korištenju i rušenjima prema zadanim postavkama odlaze u PostHog, a možete ih isključiti u Postavkama. Ako pošaljete povratne informacije, naša usluga za povratne informacije prima vašu poruku, neobaveznu e-adresu za odgovor, vaš jezik i verziju aplikacije. Dok je analitika uključena, token atribucije Apple Ads i nasumični ID instalacije prolaze kroz našu uslugu do Applea. Sinkronizacija i dijeljenje, kada ih koristite, idu preko Apple CloudKita.
Može li jailbreakan iPhone ugroziti moj trezor?
Jailbreak znatno slabi granicu uređaja. Vaultaireove AES-GCM operacije izvode se u procesu aplikacije putem CryptoKita, pa bajtovi simetričnog ključa postoje u memoriji aplikacije dok je trezor otvoren. Root kompromitacija može ciljati unos, memoriju, snimke zaslona ili dešifrirani izlaz. Keychain i Data Protection i dalje dodaju prepreke dok je uređaj zaključan, ali Vaultaire ne tvrdi da njegovi AES ključevi ostaju izolirani unutar Secure Enclavea.
Kako se šifriraju metapodaci?
Vaultaire ne koristi ChaCha20 za metapodatke trezora. Nazivi datoteka, MIME vrste, vremenske oznake, podaci minijatura, struktura trezora i omotani glavni ključ zaštićeni su unutar AES-256-GCM autentificiranog šifriranog teksta. Jedna autentificirana konstrukcija održava dosljedne provjere povjerljivosti i cjelovitosti u cijelom formatu pohrane.
Što se događa s mojim ključevima ako se aplikacija sruši?
iOS preuzima prekinuti proces, a sljedeće pokretanje traži novo otključavanje prije nego što Vaultaire vrati aktivno stanje ključeva. Vaultaire ne stvara AES reference u Secure Enclaveu vezane uz sesiju. Iako njegovi omoti ključeva brišu svoje međuspremnike pri oslobađanju, a putevi zaključavanja odbacuju aktivno stanje, Swift i iOS ne opravdavaju jamstvo da je svaka prolazna kopija prebrisana prije rušenja.
Pogledajte sklop na djelu
Autentificirano šifriranje, slojeviti ključevi, skupo izvođenje i nijedan ključ trezora u rukama pružatelja. Preuzmite Vaultaire i koristite arhitekturu opisanu ovdje, s jasno navedenim granicama uređaja i vjerodajnica.
Preuzmite Vaultaire besplatno