我一直在研究REST身份验证方案(许多在SO上讨论过),其中许多似乎对我的目的过于复杂。我已经从更复杂的元素中制定了一个更简单的方案:但我想知道我的方法中是否存在任何安全漏洞。
影响因素:
建议的认证方案:
客户端算法:
服务器端算法:
我忽略了这个方案中的任何漏洞吗?
答案 0 :(得分:1)
我会在这里质疑你的假设。
TLS到处都太慢而且资源太重
对于API来说,TLS几乎无处不在,其中一个原因是因为现在客户端和服务器支持它都相对便宜。多少开销?像往常一样"它取决于"但对于大多数现代API,甚至像Facebook和Twitter这样的大众消费者API来说,它们都可以忽略不计,只能转向使用它。我不需要安全防范窃听,因为所有信息都是公开的。
这是关于TLS的常见神话。即使是公共数据,也要考虑其含义:
没有一个批评你的算法。您可以在密码学堆栈上询问,但它被认为是推出自己的身份验证的风险很大,现在很少值得。
答案 1 :(得分:0)
您所描述的是基于MAC的身份验证方案。您应该查看Hawk或AWS身份验证方案,而不是滚动自己的实现。
这种认证方案的缺点是需要验证请求的服务器需要与认证服务器通信才能获得密钥。这会以负面的方式影响系统的可扩展性。
基于令牌的身份验证方案可以验证请求,而不会因数字签名而返回令牌颁发机构。
最后,我同意@mahemoff认为TLS正在变得无处不在,very cheap。实际上,视情况而定HTTPS may outperform HTTP。