DPoP (Demonstrating Proof-of-Possession)
Forstå DPoP, en mekanisme som kryptografisk knytter access tokens til klienten, styrker tokensikkerheten og hindrer eksfiltrering av tokens.
DPoP (Demonstrating Proof-of-Possession) er en gratis leksjon i OAuth2 og OpenID Connect i dybden på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i OAuth2 og OpenID Connect i dybden, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i OAuth2 og OpenID Connect i dybden inneholder totalt 4 leksjoner.
Hva er DPoP?
Velkommen! I dag skal vi utforske DPoP, som står for Demonstrating Proof-of-Possession. Det er en viktig sikkerhetsforbedring for OAuth2 og OpenID Connect.
DPoP bidrar til å forhindre en alvorlig sikkerhetsrisiko: stjålne access token. Det sikrer at bare den legitime klienten (appen) kan bruke et access token.
Problemet med token-tyveri
Se for deg at en angriper stjeler et access token. Uten DPoP kan angriperen bruke dette tokenet til å få tilgang til de beskyttede ressursene dine og utgi seg for å være den legitime klienten.
Denne «token-eksfiltreringen» er en betydelig sårbarhet. Vanlige bearer token hindrer ikke dette i seg selv, fordi alle som «bærer» (har) tokenet, kan bruke det.
Slik løser DPoP problemet
DPoP knytter et access token kryptografisk til en bestemt klients private nøkkel. Tenk på det som en digital signatur som bare den rettmessige klienten kan opprette.
Her er hovedideen:
- Klienten genererer et unikt nøkkelpar.
- Den offentlige nøkkelen knyttes til access tokenet.
- Klienten «beviser at den har» den private nøkkelen med hver forespørsel.
Klientens hemmelige nøkkelpar
Prosessen starter med at klientapplikasjonen genererer et asymmetrisk kryptografisk nøkkelpar. Det betyr at den oppretter både en privat nøkkel og en offentlig nøkkel.
- Den private nøkkelen holdes hemmelig av klienten.
- Den offentlige nøkkelen kan deles uten at sikkerheten svekkes.
Dette nøkkelparet er unikt for klientøkten eller klientinstansen.
Be om et DPoP-token
Når klienten ber om et access token fra Authorization Server, inkluderer den en spesialheader kalt DPoP i forespørselen.
Denne DPoP-headeren inneholder en JSON Web Token (JWT) signert med klientens private nøkkel. Denne JWT-en inneholder en hash av klientens offentlige nøkkel.
DPoP-JWT-en og jkt-claimen
JWT-en i DPoP-headeren er «beviset på at nøkkelen finnes hos klienten». Den inneholder flere claims:
jkt: JSON Web Key Thumbprint for klientens offentlige nøkkel.htm: HTTP-metoden for forespørselen (for eksempel GET eller POST).htu: HTTP-URL-en for forespørselen.iat: Tidspunktet da tokenet ble utstedt, noe som hindrer replay-angrep.
Authorization Server validerer denne JWT-en og knytter jkt til det utstedte access tokenet.
Bruke et DPoP-bundet token
Når klienten har mottatt et DPoP-bundet access token, bruker den det til å få tilgang til beskyttede ressurser på Resource Server.
For hver forespørsel til Resource Server må klienten sende en ny DPoP-header med en fersk JWT, signert med den private nøkkelen, som samsvarer med den aktuelle forespørselens htm og htu.
Validering på Resource Server
Resource Server utfører flere kritiske kontroller:
- Den verifiserer signaturen til DPoP-JWT-en ved hjelp av den offentlige nøkkelen som utledes fra
jkt-claimen. - Den kontrollerer at
jkti DPoP-JWT-en samsvarer medjktsom er lagret i selve access tokenet. - Den kontrollerer at claimene
htmoghtui DPoP-JWT-en samsvarer med den faktiske HTTP-forespørselen.
Hvis en kontroll mislykkes, nektes tilgang. Dette sikrer at bare klienten som har den private nøkkelen, kan bruke tokenet.
DPoP vs. Mutual TLS (mTLS)
Du lurer kanskje på Mutual TLS (mTLS). Både DPoP og mTLS knytter token til en klient, men de opererer på ulike lag:
- mTLS: Knytter token på TLS-laget (transportlaget) ved hjelp av klientsertifikater.
- DPoP: Knytter token på applikasjonslaget ved hjelp av kryptografiske bevis i HTTP-headere.
DPoP er ofte mer fleksibelt og enklere å implementere for et bredere utvalg klienttyper (særlig offentlige klienter som mobilapper) enn mTLS.
Test DPoP-kunnskapene dine
Hvilke av de følgende er viktige fordeler ved å bruke DPoP i OAuth2/OIDC-implementeringer?
DPoP: En sterkere binding
Gratulerer! Du har lært om DPoP, en kraftig sikkerhetsmekanisme.
DPoP forbedrer OAuth2 og OIDC ved å knytte access token kryptografisk til klientens private nøkkel. Dermed hindres eksfiltrering av token effektivt, og stjålne token blir ubrukelige for angripere.
Dette «beviset på at nøkkelen finnes hos klienten» styrker sikkerheten i applikasjonene dine betydelig ved å sikre at bare den legitime klienten kan bruke access tokenene sine.
Lær deg OAuth2 og OpenID Connect i dybden med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «DPoP (Demonstrating Proof-of-Possession)» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien OAuth2 og OpenID Connect i dybden, inkludert «DPoP (Demonstrating Proof-of-Possession)», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i OAuth2 og OpenID Connect i dybden inneholder totalt 4 leksjoner.
Hva lærer jeg i «DPoP (Demonstrating Proof-of-Possession)»?
Forstå DPoP, en mekanisme som kryptografisk knytter access tokens til klienten, styrker tokensikkerheten og hindrer eksfiltrering av tokens. Du øver på OAuth2 og OpenID Connect i dybden med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med OAuth2 og OpenID Connect i dybden?
Ingen tidligere erfaring er nødvendig. OAuth2 og OpenID Connect i dybden på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «DPoP (Demonstrating Proof-of-Possession)»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne OAuth2 og OpenID Connect i dybden-leksjonen?
Ja. Alle OAuth2 og OpenID Connect i dybden-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- FAPI og API-er på finansnivå
- DPoP (Demonstrating Proof-of-Possession)
- Continuous Access Evaluation Protocol (CAEP)
- Push-baserte autorisasjonsforespørsler (PAR)