通过FIPS 140谈密码的正确实现

2007-04-19

关键词:FIPS 140、CMVP、密码算法、密码模块、评测认证
密码算法和密码模块是信息系统安全之源,任何的安全协议或者系统都是基于密码而设计的。而密码算法和密码模块的正确实现却往往被忽略,IT厂商关注完善产品实现的功能性的同时,应该加强重视密码算法和密码模块的设计、开发和维护流程,以及第三方代码的安全性控制。从宏观的层面,信息安全体系建设的三大属性机密性、完整性和可用性都离不开密码算法和密码模块的安全保障。

据美国国家标准和技术委员会(NIST)密码模块验证体系(CMVP)统计,进行测试的首批164个密码类模块,50%的模块被发现有安全漏洞;25%的密码算法的实现是不正确的。通过专业的密码模块安全需求标准的兼容性评估认证可以提高密码模块的安全保障,但不能确保绝对的安全。

近几年密码学领域的破解研究取得了非常"美妙"的结果,MD5和SHA-1等著名的密码算法先后被王小云教授带领的中国专家发现拥有冲撞(Collision)漏洞,某种意义上降低了业界使用该算法进行数字签名的安全性;各国的密码界专家也在致力于钻研并寻求替代算法。 但是严格的说,已经被发现的密码算法本身的缺陷并不意味着算法被破解而须马上废除,因为所找到的"强无碰撞"和实际的破解还有一定的差距,国际密码界专家们也认为密码的正确设计和实现才是保障整体系统安全的重点。

FIPS 140是密码模块安全性需求的最为重要的标准之一,也是业界衡量密码实现的准则。如果机构的信息或数据需要通过密码的方式进行保护,比如金融或者政府机构,那么FIPS 140-2标准则被适用。经过该标准符合性评估认证的产品模块将满足这些机构的密码系统技术要求,目前世界范围很多机构的IT产品采购和招标要求中均提出了产品满足FIPS 140-2的需求。

本文从密码模块安全需求标准FIPS 140-2出发,探讨IT产品和机构内部的平台系统如何正确地实现密码算法和密码模块。FIPS 140-2已经被国际标准组织(ISO)采用,当前编号为ISO/IEC 19790。