Bezpečnostná architektúra: Kompletný technický základ

Vaultaire nespolieha na jediný algoritmus ani jeden chytrý trik. Používa vrstvenú kryptografickú architektúru, kde každá súčasť má špecifickú úlohu a zlyhanie jednej vrstvy neohrozuje ostatné. Tu je popísaná každá šifra, protokol a rozhodnutie v návrhu, ktoré stojí medzi vašimi súkromnými dátami a zvyškom sveta.

Vaultaire používa AES-256-GCM na overené šifrovanie indexov trezorov, zabalených kľúčov, hlavičiek súborov, obsahu, miniatúr a metadát. PBKDF2-HMAC-SHA512 odvodzuje kľúč lokálneho trezoru zo vzoru a zo soli v Keychain spoločnej pre celé zariadenie. Tento kľúč trezora obalí samostatný náhodný 256-bitový hlavný kľúč, ktorý CryptoKit používa na šifrovanie súborov v procese aplikácie.

Kryptografický základ

Vaultaire používa niekoľko kryptografických mechanizmov pracujúcich v zhode, z ktorých každý je vybraný pre konkrétnu prácu. PBKDF2 zmení ľudský prístupový údaj na kľúč trezora alebo obnovovací kľúč. AES-256-GCM chráni indexy, obaly, metadáta, miniatúry a obsah súborov. Náhodný hlavný kľúč oddeľuje dlhodobé šifrovanie súborov od premenlivého vzoru. Keychain a iOS Data Protection chránia záznamy o soli a obnove viazanej na zariadenie, keď je zariadenie uzamknuté. Žiadny dešifrovací kľúč držaný poskytovateľom neposkytuje vývojárovi rutinný prístup k otvorenému textu trezoru.

Toto nie je zložitosť sama o sebe. Každá vrstva rieši iný útočný povrch. AES-256-GCM kombinuje dôvernosť s autentifikáciou, takže modifikovaný šifrovaný text zlyhá pri overení. PBKDF2 zvyšuje náklady na testovanie každého vzoru alebo frázy. Náhodný hlavný kľúč znamená, že zmena vzoru môže prebaliť jeden kľúč namiesto opätovného šifrovania každého súboru. Ochrana údajov v Keychain stráži miestne záznamy soli a obnovy, zatiaľ čo aplikácia stále uznáva, že k symetrickému šifrovaniu dochádza v pamäti procesu.

Tieto vrstvy spolu tvoria architektúru hĺbkovej obrany, ale nie všetky sú nezávislými bariérami. Uhádnutý vzor možno skontrolovať pomocou indexového súboru a overenia AES-GCM a napadnuté odomknuté zariadenie môže v procese aplikácie sledovať kľúče alebo otvorený text. Architektúra preto závisí od entropie prístupového údaja, nákladov PBKDF2, ochrany zariadenia v iOS a správneho zaobchádzania s overeným šifrovaním, ako aj od sily samotného AES.

Obrana do hĺbky

Predstavte si hierarchiu Vaultaire ako súbor vnorených uzamknutých kontajnerov. Kľúč trezora odvodený zo vzoru otvorí overený index. Index uvoľní zabalený náhodný hlavný kľúč. Tento hlavný kľúč chráni súbory a metadáta. PBKDF2, AES-GCM, Keychain a iOS Data Protection prispievajú rôznymi vlastnosťami, ale tvrdenie o bezpečnosti je len taký silný ako celý reťazec.

AES-256-GCM: Šifrovanie súborov

Každá fotografia, video a dokument uložený vo Vaultaire je šifrovaný pomocou AES-256-GCM — Advanced Encryption Standard s 256-bitovým kľúčom v režime Galois/Counter. Vaultaire tiež používa AES-GCM pre indexy trezorov, hlavičky súborov, miniatúry a obálky kľúčov. Algoritmus a veľkosť kľúča sú štandardizované; bezpečnosť Vaultaire stále závisí od zaobchádzania s nonce, správy kľúčov, sily prístupového údaja a správnosti implementácie.

Číslo “256” v AES-256 označuje dĺžku kľúča v bitoch. 256-bitový kľúč má 2256 možných hodnôt. Pre predstavu: v pozorovateľnom vesmíre je približne 1080 atómov. Keby každý atóm bol superpočítač testujúci miliardu kľúčov za sekundu a bežal od Veľkého tresku, preskúmali by menej ako bilióntinu bilióntin percenta priestoru kľúčov. AES-256 nebude prelomený hrubou silou. Nie dnes. Nie v tomto storočí. Nie skôr, než zhasnú hviezdy.

