„Bezpečný protokol“ SSH je sieťový protokol na vytváranie zabezpečeného spojenia medzi hosťami, štandardne na porte 22 (čo je lepšie zmeniť). SSH klienti a SSH servery sú dostupné pre väčšinu operačných systémov. V rámci SSH funguje prakticky akýkoľvek iný sieťový protokol, t.j. je možné na diaľku pracovať na inom počítači, prenášať cez šifrovaný kanál zvukový alebo video prenos a podobne. Okrem toho, sa môžeš pripojiť k iným hostiteľom už na meno tohto vzdialeného hostiteľa.
Autentifikácia prebieha pomocou hesla, ale vývojári a systémoví administrátori tradične používajú SSH kľúče. Problém je v tom, že tajný kľúč môže byť ukradnutý. Pridanie heslovej frázy teoreticky chráni pred krádežou tajného kľúča, ale v praxi pri presmerovaní a cachovaní kľúčov sa . Dvojfaktorová autentifikácia tento problém rieši.
Ako implementovať dvojfaktorovú autentifikáciu
Vývojári zo spoločnosti Honeycomb nedávno publikovali , ako realizovať potrebnú infraštruktúru na klientovi a serveri.
Návod predpokladá, že máš nejaký základný hosť, otvorený na internete (bastion). Chceš sa k tomuto hostiteľovi pripojiť z notebookov alebo počítačov cez internet a získať prístup ku všetkým ostatným zariadeniam, ktoré sa nachádzajú za ním. 2FA zabezpečuje, že útočník nemôže urobiť to isté, aj keby mal prístup k tvojmu notebooku, napríklad nainštalovaním škodlivého softvéru.
Prvá možnosť — OTP
OTP — jednorazové digitálne heslá, ktoré sa v tomto prípade budú používať na SSH autentifikáciu spolu s kľúčom. Vývojári píšu, že to nie je ideálna možnosť, pretože útočník môže vybudovať falošný bastion, zachytiť tvoje OTP a použiť ho. Ale je to lepšie ako nič.
V tomto prípade sa na serverovej strane do konfigurácie Chef zapíšú nasledujúce riadky:
metadata.rbattributes/default.rb(zattributes.rb)files/sshdrecipes/default.rb(kópia zrecipe.rb)templates/default/users.oath.erb
Na klientskej strane sa nainštaluje akákoľvek OTP aplikácia: Google Authenticator, Authy, Duo, Lastpass, nainštaluje sa brew install oath-toolkit alebo apt install oathtool openssl, potom sa vygeneruje náhodný reťazec base16 (kľúč). Prevedie sa do formátu Base32, ktorý používajú mobilné autentifikátory, a importuje sa priamo do aplikácie.
Nakoniec sa môžete pripojiť k bastionu a overiť, že teraz vyžaduje nielen heslovú frázu, ale aj OTP kód na autentifikáciu:
➜ ssh -A bastion
Zadajte heslovú frázu pre kľúč '[snip]':
Jednorazové heslo (OATH) pre '[user]':
Vitajte v Ubuntu 18.04.1 LTS...Druhou možnosťou je hardvérová autentifikácia
V tomto prípade sa od používateľa nevyžaduje, aby zakaždým zadával OTP kód, pretože druhým faktorom sa stáva hardvérové zariadenie alebo biometria.
Tu je konfigurácia Chef trochu zložitejšia a konfigurácia klientov závisí od OS. Ale po vykonaní všetkých krokov môžu klienti na MacOS potvrdiť autentifikáciu v SSH pomocou heslovej frázy a priložením prsta k senzoru (druhý faktor).
Majitelia iOS a Android potvrdenia prihlásenia . Je to špeciálna technológia od Krypt.co, ktorá je bezpečnejšia ako OTP.
Na Linuxe/ChromeOS existuje možnosť práce s USB tokenmi YubiKey. Samozrejme, útočník môže ukradnúť váš token, ale aj tak nevie heslovú frázu.
Zdroj: habr.com
