Přístupová fráze klíče SSH chrání soubor, ne trasu
Přístupová fráze šifruje soubor soukromého klíče; neruší identitu a nezabezpečuje trasu. Oddělené úložiště, životnost agenta a provoz bez dozoru.
Záložní disk ze starého notebooku stále obsahuje soukromý klíč SSH a někdo se ptá, zda ho VPN chrání. Nechrání a nikdy nechránila. VPN chrání cestu mezi dvěma sítěmi; přístupová fráze chrání soubor; agent chrání běžící relaci. Tři různé mechanismy, tři různé režimy selhání a ukradená kopie se zajímá jen o první dva.
Přístupová fráze patří k souboru
Přístupová fráze klíče SSH šifruje materiál soukromého klíče v klidu. Není to heslo účtu posílané na server ani přihlašovací údaj pro připojení k VPN. Jejich záměna vede ke změnám, které expozici neřeší.
Příručka ssh-keygen od OpenSSH pokrývá práci s přístupovými frázemi, včetně přepínače -p, který nastaví novou frázi u již existujícího klíče.
U existujícího klíče je tvar příkazu jednoduchý a soubor přepíše:
ssh-keygen -p -f ~/.ssh/id_ed25519
Použijte schválený proces údržby a obnovy vlastníka klíče, protože jde o zápis, ne o kontrolu. Nezveřejňujte soukromý soubor a nedávejte skutečnou frázi na sdílený příkazový řádek. Změna fráze znovu nezašifruje kopii pořízenou dříve. Poznamenejte umístění staré kopie do tiketu, aby se vlastník mohl rozhodnout, zda ji zničit.
Kopie přežije notebook i tunel
Jakmile je soubor klíče zkopírován, živé připojení notebooku k VPN o něm už nic neříká. Důležité je, jak dobře je chráněn samotný soubor, a které servery stále důvěřují odpovídajícímu veřejnému klíči.
Změna fráze u aktuálního souboru se kopie nedotkne a neodstraní stejný veřejný klíč z authorized_keys na serveru. Odvolání a opětovné šifrování jsou samostatné akce.
Proto berte uniklý soukromý klíč jako událost identity, ne jako událost sítě. Odstraňte nebo vyměňte přijatý klíč přes servery a proces registrace, které ho vlastní. Zastavení VPN omezí jednu trasu v jednom okamžiku; není to odvolání.
Odemčení přesune tajemství do agenta
Agent drží dešifrované identity pro pozdější autentizaci, takže uživatel nemusí při každém připojení znovu psát frázi. To je pohodlí s vlastní bezpečnostní hranicí.
ssh-agent může omezit, jak dlouho zůstane identita načtená, pomocí volby -t, a nastavení pro jednotlivou identitu může tento limit přebít. Zvolte politiku pro agenta, kterého skutečně provozujete, místo předpokladu, že odpojení VPN zapomene každý načtený klíč.
Proces kompromitovaný po odemčení klíče je jiný problém než ukradený šifrovaný soubor. Přesměrování agenta na jiný host deleguje schopnost autentizace bez kopírování souboru klíče, takže je zapínejte jen pro schválenou potřebu.
Vypište, co agent právě drží, před změnou a po ní:
ssh-add -l
Úlohy bez dozoru potřebují vlastní plán
Naplánovaná úloha nemůže odpovědět na výzvu. Potřebuje schválené uspořádání strojových přihlašovacích údajů a držení odemykacího tajemství ve stejném adresáři jako klíč, čitelné stejným účtem, nevytváří druhou hranici.
Spolupracujte s vlastníkem služby na podporovaném doručování tajemství nebo hardwarovém provozu a pokryjte obnovu, selhání a zotavení. Chtít člověka u klávesnice mění podobu selhání ve srovnání s hostem, který startuje bez dohledu.
Zachovejte také kontrolu identity hostitele na serveru a jeho omezení účtu. Trasa VPN vám dává soukromou cestu; nedokazuje, že každý SSH posluchač, ke kterému se dostanete, je hostitel, kterého jste zamýšleli. Zaznamenejte posluchače a otisk klíče hostitele do stejného inventáře jako samotný klíč.
Ověřujte hranice odděleně
Otestujte každou hranici vlastní otázkou. Otevře se soubor bez fráze? Drží agent identitu i po odpojení? Přijímá server stále veřejný klíč?
Dva příkazy odpovídají na první a třetí:
ssh-keygen -y -f ~/.ssh/id_ed25519
ssh -v [email protected]
Zaznamenejte ochranu souboru, povolené použití klíče a odstranění na straně serveru jako tři samostatné položky. Tunel, fráze a agent každý střeží jinou část vztahu a jen jeden z nich se týká sítě.