Prečo záleží na režime GCM

AES je bloková šifra: šifruje dáta v 128-bitových blokoch. “Režim” určuje, ako sú tieto bloky kombinované. GCM (Galois/Counter Mode) poskytuje dve veci, ktoré jednoduchšie režimy ako CBC neposkytujú: paralelizované šifrovanie a zabudovanú autentifikáciu.

Časť autentifikácie je kritická. GCM generuje kryptografickú značku pre každý šifrovaný súbor. Táto značka funguje ako pečať proti manipulácii. Ak je modifikovaný jediný bit šifrového textu, či už zákerným aktérom alebo poškodeným sektorom disku, autentifikačná značka nebude zodpovedať a dešifrovanie zlyhá. Nezískate poškodené dáta. Dostanete jasný signál, že je niečo zlé. Táto vlastnosť sa nazýva autentifikované šifrovanie a zabraňuje celej triede útokov, kde protivník modifikuje šifrované dáta na manipuláciu dešifrovaného výstupu.

PBKDF2: Odvádzanie kľúčov

Vaultaire odvodzuje rôzne kľúče pre rôzne úlohy. Vzor a soľ z Keychain spoločná pre celé zariadenie vstupujú do PBKDF2-HMAC-SHA512 so 600 000 iteráciami na vytvorenie lokálneho kľúča trezora. Deterministické odvodenie zo vzoru vytvára samostatný kľúč zálohy cloudu. Normalizovaná fráza na obnovenie prechádza cez 800 000 PBKDF2 iterácií na vytvorenie kľúča pre obálku obnovy. Žiadna z týchto odvodení nepremení ľudský prístupový údaj na 256 bitov entropie len preto, že výstup je dlhý 256 bitov.

Ako PBKDF2 chráni váš vzor

Hlavnou myšlienkou PBKDF2 je zámerná práca. Vezme serializovaný vzor alebo normalizovanú frázu a vykoná stovky tisíc iterácií HMAC-SHA512. Legitímny používateľ zaplatí túto cenu raz počas pokusu o odomknutie alebo obnovenie. Útočník ju platí za každého kandidáta, hoci skutočnú mieru hádania určujú paralelné možnosti hardvéru a implementácie.

Vaultaire nastavuje PBKDF2 na 600 000 iterácií pre kľúče odvodené zo vzoru. To robí každý odhad drahším, ale zodpovedný odhad útoku musí uvádzať nameraný čas na kandidáta a hardvérové predpoklady. Pri presne 1 ms na kandidáta trvá 1 000 000 000 sériových odhadov približne 11,6 dňa, nie rokov. 256-bitový výsledok nerozširuje entropiu predvídateľného vzoru.

Lokálne odvodenie vzoru používa jednu kryptograficky náhodnú soľ pre zariadenie, uloženú ako položka Keychain WhenUnlockedThisDeviceOnly. Soľ nie je tajná a zdieľajú ju trezory na tomto zariadení. Zabraňuje tomu, aby sa tabuľka vytvorená pre jedno zariadenie aplikovala priamo na iné zariadenie s inou soľou, ale nenúti útočníka začať odznova pre každý trezor na rovnakom zariadení.

256-bitový
Dĺžka šifrovacieho kľúča
6
Kryptografických vrstiev
0
Kľúčov uložených na serveroch

AES-256-GCM: Ochrana metadát

Šifrovanie obsahu súborov nestačí. Názvy súborov, dátumy vytvorenia, rozmery miniatúr a štruktúra trezoru sú metadáta, a metadáta môžu byť rovnako odhaľujúce ako samotné dáta. Súbor s názvom “daňové-priznanie-2025.pdf” útočníkovi presne prezradí, čo je vnútri, aj keď je obsah šifrovaný. Časová pečiatka ukazuje, kedy ste trezor používali. Veľkosť miniatúry prezradí, či je niečo fotografia alebo video.

Vaultaire chráni tieto metadáta pomocou AES-256-GCM, nie ChaCha20. Názvy súborov a MIME typy sú zakódované do zašifrovaných hlavičiek súborov. Šifrovaný index trezoru obsahuje záznamy o súboroch, dátumy, informácie o veľkosti, rozloženie úložiska a zabalený hlavný kľúč. Údaje miniatúr sú tiež šifrované náhodným hlavným kľúčom.

Prečo overené šifrovanie pre metadáta?

