还没迁移到SHA-2?赶紧吧!

本文讲的是 还没迁移到SHA-2?赶紧吧!,从SHA-1到SHA-2,你需要知道下面这些。

PKI(公约基础设施)行业建议每个采用了PKI的SHA-1都迁移到更加安全的SHA-2。迁移原因和方法如下:

SHA-2是继任SHA-1的加密散列算法。去年,在全球截止日前迁移到SHA-2还是件“最好这么做”的预备性工作。今年,迁移截止日已过的现在,就是必须要做的事了。

很多消费数字证书的设备和应用,已针对包含SHA-1的数字证书弹出警告/错误提示,或直接运行失败。很快,所有此类设备和应用都将照此执行。为什么要强制转变呢?因为SHA-1散列有严重加密漏洞,它能起到有效保护作用的时光已经终结了。

直到2017年,SHA-1都是加密签名最常用的散列算法,有些老旧应用和设备甚至不接受,或者不理解SHA-2相关散列算法或证书。摩擦由此产生。

散列是什么?

好的加密散列函数是一套数学算法,对任意内容(如:文档、音频、视频、图片等等)执行时,可针对特定输入产出唯一输出结果(常被称为散列值)。不同输入不应产生同一散列输出,相同输入的输出结果应总是同一个。利用该加密特性,散列输出可用于检查两次提交输入是否相同。加密散列是几乎每一个数字身份验证和完整性过程的基石。

PKI证书机构服务,使用加密散列验证身份和数字证书请求,允许其他信任方(如计算机、软件、用户等等)确认数字证书和证书撤销列表(CRL)。如果PKI服务使用的加密散列被认为不够强壮,那么信任方就不能依赖该数字证书的有效性和该CA签署的其他内容。整个PKI系统中的信任,都是加密散列的强度建立的。

注:“校验和”是类似散列的验证,但其背后没有任何密码学证明可验证能为唯一输入提供唯一输出。基本上,加密散列被认为比校验和更安全,尽管校验和常用于不重要的完整性和身份验证检查。

散列攻击

加密散列的强度,在于其所有被提交的唯一内容,总是产出同样唯一输出的固有能力。同时,仅获得散列结果的人,不应仅靠散列结果就能恢复出提交的原始内容。若有人能做到这一点,就被称为“前像”攻击。而两个不同输入,也不应产生完全相同的散列输出。如果真相同了,即为“碰撞”。

大多数普遍接受的加密散列标准,在最初都被认为是足够强壮的。但随时间流逝,密码攻击者发展出很聪明的方法,利用数学知识弱化所选散列比特长度的保护强度。所有散列都有一个规定的比特长度,也就是散列输出中1和0的个数。

加密散列的强度,由其规定有效比特长度减去1比特确定。因此,128比特散列,在没有已知漏洞的情况下,拥有127比特(2^127) 有效保护。只要有人能提交数学证明,表明散列可在其有效比特长度减1位情况下被破解,该散列即被认为是弱化的。通常,或者至少目前为止,所有广为接受的散列算法都随时间弱化了,因为加密攻击不断提升能力,缩减散列的有效比特长度。

随着有效比特长度的缩短,散列也变得不那么有价值了。到有人能以合理时间和资源(通常还是以几十上百万美元计)“破解”散列时,该散列也就被认为“已损坏”,不应再被使用了。损坏的散列被恶意软件和攻击者用于假冒合法数字签名的软件。Flame恶意软件就是案例之一。总之,弱散列事关重大,不应再被使用。

SHA介绍

SHA-1由美国国家安全局(NSA) 设计,1995年被美国国家标准与技术局(NIST)定为联邦标准。NIST发布的加密标准往往为世界大多数国家信任,美国政府和军方运行关键业务的计算机系统上,也往往要求遵循这些加密标准。SHA-1替代了之前较弱的加密散列算法,比如MD-5。

时光流逝,针对SHA-1的多个持续密码攻击开始缩短其有效密钥长度。由于对SHA-1攻击接连不断的成功,NSA和NIST在2002年将其继任者SHA-2,指定为新的推荐散列标准。这还是SHA-1被认为失效之前很久的事了。2017年2月,成功碰撞攻击公布,基本上标志着SHA-1不再能起到加密签名保护作用。

