这个问题已经出现了很多,但我还没有找到答案.我已经阅读了OAUTH 2规范和单独的安全性"注意事项"文档,但我仍然对某些事情感到模糊.
情况是:移动应用程序访问基于RESTful的Web服务.我既是服务器资源(RESTful服务的创建者和主机),也是授权机构(我存储用户的ID和密码并验证身份).第三方公司创建使用我的服务的移动应用程序.我正在使用OAuth 2.0验证用户的UserID和密码并发出令牌.使用TLS通过https.
带有烧录消息的随机数通常用于防止重放攻击,但据我了解,这在移动应用程序中不起作用,因为为了签名消息,您需要共享密钥.存储在移动应用上的任何秘密(允许您签署消息)都不再是秘密.所以不能使用nonce.
所以我们有会话令牌,它在一段可配置的时间段后到期,并且可以用"刷新令牌"刷新.
我的问题是:如果TLS被击败(例如:用户愚蠢到足以将他们的手机连接到代理服务器并安装代理证书,然后允许代理服务器所有者读取未加密的流量),什么阻止了黑客用有效的会话令牌重放请求(当它仍处于活动状态时),或者更糟糕的是,使用刷新令牌一次持续几个小时来连续获取新的会话令牌?