Metadáta si vyžadujú integritu aj dôvernosť. AES-GCM vytvára autentifikačnú značku pre každú zašifrovanú hodnotu, takže Vaultaire môže odmietnuť upravenú hlavičku, index, miniatúru alebo obálku namiesto prijatia otvoreného textu podvrhnutého útočníkom. Návrh zámerne používa jednu konštrukciu overeného šifrovania naprieč týmito formátmi úložiska namiesto toho, aby tvrdil kryptografickú rozmanitosť, ktorú implementácia neposkytuje.

Tá istá šifra neznamená, že ten istý kľúč alebo nonce sa znova použije naslepo. Kľúč trezora chráni index a obalí náhodný hlavný kľúč; hlavný kľúč chráni materiál súboru. CryptoKit vytvára overené zapečatené boxy s novými nonce, zatiaľ čo streamovací formát Vaultaire odvodzuje samostatný nonce pre každý blok v poradí. Príslušné záruky pochádzajú z oddelenia kľúčov, disciplíny nonce a autentifikácie, nie z druhej šifry metadát.

Architektúra nulových znalostí

Tu stojí za to položiť otázku ohľadom akejkoľvek bezpečnostnej aplikácie: čo sa stane, ak je spoločnosť za ňou hacknutá, predvolaná na súd alebo sa jednoducho obrátí?

U väčšiny aplikácií je odpoveď nepríjemná. Držia vaše dáta, vaše kľúče alebo oboje. Súdny príkaz ich prinúti ich odovzdať. Únik dát ich odhalí. Nepoctivý zamestnanec k nim pristúpi. Bezpečnosť aplikácie je len tak silná ako prevádzková bezpečnosť spoločnosti, a história ukazuje, že spoločnosti sú pravidelne prelomené.

Vaultaire neprevádzkuje účet alebo službu úložiska, ktoré prijíma váš vzor, tajnú frázu, dešifrovacie kľúče alebo čitateľný obsah trezoru. Šifrovanie a dešifrovanie prebieha v procese aplikácie na vašom zariadení. Keď je zálohovanie do iCloud zapnuté, aplikácia odošle overený šifrovaný text do vašej súkromnej databázy CloudKit, a nie do služby trezoru riadenej Vaultaire.

Čo architektúra nulových znalostí v praxi znamená

Ak orgán činný v trestnom konaní predloží Vaultaire predvolanie požadujúce otvorený text trezoru, spoločnosť nedrží vzor, frázu na obnovenie, kľúč trezora, záložný kľúč alebo hlavný kľúč potrebný na jeho dešifrovanie. Zašifrované záznamy iCloud sú uložené v súkromnej databáze CloudKit používateľa. Na zariadení sa však obnovovací materiál uchováva v zašifrovanej databáze Keychain a symetrické kľúče existujú v pamäti aplikácie, kým CryptoKit šifruje alebo dešifruje otvorený trezor.

Táto hranica poskytovateľa je architektonickou vlastnosťou, nie prísľubom, že každá časť klientskeho prostredia je mimo modelu dôvery. Vaultaire nemá dešifrovací kľúč na strane servera, ktorý môže odovzdať na rutinnú obnovu trezoru. Dodávaná aplikácia, iOS, odomknuté zariadenie a kryptografická implementácia môžu stále spracovávať čitateľné údaje a treba im podľa toho dôverovať.

Nedôverovať nikomu zámerne

Hranica poskytovateľa Vaultaire odstraňuje dešifrovací kľúč v držbe spoločnosti z normálneho dizajnu. To znižuje to, čo môže odhaliť porušenie samotného Vaultaire. Neodstraňuje potrebu dôverovať dodanému klientovi, iOS, stavu zariadenia a implementácii zdokumentovanej hierarchie kľúčov. Tieto hranice treba hodnotiť oddelene a nemali by splynúť do absolútneho prísľubu.

Keychain a hranica procesu aplikácie

Secure Enclave od spoločnosti Apple môže chrániť podporované súkromné kľúče a podieľa sa na častiach architektúry zabezpečenia platformy, ale jeho verejné API neprijímajú ľubovoľný symetrický kľúč odvodený pomocou PBKDF2, aby v koprocesore vykonávali operácie AES-GCM so súbormi Vaultaire. Vaultaire teda nepopisuje svoju šifru trezoru ako AES v Secure Enclave.

Vaultaire používa bežné položky generického hesla v iOS Keychain pre náhodnú soľ zariadenia, šifrovanú databázu obnovy a náhodný kľúč chrániaci túto databázu. Tieto položky používajú triedu dostupnosti WhenUnlockedThisDeviceOnly. Keychain a Data Protection vytvárajú zmysluplnú hranicu zariadenia, najmä keď je telefón uzamknutý, ale táto architektúra sa líši od neexportovateľného kľúča v Secure Enclave.

