解读SM2MLKEM768 = 45902025年11月17日

点击 这里 阅读PDF版本(有全球信任和全球法律效力的数字签名和时间戳,版权所有,抄袭违法必究!转载请注明:转载自零信CEO博客)

这是周六早上发生的一件值得大写特写的大事 – IANA (互联网号码分配机构)正式分配了我国密码研究团队申请的后量子密码混合协议编号-4590,标志着我国密码研究团队推出的商用密码和后量子密码混合协议获得了权威的国际标准组织认可,正式成为国际标准TLS协议组的后量子密码混合协议之一。这是一件关系到我国互联网数据在量子时代的安全、同时也关系到全球互联网数据在量子时代的安全的大事,必须写篇文章好好讲一讲这事。更有意义的是,这是一次中美科技界在国际TLS标准制定方面的友好互动和相互支持行动,值得一书。

后量子密码混合协议编号

一、 什么是curveSM2MLKEM768?

SM2算法是我国制定的一种椭圆曲线算法,同国际标准算法ECC和X25519是同一类算法,只是不同曲线参数。而MLKEM则是美国NIST制定的后量子密码算法- FIPS 203,基于模块格的密钥封装机制,该机制能够生成用于数据加密的安全密钥,能够抵御量子攻击。根据密钥长度分为MLKEM-512、MLKEM-768 和 MLKEM-1024,目前常用的是MLKEM-768。

全球互联网正在面临“先收集后解密”的安全威胁,也就是,攻击者现在就开始收集互联网加密数据,待量子计算机可用时就可以解密这些机密数据。所以,全球互联网业界和密码业界已经快速行动起来,从8月份开始,美欧政府官网、网银系统、大学官网、主流互联网大流量网站都纷纷启用了后量子密码HTTPS加密,这个加密方式仍然是基于传统密码算法签发的SSL证书,只是密钥封装同时采用了传统密码算法X25519和后量子密码算法MLKEM768,这就是笔者在之前多篇博文中讲过的混合算法-X25519MLKEM768,混合算法的设计提供了“双保险”:X25519确保当前兼容和速度,MLKEM768则是抵抗量子攻击,确保了机密数据在现在和量子时代的持续安全。

我国互联网正在抓紧实施SM2算法HTTPS加密改造,但是即使所有系统都完成了改造,还是无法保障机密数据在量子时代的安全,而我国自己的后量子密码算法还未出台,怎么办?阿里铜锁SSL参考国际标准算法-X25519MLKEM768成功研发并集成了一个商密后量子密码混合算法-SM2MLKEM768,并提出了一个RFC标准提案。这是传统密码算法SM2和后量子密码MLKEM768的混合算法,同样可以用于基于传统密码算法SSL证书实现的HTTPS加密握手过程中的密钥封装,也就是实现了商用密码+后量子密码混合算法的HTTPS加密。

相信读者朋友现在应该能理解了“curveSM2MLKEM768”是什么了,这是SM2算法和MLKEM768的混合算法,同X25519MLKEM768一样用于HTTPS加密的密钥交换过程,同时满足了我国的商用密码改造和后量子密码改造的两大紧迫的合规安全需求,这是目前的最佳解决方案。

二、 4590又是什么?

这就要先科普一下TLS参数注册表了。

在互联网数字时代,我们每天上网浏览网页、购物、聊天,都离不开一个看不见的“护盾”—传输层安全协议(Transport Layer Security,简称TLS)。它就像互联网数字世界的“加密快递员”,确保你的数据在传输过程中不被偷窥或篡改。TLS的前身是SSL(Secure Sockets Layer),如今已是HTTPS网站的标配。但要让TLS在全球无数设备间顺畅工作,就需要一套统一的“规则手册” - TLS参数注册表。这个注册表由IANA维护,记录了TLS协议中各种关键代码和标识符,就像交通规则里的红绿灯,确保大家“说同一门语言”。为什么要有这些TLS参数?简单说,互联网是开放的,如果没有统一标准,开发者们可能会各搞各的,导致兼容问题或安全漏洞。设置这些参数是为了实现互操作性(不同系统能无缝协作)和安全性(避免弱算法被滥用)。它们的用途呢?从建立连接的握手,到加密数据传输,再到处理错误,都离不开这些参数。

