«Sigurna ljuska» SSH je mrežni protokol za uspostavljanje zaštićene veze između hostova, obično na portu 22 (koji je bolje promijeniti). SSH klijenti i SSH poslužitelji dostupni su za većinu operativnih sustava. Unutar SSH-a radi praktično svaki drugi mrežni protokol, što znači da se može raditi na drugom računalu, prenositi zvučne ili video tokove preko šifriranog kanala itd. Osim toga, možete se povezati s drugim hostovima u ime tog udaljenog hosta.
Autentifikacija se događa putem lozinke, ali programeri i sustavni administratori tradicionalno koriste SSH ključeve. Problem je u tome što tajni ključ može biti ukraden. Dodavanje fraze provale teoretski štiti od krađe tajnog ključa, ali u praksi tijekom prosljeđivanja i keširanja ključeva oni . Dvofaktorska autentifikacija rješava ovaj problem.
Kako implementirati dvofaktorsku autentifikaciju
Programeri iz tvrtke Honeycomb nedavno su objavili , kako implementirati odgovarajuću infrastrukturu na klijentu i poslužitelju.
Upute pretpostavljaju da imate neki osnovni host otvoren na internetu (bastion). Želite se povezati s ovim hostom s prijenosnih računala ili računala putem interneta i dobiti pristup svim ostalim uređajima koji se nalaze iza njega. 2FA jamči da napadač ne može učiniti isto, čak i ako dobije pristup vašem prijenosnom računalu, na primjer, instalirajući zloćudni softver.
Prva opcija — OTP
OTP su jednokratne digitalne lozinke, koje će se u ovom slučaju koristiti za SSH autentifikaciju zajedno s ključem. Programeri navode da to nije idealna opcija, jer napadač može postaviti lažni bastion, presresti vaš OTP i koristiti ga. Ali to je bolje od ničega.
U ovom slučaju na poslužiteljskoj strani u konfiguraciji Chef upisuju se sljedeće linije:
metadata.rbattributes/default.rb(izattributes.rb)files/sshdrecipes/default.rb(kopija izrecipe.rb)templates/default/users.oath.erb
Na klijentskoj strani instalira se bilo koja OTP aplikacija: Google Authenticator, Authy, Duo, Lastpass, instalira se brew install oath-toolkit ili apt install oathtool openssl, a zatim se generira nasumični niz base16 (ključ). On se konvertira u format Base32, koji koriste mobilni autentifikatori, i izravno se uvozi u aplikaciju.
Na kraju se možete povezati s bastionom i uvjeriti se da sada zahtijeva ne samo lozinku, već i OTP kod za autentifikaciju:
➜ ssh -A bastion
Unesite lozinku za ključ '[snip]':
Jednokratna lozinka (OATH) za '[user]':
Dobrodošli u Ubuntu 18.04.1 LTS...Druga opcija — hardverska autentifikacija
U ovom slučaju korisniku nije potrebno svaki put unositi OTP kod, budući da drugi faktor postaje hardverski uređaj ili biometrika.
Ovdje je konfiguracija Chefa malo složenija, a konfiguracija klijenata ovisi o operativnom sustavu. No, nakon svih ovih koraka, klijenti na MacOS-u mogu potvrditi autentifikaciju u SSH-u pomoću lozinke i stavljanjem prsta na senzor (drugi faktor).
Vlasnici iOS-a i Androida potvrđuju prijavu . Ovo je posebna tehnologija od Krypt.co, koja je čak sigurnija od OTP-a.
Na Linuxu/ChromeOS-u postoji opcija rada s USB tokenima YubiKey. Naravno, napadač može ukrasti vaš token, ali i dalje ne zna lozinku.
Izvor: habr.com