Keď nakreslíte vzor, CommonCrypto odvodzuje kľúč trezora v procese aplikácie. CryptoKit a CryptoEngine vo Vaultaire potom v tomto procese použijú bajty symetrického kľúča na overenie a dešifrovanie indexu, rozbalenie hlavného kľúča a spracovanie súborov. Aplikácia vymaže aktívny stav, keď sa uzamkne, ale dostatočne privilegovaný útočník, ktorý sleduje odomknutú reláciu, má inú príležitosť ako forenzný analytik, ktorý drží iba šifrovaný text na uzamknutom zariadení.

Jailbreaknutý alebo inak kompromitovaný operačný systém sa môže zamerať na vstup vzoru, pamäť aplikácie, dešifrované náhľady, exporty alebo obrazovku. Vaultaire odporúča aktuálny, iPhone bez jailbreaku, pretože návrh sa spolieha na izoláciu procesov v iOS, Keychain a Data Protection. Netvrdí, že kompromitácia na úrovni root ponechá symetrické kľúče otvoreného trezoru nedostupné.

Inicializačné vektory na súbor

Keď zašifrujete dva identické súbory rovnakým kľúčom, naivná implementácia by vytvorila identický šifrový text. To je problém. Útočník, ktorý vidí dva identické šifrované bloby, vie bez dešifrovania čohokoľvek, že dva pôvodné súbory sú rovnaké. V trezore plnom fotografií môže takýto typ analýzy vzorov odhaliť informácie aj napriek šifrovaniu.

Vaultaire zabraňuje deterministickému šifrovému textu tým, že pre každú operáciu zapečatenia AES-256-GCM vygeneruje nový kryptografický nonce. Hlavičky súborov a obsah súborov sú zapečatené oddelene a veľké súbory používajú overený formát streamovania s náhodným základným nonce a odlišným nonce pre každý blok v poradí. Dve kópie tej istej fotografie preto nevytvárajú rovnakú šifrovanú reprezentáciu.

Nonce sú uložené so šifrovaným textom a nie sú tajné; ich bezpečnostnou požiadavkou je jedinečnosť pod daným kľúčom. Vaultaire požaduje 96-bitové nonce od kryptografického náhodného generátora Apple pre jednorazové šifrovanie a základný nonce zaznamenáva v hlavičke streamovania. Riziko kolízie sa riadi počtom šifrovaní pod jedným kľúčom, takže implementácia generuje nové hodnoty a nevydáva 96-bitovú veľkosť za pevnú celoživotnú záruku jedna ku 296.

Šifrovací pipeline
Váš vzor
Vstup mriežky 5×5
→
PBKDF2
KDF s vysokým počtom iterácií
→
Kľúč trezora
Index + obal kľúča
→
Náhodný hlavný kľúč
AES-GCM súbory + metadáta

Správa pamäte: Vymazanie stavu aktívneho kľúča

Bežnou chybou bezpečnostného softvéru je ponechanie citlivých dát v pamäti dlhšie, než je potrebné. Šifrovacie kľúče, odvodené heslá a dešifrované dáta môžu v RAM pretrvávať dlho potom, čo ich aplikácia prestala používať. Forenzné nástroje môžu vypísať pamäť zariadenia a hľadať tieto zvyšky, technika známa ako útok studeným štartom alebo analýza výpisu pamäte.

Vaultaire obmedzuje, ako dlho zostane k dispozícii aktívny stav kľúča a dešifrované údaje používateľského rozhrania. Keď sa aplikácia uzamkne alebo sa relácia preruší, jej kód nasleduje niekoľko ciest čistenia:

  • Aktívny stav trezoru je zrušený. Aplikácia odstráni svoju aktuálnu reláciu kľúča trezora a pred prezentáciou obsahu trezoru vyžaduje ďalšie odomknutie.
  • Obaly kľúčov vyčistia vlastnené vyrovnávacie pamäte. Zabezpečené bajtové kontajnery Vaultaire prepíšu vyrovnávacie pamäte, ktoré vlastnia, keď sú tieto kontajnery uvoľnené.
  • Stav hlavného kľúča vo vyrovnávacej pamäti je neplatný. Dešifrovaný hlavný kľúč uchovávaný pre otvorený index sa zahodí na príslušných cestách uzamknutia a obnovenia vyrovnávacej pamäte.
  • Dešifrované vyrovnávacie pamäte používateľského rozhrania sa vymažú tam, kde ich kontroluje Vaultaire. Čistenie miniatúr a ukážok znižuje zvyškový stav aplikácie bez tvrdenia, že má kontrolu nad každou kópiou, ktorú vytvorí Swift, iOS alebo iný proces.

