En inloggning som använder en SSH-nyckel via en VPN betyder inte att den privata nyckeln har lämnats till nätverksoperatören, och den lugnande uppgiften är snävare än folk hör. Autentisering med offentlig nyckel skickar en offentlig nyckel och en signatur som klienten skapar lokalt. Agent-vidarebefordran är ett annat arrangemang med en annan exponering, och den kan lämna en användbar autentiseringsförmåga på en maskin du inte kontrollerar. Det svar du är skyldig beror på vilken av de två som faktiskt hände.

Vad autentisering med offentlig nyckel skickar

I standardmetoden med offentlig nyckel erbjuder klienten en offentlig nyckel, servern avgör om den accepterar den nyckeln, och klienten signerar en utmaning med den privata nyckeln, som stannar i dess fil eller dess agent. Det som går över nätet är den offentliga nyckeln och den resulterande signaturen. Inget i det utbytet kräver att servern, tunneln eller någon på vägen har det privata materialet.

Autentiseringsspecifikationen definierar det beviset, och den privata nyckeln är inte ett fält i begäran.

Det är ett påstående om ett protokoll, inte en karaktärsreferens för varje inblandad ändpunkt. Kontrollen av värdidentitet måste fortfarande vara intakt, eftersom en server som inte kan bevisa vem den är kan samla signaturer för ett syfte du inte avsåg. En hyrd VM, en ärvd bastion och en bärbar dator med ett okänt tillägg är tre separata tillitsfrågor. Håll dem åtskilda från den kryptografiska, som är genuint avgjord.

Vad agent-vidarebefordran delegerar

Agent-vidarebefordran öppnar en kanal från fjärrvärden tillbaka till agenten på din maskin, så att processer på den värden kan be agenten att signera utan att någonsin hålla den privata nyckeln. Nyckeln stannar där den är, och förmågan gör det inte. Allt som kan nå den vidarebefordrade socketen på fjärrvärden, under sessionens livstid, kan begära autentiseringsoperationer som en av de laddade identiteterna. Det är delegerad myndighet, och därför förtjänar vidarebefordran en snävare policy än att överlämna en offentlig nyckel.

En kopierad nyckelfil är ett avslöjande. En vidarebefordrad agent är ett tillstånd, och de två behöver olika svar.

Aktivera vidarebefordran för ett namngivet behov och namngivna värdar, och kontrollera vad klienten faktiskt gör i stället för vad konfigurationen verkar säga. Det är de effektiva inställningarna som räknas, eftersom ett värdblock tyst åsidosätter ett globalt standardvärde. Samma logik gäller på serversidan, som helt kan neka vidarebefordran när utrullningen aldrig behöver den.

Läs bevisen innan du väljer ett svar

Om det antas att en privat nyckelfil eller en likvärdig signeringsidentitet har exponerats, är svaret utbyte och återkallelse genom organisationens process, plus borttagning av dess acceptans från varje tjänst som litade på den. Radering av en lokal kopia ogiltigförklarar inte kopiorna du inte kan se.

Om oro är tillfällig agentåtkomst är svaret snävare: stoppa den onödiga delegeringen, granska sessionerna och identiteterna som är inblandade, och låt händelseägaren avgöra om ett utbyte är berättigat. Bevis spelar roll här, eftersom ingen observerad export inte bevisar att ingen autentisering missbrukades, och en ändrad väg ensam är inte en diagnos på en stulen nyckel. Skriv ned vilken komponent som betroddes, om vidarebefordran var aktiverad och vad som faktiskt observerades. Välj sedan svaret som passar det protokollet i stället för det mest dramatiska som finns.

ssh-add -l
ssh -G host.example | grep -i forwardagent

Kör dem före och efter en ändring så att jämförelsen betyder något. En session som upprättades tidigare behåller den delegering den fick, vad inställningarna nu än säger.

Två kontroller som inte är utbytbara

Att skydda privat material, begränsa vem som kan be om att det signeras, och verifiera motpartens identitet är tre relaterade kontroller, och ingen ersätter en annan. Ett team som tar bort vidarebefordran utan att kontrollera värdnycklar har rättat halva problemet. Ett team som roterar en nyckel eftersom vägen ändrades har inte rättat något.

En komprometterad ändpunkt är en fjärde fråga, eftersom privilegierad programvara på din egen maskin kan göra betydligt mer än att observera paket.

Sortera händelsen i dessa kategorier innan du rör något, och ge var och en en ägare. Håll ett kort protokoll över vad som betroddes, vad som delegerades och vad som verifierades, eftersom det protokollet är det som gör nästa granskning billig i stället för ännu en debatt. Om någon kategori är okänd, skriv okänd i stället för att anta det godartade fallet. Skillnaden är praktisk, inte akademisk: den avgör om du byter ut en inloggningsuppgift, återkallar en session eller helt enkelt slutar vidarebefordra.

Relaterade artiklar