TLS协议中最“明星级”的参数就是TLS密码套件(Cipher Suites),加密的“配方本”,定义了加密通信的具体“配方”:用什么算法交换密钥(key exchange)、加密数据(symmetric cipher)、验证完整性(hash function)。注册表中列出了上百种套件,从老旧的已经禁用的“TLS_RSA_WITH_RC4_128_MD5”(值0x0004) 到现代的 “TLS_AES_128_GCM_SHA256”(值0x1301)。为什么设置这些参数?因为加密算法日新月异,早期的如MD5已被证明不安全(容易被破解),所以IANA通过专家审查标准化它们,标记“推荐”(Y)、“不推荐”(N)或“已弃用”(D),防止开发者误用弱套件。这确保了全球TLS加密实现的安全底线。有什么用途? 在浏览器访问网站时,浏览器和服务器会通过“ClientHello”消息协商一个密码套件。如果协商失败,就无法建立安全连接。

第二个重要的参数就是TLS支持组(TLS Supported Groups),这是指定密钥交换的数学“基石”,如x25519(编号29,推荐的曲线)或ffdhe2048(编号256,Diffie-Hellman组)。为什么设置这些参数?就是要锁定安全算法。有什么用途?在现代TLS加密中用于“前向保密”(即使服务器密钥泄露,旧会话也是安全的)。

重点讲一下IANA新增的后量子密码算法支持组编号。编号512 /513 /514,分别是MLKEM512 /MLKEM768 /MLKEM1024的编号,编号4587 /4588 /4589则分别是传统密码椭圆曲线算法和后量子密码算法ML-KEM的三个混合协议SecP256r1MLKEM768 / X25519MLKEM768 / SecP384r1MLKEM1024 的编号。IANA在TLS支持组注册表中新增了后量子密码的这些条目,就是为了实现混合算法后量子密码HTTPS加密。其中目前常用的X25519MLKEM768编号为4588,通过IANA标准化,它避免了实现冲突,标记为“不推荐”(N)表示仍处于实验阶段,但鼓励早期采用以推动生态迁移。有什么用途?在TLS 1.3的HTTPS连接中,客户端通过“supported_groups”扩展提出4588,服务器若支持,便在密钥共享阶段生成混合密钥:一个基于X25519的共享密钥,一个基于ML-KEM的量子安全的共享密钥,使得攻击者即使窃取了服务器加密密钥,也无法使用量子计算机解密历史会话(增强前向保密)。这已经成为浏览器的主流方案和事实标准,全球互联网流量中已有47%流量采用了混合协议后量子密码HTTPS加密,确保了在线隐私数据经得起“未来量子考验”。

目前四大浏览器(谷歌Chrome、微软Edge等)和零信浏览器支持的X25519MLKEM768协议可以通过抓包发现,如下图所示,可以看出混合后量子密码算法X25519MLKEM768的编号是4588,传统密码算法X25519的编号是29。

后量子密码混合协议编号

4590 则是刚刚获得IANA批准的后量子密码支持组协议-curveSM2MLKEM768的编号,有了这个编号,上述讲解的商用密码算法混合后量子算法实现的混合协议SM2MLKEM768才真正成为了可用的协议,也就是正式成为了交通规则里的红绿灯中的一种全球可识别的信号灯,为我国基于SM2算法SSL证书实现商用密码和后量子密码混合算法HTTPS加密提供了可行的实施基础,也为我国正在制定的《传输层密码协议(TLCP)2.0》支持TLS 1.3和后量子密码算法提前铺平了全球通行的道路。

三、 补充介绍RFC 8998和相关IANA编号

RFC 8998是阿里铜锁SSL在2019年8月干的一件大事,直到2021年3月才正式获得国际标准组织IETF(互联网工程任务组)的批准并分配RFC标准序列号-RFC 8998:商用密码TLS 1.3密码套件,这个标准使得商密HTTPS加密可以使用先进的TLS 1.3协议来实现。为何需要TLS 1.3?因为TLS 1.3不仅禁用了不安全的静态RSA密钥交换,支持前向保密,更重要的是设计机制遵循“密码敏捷”原则,为后续后量子密码算法和协议提供了实现的基础。所以,商密HTTPS加密必须支持TLS 1.3,RFC 8998的确立意味着SM2算法正是成为国际TLS 1.3标准支持的算法之一,这是RFC 8998的重要意义。有国内专家认为这个标准只是Informational分类而否定其国际标准的地位,这是错误理解了RFC标准。

