SHA-1作为一种著名的散列函数,由美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布,一直是联邦资讯处理标准(FIPS)180-1的一部分。而随着计算机技术的发展,SHA-1的安全性也在不断下降,预计将于2030年后淘汰,NIST建议还再依赖SHA-1安全性的IT专业人员,应尽快更新采用更安全的SHA-2或SHA-3。

SHA-1

SHA-1中文名为“安全散列算法1”,是一种密码散列函数,可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。

作为MD5的替代者,SHA-1也曾经被认为是优秀的散列函数,但其安全性却一直被密码学家所质疑。早在2005年,我国密码学家、中科院院士王小云就提出了针对MD5和SHA-1的碰撞攻击理论方法,证明了SHA-1的不安全性。而在2006年的CRYPTO会议上,又有密码学家宣布他们能在容许攻击者决定部分原讯息的条件之下,找到SHA-1的一个碰撞。

在散列函数出现碰撞的时候,就证明该算法已经不再安全。于是,NIST从2011开始着手淘汰SHA-1算法的使用,在2013年时就明确表示,除了极少数特殊情况,不允许在签名和验签的场景使用该算法。在2017时,市面上所有的主流浏览器都不再将基于SHA-1的数字证书视为安全证书。

NIST表示,现在的计算机已经可以创建欺诈式消息,也就是经过篡改的消息,能够产生与原始消息相同的散列值,这将危害到真实消息,而且近年这些碰撞攻击已经被用来破坏SHA-1。2020年研究人员将攻击成本降至4.5万美元,并预测未来成本会越来越低。

SHA-1

目前,SHA-1是许多安全应用程序的构建模块,像是在用户加载网页时,通过采用SHA-1,便能够相信来源的真实性。SHA-1通过对消息的字符进行复杂的数学运算,生成称为散列的字符短字符串,第三方要从散列重建原始消息是不可能的,收件人也可以通过简单的方法来知道原始消息是否遭到篡改,因为即便是只对消息动了小手脚,生成的散列也会跟着变动。

而在NIST宣布2030年12月31日后停用SHA-1加密算法后,届时支持SHA-1算法的底层软件库将一律不会得到FIPS认证,目前企业将拥有8年时间替换SHA-1。

免责声明:素材源于网络,如有侵权,请联系删稿。