由零信技术牵头制定的商密标准《自动化证书管理规范》已经批准立项制定,本文讲讲这个标准的制定过程,也讲一讲大家关心的与标准相关的一些关键技术,并结合讲一讲零信技术成功打造的商密证书自动化管理生态产品。具体话题有:
2022年2月24日发生了俄乌冲突,美国CA就开始吊销了俄罗斯政府和银行网站使用的SSL证书,20天内吊销了三千多张,几乎覆盖了所有政府网站和银行网站,并同时不再为这些网站签发新的证书。这个“断供”和“禁用”SSL证书的恶性互联网安全事件非常值得我国高度警惕,在当前非常不确定的国际局势下,我国政府网站和银行网站部署的RSA算法SSL证书也极有可能同样遭遇“禁用”和“断供”!所以,我国必须未雨绸缪,把普及应用商密算法SSL证书来保障我国互联网安全提到第一紧急处理任务上来,这也是《密码法》合规的迫切要求。
而要想普及应用商密SSL证书,我们必须同国际SSL证书的普及应用对比分析差距,我们还缺什么?已经有CA机构能签发商密SSL证书,已经有浏览器支持商密SSL证书和商密算法实现商密HTTPS加密,那商密SSL证书还缺什么?还缺自动化证书管理标准,就是如何实现自动化申请和部署SSL证书。
SSL证书从1994年诞生以来一直人工手动方式申请和部署,用户需要自己生成密钥对和证书请求文件(CSR),在CA网站上提交CSR文件、填写证书身份信息和完成域名验证,然后就是等待CA签发证书,CA在完成必须的验证和鉴证后签发证书给用户,用户拿到证书后把私钥和证书安装到Web服务器上,就可以启用HTTPS加密服务了。这个繁琐的手动方式,每年都要操作一次,因为SSL证书有效期只能是1年,现在已经进入普及应用HTTPS加密时代,所有浏览器都对未部署SSL证书的http网站提示“不安全”,但是如果要管理几十个、上百个、成千上万个网站,由工程师手动申请和部署SSL证书几乎成为不可能完成的事情,这就是大家看到的为何各省市还有那么多政府网站没有部署SSL证书的主要原因。而谷歌正在推动国际SSL证书有效期缩短为90天,这就彻底把手动部署SSL证书变成了不可能,所以普及实现自动化证书申请和部署已经成为必须项,而不是可选项。
国际上的自动化实现证书申请和部署遵循的国际标准是RFC8555-自动化证书管理环境(ACME),这个标准定义了一些API接口协议实现了由ACME客户端软件对接CA系统实现自动化证书申请和签发,这是SSL证书自发明以来的革命性的创新,让SSL证书普及应用成为了可能,用户只需在Web服务器上安装一个ACME客户端软件即可,一次安装和配置就可以永久自动化实现HTTPS加密,当然前提是有CA机构提供SSL证书,目前一般都是90天有效期的免费DV SSL证书,这类证书只需自动化完成域名控制权验证就能自动化签发,也就可以做到完全免费。目前有效的全球信任的114亿张SSL证书中,超过80%的SSL证书都是自动化申请和部署的,这个成绩当然要归功于RFC8555国际标准,正是由于有了这个标准,全球业界就可以依据此标准实现了SSL证书的自动化管理,包括申请、签发、部署、续期和吊销等,实现了HTTPS加密的快速普及应用,由2016年的26%的HTTPS加密普及率只用了3年时间就提升到80%。目前,ACME标准的主要制定者-Let’s Encrypt每日签发SSL证书高达360多万张,遥遥领先于其他SSL证书提供商,位于全球市场第一位。
但是,这个完美的通过自动化证书管理实现普及应用SSL证书的解决方案不支持商密SSL证书的自动化管理,商密SSL证书是双证书模式(签名证书和加密证书),而国际SSL证书是单证书模式,我们无法完成套用ACME协议实现商密SSL证书的自动化管理,所以我国要想实现快速普及应用商密SSL证书,也必须实现商密SSL证书的自动化管理,这就必须先有商密证书自动化管理标准,有了标准业界才能依据标准来实现自动化证书管理。
也就是说,通过对标分析国际SSL证书的自动化管理生态,我们发现商密SSL证书的普及应用还缺自动化证书管理生态,那我国就应该建设这个生态,也就必须先制定自动化证书管理商密标准。
上面分析了我国必须参考自动化证书管理国际标准制定自己的自动化证书管理商密标准,所以,零信技术牵头制定的《自动化证书管理规范》商密标准草案就是完整地参考和采用了国际标准RFC8555,但把API密钥对算法和签名算法由ECC算法改为SM2算法,把提交CSR和下载证书改为同时提交两个CSR文件和下载两张SSL证书,这是最主要的不同之处,具体不同之处有如下几点:
《自动化证书管理规范》标准草案与RFC8555国际标准的所有不同之处见下表。
相信有读者朋友看了第二部分的内容可能会认为,制定证书透明商密标准并没有什么技术含量,不就是翻译国际标准并把标准中的密码算法更换为商用密码算法吗?这个似乎谁都可以做,为何是零信技术牵头做这个?这真的是一个非常好的问题,必须在这一段落好好讲一讲。
笔者在第一部分就讲过:要想普及应用商密算法SSL证书来保障我国网络空间安全,必须是自动化证书管理方式来实现证书申请、签发和部署,这就需要一个自动化证书管理标准来统一证书申请和部署接口,这就是由Let’s Encrypt牵头制定的RFC8555国际标准。但是,光有标准是不够的,必须建立一个基于标准的生态系统来支持这个标准落地应用。Let’s Encrypt的做法是自己首先开发一个SSL证书自动化管理系统为全球用户免费提供90天有效期的DV SSL证书,大家应该已经看到了这个自动化申请和部署SSL证书是何等的受到全球用户的喜爱,让Let’s Encrypt只用了3年时间就做到了SSL证书市场份额全球第一,并且是遥遥领先的第一(是第二名的5倍多)。于是Let’s Encrypt就依据这个自研系统牵头制定了RFC8555国际标准(ACME),让业界都可以依据这个标准协议来为用户提供SSL证书自动化申请、签发和部署服务。
自从2019年3月发布RFC8555国际标准后,不仅得到了全球用户的喜爱,也得到业界的认可和大力支持,各家CA机构和云服务提供商都纷纷提供ACME服务。现在,全球市场已经形成了一个很完善的生态,不仅CA机构开始为用户提供ACME服务,操作系统和Web服务器厂商也开始集成ACME服务,物联网设备厂商开始采用ACME协议为物联网设备自动化配置SSL证书,各大云服务提供商也纷纷在其云服务产品中集成ACME服务,为云服务用户提供自动化证书申请和部署服务,彻底把用户从繁琐的人工申请SSL证书解放出来。如:全球领先的CDN服务提供商Cloudflare,彻底丢弃了原先的用户必须先从CA手动申请到SSL证书后手动上传SSL证书到CDN系统中使用的做法,用户只需把网站的DNS服务器指向到Cloudflare的DNS服务器即可,Cloudflare会自动完成域名验证和自动化免费为用户CDN服务配置SSL证书,自动化启用HTTPS加密服务。这使得Cloudflare成为了全球第二大SSL证书提供商。
自动化证书管理是普及SSL证书的唯一解决方案,是终极解决方案,这就是为何这个协议的名称为英文单词“acme”(终极、顶峰)的原因。所以,要想普及应用商密SSL证书,也只有实现自动化申请和部署这一条路。所以,零信技术决定参考RFC8555国际标准自研相关产品来实现商密SSL证书的自动化管理。但是,商密SSL证书自动化管理不能仅仅只实现自动化申请SSL证书和签发证书,在部署SSL证书之前必须先完成Web服务器的商密算法支持改造,也就是要求Web服务器必须支持商密算法和商密SSL证书才能成功部署使用。这是同国际证书自动化解决方案的最大不同之处,也是难以实现之处,因为现有的Web服务器都不支持商密算法和商密SSL证书,并且基本上都是封闭系统无法改造支持商密算法,只有开源的Nginx方便改造,研发商密算法支持模块,并重新编译Nginx就能改造Nginx支持商密算法和商密SSL证书,实现自适应加密算法的HTTPS加密。所以,零信技术做的第一件事就是研发Nginx商密算法支持模块,当然市场也有其他完全免费的Nginx商密支持模块,如非常优秀的阿里Tengine和铜锁SSL(BabaSSL)。
零信技术打造的第一个商密证书自动化管理生态产品就是商密ACME客户端软件-SM2cerBot,这是一个类似了国际证书自动化管理生态产品中的ACME客户端软件-CertBot,但不同的是,CertBot只负责申请和部署单张国际SSL证书,而SM2cerBot不仅负责申请两张商密SSL证书和一张国际SSL证书,而且还负责安装自带的支持商密算法模块的新的Nginx Web服务器,因为原Nginx不支持商密算法。安装好支持商密算法的Nginx后才部署已经取回的3张SSL证书,支持自适应加密算法实现HTTPS加密。为何需要部署双算法SSL证书?因为我们不能强制要求用户使用何种浏览器,正在大量使用的浏览器和移动APP都不支持商密HTTPS加密,所以必须同时部署国际SSL证书兼容所有浏览器和手机APP。
但是,这个改造Web服务器的解决方案对Web服务器是有伤害的,无法像CertBot一样做到无缝部署SSL证书。所以,对于不能改造Web服务器的用户,我们又研发了一个硬件网关产品—零信国密HTTPS加密自动化网关,把商密ACME客户端集成到SSL网关中去,直接由网关来实现双SSL证书的自动化申请和部署,由网关实现HTTPS加密和卸载转发,这样只需在Web服务器前面部署网关即可实现Web服务器零改造的商密HTTPS加密自动化。而对于有些用户既不想在Web服务器上安装商密ACME客户端软件,也不想部署硬件网关,我们就把零信国密HTTPS加密自动化网关部署到云上为用户提供商密HTTPS加密自动化云服务—零信国密HTTPS加密自动化服务,这个服务类似于Cloudflare的CDN服务自动化配置SSL证书,用户只需做域名解析即可自动化实现HTTPS加密,一样实现自动化配置双SSL证书,实现自适应加密算法的HTTPS加密。商密ACME服务系统负责对接零信云SSL系统(CA系统),同时为商密ACME客户端、商密HTTPS加密自动化网关和商密HTTPS加密自动化云服务提供ACME接口服务,为其自动化签发双算法SSL证书。
也就是说,零信技术是先依据国际标准RFC8555采用商密算法实现了商密证书自动化管理生态中的所有相关产品,证明了自动化证书管理标准是可以改用商密算法来实现商密SSL证书的自动化管理的,并且可以同时实现国际SSL证书的自动化管理,实现双算法SSL证书自动化部署。为了能尽快证明这个生态的是可行的,我们不是仅仅提出这个概念去求各个相关厂商来支持,而是全部自研产品验证其可行性,验证整个生态相关的产品的可行性。当然,零信技术自己打造的商密自动化证书管理生态产品只是一个自研生态,所以笔者非常感激密标委能在我们完成了自研生态产品后及时批准立项制定自动化证书管理密码行业标准,使得商密自动化证书管理能在我国尽快落地应用,而不是一个企业在自研自用!这必将加快商密SSL证书的快速部署应用,使得我国能早日实现普及商密SSL证书应用来保障我国网络空间安全。
那么,零信技术自研的商密证书透明生态产品是否全部遵循了《自动化证书管理规范》商密标准草案呢?答案当然是肯定遵循的。但是,我们是自研产品在先,制定标准在后,所以,目前的产品应该属于仅遵循企业标准,是商密标准草案的简化版,标准草案还需要在各参与单位和业界的共同努力下尽快定稿,零信技术所有产品第一时间更新为遵循《自动化证书管理规范》商密标准的产品。目前正在使用的零信商密证书自动化管理生态产品是基于零信云SSL系统打造,同零信技术提交的商密标准草案唯一不同的是一次提交3张证书的CSR和一次取回3张证书,因为我们自己知道如何分割收到的3张证书,但是作为商密标准,需要对接各家的CA系统,我们还是考虑改为3个CSR分开提交和分开取回证书。我们计划尽快修改现在的产品实现全部遵循商密标准。
《自动化证书管理规范》既然已经批准立项,我们就当现在的标准草案就是将来发布的正式标准,因为这个发布过程将耗时两年,我们没有时间等到那个时候才去实施商密SSL证书的自动化管理,我们相信即使商密证书自动化管理标准还没有正式发布,但只要大家都用起来,一样能实现商密SSL证书的自动化管理和快速部署应用,因为此商密标准参考的国际标准RFC8555已经成功自动化管理了超过114亿张国际算法SSL证书,是一个非常成熟的协议,大家从第二部分内容也能看到商密标准修改很少,一样可以安全可靠地实现商密SSL证书的自动化管理,并同时实现国际SSL证书的自动化管理。
笔者在此诚邀商密证书自动化管理生态相关的厂商现在就积极加入到商密证书自动化管理生态建设中来,而不是等到发布正式标准时,现在参与制定和完善标准草案就有机会增加满足自己的产品的应用需求的内容,如华为提出增加的内容就是为了满足电信设备的自动化证书管理。本标准相关的厂商包括但不限于:签发商密SSL证书的CA机构、云服务提供商、SSL网关生产商、SSL VPN生产商、国产操作系统厂商、Web服务器软件厂商、各种需要证书的设备生产商等等。《自动化证书管理规范》有一个最大的亮点是支持双算法双SSL证书的自动化管理,可以同时自动申请和部署商密SSL证书和国际SSL证书,满足用户商密合规和全球信任的应用需求。
由于零信技术已经自研了商密证书自动化管理生态的主要产品,所以,零信技术有能力为生态厂商提供如下但不限于的最有力的支持:
商密证书自动化生态需要各方的积极参与,只有大家一起齐努力,才能真正让商密证书自动化管理标准发挥最大的作用,保障我国能快速实现普及商密HTTPS加密的宏伟目标,快速实现商密HTTPS加密泛在,共同为商用密码保障我国网空安全做贡献。
有诗为证:
网站加密要普及,自动实现是关键。
商密加密自动化,标准先行生态建。