Dva se različita događaja nazivaju procurio SSH ključ, i traže različite reakcije. Autentikacija javnim ključem šalje javni ključ i potpis napravljen privatnim ključem, pa privatni ključ nikada nije polje u zahtjevu. Prosljeđivanje agenta izlaže nešto drugo, jer udaljeni host koji može doći do vašeg proslijeđenog agenta može ga zamoliti da potpiše, a da pritom nikada ne drži ključ. Ako to tretirate kao jedan događaj, završavate ili s besmislenom zamjenom ključa ili s delegiranjem koje ostaje aktivno.

Prijava javnim ključem prenosi potpis, a ne ključ

Razmjena autentikacije nosi korisnikov javni ključ i potpis nad podacima sesije. Poslužitelj provjerava taj potpis prema ključu kojem već vjeruje, zato privatna polovica može ostati na klijentu preko nepouzdane mreže. Operator VPN-a koji gleda tunel u svakom slučaju vidi šifriranu SSH sesiju.

To opisuje protokol, a ne pouzdanost svake krajnje točke na putu. Očuvajte provjeru identiteta hosta, jer klijent koji prihvaća bilo koji ključ hosta odrekao se druge kontrole od one o kojoj govorimo. Presretnuta sesija i presretnut ključ su odvojeni nalazi, a samo je jedan od njih gubitak akreditiva. Držite ih u odvojenim rečenicama izvještaja.

ssh-keygen -lf ~/.ssh/id_ed25519.pub
ssh -o StrictHostKeyChecking=yes [email protected]

Prva naredba ispisuje javni otisak da ga usporedite s onim što poslužitelj navodi. Druga čini provjeru ključa hosta eksplicitnom umjesto oslanjanja na zadanu vrijednost koju nitko nije pročitao. Pokrenite obje prije nego što promijenite bilo što u vezi s ključevima, da osnovica bude dokumentirana.

Prosljeđivanje agenta delegira mogućnost potpisivanja

Kad je prosljeđivanje uključeno, na udaljenom hostu pojavljuje se utičnica, a lokalni agent odgovara na zahtjeve koji kroz nju pristižu. Svatko tko može koristiti tu utičnicu tijekom sesije može se predstaviti kao vi prema hostovima koji prihvaćaju učitane identitete. Nijedan privatni ključ ne prelazi mrežu da bi to radilo.

Sposobnost je izloženost, a ne datoteka. Zato prosljeđivanje pripada imenovanom zadatku i imenovanom hostu, a ne svakoj vezi koju prijenosnik ostvari. Skočni host koji prenosi vezu bez proslijeđenog agenta obično potpuno uklanja potrebu.

ssh-add -l
ssh -o ForwardAgent=no [email protected]
ssh -J [email protected] [email protected]

Prva navodi koje identitete agent trenutačno drži, što je vrijedno znati prije nego što njegovu utičnicu predate drugom stroju. Druga se povezuje bez delegiranja. Treća pokazuje obrazac skočnog hosta koji često u potpunosti zamjenjuje prosljeđivanje.

Odaberite reakciju prema dokazima koje imate

Identitet za potpisivanje za koji se vjeruje da je izložen traži postupak zamjene i opoziva, te uklanjanje njegova prihvaćanja iz servisa koji su mu vjerovali. Brisanje kopije na prijenosniku ostavlja svaku drugu kopiju netaknutom. Počnite od servisa, pa očistite klijente.

Privremeni problem s delegiranjem je uži. Zaustavite prosljeđivanje koje nije bilo potrebno i s vlasnikom incidenta pregledajte koje je sesije i identitete pokrivalo. Zamjena ključa može uslijediti, ali o tome odlučuju dokazi, a ne briga.

Nema uočenog izvoza dokazuje samo da se mehanizam kojeg ste se bojali nije pojavio. To ne govori ništa o tome što je još host s druge strane te utičnice mogao učiniti.

Držite kontrole odvojenima u izvještaju

Zaštitite privatni materijal, ograničite tko može tražiti od njega potpis, zadržite provjereni identitet druge strane. To su tri kontrole koje se međusobno jačaju, i nijedna od njih ne zamjenjuje drugu kada objašnjavate što se dogodilo.

Kompromitiran prijenosnik ili privilegirana aplikacija na njemu treći je slučaj s mnogo širim radijusom djelovanja. Promjena VPN rute to ne rješava i ne vraća povjerenje u ključ koji je možda pročitan s diska.

Zapišite koja je komponenta bila pouzdana, je li prosljeđivanje bilo uključeno i što je zaista uočeno. Upravo taj zapis čini sljedeću odluku obranjivom, umjesto nagađanja o tome što curenje znači.

Povezani članci