Autenticació de dos factors per a SSH

"Secure shell" SSH és un protocol de xarxa per establir una connexió segura entre amfitrions, normalment a través del port 22 (que és millor canviar). Els clients SSH i els servidors SSH estan disponibles per a la majoria de sistemes operatius. Gairebé qualsevol altre protocol de xarxa funciona dins de SSH, és a dir, podeu treballar de forma remota en un altre ordinador, transmetre un flux d'àudio o vídeo a través d'un canal xifrat, etc. A més, mitjançant un servidor intermediari SOCKS en un host remot podeu connectar-vos a altres amfitrions en nom d'aquest amfitrió remot.

L'autenticació es produeix mitjançant una contrasenya, però els desenvolupadors i els administradors del sistema utilitzen tradicionalment claus SSH. El problema és que es pot robar la clau privada. Afegir una frase de contrasenya protegeix teòricament contra el robatori de la clau privada, però a la pràctica, quan s'envien i emmagatzemen claus a la memòria cau, aquestes encara es pot utilitzar sense confirmació. L'autenticació de dos factors resol aquest problema.

Com implementar l'autenticació de dos factors

Els desenvolupadors de Honeycomb han publicat recentment instruccions detallades, com implementar la infraestructura adequada al client i al servidor.

Les instruccions assumeixen que teniu un host bàsic determinat obert a Internet (bastió). Voleu connectar-vos a aquest amfitrió des d'ordinadors portàtils o ordinadors a través d'Internet i accedir a tots els altres dispositius que hi ha darrere. 2FA garanteix que un atacant no pot fer el mateix encara que tingui accés al vostre ordinador portàtil, per exemple, instal·lant programari maliciós.

La primera opció és OTP

OTP: contrasenyes digitals d'un sol ús, que en aquest cas s'utilitzaran per a l'autenticació SSH juntament amb la clau. Els desenvolupadors escriuen que aquesta no és una opció ideal, perquè un atacant podria aixecar un bastió fals, interceptar el vostre OTP i utilitzar-lo. Però és millor que res.

En aquest cas, al costat del servidor, s'escriuen les línies següents a la configuració de Chef:

  • metadata.rb
  • attributes/default.rb (de attributes.rb)
  • files/sshd
  • recipes/default.rb (còpia de recipe.rb)
  • templates/default/users.oath.erb

Qualsevol aplicació OTP està instal·lada al costat del client: Google Authenticator, Authy, Duo, Lastpass, instal·lat brew install oath-toolkit o apt install oathtool openssl, aleshores es genera una cadena aleatòria base16 (clau). Es converteix al format Base32 que utilitzen els autenticadors mòbils i s'importen directament a l'aplicació.

Com a resultat, podeu connectar-vos a Bastion i veure que ara requereix no només una frase de contrasenya, sinó també un codi OTP per a l'autenticació:

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

La segona opció és l'autenticació de maquinari

En aquest cas, l'usuari no està obligat a introduir el codi OTP cada vegada, ja que el segon factor es converteix en el dispositiu de maquinari o la biometria.

Aquí la configuració del xef és una mica més complicada i la configuració del client depèn del sistema operatiu. Però després de completar tots els passos, els clients de MacOS poden confirmar l'autenticació en SSH mitjançant una frase de contrasenya i posant un dit al sensor (segon factor).

Els propietaris d'iOS i Android confirmen l'inici de sessió prement un botó del vostre telèfon intel·ligent. Aquesta és una tecnologia especial de Krypt.co, que és encara més segura que OTP.

A Linux/ChromeOS hi ha una opció per treballar amb fitxes USB YubiKey. Per descomptat, un atacant pot robar el vostre testimoni, però encara no sap la contrasenya.

Font: www.habr.com

Afegeix comentari