Keď sa Vaultaire nabudúce otvorí v zamknutom stave, nakreslíte vzor a aplikácia znova odvodí kľúč trezora predtým, ako bude môcť overiť index a rozbaliť hlavný kľúč. Toto je vyčistenie relácie, nie tvrdenie, že každá kópia prechodnej pamäte dostala preukázateľné viacprechodové vymazanie alebo že bol zničený odkaz na kľúč v Secure Enclave. Pri páde iOS proces uvoľní, ale čistiaci kód sa nemôže spustiť po každom náhlom ukončení.

Často kladené otázky

Je AES-256 skutočne neprekonateľný?

AES-256 je štandardizovaná, dôkladne analyzovaná bloková šifra. Nie je verejne známy žiadny praktický útok na správne implementované AES-256-GCM s náhodným 256-bitovým kľúčom, ale to neznamená, že celý trezor je nerozbitný. Entropia prístupového údaja, náklady PBKDF2, zaobchádzanie s nonce, úschova kľúčov, obnova, stav zariadenia a chyby implementácie zostávajú cestami útoku.

Prečo sa na odvádzanie kľúčov používa PBKDF2?

Vaultaire používa PBKDF2-HMAC-SHA512 cez CommonCrypto: 600 000 iterácií pre vzory a 800 000 pre obnovovacie frázy. Odvodenie lokálneho vzoru používa jednu náhodnú soľ pre celé zariadenie uloženú v Keychain. PBKDF2 zvyšuje cenu každého odhadu, ale nepridáva do vzoru entropiu, takže čas útoku závisí od sily prístupového údaja, nameranej rýchlosti hardvéru a paralelizmu.

Aké dáta Vaultaire odosiela na svoje servery?

Žiadne. Vaultaire nemá servery, ktoré by prijímali vaše dáta. Šifrovaná záloha iCloud je predvolene zapnutá a dá sa vypnúť; vaše šifrované dáta sú uložené vo vašom osobnom účte iCloud: šifrované pred opustením vášho zariadenia kľúčmi, ktoré Apple nevlastní. Spoločnosť Vaultaire nikdy neprijíma, nespracúva ani neukladá žiadne používateľské dáta, šifrované ani inak.

Môže jailbreaknutý iPhone kompromitovať môj trezor?

Jailbreak podstatne oslabuje hranicu zariadenia. Operácie AES-GCM vo Vaultaire prebiehajú v procese aplikácie cez CryptoKit, takže bajty symetrického kľúča existujú v pamäti aplikácie, kým je otvorený trezor. Kompromis na koreňovej úrovni sa môže zamerať na vstup, pamäť, snímky obrazovky alebo dešifrovaný výstup. Keychain a Data Protection stále pridávajú bariéry, keď je zariadenie uzamknuté, ale Vaultaire netvrdí, že jeho kľúče AES zostávajú izolované v Secure Enclave.

Ako sa šifrujú metadáta?

Vaultaire nepoužíva ChaCha20 pre metadáta trezora. Názvy súborov, MIME typy, časové pečiatky, údaje miniatúr, štruktúra trezoru a zabalený hlavný kľúč sú chránené v rámci overeného šifrovaného textu AES-256-GCM. Použitie jednej overenej konštrukcie zaisťuje konzistentnosť kontrol dôvernosti a integrity v celom formáte úložiska.

Čo sa stane s mojimi kľúčmi, ak aplikácia spadne?

iOS obnoví ukončený proces a ďalšie spustenie vyžaduje nové odomknutie predtým, ako Vaultaire obnoví aktívny stav kľúča. Vaultaire nevytvára referencie AES v Secure Enclave s rozsahom relácie. Hoci jeho obaly kľúčov pri dealokácii vyčistia svoje vyrovnávacie pamäte a cesty uzamknutia zahodia aktívny stav, Swift a iOS neposkytujú záruku, že každá prechodná kópia bola pred zlyhaním prepísaná.

Prezrite si základ v akcii

Overené šifrovanie, vrstvené kľúče, drahé odvodenie a žiadny kľúč trezora v držbe poskytovateľa. Stiahnite si Vaultaire a použite tu opísanú architektúru s jasne uvedenými hranicami zariadenia a prístupových údajov.

Stiahnuť Vaultaire zadarmo