欢迎来到天天文库
浏览记录
ID:30368379
大小:88.57 KB
页数:12页
时间:2018-12-29
《《加密灵活性》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、加密灵活性加密灵活性2010-05-1420:38BryanSullivan目录规划将来利用潜在的问题可选的用法和语法加密灵活性的另一个好处总结纵观历史,人们用各种加密方式对其敌人隐藏信息。朱丽斯·恺撒通过将字母移动三位的加密方式(将字母A转换为D,B转换为E,以此类推)来传递作战计划。在第二次世界大战中,德国的海军使用一种明显更高级的系统-Enigma计算机-来加密邮件并发送到其U型潜艇。目前,我们甚至更复杂的加密机制用作公钥基础结构,可帮助我们在Internet上执行安全的事务的一部分。但对于只要已做cryptograph
2、ers机密代码,cryptanalysts有已尝试断开它们并窃取信息,和有时断路成功的代码。中断一次被认为是安全的加密算法,将变得不可用。在的算法中找到有时细微缺陷,而且有时它是只需访问更多的计算能力进行强力攻击的攻击者。最近,安全研究人员已作为结果的冲突;演示MD5哈希算法中的弱点也就是它们具有显示两个消息可以具有相同计算的MD5哈希值。它们已经创建了一个概念证明攻击此弱点,针对该公用密钥的基础结构保护电子商务网站上的事务。通过购买特制的Web站点证书从证书颁发机构(CA)用于MD5签署的证书,研究人员能够创建可以有效地使用
3、模拟可能在Internet上的任何网站的恶意CA证书。它们结束MD5不适用于签名的数字证书应使用如该SHA2算法的一个更强备选方法。(如果您感兴趣的学习有关此信息检索的更多信息,可以读取白皮书)。这些结果是肯定会导致的问题,但它们不是一个巨大的意外。年中,所示理论MD5弱点,MD5使用Microsoft产品中的已被禁止通过MicrosoftSDL的加密标准2005年以来。有同样被禁止如SHA-1和RC2的其他常用一次的算法。图1显示加密算法禁止或经SDL的完整列表。SDL的批准算法的列表是当前在撰写本文但该列表检查,并且每年更
4、新SDL更新过程的一部分。图1批准SDL的加密算法算法类型禁止(要替换现有代码中或只用于解密的算法)接受(除敏感数据的现有代码可接受的算法)建议(算法的新的代码)对称块DES,DESX,rc2SKIPJACK3DES(2或3个键)AES(=128位)对称流密封,CYLINK_MEK,RC4(128位)RC4(=128位)无,块密码是首选不对称RSA(2048位),Diffie-大(2048位)RSA(=2048bit),Diffie-大(=2048bit)RSA(=2048bit),Diffie-大(=2048bit),ECC
5、(=256位)哈希(包括HMAC使用)SHA0(SHA),SHA-1,md2,md4md5SHA-2SHA-2(包括:sha-256SHA-384、SHA-512)HMAC的密钥长度112位=112位=128位如果即使在您自己的代码中执行这些标准,使用最安全的算法和最长的密钥长度的不保证您今天编写的代码将保持安全。实际上,则将可能不保留任何指南历史记录是否安全。规划将来利用您可以通过您的旧应用程序立即解决此方案中不代码使,挑选出的易受攻击的算法实例化替换为新的算法,重新生成应用程序,通过回归的测试运行它们,然后颁发给您的用户的
6、修补程序或服务包。这不是只用于您,大量但仍然留下您的用户的风险直到您可以提供修补程序。一个更好地替代方法是计划从一开始在此方案。与其在代码中硬编码特定的加密算法,不如使用Microsoft.NETFramework中内置的灵活加密功能。让我们看一看几个C#代码段,启动与最灵活的示例:复制代码privatestaticbytecomputeHash(bytebuffer){using(MD5CryptoServiceProvidermd5=newMD5CryptoServiceProvider()){returnmd5.Comp
7、uteHash(buffer);}}此代码是完全nonagile。与它相关一个特定的算法(MD5),以及该算法,MD5CryptoServiceProvider类的特定实现。修改此应用程序使用安全哈希算法需要更改代码,并发出一个修补程序。下面是一个小的更好示例:复制代码privatestaticbytecomputeHash(bytebuffer){stringmd5Impl=ConfigurationManager.AppSettings["md5Impl"];if(md5Impl==null)md5Impl=String.
8、Empty;using(MD5md5=MD5.Create(md5Impl)){returnmd5.ComputeHash(buffer);}}此函数使用System.Configuration.Configuration管理器类检索自定义应用程序设置(在"md5Impl"从
此文档下载收益归作者所有