RSA-nøkkel kryptering

Bilde av chris panas fra Unsplash

Bilde av chris panas fra Unsplash

Asynkron kyptering med nøkkelpar

Publik key og Private key

RSA-nøkkel kryptering fungerer slik at du har to krypterings nøkler. Disse heter Public Key og Private Key.

Prinsipielt fungere det slik at hvis du krypterer en tekst med en av de to nøklene er det kun den andre nøkkelen i paret som kan dekryptere denne teksten. Dette kalles for asynkron kryptering. Man kan altså ikke bruke den samme nøkkelen til som ble brukt til å kryptere teksten til å dekryptere teksten.

Dette er det motsatte av synkron kryptering hvor man kan bruke den samme nøkkelen til både kryptering og dekryptering.

Det geniale med denne kryptering metoden er at du kan gi alle i hele verden en kopi av din Public key. Og alle som vil sende en kryptert beskjed til deg kan bruke sin kopi av din Public key til å kryptere beskjeden. Men siden det er kun din Private key som kan dekryptere beskjeden er det det kun du, og ingen andre som kan lese den.

RSA-nøkler for autentisering

Et sikrere alternativ til brukernavn og passord

Asynkron kryptering kan brukes til autentisering, altså til å bevise at du er den du sier du er. Da brukers din Private key til å kryptere en beskjed som blir sendt til noen andre. Siden det kun er din Public key som klarer å dekryptere beskjeden, kan den som mottar beskjeden være sikker på at det var du, og ingen andre som sendte beskjeden.

RSA står for Rivest–Shamir–Adleman. Dette er navnene til skaperne av krypterings metoden.

Det fine med denne formen for innlogging er at du autentiserer deg selv med noe du har i stedet for noe du vet. Noe som gjør sikkerheten automatisk mere streng og trygg.

Siden RSA nøkler er en ganske lange streng med tilsynelatende tilfeldige tall, tegn og bokstaver er det praktisk talt umulig å gjette seg frem til rett nøkkel ved å bruke tall- og bokstavkombinasjoner eller bruk av ordbøker og andre angrepsmetoder til å bryte seg inn på kontoen din.

RSA-nøkler for SSH autentisering

Rask og trygg innlogging

Siden man kun kan bruke din public key for å dekryptere tekst som er kryptert med din private key kan dette erstatte et langt og komplisert passord. Resultatet er du kan bruke ett komplisert passord som det er lett for deg å bruke, og vanskelig for alle andre å knekke passordet.

Hvis du skal logge deg inn på en annen Linux maskin via SSH, kan det være praktisk å bruke RSA nøkler i stedet for å måtte skrive passord hver gang du logger inn på maskinen. SSH klienten din sender passordet ditt kryptert med din Private Key for å autentisere deg. Maskinen du prøver å logge på vil skjønne at du forsøker å autentisere med hjelp av RSA kryptering, så den vil da gå inn i din home mappe og bruke din Public Key som ligger lagret der. Hvis den klarte å dekryptere innlogging forsøket ditt med din Private key vet det at det var du som forsøkte å logge deg in.

For å bruke RSA-nøkler til SSH autentisering må du først generer ett RSA nøkkelpar. Det gjør du ved å kjøre kommandoen:

ssh-keygen

Denne kommandoen generer ett nøkkelpar, som vil legge seg i mappen ".ssh", i din home mappe.

For å kopiere din Public key til Linux maskinen du ønsker å ligge inn på kjører du kommandoen:

ssh-copy-id <user>@<host>

Her erstatter du ditt brukernavn med <user>, og datamaskinens IP-adresse eller URL med <host>.

Når dette er gjort blir du bedt om å skrive inn passordet du normalt logger inn med på den maskinen med. Hvis du skrev inn rett passord vil din Public key automatisk bli kopiert inn i .ssh mappen i din home mappe på denne datamaskinen.

Neste gang du kobler til maskinen via SSH vil du slippes inn uten at du må skrive inn passord.