[S13L3] JSON Web Token (JWT) Flashcards
Woraus besteht ein JSON Web Token?
Aus 3 Teilen, die mit einem . Punkt unterteilt werden
- Header (Algorithm & Token Type)
- Payload (Data)
- Verify Signature (base64 encoding)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZ
SI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Wie sieht der Header eines JWT aus?
{
“alt”: ‘GS256’,
“typ”: ‘JWT’,
}
Wie sieht die Payload eines JWT aus?
{ "sub": "12345", "name": "John Doe", "iat": 12334timestamp }
Wie sieht die Verify Signature eines JWT aus?
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), your-256-bit-secret )
Was sollte man für die Daten im JWT beachten?
- Die Datenmenge sollte immer so gering wie möglich bleiben
- Man sollte niemals Daten darin senden, welche eigentlich protected oder private sein sollten
Sind JSON Web Tokens verschlüsselt?
- Nein, jeder kann diese lesen
- Sie sind nur signiert und es kann verifiziert werden, dass das Token echt ist
Woher weißt der Server, dass der JWT nicht vom Client oder Mittelmännern manipuliert wurde?
-Durch die kryptographische Signature, welche die Daten genau so wie sie sind verifiziert mit einem secret