Vad SSH egentligen gör
Splync använder HTTPS för att skydda vägen mellan din smartphone och våra servrar, men vi måste också skydda själva servern för att säkra användardata. Apputvecklare och systemadministratörer behöver en säker metod för att komma åt servern för att underhålla och uppdatera. Här kommer SSH (Secure Shell) in i bilden. Det är ett protokoll som låter auktoriserade användare logga in på fjärrdatorer säkert, även över osäkra nätverk. SSH ersätter äldre, osäkra metoder som Telnet, som sände användarnamn och lösenord i klartext.
Idén bakom “Nycklar”
SSH förlitar sig inte på vanliga lösenord. Istället används kryptografiska nycklar — ett matchande par av en publik och en privat nyckel. Tänk på dem som ett lås och en nyckel som bara passar ihop. Den publika nyckeln finns på servern, medan den privata stannar hos användaren. När du ansluter utmanar servern dig att bevisa att du har den privata nyckeln, utan att någonsin visa den. Detta gör det nästan omöjligt för någon att låtsas vara du. Medan vanliga lösenord kan gissas, läckas eller återanvändas är SSH-nycklar långa, slumpmässiga kryptografiska strängar — praktiskt taget ogissningsbara. Även om någon lyckas snappa upp anslutningen ser de bara krypterat brus. Och eftersom SSH-nycklar aldrig skickas över nätverket finns det inget att stjäla under överföringen.
Hur en SSH-nyckel faktiskt ser ut
Om du aldrig har sett en SSH-nyckel kan det verka abstrakt — men det är egentligen bara ett långt block av kodad text. En publik nyckel är vanligtvis flera hundra tecken lång, medan en privat nyckel kan vara över tusen tecken. Båda lagras som textfiler, men deras innehåll ser ut som slumpmässigt brus — en blandning av bokstäver, siffror och symboler. Den publika nyckeln är säker att dela; det är som att sätta ditt lås på servern. Den privata nyckeln är däremot din unika digitala identitet och får aldrig delas. Den lagras lokalt på din dator och används bara för att bevisa att du är den du utger dig för att vara — utan att någonsin avslöja själva nyckeln.
Publik nyckel och privat nyckel
En publik nyckel är som ett lås du sätter på ditt hus. Alla kan se det från gatan, precis som låset på din ytterdörr. Men att se låset berättar inte för någon hur man öppnar det. Med andra ord, alla kan se det, men bara rätt nyckel kan låsa upp det. Å andra sidan är den privata nyckeln nyckeln som öppnar låset — och den stannar säkert hos dig. Om någon annan får tag på din privata nyckel kan de gå in i huset som om de vore du. Därför måste den alltid hållas hemlig.
SSH-mekanism
Varje publik och privat nyckel bildar ett unikt par. De genereras tillsammans genom en matematisk process så att endast den specifika privata nyckeln kan matcha sin motsvarande publika nyckel. Du kan tänka på dem som ett specialtillverkat lås och nyckel — smidda tillsammans, och ingen annan nyckel i världen passar det låset. Även om du genererar ett annat par med samma algoritm (som RSA eller Ed25519) kommer siffrorna inuti att vara helt olika. Den matematik som länkar de två är enkelriktad: du kan enkelt härleda den publika nyckeln från den privata nyckeln, men det är praktiskt taget omöjligt att omvända processen och hitta den privata nyckeln från den publika. Det är därför varje SSH-nyckelpar är unikt och säkert.
Hur SSH bevisar vem du är
När du loggar in på en server med SSH lämnar din privata nyckel aldrig datorn. Istället skickar servern en slumpmässig utmaning — som ett engångspussel — som bara din privata nyckel kan lösa. Din dator signerar den utmaningen matematiskt, och producerar ett kort svar som servern kan kontrollera med din publika nyckel. Om svaret passar vet servern att du har rätt privat nyckel — utan att någonsin se den. Detta är den magi som modern kryptografi erbjuder: du kan bevisa din identitet utan att avslöja din hemlighet. SSH-autentisering fungerar eftersom din privata nyckel innehåller all information för att härleda den publika nyckeln, men det omvända är praktiskt taget omöjligt.
Hur utvecklare praktiskt använder SSH
Varje gång utvecklare distribuerar kod, uppdaterar en databas eller startar om en tjänst, ansluter de ofta till sina fjärrservrar via SSH. Efter autentisering får de en säker kommandoradskoppling till servern. Därifrån kan de hantera filer, starta om tjänster eller granska loggar — allt krypterat från början till slut. I fallet med Splync är SSH hur vi säkert hanterar vår molnserver. Varje administrativ åtgärd — distribuera uppdateringar, kontrollera loggar, säkerhetskopiera data — utförs genom SSH-anslutningar skyddade av kryptografiska nycklar. Ingen kan komma åt servern utan rätt privat nyckel. Även om någon visste vår IP-adress, utan den nyckeln, öppnas inte dörren.
Kommer nästa: Kryptering inne i servern
SSH skyddar ingången till servern och HTTPS skyddar data under överföring. Men när data väl landar i databasen, hur håller vi det säkert? Det är där hashning och kryptering kommer in — det sista försvarslagret.