Två olika händelser kallas en läckt SSH-nyckel, och de kräver olika reaktioner. Autentisering med offentlig nyckel skickar en offentlig nyckel och en signatur skapad med den privata nyckeln, så den privata nyckeln är aldrig ett fält i begäran. Vidarebefordran av agent exponerar något annat, eftersom en fjärrvärd som når den vidarebefordrade agenten kan be den signera utan att någonsin hålla nyckeln. Behandlar man de två som en enda händelse slutar det antingen med ett meningslöst nyckelbyte eller med en delegering som fortsätter att gälla.

Inloggning med offentlig nyckel överför en signatur, inte nyckeln

Autentiseringsutbytet bär användarens offentliga nyckel och en signatur över sessionsdata. Servern kontrollerar signaturen mot nyckeln den redan litar på, därför kan den privata halvan stanna på klienten över ett otillförlitligt nät. En VPN-operatör som ser tunneln ser ändå en krypterad SSH-session.

Det beskriver protokollet, inte tillförlitligheten hos varje ändpunkt på vägen. Behåll värdidentitetskontrollen intakt, för en klient som accepterar vilken värdnyckel som helst har gett upp en annan kontroll än den vi diskuterar. En avlyssnad session och en avlyssnad nyckel är separata fynd, och bara ett av dem är förlust av inloggningsuppgifter. Håll de två i var sin mening i rapporten.

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

Det första kommandot skriver ut det offentliga fingeravtrycket så att du kan jämföra det med det servern listar. Det andra gör värdnyckelkontrollen explicit i stället för att lita på ett standardvärde som ingen har läst. Kör båda innan du ändrar något med nycklar, så att utgångsläget dokumenteras.

Vidarebefordran av en agent delegerar rätten att signera

När vidarebefordran är påslagen dyker en socket upp på fjärrvärden och den lokala agenten svarar på förfrågningar som kommer genom den. Den som kan använda den socketen under sessionen kan autentisera sig som du mot värdar som accepterar de inlästa identiteterna. Ingen privat nyckel korsar nätet för att detta ska fungera.

Det är förmågan, inte filen, som är exponeringen. Därför hör vidarebefordran till en namngiven uppgift och en namngiven värd, inte till varje anslutning en bärbar dator gör. En språngvärd som förmedlar anslutningen utan en vidarebefordrad agent tar oftast bort behovet helt.

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

Det första listar vilka identiteter agenten har just nu, bra att veta innan du lämnar dess socket till en annan maskin. Det andra ansluter utan delegering. Det tredje visar mönstret med språngvärd som ofta ersätter vidarebefordran helt.

Välj reaktionen utifrån de bevis du har

En signeringsidentitet som antas vara exponerad kräver processen för utbyte och återkallning, och att acceptansen tas bort från de tjänster som litade på den. Att radera kopian på den bärbara datorn lämnar alla andra kopior orörda. Börja med tjänsterna och städa sedan klienterna.

Ett tillfälligt delegeringsproblem är snävare. Avsluta vidarebefordran som inte behövdes, och gå igenom med ägaren av incidenten vilka sessioner och identiteter den omfattade. Nyckelbyte kan följa, men det avgörs av bevis och inte av oro.

Ingen observerad export bevisar bara att mekanismen du fruktade inte dök upp. Det säger ingenting om vad en värd i andra ändan av den socketen annars hade kunnat göra.

Håll kontrollerna åtskilda i rapporten

Skydda det privata materialet, begränsa vem som kan be det signera, håll motpartens identitet verifierad. Det är tre kontroller som förstärker varandra, och ingen av dem ersätter en annan när du förklarar vad som hände.

En komprometterad bärbar dator eller ett privilegierat program på den är ett tredje fall med mycket större räckvidd. Att ändra VPN-rutten löser det inte och det återställer inte tilliten till en nyckel som kan ha lästs från disken.

Skriv ned vilken komponent som betroddes, om vidarebefordran var på och vad som faktiskt observerades. Det är den dokumentationen som gör nästa beslut försvarbart, i stället för en gissning om vad ett läckage betyder.

Relaterade artiklar