关于SHA-1被破的讨论和示例文档可在http://shattered.io/找到。

SHA-2家族

SHA-2是当今所有软硬件都应采用的加密散列标准,至少未来几年是这样。SHA-2常被称为SHA-2散列家族,因为包含有很多不同大小的散列。比如224、256、384、512比特的。有人说采用了SHA-2散列,你未必会知道人家用的是几比特长度的,但最流行的是256比特。

虽然SHA-2与SHA-1共享某些数学特性,也被发现了一些小弱点,但从加密的角度,仍可认为在可预见的将来是够强壮的。毫无疑问,SHA-2比SHA-1优良,任何启用了SHA-1的关键证书、应用,以及使用SHA-1的硬件设备,都应迁移到SHA-2。

SHA-1禁用处理

所有主流Web浏览器厂商(微软、谷歌、Mozilla、苹果)及其他依赖方,都已要求目前仍在使用SHA-1的所有客户、服务和产品,迁移到SHA-2(也已经那么做了好几年)——尽管各厂商对何时该迁移什么有不同要求。

比如说,大多数厂商只关心TLS证书,而微软,当前只关注“公共”CA颁发的数字证书是否使用了SHA-1。但预期所有厂商都要求每个应用和设备所用加密散列函数迁移到SHA-2——如果还没迁移的话。如果网站用的是公共SHA-1数字证书,现代大多数浏览器都会弹出错误消息提示,但有些会允许无视错误继续访问。很快,所有主流浏览器厂商就会阻止访问SHA-1保护的网站,也不允许用户绕过错误提示了。

不幸的是,SHA-1到SHA-2的迁移,在大多数服务器场景里是单向的不归路。比如说,一旦你将Web服务器证书从SHA-1换到SHA-2,不能识别SHA-2证书的客户端就会看到警告或错误提示,或者直接访问失败。SHA-2迁移对不支持的应用和设备而言是个风险。

PKI SHA-1到SHA-2迁移计划

有还没采用SHA-2的内部PKI的每家公司,将需要创建 SHA-2 PKI,或将现有 SHA-1 PKI 迁移至SHA-2。SHA-2迁移计划包括:

  1. 向涉及到的团队成员普及SHA-2概念,以及为什么SHA-2是必须的。
  2. 为所有消费或使用散列/数字证书的关键应用和设备列个清单。
  3. 确定哪些关键消费应用或设备可使用什么长度的SHA-2,而哪些不能使用,并搞清可能的操作顾虑有哪些(这通常需要与厂商联系并做测试)
  4. 确定哪些PKI组件可以,或将被迁移到SHA-2
  5. 创建迁移计划将SHA-1组件转变到SHA-2,包括消费客户端和PKI组件,再添加回滚计划以防不测
  6. 概念验证测试
  7. 管理风险接受和做/不做决策
  8. 生产环境迁移计划实现
  9. 测试和反馈
    大多数SHA-2迁移项目中最难的部分,是确定哪些设备和应用能用SHA-2。如果消费设备不理解SHA-2,预期会失败或弹出错误消息——或许不会像“SHA-2不识别”这么清楚明白。大概会是:“证书不识别”、“连接不确定”、“无法建立连接”、“不良证书”、“非受信证书”。

可以先从清点需要理解SHA-2的每个设备、操作系统和应用开始。尝试依靠厂商断言也未尝不可,但直到亲自测试使用SHA-2,你无法确知会发生什么。

升级应用和设备通常不是小事,往往会比预期耗时更长。即便到了现在,仍有大堆设备和应用依然运行着老版本的OpenSSL——早该在心脏滴血爆发后就打上布丁的。还得记着,升级是需要普通用户测试和接受的。

如果已有内部PKI,那就将之为SHA-2做好准备吧。有时候这意味着升级你的CA,获得新CA证书,或者安装全新PKI。出于各种原因,推荐最后一种方式——全新PKI可给你重新开始的机会,不受过去遗留错误的影响。

PKI迁移模型

下列PKI组件实现SHA-2的场景可供参考(假定使用2层PKI——线下根,线上企业颁发CA,每个都能是新PKI组件或迁移的组件):

