使用加密算法不当的一些原则
2011-02-27 00:22
225 查看
从《软件安全的二十四宗罪编程瑕疵与如何纠正》第21章翻译而来。
1 不能使用DES算法。密钥太短,只有56位。
2 112位的3DES也不推荐使用。它在FIPS(Federal Information Processing Standards)中已经失去地位了。
3 RSA、DH算法中密钥材料长度应该大于1024.
4 不推荐使用流加密算法,尤其是RC4(如果存在两段明文相同,则XOR就会成为两端明文的XOR).一般可以用AES+分组密码转化为流模式的方式模拟。
5 使用Hash时不要使用两个变量字符连接后在哈希。如此,ABCD+EFG和ABC+DEFG的哈希值是一样的。为了防止出现此种情况,可在中间加上一个连字符。另外,考虑到hash length extension attacks。尽量使用HMAC。可参考下面的链接:http://utcc.utoronto.ca/~cks/space/blog/programming/HashLengthExtAttack
6 不要使用ECB加密模式。两个明文加密后的密文是一致的。
7 不要加密已知的明文。
8 采用salt和IV。
9 即使有时为了能随机访问密文中的一段,使用了RC4,也需要提供完整性保护。
1 不能使用DES算法。密钥太短,只有56位。
2 112位的3DES也不推荐使用。它在FIPS(Federal Information Processing Standards)中已经失去地位了。
3 RSA、DH算法中密钥材料长度应该大于1024.
4 不推荐使用流加密算法,尤其是RC4(如果存在两段明文相同,则XOR就会成为两端明文的XOR).一般可以用AES+分组密码转化为流模式的方式模拟。
5 使用Hash时不要使用两个变量字符连接后在哈希。如此,ABCD+EFG和ABC+DEFG的哈希值是一样的。为了防止出现此种情况,可在中间加上一个连字符。另外,考虑到hash length extension attacks。尽量使用HMAC。可参考下面的链接:http://utcc.utoronto.ca/~cks/space/blog/programming/HashLengthExtAttack
6 不要使用ECB加密模式。两个明文加密后的密文是一致的。
7 不要加密已知的明文。
8 采用salt和IV。
9 即使有时为了能随机访问密文中的一段,使用了RC4,也需要提供完整性保护。
相关文章推荐
- 使用Dagger2前你必须了解的一些设计原则
- C++ 何时使用引用参数(一些指导原则)
- EasyNet.Solr 3.5.1发布及使用中的一些原则
- 使用Dagger2前你必须了解的一些设计原则
- C#异常的一些使用原则
- CLR via C# 读书笔记 4-2 线程和锁的一些使用原则
- 使用Ajax的一些原则
- 使用 Dagger2 前你必须了解的一些设计原则
- C++ 何时使用引用参数(一些指导原则)
- 使用Ajax的一些原则
- LumaQQ.NET使用的一些方法原则
- 使用Dagger2前你必须了解的一些设计原则
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
- 在 Java 中使用 AES 加密算法
- Block使用中的一些疑问解答
- 关于ellipsize属性使用的一些细节
- 关于《微分享文库》使用的一些说明
- 使用.net操作AD域的一些代码共享
- spring mvc使用的一些注意事项
- 使用Vs.Net 的一些小技巧