我正在使用HTTP建立非浏览器客户端服务器(XULRunner-CherryPy)应用程序进行通信.我现在要考虑的领域是用户身份验证.由于我对安全性不了解,因此与尝试自己发明和/或构建某些东西相比,我宁愿使用久经考验的方法和现成的库.
最近,我一直在阅读很多文章,可以说,我所剩下的就是很多沮丧,其中大部分是this和this博客文章所促成的.
我认为我需要的是:
>在数据库中安全存储密码(自适应哈希?)
>用户凭证的安全有线传输(摘要式身份验证?SSL?)
>对后续请求的安全令牌认证(不确定)
所以问题是:实现此目的的现代(最好无头痛)技术和/或库是什么? (不会存储任何敏感信息,例如信用卡号).
我一直在研究OAuth,他们强烈建议使用新版本.问题在于文档仍在开发中,并且没有实现新版本(?)的库.
解决方法:
这可能不是一个完整的答案,但我想提供一些有关彩虹桌和网络的令人放心的消息.由于以下原因,我不会为彩虹桌而担心太多:
(1)Rainbow表通过检查哈希密码来破解工作.在网络上,哈希密码存储在数据库中,因此,即使考虑使用Rainbow表,也需要首先破解整个数据库.
(2)如果像大多数密码存储系统一样使用salt,那么彩虹表将很快变得不可行.基本上,盐会在给定密码的末尾添加一系列额外的位.为了使用Rainbow表,它将需要在每个纯文本密码中容纳额外的位.例如,您向我们展示的第一个链接具有彩虹表实现,该实现可以破解密码中最多14个字符.因此,如果盐的字节数超过14个字节,则该系统将无用.