Nonce, jeton généré de manière aléatoire
Nonce est un jeton de chiffrement généré de manière aléatoire, utilisé pour éviter les attaques de réexécution (replay). Bien que la valeur nonce puisse être insérée à n'importe quel emplacement dans le message SOAP, elle est généralement placée dans l'élément <UsernameToken>.
Sans nonce, lorsqu'un élément UsernameToken est transmis d'une machine à une autre à l'aide d'un transport non sécurisé, tel que HTTP, le jeton peut être intercepté et utilisé dans une attaque de réexécution. Le même mot de passe peut être à nouveau utilisé lorsque le jeton de nom d'utilisateur est transmis entre le client et le serveur. Des attaques sont alors possibles. Le jeton de nom utilisateur peut être détourné même si vous utilisez le chiffrement et la signature numérique XML. Cependant, un élément Nonce seul, utilisé dans un transport non sécurisé, ne peut pas répondre de manière adéquate au problème de réexécution. Nonce est plus utile lorsque le message SOAP est transmis via un canal de communication sécurisé, au niveau transport ou au niveau message.
Pour éviter ces attaques de réexécution, les éléments <wsse:Nonce> et <wsu:Created> sont générés dans l'élément <wsse: UsernameToken> et permettent de valider le message. Le serveur contrôle l'ancienneté du message en vérifiant que l'écart entre le moment de création de la valeur nonce, spécifié par l'élément <wsu:Created>, et l'heure ou la date actuelle est compris dans une période donnée. Le serveur contrôle également la mémoire cache des valeurs nonce utilisées pour vérifier que le jeton de nom d'utilisateur figurant dans le message SOAP (Simple Object Access Protocol) n'a pas été traité pendant la période spécifiée. Ces deux fonctions permettent de réduire le risque d'utilisation d'un jeton de nom d'utilisateur pour une attaque de réexécution.
Pour ajouter une valeur nonce à l'élément UsernameToken, vous pouvez la spécifier dans le générateur de jetons du jeton de nom d'utilisateur. Une fois le générateur de jetons de l'élément UsernameToken spécifié, vous pouvez sélectionner l'option Ajouter nonce pour inclure la valeur nonce dans le jeton de nom d'utilisateur.