L'algorithme est utilisé pour effectuer une signature numérique (pas de cryptage) sur l'en-tête et la charge utile du jeton. Si vous souhaitez crypter les données utiles du jeton, vous devez appliquer la norme JWE (cf. RFC )
Y a-t-il une différence pratique entre les algorithmes de cryptage HS256 et HS512, ou la sécurité supplémentaire apportée par une clé plus longue est-elle redondante par rapport à une clé déjà incassable ? Lequel dois-je utiliser pour chiffrer le jeton JWT ?
HS256 signifie HMAC-SHA256. La différence avec HS512 est la force des méthodes de hachage elles-mêmes. Vous pouvez jeter un coup d'œil à la longueur-clé.com et ce réponse . Vous verrez que même SHA-256 a une marge de sécurité assez importante. De plus, l'algorithme HMAC est pratiquement insensible aux attaques sur l'algorithme de hachage sous-jacent. Vous pouvez donc utiliser HMAC-SHA1 en toute sécurité.
Est-il possible d'utiliser le cryptage HS512 avec le JWT java de auth0 ?
J'ai jeté un coup d'œil au code, et c'est possible (mais pas documenté). Utilisez quelque chose de similaire à
JWTSigner.Options options = new JWTSigner.Options();
options.setAlgorithm(Algorithm.HS512);
jwtSigner.sign(claims, options);