Autentificazione à dui fattori per SSH

"Secure shell" SSH hè un protokollu di rete per stabilisce una cunnessione sicura trà l'ospiti, standard in u portu 22 (chì hè megliu cambià). I clienti SSH è i servitori SSH sò dispunibuli per a maiò parte di i sistemi operativi. Quasi ogni altru protocolu di rete funziona in SSH, vale à dì, pudete travaglià remotamente in un altru urdinatore, trasmette un flussu audio o video nantu à un canale criptatu, etc. In più, via proxy SOCKS in un host remoto pudete cunnette cù altri ospiti in nome di questu host remoto.

L'autentificazione si faci cù una password, ma i sviluppatori è l'amministratori di u sistema usanu tradiziunale e chjave SSH. U prublema hè chì a chjave privata pò esse arrubbata. Aghjunghjendu una passphrase teoricamente pruteghja contra u furtu di a chjave privata, ma in pratica, quandu trasmette è cache e chjave, sò pò ancu esse usatu senza cunferma. L'autentificazione à dui fattori risolve stu prublema.

Cumu implementà l'autentificazione à dui fattori

I sviluppatori di Honeycomb anu publicatu recentemente istruzioni dettagliate, cumu implementà l'infrastruttura approprita nantu à u cliente è u servitore.

L'istruzzioni assume chì avete un certu òspite basi apertu à Internet (bastion). Vulete cunnette à questu òspite da laptops o computer via Internet, è accede à tutti l'altri dispositi chì si trovanu daretu à questu. 2FA assicura chì un attaccu ùn pò micca fà u listessu ancu s'ellu accede à u vostru laptop, per esempiu installendu malware.

A prima opzione hè OTP

OTP - password digitale una volta, chì in questu casu serà utilizatu per l'autentificazione SSH cù a chjave. I sviluppatori scrivenu chì questu ùn hè micca una opzione ideale, perchè un attaccu puderia elevà un bastione falsu, intercepte u vostru OTP è l'utilizanu. Ma hè megliu cà nunda.

In questu casu, da u latu di u servitore, e seguenti linee sò scritte in a cunfigurazione di Chef:

  • metadata.rb
  • attributes/default.rb (di attributes.rb)
  • files/sshd
  • recipes/default.rb (copia da recipe.rb)
  • templates/default/users.oath.erb

Ogni applicazione OTP hè stallata da u cliente: Google Authenticator, Authy, Duo, Lastpass, installatu brew install oath-toolkit o apt install oathtool openssl, allora una stringa aleatoria base16 (chjave) hè generata. Hè cunvertitu à u formatu Base32 chì l'autentificatori mobili utilizanu è impurtatu direttamente in l'applicazione.

In u risultatu, pudete cunnette à Bastion è vede chì avà ùn deve micca solu una passphrase, ma ancu un codice OTP per l'autentificazione:

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

A seconda opzione hè l'autentificazione hardware

In questu casu, l'utilizatore ùn hè micca obligatu à inserisce u codice OTP ogni volta, postu chì u sicondu fattore diventa u dispusitivu hardware o biometrics.

Quì a cunfigurazione di Chef hè un pocu più cumplicata, è a cunfigurazione di u cliente dipende da u SO. Ma dopu avè cumpletu tutti i passi, i clienti in MacOS ponu cunfirmà l'autentificazione in SSH usendu una passphrase è mette un dito nantu à u sensoru (secondu fattore).

I pruprietarii di iOS è Android cunfirmanu u login pressendu un buttone nantu à u vostru smartphone. Questa hè una tecnulugia speciale da Krypt.co, chì hè ancu più sicura ch'è OTP.

In Linux / ChromeOS ci hè una opzione per travaglià cù tokens USB YubiKey. Di sicuru, un attaccante pò arrubbari u vostru token, ma ùn cunnosci ancu a passphrase.

Source: www.habr.com

Add a comment