跨平台使用哪种密码?

5
我有多个应用程序与一个集中式的Oracle数据库配合使用。
这些应用程序针对以下平台:
- iPhone - Android - Windows(XP、Vista和7) - Linux - Mac OS - Web应用程序(ASP.NET、PHP和JSP)
我想知道我应该使用哪种密码来确保所有加密数据对于我的所有应用程序都是可读的(解密的)。
例如,3DES或RIJNDAEL_256或TWOFISH256?

4
所有标准密码都是跨平台的。您应该选择一个符合您需求且安全的密码(不要选择3DES)。 - SLaks
2
这基本上是一个观点问题,但我会使用Rijndael。 - Grexis
2个回答

10

您应该能够在您提到的所有目标平台上实现这些密码。

至于要使用哪个,我建议使用Rijndael(AES),因为它已经得到了很多关注,并且有着良好的安全记录。


3

http://gpg4browsers.recurity.com/ 提供了所有你提到的密码算法的JS实现。

你提到的所有操作系统都直接或通过mcrypt支持所有这些密码算法。

这将问题简化为主观判断:所以这是我的意见 - 不要标准化(在硬编码的意义上)任何这些密码算法,而是投入时间来开发您的应用程序和协议,使它们能够握手使用的密码。这样,您现在可以在速度和安全性之间进行权衡,并且对密码学(或密码分析)的发展保持开放。


@Polynomial:相反,这使得主动攻击者能够强制使用最弱的可用密码。http://msdn.microsoft.com/en-us/magazine/cc300806.aspx - SLaks
2
@SLaks - 是的,但前提是服务器配置没有更新以防止这种情况。当加密方式变得非常脆弱时,可以在服务器端禁用它,并显示要求客户端升级软件的请求。 - Polynomial
@SLaks 绝对愚蠢的实现不是想法的错。正如Polynomial已经指出的那样,必须由服务器命令允许使用哪些密码。我也看不出来,如果发现密码不安全,硬编码的密码会更好。 - Eugen Rieck
@EugenRieck:这并不能阻止中间人攻击;双方都必须有密码黑名单。 - SLaks
我仍然看不出硬编码算法如何改变任何事情,请详细说明! - Eugen Rieck
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接