RFC标准分为三类:标准跟踪类、非标准跟踪类和当前最佳实践类(BCP),其中标准跟踪类又分为建议标准(Proposed)、草案标准(Draft)和正式标准,目前只有很少部分能成为草案标准,成为正式标准则更是非常少,互联网上被广泛使用的协议规范大多数处于建议标准这个级别。而非标准跟踪类又分为实验类(Experimental)、情报类(Informational)和历史类(Historic),实验类是指使用范围有限的协议,已经为超过200亿张SSL证书从2013年就开始使用的RFC6962 (证书透明)也只是实验类标准;情报类是指一些有关特定议题的互联网社区的信息,并不代表是社区共识和建议,仅供下一步考虑和验证是否成为实验类标准,RFC 8998属于这一类。而历史类则是已经没有任何价值的历史标准。这是RFC 2026定义的互联网标准制定流程的各种不同的标准分类。简单讲,只要能拿到RFC标准编号,最终是否能成为正式标准需要相关产业界达成共识和应用支持。而成为了情报类(Informational)标准已经起到了制定标准需要达到的基本目的-实现应用的互操作(produce interworking implementations),成为交通规则中大家都能识别的红绿灯信号。

RFC 8998还有一个重要的贡献是拿到了IANA分配的两个商用密码算法TLS密码套件编号:TLS_SM4_GCM_SM3 (值0x00C6)、TLS_SM4_CCM_SM3 (值0x00C7),一个TLS签名方案编号:sm2sig_sm3 (值0x0708),还有一个是SM2算法的TLS支持组编号:41 (curveSM2),就是同本次分配的4590同类协议编号,用于密钥交换,这三个编号使得TLS 1.3国际标准真正能支持SM2算法实现HTTPS加密和为中国后量子密码算法的国际化打下了标准基础。

目前360浏览器已经支持RFC 8998标准HTTPS加密,零信浏览器也将在支持商用密码和后量子密码混合协议SM2MLKEM768的同时支持RFC 8998,因为只有实现了RFC 8998的商密算法支持TLS 1.3,才能实现SM2MLKEM768混合协议HTTPS加密。

四、 中美科技界在TLS标准制定合作大有作为

本次成功把后量子密码的“中国方案”纳入国际标准体系,不仅证明了中国密码界能够跟进国际前沿技术,更是具备了源头创新和参与制定国际标准规范的能力。这是相关产业多方协作的成功:铜锁SSL社区提出并撰写了SM2MLKEM768的IETF草案,铜锁SSL按照草案实现了中国商用密码算法和美国后量子密码算法的混合密钥交换机制,零信浏览器则是率先支持这种混合机制实现商用密码和后量子密码混合算法HTTPS加密,为标准草案提供了落地的应用场景和真实标准需求,这是通过IANA专家审核的关键,因为一个标准如果没有落地应用的实际需求是没有价值的。这种“密码开源库+产业应用”的紧密联动,是技术创新最终产生价值的典范。

更值得一提的是:在申请材料上,我们是从保障全球互联网安全的大局出发,强调了中美密码算法特别是后量子密码算法互为备胎的重要性,因为谁也不能保证后量子密码算法一定是真正抗量子安全的,目前认为的安全只是理论安全,还没有量子计算机可以用于验证算法的安全。所以,全球互联网安全不仅需要美国主导的后量子密码算法,而且也需要“中国方案”,为全球互联网安全提供宝贵的技术多样性和更多可选方案,大大增强了全球互联网TLS生态的韧性和安全性,因为全球只有一个互联网。相信正是这个站在保障全球互联网安全的高度提出的解决方案打动了INAN审查专家,让“中国方案”顺利成为了保障全球互联网TLS流量安全的可选方案之一,中美科技界在TLS标准制定合作大有作为。