Ich möchte JWT in meiner Anwendung verwenden. Jetzt frage ich mich, ob es sicher ist, das Benutzerpasswort in Kombination mit einem privaten Geheimnis als Schlüssel zu verwenden, um meine Token zu signieren. Auf diese Weise werden Token ungültig, wenn ein Benutzer sein Passwort ändert. Aber vielleicht macht es mein privates Geheimnis anfällig? Danke für Ihre Gedanken dazu!JWT mit Benutzerpasswort in Schlüssel
Antwort
ist es üblich, alle Token mit demselben Schlüssel zu signieren. Vereinfacht das Management und vermeidet die Abfrage der Datenbank in jeder Anfrage.
Anmeldung mit einem Schlüssel + Benutzerpasswort ist machbar und hat den Vorteil, Token (mit den kommentierten Nachteilen) widerrufen zu können.
Stellen Sie sicher, dass Ihr Signaturschlüssel ausreicht, um ihn vom Benutzerkennwort abzuleiten, und dass er die empfohlene Länge des ausgewählten Signaturalgorithmus hat. Speichern oder verwenden Sie das Benutzerpasswort nicht direkt.
danke für deine antwort. unter der Annahme, dass ich die meiste Zeit gültige Anfragen erhalte, werde ich am Ende die Datenbank für den Benutzer abfragen. also denke ich, es ist eigentlich nicht so ein Nachteil? –
Die Auswirkung hängt von Ihrer Architektur ab. Wenn Sie schwere Dienste mit Dutzenden von Abfragen implementieren, spielt eine zusätzliche Rolle keine Rolle. Wenn Sie jedoch Microservices verwenden, kann sich dies auf die Antwortzeit auswirken. Beachten Sie auch, dass das Ändern des Kennworts wahrscheinlich keine allgemeine Anforderung ist, aber Sie bestrafen alle Dienste, um diese Operation zu unterstützen. – pedrofb
Das Geheimnis ist eine Preshared-Zeichenfolge, die zwischen dem Client und dem Server ausgetauscht wird. Also in Ihrem Fall:
SecretString= PresharedSecret + ClientPassword
Also, jedes Mal übergibt der Client ein JWT Token, das Passwort aus der Datenbank abgerufen werden müßte oder eine Art, es Vorbelastung und eine Überprüfung bei Kennwortänderungen haben für die Validierung das Token.
Dies zu den folgenden Szenarien führen könnte:
- Jedesmal, der Kunde vergisst sein Passwort, müssen Sie möglicherweise Datenbank Anrufe tätigen, die
- Es würde in einer Art und Weise die Sicherheit zu erhöhen, wie jeder kann teuer sein, die ändert das Passwort nicht in der Lage, mit dem Server mit Kenntnis des vorherigen SecretString zu kommunizieren. Ein neues vorinstalliertes Geheimnis muss entschieden werden .. und validiert mit dem neuen registrierten Passwort.
Insgesamt erhöht es die Sicherheit. Es hängt jedoch vom Zweck oder der Nutzung der Infrastruktur ab. Wenn es ein System ist, in dem Benutzer Passwörter häufig vergessen .. ist dies möglicherweise keine gute Option.
- 1. JWT-Schlüssel ist ungültig
- 2. JWT Öffentliche Schlüssel und private Schlüssel ungültig
- 3. Benutzerpasswort mit shell_exec Funktion ändern
- 4. Objekt mit Benutzerpasswort löschen - Rails
- 5. Ändern Benutzerpasswort in Kunststoff SCM
- 6. JWT Token - Passcode für den privaten Schlüssel
- 7. TDS - BenutzerPasswort empfangen
- 8. laravel 5, update Benutzerpasswort
- 9. Generieren postgresql Benutzerpasswort
- 10. .Net Core JWT-Authentifizierung mit benutzerdefinierten API-Schlüssel Middleware
- 11. Update mysql root Benutzerpasswort?
- 12. Ändern Benutzerpasswort Formular
- 13. entschlüsseln geschütztes pdf mit Benutzerpasswort durch itext
- 14. jwt mit jwt-express mit Middleware in Express.js
- 15. Poynt Erstellen einer JWT aus dem privaten Schlüssel in JAVA
- 16. Wie macht man eine AES-Verschlüsselung mit einem Benutzerpasswort?
- 17. Relevanz von JWT mit HTTPS
- 18. unterzeichnet JWT mit ES256 Algorithmus
- 19. JSONWebTokens mit Express-JWT VS Reisepass-JWT
- 20. Python JWT Auth Token autorisiert nicht mit Django JWT Api
- 21. JWT auth0 create jwt ohne Zertifikat
- 22. wie Ansprüche in JWT mit jose-jwt hinzufügen
- 23. Benutzerpasswort in Formularauthentifizierung zurücksetzen asp.net C#
- 24. Symfony2 FOS Benutzerpasswort überprüfen Rückrufbeschränkung
- 25. Authentifizierung mit JWT in Django
- 26. django - Aktualisieren jwt in django restframework jwt
- 27. C# JWT laden ES256 PEM-Datei in CngKey (jose-jwt)
- 28. JWT Token-Verifikation mit Java
- 29. JWT Validierung in HAProxy
- 30. decode ruby / jwt mit Pem-Zertifikat
Ich schätze, es macht es ein bisschen schwierig zu validieren, da ich den Benutzer vor der Hand laden müsste. Aber das sollte machbar sein. –