两棵PKI树,一棵全SHA-1,另一棵全SHA-2
其他选项假定单一PKI树

整棵PKI树,从根到端点,全用SHA-1
整棵PKI树,从根到端点,全用SHA-2
SHA-1根,SHA-2颁发CA,SHA-2端点证书
SHA-1根,SHA-2颁发CA,SHA-1端点证书
SHA-1根,SHA-1和SHA-2颁发CA,SHA-1和SHA-2端点证书
SHA-2根,SHA-1颁发CA,SHA-1端点证书
SHA-2根,SHA-2颁发CA,SHA-1端点证书
SHA-2根,SHA-1和SHA-2颁发CA,SHA-1和SHA-2端点证书
按需在SHA-1和SHA-2之间切换的颁发CA也是可能的,但这会给PKI服务造成混乱(特别不推荐)。如果可能的话,最简单的迁移方法,是运行两套PKI,一套SHA-1,另一套SHA-2,然后在测试允许的情况下迁移消费设备和应用。

注:即便仍用SHA-1,根CA的CA证书也不用迁移到SHA-2。所有SHA-1禁用检查程序仅关心根CA自有证书后面的事(至少不远的将来依然如此)。不过,完全迁移也是有好处的,至少就可以说自己的PKI是全SHA-2的,能规避点未来任何所需的SHA-1修改。
公共CA已将期限过2017年1月的证书都从SHA-1转成SHA-2了,所以你的精力应集中在公共数字证书还未迁移的服务器和应用上。此事解决后,再开始检查内部PKI和依赖方。SHA-1向SHA-2的迁移技术上不是太难,但是个大规模后端改变,涉及成堆后果,要求诸多测试。
多数厂商未必知道SHA-1最终死亡期限(比如应用到所有设备和应用上而引发“致命”错误的时候),但随着越来越多的消费者迁移到SHA-2,这一天迟早到来。你最好早做准备。

SHA-3已出,但真的应该用吗?

尽管SHA-2中尚未发现明显加密弱点,但其算法与SHA-1一脉相承。 大多数专家认为其生命周期与SHA-1类似。NIST在2015年8月已通过了名为SHA-3的替代加密散列算法。SHA-3与SHA-1和SHA-2没有任何共同的数学属性,理应比SHA-2抵御加密攻击的时间更长久。

不幸的是,想拖延SHA-2迁移,一步到位直接上SHA-3的人,将会失望透顶。SHA-3的广泛采用是好几年后的事,而SHA-2却是当前紧迫的要求。如果你现在就迁移到SHA-3,那你几乎所有依赖加密的应用和设备都将报错(报告称不识别数字证书)。

所以,如果你还没迁移到SHA-2,赶紧动手。当SHA-2开始弱化的时候,我们就能全体迁移到SHA-3了。

时间: 2024-09-29 02:52:17

还没迁移到SHA-2?赶紧吧!的相关文章

新款羊绒衫还没热销就要打折

早报讯"我卖了十年羊绒衫了,今年是最反常的一年,以往10月底就开始热销了,今年没什么动静."在鄂尔多斯(600295)做了十年营业员的斯女士告诉记者今年羊绒衫的销售不比往年. 而近几日关于羊绒衫降至两折三折的信息也纷纷发到消费者的手机里,天冷不下来,商家们都急了,也只能想想法子,来点销售点子,激起消费者的购买欲望. 销售季推后了一个月 往年国庆一过,很多人就开始给家里的老老小小置办羊绒衫.陈小姐说:"一般都是去一些加工羊绒衫的地方给父母各订制一件简单款,但今年天气没有冷下来,

安卓开发中某一个界面还没等你操作呢 自己就没了 哪里出问题了?

问题描述 安卓开发中某一个界面还没等你操作呢 自己就没了 哪里出问题了? 问题如上 好困惑! 解决方案 自己就没了,是返回上一级页面么?还是什么?有可能是AndroidManifest.xml文件里activity配置的问题.. 解决方案二: 出现fatal crash了把,抓下log看看. 解决方案三: 贴出代码,贴出log,才好分析,这样描述太抽象 解决方案四: 看一下log日志,看看错误信息. 解决方案五: 这个问题问的有点抽象能不能再具体些

iostream-为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了

