"Secure Shell" SSH er en netværksprotokol til at etablere en sikker forbindelse mellem værter, som standard over port 22 (som er bedre at ændre). SSH-klienter og SSH-servere er tilgængelige for de fleste operativsystemer. Næsten enhver anden netværksprotokol fungerer inde i SSH, det vil sige, du kan arbejde eksternt på en anden computer, transmittere en lyd- eller videostream over en krypteret kanal osv. Udover,
Autentificering sker ved hjælp af en adgangskode, men udviklere og systemadministratorer bruger traditionelt SSH-nøgler. Problemet er, at den private nøgle kan blive stjålet. Tilføjelse af en adgangssætning beskytter teoretisk mod tyveri af den private nøgle, men i praksis, når du videresender og cache nøgler,
Sådan implementeres to-faktor-godkendelse
Udviklere fra Honeycomb har for nylig offentliggjort
Instruktionerne forudsætter, at du har en vis basisvært åben til internettet (bastion). Du vil oprette forbindelse til denne vært fra bærbare computere eller computere via internettet og få adgang til alle andre enheder, der er placeret bag den. 2FA sikrer, at en angriber ikke kan gøre det samme, selvom de får adgang til din bærbare computer, for eksempel ved at installere malware.
Den første mulighed er OTP
OTP - digitale engangsadgangskoder, som i dette tilfælde vil blive brugt til SSH-godkendelse sammen med nøglen. Udviklerne skriver, at dette ikke er en ideel mulighed, fordi en angriber kan rejse en falsk bastion, opsnappe din OTP og bruge den. Men det er bedre end ingenting.
I dette tilfælde, på serversiden, skrives følgende linjer ind i Chef-konfigurationen:
metadata.rb
attributes/default.rb
(afattributes.rb
)files/sshd
recipes/default.rb
(kopi frarecipe.rb
)templates/default/users.oath.erb
Enhver OTP-applikation er installeret på klientsiden: Google Authenticator, Authy, Duo, Lastpass, installeret brew install oath-toolkit
eller apt install oathtool openssl
, så genereres en tilfældig base16-streng (nøgle). Det konverteres til Base32-formatet, som mobile autentificeringer bruger, og importeres direkte til applikationen.
Som et resultat kan du oprette forbindelse til Bastion og se, at det nu ikke kun kræver en adgangssætning, men også en OTP-kode til godkendelse:
➜ ssh -A bastion
Enter passphrase for key '[snip]':
One-time password (OATH) for '[user]':
Welcome to Ubuntu 18.04.1 LTS...
Den anden mulighed er hardwaregodkendelse
I dette tilfælde er brugeren ikke forpligtet til at indtaste OTP-koden hver gang, da den anden faktor bliver hardwareenheden eller biometri.
Her er Chef-konfigurationen lidt mere kompliceret, og klientkonfigurationen afhænger af OS. Men efter at have gennemført alle trinene, kan klienter på MacOS bekræfte godkendelse i SSH ved hjælp af en adgangssætning og placere en finger på sensoren (anden faktor).
iOS- og Android-ejere bekræfter login
På Linux/ChromeOS er der mulighed for at arbejde med YubiKey USB-tokens. Selvfølgelig kan en angriber stjæle dit token, men han kender stadig ikke adgangssætningen.
Kilde: www.habr.com