备受期待的 2015 年已经到来,它为我们的生活开启了新的篇章。SSL 证书作为网站安全的基石,能够有效验证网站的身份。SHA-1 与 SHA-2 都是 SSL 中用于对证书进行签名、以完成身份认证的哈希算法。在此之前,几乎所有 SSL 证书都由 SHA-1 算法签名;但近期,响应 NIST(美国国家标准与技术研究院)的建议以及 CA/Browser 论坛的要求,各大浏览器与证书颁发机构(CA)已开始弃用 SHA-1 算法,并转向安全性更高的 SHA-2。因此,将你的 SSL 证书从 SHA-1 迁移到 SHA-256 算法是一项明智的决策。
如果你当前使用的 SSL 证书仍基于较旧的 SHA-1 算法,并希望了解如何将其迁移到新的 SHA-2 算法,那么本文的信息将对你大有帮助。
微软、Mozilla 与 Google 对 SHA-1 退场的表态
微软与 Mozilla Firefox 已经宣布将逐步淘汰 SHA-1 算法,原因是其密码强度偏弱,且无法抵御碰撞攻击(collision attack)。与此同时,Google 也宣布将在 Chrome 浏览器的后续版本(39、40 与 41)中切换到 SHA-2。
为何要迁移到 SHA-2?
在切换到 SHA-2 之前,有必要先了解 SHA-1 算法为何不再适用。SHA 代表安全哈希算法(Secure Hash Algorithm),它生成一个 160 位的哈希值。SHA 家族包含 SHA-0、SHA-1、SHA-2 与 SHA-3 四种算法,彼此各不相同。在 SHA-0 失败后,SHA-1 于 1995 年推出,并广泛应用于众多应用程序与协议中。遗憾的是,密码分析专家发现 SHA-1 存在碰撞攻击的漏洞,这催生了对更强算法的需求,于是 SHA-2 应运而生。
什么是 SHA-2?
SHA-2 由美国国家安全局(NSA)推出,其家族包括 SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224 与 SHA-512/256,它们都是 SHA-256 与 SHA-512 的精简版本。SHA-256 以 32 位字进行运算,而 SHA-512 以 64 位字运算。它是一种单向算法,意味着一旦某一哈希值用于选定的文件便不会再次使用,因此每个经 SHA-256 哈希的文件都是唯一的,且具备同等的强度。
Chrome 浏览器针对 SHA-1 的时间表
Google 针对 Chrome 浏览器中使用的 SHA-1 公布了以下时间表,在此之后,你的 Chrome 浏览器将在页面上显示安全警告:
- 如果 SHA-1 签名证书的到期时间在 2016 年 1 月 1 日至 2016 年 12 月 31 日之间,Chrome 仍会将其视为安全,但会显示轻微的错误提示与黄色锁形图标。
- 如果到期时间在 2016 年 6 月 1 日之后至 2016 年底之间,同样以"存在轻微错误"的方式处理。
- 如果到期时间在 2017 年 1 月 1 日或之后,Chrome 会将其视为"明确不安全",页面将显示空白页图标并发出安全警告。
你的浏览器是否支持 SHA-2?
浏览器厂商也已考虑到这一重大变化,并早已开始支持 SHA-256 算法。包括 IE 7+、Google Chrome 26+、Mozilla Firefox 1.5+、Apple Safari 5+、Opera 9.0+、Konqueror 3.5.6+ 在内的主流浏览器均支持 SHA-256。许多老旧浏览器不支持 SHA-2,你可以在相关文档中查阅支持 SHA-256 的完整浏览器列表。就 Windows 操作系统而言,XP 的 SP3 版本支持 SHA-2,而 Android 2.3 之前的版本则不支持 SHA-2 算法。
检查网站的签名算法
如果你不确定 SSL 证书所使用的加密算法,可以通过以下两种方式查看证书签名算法:
方式一:使用 SSL 检测工具,你可以轻松查到网站当前所采用的 secure hash algorithm(安全哈希算法)。
方式二:在浏览器中查看所应用的算法类型,步骤如下:
- 在 Chrome 浏览器中点击绿色锁形图标。
- 在"连接"选项卡下点击"证书信息"(Certificate Information)。
- 在"详细信息"选项卡中即可找到"签名算法"(Signature Algorithm),它会显示算法类型。
不迁移到 SHA-2 的最坏后果
SHA-1 是一种较弱的算法,正如我们前面所讨论的,各大证书颁发机构都在建议用户迁移到 SHA-2 算法。因此,如果你持有 SSL 证书,迁移到 SHA-2 是明智之举。如果在旧算法上继续运行当前证书,最初会显示警告,若继续使用 SHA-1,网站后续将被浏览器拦截。
各大 CA 针对 SHA-2 采取的措施
在 Google 宣布之后,许多证书颁发机构(CA)已经开始支持 SSL 证书的迁移,部分 CA 还在其官网发布了关于使用 SHA-2 的指南或公告:
- Symantec 指南:如果你使用的是 Symantec 颁发的 SSL 证书,Symantec 已在其官方博客发布关于 SHA-2 的公告,并提供了 FAQ 指南以解答客户疑问。
- RapidSSL 指南:如果你使用的是 RapidSSL 的 SSL 证书,可参考其发布的 SHA-2 迁移公告。
- GeoTrust 指南:GeoTrust 也在其官网的"产品与解决方案"栏目下发布了关于 SHA-2 的指南。
- Thawte 指南:Thawte 已在其 SSL 证书中启用了 SHA-2 算法,并指导用户用支持 SHA-2 的证书替换当前证书。
- GlobalSign 指南:作为最受认可的证书颁发机构之一,GlobalSign 也发布了关于 SHA-256 推广的指南。
如何将你的 SSL 重新签发为 SHA-2?
如果你已经持有 SHA-2 的 SSL 证书,则无需担心,也不必执行此迁移流程。反之,如果你的 SSL 证书仍绑定 SHA-1 算法,则需要按照以下步骤完成 SHA-2 迁移:
- 确认当前 SSL 采用的是 SHA-1 后,你需要用 SHA-2 算法替换 SSL 证书。
- 在服务器上为 SHA-1 证书生成新的 CSR(certificate signing request,证书签名请求)。
- 随后,你可以续费、替换或新购一张 SSL 证书,将当前的 SHA-1 算法替换为新的 SHA-2 算法。
- 收到新的 SHA-2 证书后,需将其与所需的中间证书(intermediate certificate)一同安装到服务器上。
- 安装完成后,请检查网站以确保新安装的 SSL 证书正常运行。
作为 SSL 证书服务商,立海世纪始终以客户为中心,并已启动 SHA-2 迁移以进一步提升客户的安全保障。我们所有的 SSL 证书均支持 SHA-2 算法,因此你无需为算法更新而担忧。如果你持有的 SSL 证书仍绑定 SHA-1 算法,可联系证书服务商进行从 SHA-1 到 SHA-2 的迁移。