问题描述 为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了 程序代码如下: #include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { double daphne = 100.0; double cleo = 100.0; const double rate_1 = 0.1; const double r

网络运维-启动之后电源能亮 然后一小会儿还没到进界面呢 就灭了 电脑就不运作了

问题描述 启动之后电源能亮 然后一小会儿还没到进界面呢 就灭了 电脑就不运作了 启动之后电源能亮 然后一小会儿还没到进界面呢 就灭了 电脑就不运作了 应该怎么解决 解决方案 有几点需要注意吧:1.电脑电源开启后,正常开机都会听到"滴"的一声,然后进入开机画面和系统,如果不是"滴"的一声,那就是硬件的问题了,一般都为系统 内存条的问题,重新插拔和用纸巾擦拭内存条的金属条即可.2.检查电源开关,可能是"BG2IVD"提到的问题,开关有问题,按下后不能

android 为什么刚建的项目,运行就报错,我什么还没干,就想试试,结果就报错了!!

问题描述 android 为什么刚建的项目,运行就报错,我什么还没干,就想试试,结果就报错了!! 解决方案 你新建的项目有错误,可能少了包,或者缺少文件吧! 解决方案二: 这个好像是布局文件不匹配的原因,但有时也可能是eclipse的原因.或者看看布局,或者重启eclipse就好了 解决方案三: 编译的class.apk文件有问题:执行清除一下就可以了.Project→Clean→Clena Projects Selected Below 选择你出错的项目就可以了. 解决方案四: 工程存在错误,

企业微信号还没发布,我们不妨先猜猜他们想干嘛

摘要: 微信上的IT红人人称T客,这几天连续发了几篇文章,重点阐述腾讯即将通过微信进军企业级市场.作为一直在这个领域打拼的一份子,我的第一感觉是:见鬼,终于要对我们下毒手了. 微信上的IT红人"人称T客",这几天连续发了几篇文章,重点阐述腾讯即将通过微信进军企业级市场.作为一直在这个领域打拼的一份子,我的第一感觉是:见鬼,终于要对我们下毒手了. 去年腾讯投资部约上十来家企业级应用厂商,组织了一场座谈会.会上主持人拍着胸脯说,今天在场的没有腾讯的产品经理,我们也不会直接介入企业管理市场,

微软为何还没选出新CEO之谜

美国的<华尔街日报>网络版刊登了一篇题为<微软为何还没选出新CEO>(Why Microsoft Hasn't Yet Chosen a New CEO)的评论文章,该文章中声称微软之所以还没有选出CEO,主要原因是因为董事会内部可能蕴含着很多引发潜在冲突的元素,而最为突出的就是盖茨和鲍尔默与董事会的暗中博弈. 下面是该文章的全文: 三大问题 要理解微软为什么迟迟没有选出新CEO,需要考虑董事会面临的3个棘手问题:一个自以为最了解微软的创始人.一个因为没有加快战略变化而被迫辞职的C

visualstudio-请问现在还可以在微软官网找到VS2010吗?就是现在!本人找了半天还没找到……

问题描述 请问现在还可以在微软官网找到VS2010吗?就是现在!本人找了半天还没找到-- 我买了本C语言教程的书上面拿VS2010做的例子我现在想找VS2010可是找不到, 请问官网上还有吗,如果没有还可以通过什么渠道得到呢?不然用VS2013和2010的行吗? 区别大吗?新手困惑ing-- 解决方案 网上下载一大把,你 Baidu/Google 一下吧,提供你两个下载地址:Visual Studio 2010 官方正式版 Microsoft Visual Studio 2010 官方中文旗舰版

超时-如何实现Android在规定时间内若http请求的数据还没返回就直接关闭请求

问题描述 如何实现Android在规定时间内若http请求的数据还没返回就直接关闭请求 在Android上进行http网络访问时,如果在规定时间内网络还没返回数据,就跳转到另一个界面,请问这个该怎么实现? 解决方案 设置超时时间 con.setConnectTimeout (6000); 关闭请求可以抛出异常中写 解决方案二: Android 浏览器直接请求链接有返回数据,但在程序中请求无返回. 解决方案三: HTTP协议使用TCP协议传输的,因此在传输数据之前采用三次握手建立TCP连接.第4个