Cheie SSH copiată sau agent redirecționat? Două riscuri diferite
O semnătură nu este un fișier de cheie, iar un agent delegat nu este o dezvăluire. Separați faptul de protocol de întrebarea încrederii în punctul final, apoi răspundeți.
O autentificare care folosește o cheie SSH printr-un VPN nu înseamnă că cheia privată a fost predată operatorului rețelei, iar acea liniștire este mai îngustă decât aude lumea. Autentificarea cu cheie publică trimite o cheie publică și o semnătură pe care clientul o produce local. Redirecționarea agentului este o altă aranjare cu o altă expunere și poate lăsa o capacitate de autentificare utilizabilă pe o mașină pe care nu o controlați. Răspunsul pe care îl datorați depinde de care dintre cele două s-a întâmplat de fapt.
Ce trimite autentificarea cu cheie publică
În metoda standard cu cheie publică clientul oferă o cheie publică, serverul decide dacă acceptă acea cheie, iar clientul semnează o provocare cu cheia privată, care rămâne în fișierul său sau în agentul său. Ce traversează rețeaua sunt cheia publică și semnătura rezultată. Nimic în acel schimb nu cere ca serverul, tunelul sau cineva de-a lungul traseului să dețină materialul privat.
Specificația de autentificare definește acea dovadă, iar cheia privată nu este un câmp în cerere.
Aceasta este o afirmație despre un protocol, nu o referință de caracter pentru fiecare punct final implicat. Verificarea identității gazdei trebuie să rămână intactă, pentru că un server care nu poate dovedi cine este poate colecta semnături pentru un scop pe care nu l-ați intenționat. Un VM închiriat, un bastion moștenit și un laptop cu o extensie necunoscută sunt trei întrebări separate de încredere. Țineți-le separate de cea criptografică, care este într-adevăr rezolvată.
Ce delegă redirecționarea agentului
Redirecționarea agentului deschide un canal de la gazda la distanță înapoi la agentul de pe mașina dumneavoastră, astfel încât procesele de pe acea gazdă pot cere agentului să semneze fără a deține vreodată cheia privată. Cheia rămâne unde este, iar capacitatea nu. Orice poate ajunge la acel socket redirecționat pe gazda la distanță, pe durata sesiunii, poate solicita operațiuni de autentificare ca una dintre identitățile încărcate. Aceasta este autoritate delegată, motiv pentru care redirecționarea merită o politică mai îngustă decât predarea unei chei publice.
Un fișier de cheie copiat este o dezvăluire. Un agent redirecționat este o permisiune, iar cele două cer răspunsuri diferite.
Activați redirecționarea pentru o nevoie numită și gazde numite, și verificați ce face clientul de fapt în loc de ce pare să spună configurația. Contează setările efective, pentru că un bloc de gazdă suprascrie în liniște o valoare globală implicită. Același raționament se aplică pe partea de server, care poate refuza complet redirecționarea atunci când implementarea nu are niciodată nevoie de ea.
Citiți dovezile înainte de a alege un răspuns
Dacă se crede că un fișier de cheie privată sau o identitate de semnare echivalentă a fost expusă, răspunsul este înlocuirea și revocarea prin procesul organizației dumneavoastră, plus eliminarea acceptării sale din fiecare serviciu care se baza pe el. Ștergerea unei copii locale nu invalidează copiile pe care nu le vedeți.
Dacă preocuparea este accesul temporar al agentului, răspunsul este mai îngust: opriți delegarea inutilă, revizuiți sesiunile și identitățile implicate, și lăsați proprietarul incidentului să decidă dacă înlocuirea este justificată. Dovezile contează aici, pentru că absența unei exportări observate nu dovedește că nicio autentificare nu a fost folosită abuziv, iar o schimbare de traseu singură nu este un diagnostic al unei chei furate. Notați ce componentă era de încredere, dacă redirecționarea era activă și ce s-a observat de fapt. Apoi alegeți răspunsul care se potrivește cu acea evidență în loc de cel mai dramatic disponibil.
ssh-add -l
ssh -G host.example | grep -i forwardagent
Rulați-le înainte și după o modificare pentru ca comparația să însemne ceva. O sesiune stabilită mai devreme păstrează delegarea care i-a fost acordată, orice ar spune setările acum.
Două controale care nu sunt interschimbabile
Protejarea materialului privat, limitarea cui poate cere semnarea lui și verificarea identității celeilalte părți sunt trei controale înrudite și niciunul nu îl înlocuiește pe altul. O echipă care elimină redirecționarea fără a verifica cheile gazdelor a reparat jumătate dintr-o problemă. O echipă care rotește o cheie pentru că traseul s-a schimbat nu a reparat nimic.
Un punct final compromis este o a patra întrebare, pentru că software-ul privilegiat de pe propria mașină poate face mult mai mult decât să observe pachete.
Sortați incidentul în acele categorii înainte de a atinge ceva, și dați fiecăreia un proprietar. Păstrați o evidență scurtă a ceea ce era de încredere, a ceea ce a fost delegat și a ceea ce a fost verificat, pentru că acea evidență este ceea ce face următoarea revizuire ieftină în loc de o altă dezbatere. Dacă vreo categorie este necunoscută, scrieți necunoscută în loc să presupuneți cazul benign. Distincția este practică, nu academică: decide dacă înlocuiți o acreditare, revocați o sesiune sau pur și simplu opriți redirecționarea.