Twa-faktor autentikaasje foar SSH

"Feilige shell" SSH is in netwurkprotokol foar it oprjochtsjen fan in feilige ferbining tusken hosts, standert oer haven 22 (dat is better om te feroarjen). SSH-kliïnten en SSH-tsjinners binne beskikber foar de measte bestjoeringssystemen. Hast elk oar netwurkprotokol wurket binnen SSH, dat is, jo kinne op ôfstân wurkje op in oare kompjûter, in audio- of fideostream oer in fersifere kanaal ferstjoere, ensfh. Neist, fia SOCKS proxy op in host op ôfstân jo kinne ferbine mei oare hosts út namme fan dizze remote host.

Autentikaasje bart mei in wachtwurd, mar ûntwikkelders en systeembehearders brûke tradisjoneel SSH-kaaien. It probleem is dat de privee kaai kin wurde stellen. It tafoegjen fan in passphrase beskermet teoretysk tsjin stellerij fan 'e privee kaai, mar yn 'e praktyk, by it trochstjoeren en cache fan kaaien, kin noch brûkt wurde sûnder befêstiging. Twa-faktor autentikaasje lost dit probleem op.

Hoe kinne jo twa-faktor-autentikaasje ymplementearje

Untwikkelders út Honeycomb koartlyn publisearre detaillearre ynstruksjes, hoe't jo de passende ynfrastruktuer ymplementearje op 'e kliïnt en server.

De ynstruksjes geane derfan út dat jo in bepaalde basishost hawwe iepen foar it ynternet (bastion). Jo wolle ferbine mei dizze host fan laptops of kompjûters fia it ynternet, en tagong krije ta alle oare apparaten dy't der efter sitte. 2FA soarget derfoar dat in oanfaller itselde net dwaan kin, sels as se tagong krije ta jo laptop, bygelyks troch malware te ynstallearjen.

De earste opsje is OTP

OTP - ienmalige digitale wachtwurden, dy't yn dit gefal sille wurde brûkt foar SSH-ferifikaasje tegearre mei de kaai. De ûntwikkelders skriuwe dat dit gjin ideale opsje is, om't in oanfaller in falske bastion koe ophelje, jo OTP ûnderskeppe en it brûke. Mar it is better as neat.

Yn dit gefal, oan 'e serverkant, wurde de folgjende rigels skreaun yn' e Chef-konfiguraasje:

  • metadata.rb
  • attributes/default.rb (fan attributes.rb)
  • files/sshd
  • recipes/default.rb (kopy fan recipe.rb)
  • templates/default/users.oath.erb

Elke OTP-applikaasje is ynstalleare op 'e kliïntside: Google Authenticator, Authy, Duo, Lastpass, ynstalleare brew install oath-toolkit of apt install oathtool openssl, dan wurdt in willekeurige base16 tekenrige (kaai) oanmakke. It wurdt omboud ta it Base32-formaat dat mobile autentikators brûke en direkt ymporteare yn 'e applikaasje.

As resultaat kinne jo ferbine mei Bastion en sjen dat it no net allinich in passphrase fereasket, mar ek in OTP-koade foar autentikaasje:

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

De twadde opsje is hardware-autentikaasje

Yn dit gefal is de brûker net nedich om elke kear de OTP-koade yn te fieren, om't de twadde faktor it hardware-apparaat of biometrie wurdt.

Hjir is de Chef-konfiguraasje in bytsje komplisearre, en de klantkonfiguraasje hinget ôf fan it OS. Mar nei it foltôgjen fan alle stappen kinne kliïnten op MacOS de autentikaasje yn SSH befêstigje mei in passphrase en in finger op 'e sensor pleatse (twadde faktor).

iOS- en Android-eigners befêstigje oanmelding troch op ien knop op jo smartphone te drukken. Dit is in spesjale technology fan Krypt.co, dy't noch feiliger is as OTP.

Op Linux/ChromeOS is d'r in opsje om te wurkjen mei YubiKey USB-tokens. Fansels kin in oanfaller jo token stelle, mar hy wit de passphrase noch net.

Boarne: www.habr.com

Add a comment