Secure Remote Password Protocol ( SRPP ) er en adgangskodegodkendelsesprotokol , der er modstandsdygtig over for aflytning og MITM- angreb og ikke kræver en betroet tredjepart. SRP indeholder nogle elementer fra andre nøgleudvekslings- og autentificeringsprotokoller, mens der foretages mindre forbedringer og justeringer. Protokollen bevarer robustheden og effektiviteten af de krypterede nøgleudvekslingsklasseprotokoller , mens den fjerner nogle af deres mangler.
SRP-protokollen giver brugeren mulighed for at identificere sig selv på serveren uden at sende sin adgangskode, det vil sige at bekræfte det faktum, at han kender sin adgangskode, og kun dette faktum. Det har en række nyttige kvaliteter:
SRP implementerer effektivt Zero-Knowledge Proof mellem en bruger og en server, der gemmer oplysninger om deres adgangskode. Når en angriber lytter ad gangen, kan han kun kontrollere én version af adgangskoden, begyndende med version 6 af denne protokol. Denne protokol har mange revisioner, i øjeblikket er den seneste revision 6a.
Som et resultat af driften af denne protokol modtager begge parter en lang hemmelig nøgle, som efter modtagelse kontrolleres for overensstemmelse mellem parterne. I tilfælde, hvor datakryptering er påkrævet ud over godkendelse, giver SRP et mere sikkert middel end SSH og hurtigere end Diffie-Hellman til at opnå dette. SRP version 3 er beskrevet i RFC 2945 . SRP version 6 bruges også til autentificering i SSL / TLS og andre standarder som EAP og SAML og er i øjeblikket ved at blive standardiseret af IEEE P1363 og ISO/IEC 11770-4.
Lad os introducere den notation, der er nødvendig for ræsonnementet:
Begreberne adgangskode og verifikator svarer til de generelt accepterede begreber hemmelige og offentlige nøgler, med to forbehold: adgangskoden er som regel mindre end den hemmelige nøgle , da brugeren husker den, og hans hukommelse er lille; til gengæld ligner verifikatoren matematisk den offentlige nøgle, da den let opnås fra adgangskoden, og den omvendte operation er beregningsmæssigt uafgørlig. Men i stedet for at være offentligt kendt, holdes verifikatoren hemmelig af serveren. En godkendelsesmetode, der kræver, at serveren gemmer en verifikator, men ikke en adgangskode, kaldes verifikatorbaseret.
A , B beregnes ud fra startparametrene (se nedenfor). Serveren gemmer adgangskoder ved hjælp af følgende formel:
Serveren gemmer derefter parret ( I , s , v ) i sin database . Godkendelse foregår på følgende måde:
På begge sider: u = H ( A , B )
På klientsiden:
På serversiden:
Begge parter har nu en fælles hemmelig nøgle K. For at fuldføre godkendelsen skal de bekræfte, at deres nøgler matcher. En af de mulige måder:
Klient -> Server: M = H ( H ( N ) xor H ( g ), H ( I ), s , A , B , K ) og validering på serversiden
Server -> Klient: H ( A , M , K ) og validering på klientsiden
Vi vil tale om simple typer af autentificeringsalgoritmer og deres sårbarheder i sammenligning med denne, som vil vise fordelene ved SRP.
Den enkleste autentificeringsmetode er at sende en ukrypteret adgangskode fra klienten til serveren, hvorefter serveren sammenligner den modtagne adgangskode eller dens hash med en databasepost. Den åbenlyse ulempe er sårbarheden over for aflytning.
Ved at ændre den første algoritme får vi godkendelse med en anmodning og bekræftelse (challenge-response), hvor udvekslingen foregår sådan:
derefter beregner klienten en hash af tre værdier: r, c, adgangskode og sender den tilbage. Denne metode er sårbar over for brute force, da en angriber, der har r, c, hash, kan gætte klientens adgangskode.
Ved at analysere de to første algoritmer kan vi komme til den tredje, som også er beskyttet mod ordbogssøgning. Familien af sådanne protokoller kaldes Encrypted Key Exchange (EKE). Essensen af denne algoritme er, at begge parter genererer deres offentlige nøgler til asymmetrisk kryptering og udveksler dem ved hjælp af en symmetrisk algoritme , ved at bruge brugerens adgangskode, som begge er kendt som en nøgle. Denne familie af protokoller er meget udbredt, med forskellige implementerede modifikationer, der tilføjer nogle egenskaber:
For at undgå alle disse sårbarheder og få en algoritme med en god hastighed, blev AKE ( Asymmetric key exchange ) konceptet udviklet , som adskiller sig fra de tidligere primært ved, at der ikke er nogen kryptering under dataoverførsel, hvilket sparer systemet fra unødvendigt computerkraft og mulige sårbarheder ved visse krypteringsalgoritmer. En implementering af AKE er SRP.