Jak ověřit otisk certifikátu VPN mimo původní kanál
Otisk prokazuje totožnost jen tehdy, když očekávaná hodnota přijde kanálem, který útočník neovládá. Provedte kontrolu v tomto pořadí.
Otisk je jen tak dobrý, jak dobrý je kanál, který vám řekl, co máte očekávat. Pokud hodnota, se kterou porovnáváte, přišla stejným spojením, které testujete, porovnání neprokazuje nic víc než to, že ten, kdo toto spojení ovládá, je konzistentní. Kontrola musí probíhat v pevném pořadí a neúspěšný krok vás má zastavit, ne posunout k dalšímu. Toto je pořadí, které používám, když klient VPN ohlásí, že se certifikát změnil.
Pojmenujte objekt dřív, než pojmenujete hodnotu
Rozhodněte, zda očekávaná hodnota patří koncovému certifikátu serveru, vydávající CA, nebo veřejnému klíči uvnitř koncového certifikátu. Jsou to tři různé kontroly a selhávají různým způsobem. Shodný otisk CA server nepřipne a hash veřejného klíče záměrně přežije opětovné vydání, které zachová stejný klíč.
Zapište také algoritmus. SHA-256 je dnes běžné očekávání, ale starší nástroje vypisovaly SHA-1, pokud jste nepožádali jinak, a hexadecimální hodnota o 40 znacích je znamení, že se chystáte porovnávat dvě různé věci.
Získejte očekávanou hodnotu druhým kanálem
Druhý kanál musí být takový, do kterého strana, před kterou se chráníte, nemůže zapisovat. Zřizovací systém, ke kterému se už přihlašujete, tištěný záznam v trezoru, konfigurační databáze nebo podepsaný dokument doručený jiným procesem — to vše vyhovuje. Chatová zpráva od kolegy, stránka podpory dosažená přes výsledek hledání a cokoli vložené do terminálu, ve kterém už ladíte, nevyhovují.
Žádejte celou hodnotu a algoritmus, nikdy prefix. Dvojtečky a velikost písmen nehrají roli, ale zkrácení mění kontrolu o 256 bitech v hádanku.
Pokud nikdo nedokáže očekávanou hodnotu dodat z nezávislého zdroje, poctivý výsledek je, že tento certifikát dnes ověřit nelze. Říci to je lepší než připnout to, co klient právě zobrazil, protože tím se z varování stává zvyk.
Získejte hodnotu na své straně
Pro soubor certifikátu je příkaz openssl x509 -in server.crt -noout -fingerprint -sha256. Explicitní digest je důležitý: bez něj výstup závisí na vaší verzi OpenSSL. Výsledkem je hexadecimální řetězec oddělený dvojtečkami, takže dvojtečky odstraňte a obě strany převeďte na malá písmena, než začnete porovnávat.
Pro koncový bod, který mluví TLS přímo, se připojte a certifikát vyveďte potrubím: openssl s_client -connect vpn.example.com:443 -servername vpn.example.com < /dev/null | openssl x509 -noout -fingerprint -sha256. To funguje pro webový administrační panel nebo TLS listener, ne pro OpenVPN, jehož řídicí kanál je uvnitř tunelu. U OpenVPN čtěte certifikát z profilu na disku, místo abyste se ho snažili zachytit ze socketu.
Porovnání má být mechanické. Normalizujte obě hodnoty pomocí tr -d ':' a převodu na malá písmena, pak porovnejte celý řetězec. Porovnávat to okem je způsob, jak shodný prefix skryje rozdíl v posledním bajtu. Pokud se řetězce liší, považujte rozdíl za skutečný, než začnete hledat vysvětlení.
Podmínky zastavení
Zastavte se, pokud se objekt liší, protože otisk CA nemůže očistit koncový certifikát a koncový certifikát nemůže očistit CA. Zastavte se, pokud se liší algoritmus, protože hodnota SHA-1 proti hodnotě SHA-256 vám nic neříká. Zastavte se, pokud otisk sedí, ale certifikát je prošlý, odvolaný nebo vydaný na jiné jméno; shodný hash není kontrola platnosti a neopraví rozbitý řetěz. Zastavte se také, pokud sériové číslo neodpovídá sériovému číslu v záznamu, proti kterému kontrolujete, protože to je nejlevnější způsob, jak odhalit podvržený certifikát.
Zastavte se, pokud nová hodnota přišla kanálem, který jste testovali. Rotace může otisk legitimně změnit, ale náhradní hodnota musí i tak přijít z důvěryhodného procesu, ne z dialogu varování, který otázku vyvolal.
Zastavte se, pokud navrženou opravou je vypnutí ověřování názvu hostitele nebo řetězu. Otisk přidává k běžným kontrolám omezení; nenahrazuje je, ledaže nasazení vědomě zvolilo model pouze s pinem, a taková volba nese vlastní provozní náklady.
Po porovnání
Zaznamenejte, co jste porovnali, odkud očekávaná hodnota přišla a kdy. Pokud byl certifikát znovu vydán, aktualizujte uložené očekávání stejným důvěryhodným kanálem a poznamenejte nové sériové číslo, protože právě sériové číslo činí další rotaci dohledatelnou.
Pak buďte jasní o limitech. Otisk potvrzuje, že certifikát, který držíte, je ten, který vám někdo řekl očekávat. Neříká nic o tom, zda je hostitel nekompromitovaný, ani o tom, zda služba zaznamenává nebo omezuje, kam se tento certifikát může dostat.