若没有现时标志,当使用非安全传输(如 HTTP)从一台机器向另一台机器传递用户名令牌时,令牌可能会被拦截并用于重放攻击中。当在客户机和服务器之间传输用户名令牌时,可以复用同一密码。即使使用 XML 数字签名和 XML 加密,用户名令牌也可能被盗取。
要帮助消除这些重放攻击,在 <wsse:UsernameToken> 元素中生成 <wsse:Nonce> 和 <wsu:Created> 元素,并用于验证消息。服务器通过验证现时标志创建时间(由 <wsu:Created> 元素指定)和当前时间之间的差值是否在指定的时间段内来检查消息新鲜度。并且,服务器还对已用现时标志的高速缓存进行检查,以验证所接收的简单对象访问协议(SOAP)消息中的用户名令牌在指定时间段内是否未被处理。这两个功能用于减少用户名令牌用于重放攻击的机会。
要添加用户名令牌的现时标志,可以在用户名令牌的令牌生成者中指定该标志。当指定用户名令牌的令牌生成者时,如果要将现时标志包括在用户名令牌中,则可以选择添加现时标志选项。