Kde má žít privátní klíč VPN: soubor, CNG nebo TPM?
Vyberte mezi souborem s klíčem, neexportovatelným softwarovým úložištěm a TPM pro identitu VPN, poté volbu prokažte příkazy a plánem návratu.
Dvě otázky rozhodují, kam patří privátní klíč VPN: zda lze klíčový materiál zkopírovat z hostitele a zda jej proces může použít bez nikoho u klávesnice. Marketingový štítek úložiště neodpovídá ani na jednu. Dému tunelu, který se musí po restartu vrátit, potřebuje použití bez dozoru, což vylučuje vše vázané na PIN, který zadává člověk.
Vyberte mezi kopírováním a používáním
Kopírování a používání selhávají různě, proto je berte jako dva požadavky, ne jeden. Útočník, který dokáže přečíst bajty klíče, odnese identitu na jiný hostitel a původní stroj si toho nevšimne. Útočník, který bajty přečíst neumí, ale dosáhne procesu podepisování, se stále ověřuje, dokud ten přístup trvá.
Klíč v souboru je triviálně kopírovatelný, proto se také nejsnáze zálohuje a obnovuje. Softwarové úložiště klíčů mění API, ne hranici: poskytovatel odmítá vlastní volání exportu, ale stejný správcovský kontext, který klíč nainstaloval, má obvykle jiné cesty k materiálu. Neexportovatelnost u softwarového poskytovatele je tvrzení o podporovaných operacích, ne důkaz hardwarové zdi. Berte ji jako zpomalovač proti náhodnému kopírování, ne jako ochranu před někým, kdo už má vaši relaci.
TPM nebo čipová karta provádí operaci podpisu v hardwaru a vrací jen výsledek. To zavírá cestu kopírování a cestu použití nechává otevřenou pro vše, co může požádat o podpis.
Slaďte úložiště s démonem tunelu
Démon to omezuje víc než bezpečnostní politika. WireGuard bere privátní klíč v base64 ze souboru nebo ze vstupu wg set a nemá cestu do úložiště certifikátů, takže klíč rozhraní s podporou TPM nepřichází v úvahu. OpenVPN sestavené proti OpenSSL 3 může načíst klíč přes URI poskytovatele a strongSwan dodává doplněk TPM vedle podpory PKCS#11, ale obojí závisí na tom, jak byl váš balík přeložen.
Démon, který nedosáhne zvoleného úložiště, promění hardwarovou hranici v dekoraci. Někdo jednou vyexportuje klíč, nechá ho v souboru a zbytek návrhu potichu běží na této kopii.
Obnova je druhá polovina sladění a právě tam se láme většina návrhů. Úložiště, které funguje při první registraci, ale pro každé opětovné vydání vyžaduje přihlášení do konzoly, se obejde poprvé, když certifikát vyprší v nevhodnou hodinu. Otestujte cestu opětovného vydání, dokud má aktuální klíč ještě měsíce.
Zinventarizujte klíč před přesunem
Zapište, co je klíč, dřív než změníte, kde žije, protože migrace, která ztratí subject alternative names, zlomí tunel tak, že se to čte jako chyba směrování. Vyexportujte certifikát, potvrďte, že privátní klíč je čitelný tam, kde ho démon očekává, a zkontrolujte, že pár skutečně sedí.
openssl x509 -in vpn.crt -noout -subject -ext subjectAltName
openssl pkey -in vpn.key -check -noout
openssl x509 -in vpn.crt -noout -pubkey | openssl sha256
openssl pkey -in vpn.key -pubout | openssl sha256
Poslední dva výtahy musí být shodné. Pokud nejsou, démon dokončí nastavení a pak selže při každém pokusu s chybou certifikátu nebo podpisu, která neukazuje nikde blízko skutečné příčiny. Ekvivalent pro WireGuard je kratší, protože veřejný klíč se odvozuje přímo ze soukromého: wg pubkey < /etc/wireguard/wg0.key musí vypsat klíč protistrany, který váš server už uchovává.
Práva patří do stejného inventáře. stat -c '%a %U:%G' /etc/wireguard/wg0.key by mělo vrátit 600 root:root a cokoli čitelné pro skupinu nebo svět znamená, že klíč už byl dostupný procesům, které jste nikdy nezamýšleli.
Zkontrolujte úložiště a cestu použití
Ověření má tři části a třetí se vynechává. Potvrďte, že klíč existuje ve zvoleném úložišti, potvrďte, že démon načetl tento klíč a ne zbylou kopii, a potom potvrďte, že se ještě spustí, když artefakt exportu zmizí.
certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts
Ve Windows první příkaz vypíše osobní úložiště a vedle každého záznamu vytiskne poskytovatele klíčů, a tam se objeví certifikát, který vypadá hardwarově chráněný, ale sedí v softwarovém poskytovateli. Druhý vypíše klíče, které drží platformový kryptoposkytovatel, takže identita VPN, která tam chybí při přítomném certifikátu, znamená, že soukromá polovina žije jinde. Na bráně Linux ipsec listcerts hlásí, co načetl strongSwan, včetně klíčů z doplňku TPM. Porovnávejte otisky nebo hashe veřejných klíčů s inventářem, místo abyste věřili počtu záznamů.
Negativní test je ten, který prokáže návrh. Přesuňte exportovaný klíč z konfiguračního adresáře démona, restartujte službu a v logu přečtěte, jakou identitu předkládá. Tunel, který i tak naběhne, používá úložiště; neúspěšný start znamená, že návrh skutečně běžel na kopii.
Zapište obnovu a návrat
Návrat se výrazně liší mezi oběma rodinami a ten rozdíl patří do návrhové poznámky, ne do hovoru o incidentu. Klíč v souboru lze zálohovat šifrovaný a obnovit, takže neúspěšná migrace je vratná. Neexportovatelný klíč nelze zálohovat vůbec, což dělá opětovné vydání a opětovnou registraci jedinou cestou obnovy, když zařízení zemře.
Kontrolujte vypršení, než se stane výpadkem: openssl x509 -in vpn.crt -noout -checkend 2592000 končí s nenulovým kódem, když certifikát vyprší do třiceti dnů, takže se přímo hodí do monitorovací kontroly. Týdenní spuštění tohoto řádku zachytí obnovu, kterou nikdo nenaplánoval.
Odstranění se děje na serveru: smažte protistranu nebo odvolejte sériové číslo, potom potvrďte, že tunel selže, protože klient s kešovanou relací může načas skrýt napůl dokončené odvolání. Odvolání musí dosáhnout i cesty CRL nebo OCSP koncentrátoru, nejen databáze CA. Certifikát je veřejný dokument a profil RFC 5280 pokrývá, jak se ověřuje; nic z tohoto ověřování nechrání privátní klíč zkopírovaný před rotací.
Napište rozhodnutí na jedno místo: které úložiště drží klíč, který proces ho smí používat, kdo ho může znovu vydat a jaký je návrat. Ten odstavec je to, na co se ptají auditoři, a to, co přežije změnu personálu.