Cryptology Academy · Lektion

SRP: Secure Remote Password Protocol

Forstå, hvordan SRP lader klient og server autentificere hinanden uden at serveren gemmer adgangskoder.

Lektion 2 af 413 trin

SRP: Secure Remote Password Protocol er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Oversigt over og historik for SRP

Secure Remote Password (SRP)-protokollen blev udviklet af Tom Wu på Stanford og udgivet som RFC 2945 i 2000, og en forbedret version, SRP-6a, blev senere defineret. SRP muliggør gensidig autentifikation baseret på en delt adgangskode uden nogensinde at overføre selve adgangskoden, heller ikke i krypteret form.

Serveren gemmer en verifikator, ikke en adgangskode

Under SRP-registrering beregner klienten en adgangskodeverifikator v = g^x mod N, hvor x = H(salt || password), og N er et stort sikkert primtal. Serveren gemmer kun saltet og verifikatoren v. Selv hvis serverens database kompromitteres, afslører den lagrede verifikator ikke adgangskoden direkte.

Generering af SRP-sessionsnøglen

Under SRP-logon udfører klienten og serveren en Diffie-Hellman-lignende udveksling, som genererer en delt sessionsnøgle. Beregningen på hver side inkorporerer den adgangskodeafledte værdi, så den resulterende sessionsnøgle kun kan beregnes korrekt af en, der henholdsvis kender adgangskoden og verifikatoren.

Gensidig autentifikation i SRP

SRP giver gensidig autentifikation: Klienten beviser, at den kender adgangskoden, og serveren beviser, at den har den legitime verifikator. Det forhindrer phishingangreb, hvor en falsk server forsøger at indsamle adgangskodeoplysninger, fordi en falsk server ikke kan fuldføre SRP-udvekslingen korrekt uden den rigtige verifikator.

Beregning af verifikatoren

Verifikatoren beregnes som v = g^x mod N, hvor x = H(salt || password), g er en generator, og N er et sikkert primtal på 2048 bit eller mere. Problemet med den diskrete logaritme gør det beregningsmæssigt umuligt i praksis at genskabe x ud fra v. Adgangskoden kan kun verificeres ved at fuldføre hele SRP-udvekslingen korrekt.

Forbedringer i SRP-6a

SRP-6a håndterer svagheder i de oprindelige SRP-3- og SRP-6-udformninger ved at indføre en multiplikatorparameter k = H(N, g) og ændre rækkefølgen af beregningerne på klienten og serveren. Disse ændringer forhindrer visse to-for-én-gætteangreb og sikrer, at serverens bidrag bindes tidligt i protokollen.

SRP i produktionssystemer

SRP er blevet anvendt betydeligt i virkelige systemer. Apple bruger SRP i synkroniseringen af iCloud Keychain, så enheder kan hente nøgleringsdata uden at afsløre kontoens adgangskode for Apples servere. 1Password har brugt SRP i sin autentifikationsmodel for at forhindre eksponering af legitimationsoplysninger på serversiden.

SRP forhindrer phishing

Fordi SRP genererer en sessionsnøgle, der knytter både adgangskoden og serverens verifikator sammen, kan en phishingserver ikke fuldføre SRP-håndtrykket korrekt. En bruger, der opretter forbindelse til et phishingwebsted via SRP, vil ikke kunne autentificere sig, hvilket giver en indbygget egenskab mod phishing, som ikke findes ved traditionel indsendelse af adgangskoder.

Begrænsninger ved SRP

SRP er beregningsmæssigt krævende, fordi det kræver modulær eksponentiering med store heltal (2048 bit eller mere). Det er komplekst at implementere korrekt, og mange subtile faldgruber i parametervalideringen har ført til sårbarheder i implementeringer. Protokollen kræver også en sikker kanal (TLS) for at forhindre passiv aflytning af selve udvekslingen.

TLS-SRP-krypteringspakker

RFC 5054 definerer TLS-SRP-krypteringspakker, der integrerer SRP-gensidig autentifikation direkte i TLS-håndtrykket. Det fjerner behovet for servercertifikater og giver stadig krypteret gensidig autentifikation. TLS-SRP har dog i praksis fået begrænset udbredelse, fordi FIDO2 og OPAQUE er kommet frem som mere moderne alternativer.

SRP sammenlignet med moderne alternativer

Selvom SRP var banebrydende, giver moderne alternativer som OPAQUE stærkere sikkerhedsgarantier (modstand mod forudberegning), og FIDO2/adgangsnøgler fjerner adgangskoder helt. Til nye systemer foretrækkes OPAQUE eller FIDO2, men SRP er stadig et gyldigt valg til systemer, der kræver adgangskodebaseret gensidig autentifikation uden sårbarhed over for phishing.

Kontrol af SRP-verifikator

Hvad gemmer serveren i SRP i stedet for brugerens adgangskode?

Opsummering af lektionen: SRP-autentifikation

SRP gemmer en adgangskodeverifikator, ikke adgangskoden, genererer en delt sessionsnøgle gennem en DH-lignende udveksling og giver gensidig autentifikation, der modstår phishing. SRP-6a forbedrer den oprindelige version med modstandsdygtighed over for gætteangreb. Apples iCloud Keychain og 1Password bruger SRP i produktion. OPAQUE og FIDO2 er moderne efterfølgere til nye systemer.

Gratis at komme i gang

Lær Cryptology Academy med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
67
Lektioner
261

Ofte stillede spørgsmål

Er lektionen “SRP: Secure Remote Password Protocol” gratis?

Ja — hele teksten til “SRP: Secure Remote Password Protocol” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “SRP: Secure Remote Password Protocol”?

Forstå, hvordan SRP lader klient og server autentificere hinanden uden at serveren gemmer adgangskoder. Du øver dig i Cryptology Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Cryptology Academy?

Der kræves ingen tidligere erfaring. Cryptology Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “SRP: Secure Remote Password Protocol”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Cryptology Academy-lektion?

Ja. Alle Cryptology Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Det grundlæggende problem med adgangskodeautentificering
  2. SRP: Secure Remote Password Protocol
  3. PAKE-protokoller og deres egenskaber
  4. Adgangskodefri autentificering: WebAuthn og FIDO2
← Tilbage til Cryptology Academy