Postavte súkromnú mobilnú aplikáciu za VPN a rozumný človek sa opýta, či ešte potrebuje pripínanie certifikátov. Otázka znie ako voľba medzi dvoma rovnocennými kontrolami, a pritom je to otázka o dvoch rôznych bránach. VPN rozhoduje, či toto zariadenie smie cestu vôbec použiť; aplikácia rozhoduje, či server, ktorý dosiahla, je ten, ktorý očakávala. Odpovedzte na obe oddelene a návrh sa zjednoduší.

Dve brány, dve otázky

Vstup do siete sa týka klienta: je toto zariadenie zapísané, je jeho poverenie platné a dovoľuje mu politika túto cestu? Dôvera aplikácie sa týka servera: dosiahlo spojenie službu s identitou, ktorú aplikácia prijíma? Tieto odpovede prichádzajú z rôznych systémov, zlyhávajú z rôznych dôvodov a opravujú ich rôzne tímy. VPN podanie ruky môže uspieť, zatiaľ čo aplikácia hovorí s prepadnutým certifikátom za protistranou. Dokonale pripnutá aplikácia môže zostať nedostupná pre kohokoľvek, pretože zariadenie sa na sieť vôbec nedostalo.

Obe sa sčítavajú. Vypustenie jednej odoberie kontrolu; pridanie druhej ju nenahrádza.

Čo pripínanie skutočne obmedzuje

Pripínanie zužuje množinu identít servera, ktoré aplikácia prijme, zvyčajne pomenovaním verejného kľúča alebo hashu certifikátu namiesto dôvery v každú reťaz, za ktorú by nejaké úložisko ručilo. Je to obmedzenie navrstvené na bežné overovanie, nie jeho náhrada. Bežné overovanie odpovedá, či je reťaz vôbec dôveryhodná; pripínanie odpovedá, či je to reťaz, ktorú táto aplikácia očakáva. Implementácia, ktorá prvý krok preskočí, nezískala bezpečnosť, len novotu.

Pripínaný objekt sa medzi platformami líši, takže samotné slovo hovorí veľmi málo. Skopírovať hash z úložiska dôvery jedného produktu a považovať ho v mobilnej aplikácii za to isté je častá a tichá chyba.

Pripínanie na platforme je konfigurácia, nie politika

Android sprístupňuje pripínanie cez svoju konfiguráciu zabezpečenia siete, kde sada pripnutí drží odtlačky verejného kľúča a reťaz musí obsahovať aspoň jeden z nich. Ten súbor je pre každú aplikáciu a vyžaduje zámernú zmenu zostavenia. iOS nemá ekvivalentný mechanizmus manifestu, takže pripínanie tam žije vo vlastnom kóde aplikácie na vyhodnocovanie dôvery.

Keďže sa mechanizmus líši, požiadavka sa musí písať pre každú platformu. Politika, ktorá hovorí pripnite certifikát bez pomenovania platformy, nie je vykonateľná.

Rotácia rozhoduje, či pripínanie prežije

Ťažká časť nie je prvé vydanie, ale obnova certifikátu po ňom. Reštriktívna politika dôvery odmieta legitímny nový kľúč rovnako pevne ako útočníkov.

Dva mechanizmy robia rotáciu prežiteľnou: záložné pripnutie, ktorému sa dôveruje už predtým, než je potrebné, a dátum vypršania na sade pripnutí, aby sa vynucovanie skončilo, a nie zablokovalo aplikáciu. Obe sú politické rozhodnutia a vypršanie je najmä zámerné zníženie bezpečnosti, nie neškodný časovač. Pomenujte, kto riadi zostavenie aplikácie, koncový bod TLS a obnovu certifikátu, a spojte ich do jedného procesu zmien. Ak sú to tri rôzne tímy, pripínanie napokon spôsobí výpadok, ktorý nikto nenaplánoval.

Stratené zariadenie je tretí problém

Odvolanie poverenia VPN nemusí ukončiť reláciu aplikácie a pripnutie servera nerobí vôbec nič s telefónom v cudzej ruke. Zámok zariadenia, úložisko poverení, životnosť relácie a vzdialené odvolanie sú samostatné rozhodnutia so samostatnými vlastníkmi. Zložiť ich do debaty o pripínaní zaručí, že ani jedno z nich sa nenavrhne.

Testujte štyri vzťahy namiesto toho jedného, ktorý vidíte: zamýšľaný server a operáciu, účet, ktorý má byť odmietnutý, identitu servera, ktorá má byť zavrhnutá, a plánovanú rotáciu. Fungujúca VPN precvičí len prvú. Zapíšte, čo každý test preukázal, pretože ďalší človek bude predpokladať, že zelený tunel znamená, že prešli všetky štyri.

Súvisiace články