Nonce, um Token Aleatoriamente Gerado
Nonce é um token criptográfico, gerado aleatoriamente, utilizado para evitar ataques de reprodução. Embora o nonce possa ser inserido em qualquer lugar na mensagem SOAP, geralmente ele é inserido no elemento <Token_do_Nome_do_Usuário>>.
Sem o nonce, quando um token de Nome do Usuário é passado de uma máquina para outra utilizando um transporte não seguro, como HTTP, ele pode ser interceptado e utilizado em um ataque por reprodução. A mesma senha pode ser reutilizada quando o token do nome do usuário é transmitido entre o cliente e o servidor, que deixa-o vulnerável a ataques. O token de nome do usuário pode ser roubado mesmo se você utilizar assinatura digital XML e criptografia XML. No entanto, nonce sozinho, utilizado em um transporte não protegido, não pode tratar adequadamente de problemas de reprodução. Nonce é mais útil quando a mensagem SOAP é transmitida por meio de um canal de comunicação que é protegido, no nível de transporte ou no nível de mensagem.
Para ajudar a eliminar esses ataques de reprodução, os elementos <wsse:Nonce> e <wsu:Created> são gerados dentro do elemento <wsse:UsernameToken> utilizados para validar a mensagem. O servidor verifica a atualização da mensagem, verificando se a diferença entre a hora de criação do nonce, especificada pelo elemento <wsu:Created> e a hora atual está dentro de um período de tempo especificado. Além disso, o servidor verifica um cache de nonces utilizados para determinar se o token do nome do usuário na mensagem SOAP recebida não foi processado dentro do período de tempo especificado. Esses dois recursos são utilizados para diminuir a chance de um token de nome de usuário ser utilizado para um ataque por reprodução.
Para incluir nonce no token de Nome do Usuário, é possível especificá-lo no gerador de token para o token do nome do usuário. Quando o gerador de token para o token de Nome do Usuário está especificado, você pode selecionar a opção Incluir Nonce, se quiser incluir nonce no token de Nome do Usuário.