SSH-protokoll

Denna sida handlar om SSH-protokollet. För företaget bakom det, se SSH Communications Security. För användning av Linux ssh-kommandot, se Användning av ssh-kommandot. För SSH-klienter, servrar och teknisk information, se hemsidan för SSH (Secure Shell).

SSSH-protokollet (även kallat Secure Shell) är en metod för säker fjärrinloggning från en dator till en annan. Det erbjuder flera alternativa alternativ för stark autentisering och skyddar kommunikationens säkerhet och integritet med stark kryptering. Det är ett säkert alternativ till icke skyddade inloggningsprotokoll (t.ex. telnet, rlogin) och osäkra filöverföringsmetoder (t.ex. FTP).

Typiska användningsområden för SSH-protokollet

Protokollet används i företagsnätverk för:

  • säker åtkomst för användare och automatiserade processer

  • interaktiva och automatiserade filöverföringar

  • utfärdande av fjärrkommandon

  • hantering av nätverksinfrastruktur och andra verksamhetskritiska systemkomponenter.

Hur fungerar SSH-protokollet

Protokollet fungerar i klient-server-modellen, vilket innebär att anslutningen upprättas genom att SSH-klienten ansluter till SSH-servern. SSH-klienten styr anslutningsuppbyggnaden och använder kryptografi med offentliga nycklar för att verifiera SSH-serverns identitet. Efter installationsfasen använder SSH-protokollet stark symmetrisk kryptering och hash-algoritmer för att säkerställa sekretessen och integriteten hos de data som utbyts mellan klienten och servern.

Figuren nedan visar ett förenklat installationsflöde för en säker skalförbindelse.

Stark autentisering med SSH-nycklar

Det finns flera alternativ som kan användas för användarautentisering. De vanligaste är lösenord och autentisering med offentliga nycklar.

Metoden för autentisering med offentliga nycklar används främst för automatisering och ibland av systemadministratörer för single sign-on. Det har visat sig att den används i mycket större utsträckning än vad vi någonsin hade räknat med. Tanken är att ha ett kryptografiskt nyckelpar – offentlig nyckel och privat nyckel – och konfigurera den offentliga nyckeln på en server för att auktorisera åtkomst och ge alla som har en kopia av den privata nyckeln åtkomst till servern. De nycklar som används för autentisering kallas SSH-nycklar. Autentisering med offentlig nyckel används också med smartkort, t.ex. CAC- och PIV-kort som används av den amerikanska regeringen.

Den huvudsakliga användningen av nyckelbaserad autentisering är att möjliggöra säker automatisering. Automatiserade säkra skalfilöverföringar används för att sömlöst integrera program och även för automatiserad system & konfigurationshantering.

Vi har upptäckt att stora organisationer har långt fler SSH-nycklar än vad de föreställer sig, och hanteringen av SSH-nycklar har blivit mycket viktig. SSH-nycklar ger tillgång på samma sätt som användarnamn och lösenord. De kräver liknande processer för tillhandahållande och avslutande.

I vissa fall har vi hittat flera miljoner SSH-nycklar som auktoriserar åtkomst till produktionsservrar i kundmiljöer, där 90 % av nycklarna i själva verket är oanvända och representerar åtkomst som tillhandahållits men aldrig avslutats. Att se till att det finns lämpliga policyer, processer och revisioner även för SSH-användning är avgörande för en korrekt identitets- och åtkomsthantering. Traditionella projekt för identitetshantering har förbisett så mycket som 90 % av alla autentiseringsuppgifter genom att ignorera SSH-nycklar. Vi tillhandahåller tjänster och verktyg för att implementera SSH-nyckelhantering.

SSH ger stark kryptering och integritetsskydd

När en anslutning har upprättats mellan SSH-klienten och servern krypteras de data som överförs enligt de parametrar som förhandlats fram vid installationen. Under förhandlingen kommer klienten och servern överens om vilken symmetrisk krypteringsalgoritm som ska användas och genererar den krypteringsnyckel som ska användas. Trafiken mellan de kommunicerande parterna skyddas med starka krypteringsalgoritmer enligt industristandard (t.ex. AES (Advanced Encryption Standard)), och SSH-protokollet innehåller också en mekanism som säkerställer de överförda uppgifternas integritet med hjälp av standardiserade hash-algoritmer (t.ex. SHA-2 (Standard Hashing Algorithm)).

IETF SSH-standard och detaljerad teknisk dokumentation

Kärnprotokollet

När SSH-protokollet blev populärt tog Tatu Ylonen det till IETF för standardisering. Det är nu en internetstandard som beskrivs i följande dokument:

RFC 4251 – The Secure Shell (SSH) Protocol ArchitectureRFC 4253 – The Secure Shell (SSH) Transport Layer ProtocolRFC 4252 – The Secure Shell (SSH) Authentication ProtocolRFC 4254 – The Secure Shell (SSH) Connection Protocol

SFTP-filöverföringsprotokoll

SFTP (SSH File Transfer Protocol) är troligen det säkra filöverföringsprotokollet som används mest idag. Det körs över SSH och är för närvarande dokumenterat i draft-ietf-secsh-filexfer-02

Filformat för offentliga nycklar

Filformatet för offentliga nycklar är inte en formell standard (det är ett informationsdokument), men många implementationer stöder detta format.RFC 4716 – The Secure Shell (SSH) Public Key File Format

Hur man citerar SSH

För att citera SSH i ett forskningsarbete, använd följande:

Tatu Ylonen: SSH - Secure Login Connections over the Internet.Proceedings of the 6th USENIX Security Symposium, pp. 37-42,USENIX, 1996.