cdn 9sha(基于https国密算法 阿里云CDN构建安全数据传输链路)
网络数据安全得到前所未有的重视 HTTPS成为解决传输安全问题利器
大家都知道,HTTP 本身是明文传输的,没有经过任何安全处理,网站HTTPS解决方案通过在HTTP协议之上引入证书服务,完美解决网站的安全问题。
下图左侧表示Chrome浏览器在HTTPS页面时会显示安全挂锁图标,这是在2016年Chrome55版本上的新增功能,用于引导互联网向安全的HTTPS协议转变。右侧是截止2020年1月,Chrome平台上HTTPS流量占比已经超过90%,另外通过Chrome平台的HTTPS浏览时间占比也超过90%,这些数据都表明网络数据安全得到了前所未有的重视。
HTTPS的实现原理是什么?
HTTPS协议通过TCP层之上引入TLS/SSL协议,来实现对HTTP数据的保护,实现数据加密、完整性校验以及防篡改。整个HTTPS过程包括:TCP建联、SSL握手、应用数据加密传输阶段。其中SSL握手的目的是为了在服务端和客户端协商出一个对称密钥,在应用数据传输阶段使用这对称密钥进行数据的加密和解密。
在HTTPS交互过程中主要使用三种算法,首先SSL握手阶段用到非对称加密的算法,通过公钥和私钥对数据记性加密解密。在应用数据加密传输的阶段,主要使用的是对称加密的算法和hash算法。
目前,国际上通用的非对称加密算法包括rsa算法和ecdsa算法。对称加密算法主要是aes分组加密算法族以及chacha20流式加密,其中aes加密根据密钥位数和加密模式还能细分成多种不同的算法,所以这里写成aes(x),哈希算法主要是sha-1、sha-2、sha-3算法族。
行业信息系统需要“安全可控” 国密算法标准化加速实施
随着金融安全高度不断上升,近年来国家有关机关和监管机构提出了推动国密算法应用实施、加强行业安全可控的要求。密码算法是保障信息安全的核心技术,尤其是最关键的银行业核心领域长期以来都是沿用3DES、SHA-1、RSA等国际通用的密码算法体系及相关标准。
国家高度重视商用密码工作,自1999年国务院颁布《商用密码管理条例》以来,截止目前,已经有多项政策陆续出台,推进国密算法的实施落地。
究竟什么是国密算法?
国密算法是国家密码局制定标准的一系列算法,包括了对称加密算法,椭圆曲线非对称加密算法,哈希算法。其中,SM1和SM4为对称加密,SM1加密强度与AES相当。调用该算法时,需要硬件实现。SM4的密钥长度和分组长度均为128位。SM2为非对称加密,基于ECC。该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。SM3 密码哈希算法,摘要长度为256位。
国密算法具备更安全、更快速以及自主可控的优势,在安全层面,SM2作为一种ECC算法的安全性要高于2048位的RSA。同时SM3的摘要长度为256bit,安全强度也是要高于MD5算法及SHA1算法;在通讯过程中,256位的SM2算法相比于2048位的RSA算法,可以传输更少的数据,也就意味着更少的传输时间,同时在签名过程上,SM2算法速度要优于RSA大约在10倍左右。
国密算法与TLS协议的结合
根据中华人民共和国密码行业标准的规定,目前和互联网行业重度相关的国密相关标准,除了独立的SM2,SM3,SM4等算法外,就是双证书TLS协议。这套TLS协议是基于RFC 4346 TLSv1.1修改而来,主要在SSL握手环节引入了加密证书和签名证书的方式,并对TLSv1.1的握手流程进行了一些修改以适应双证书的结构。GM/T 0024的标准名称是《SSL 技术规范》,其宗旨是规范SSL 设备的通信协议以及增强互联互通性。个人用户使用的情况较少,而互联网行业大部分以to C为主,大量的个人用户一般使用更加轻量级且通用的手段,例如为解决Web安全的HTTPS就是其中之一。
(国密算法双证书标准交互流程)
(国密算法双证书标准支持加密套件)
互联网应用现行国密技术标准的难点
- 协议性能问题,当应用需要承载海量请求的时候,基于TLS1.1或者TLS1.2的双证书方案,需要2-RTT握手,会使得性能下降,导致用户体验变差甚至交易失败率上升等问题。
- 证书数量问题。以手机端的移动应用为例,双证书方案需要交换的证书量是标准的TLS协议的2倍,在弱网环境下会导致RTT的增多及应用性能变差。
- 易用性问题,如果直接套用当前的SSL 标准到互联网场景,例如手机到服务器的场景,则手机端需要增加客户端进行拨号,然后才能开始正常的业务交互,这会破坏手机应用的易用性。
- 技术路线冲突问题。新型技术在互联网行业中的演进十分快速,下一代网络通信协议QUIC已经在被逐渐应用,QUIC标准目前唯一指定加密协议就是标准的TLS1.3。对TLS1.3协议层面的任何修改,都会导致和QUIC协议的不兼容,从而导致兼容性问题的发生。
- 技术标准推广问题。当一种技术标准如果能得到主流开源社区的认可和支持,就会在互联网行业得到快速推广,反之则很难。开源社区对修改协议流程的接纳程度很低,这就导致了国密双证书TLS协议难以扩大推广使用。但是独立的密码学算法则没有这个问题,因此SM系列算法要比修改版的TLS协议更容易在开源社区中推广。
国密算法单证书标准的推进
基于以上的困难,蚂蚁进入提出了单证书的方案,这个草案是基于TLS1.3的交互流程,新增国密算法套件进行支持。
(国密算法单证书标准化推进)
相较于之前2个RTT的性能开销来说,TLS1.3完整握手开销只有1个RTT,性能有很大提升。并且TLS1.3只支持安全等级较高的加密算法,整个协议安全性也得到了较大提升。
(国密算法单证书标准交互过程)
草案中描述的两个加密套件是需要添加到TLS1.3中,分别是TLS-SM4-GCM-SM3及TLS-SM4-CCM-SM3。这两个加密套件的基本含义是,非对称加密使用的是SM2算法,对称加密使用的SM4算法,哈希算法使用的SM3算法,不同的部分是分别使用了不同的对称加密模式,一种使用GCM,另一种使用CCM模式,这两种模式都属于AEAD,所以满足TLS1.3对算法的要求。由于这种方式具备更强的通用性,所以能够得到更快的推广。
(国密算法单证书标准支持加密套件)
标准化国密算法在阿里云CDN上的具体应用
阿里云的CDN支持国密是通过Tengine加上babassl两个软件的结合实现的,其中Tengine是阿里云CDN的接入开源框架,babassl是蚂蚁金服为了支持国密算法,基于openssl1.1.1的开源版本进行深度定制开发的代码库。通过阿里云CDN和蚂蚁金服的深入合作为客户打造国密合规的代理服务。该软件部署到全网2000+节点,对外提供国内最大规模的国密接入能力。
第一阶段阿里云CDN会先支持接入层的国密算法能力,通过控制台上传国密证书后,配置选择单证书或者双证书方案,客户端即可通过CDN边缘节点完成国密算法的接入。这里更推荐客户使用的是单证书方案,该方案的通用性比较高,与国际标准接轨,同时该方案的客户端开发复杂度低,能降低开发成本。
第二阶段,阿里云CDN会支持全链路的国密算法能力,包括接入层、节点之间的加密传输链路以及回源的数据链路,通过这个能力极大保障客户数据的安全。但是需要客户端以及源站均支持国密的接入能力。
正如前文所述,随着密码法颁布及各项密码相关标准的发布和实施,国密合规已经成为国家高度关注的重点,尤其是对金融和政企行业的数据安全提出了更高的要求。阿里云CDN推出的国密能力,能够帮助客户构建更加安全的数据传输链路,从而满足国密合规的要求。
这里有个好消息是:babassl在充分验证可用性和安全性之后有计划作为开源软件推出,客户端和源站的开发可以基于babassl代码库实现。
为了更好的支持国密算法的推广,蚂蚁金服相关团队针对国密算法的性能进行深度优化,以openssl1.1.1版本的实现为基线,目前sm4能够实现2倍以上的性能优化,sm2能够实现5倍以上的性能优化。算法性能的提升让阿里云CDN能够对外提供更加优质的国密服务,欢迎更多用户一同参与到国密算法的开发和使用,一起共建安全合规的互联网环境。
发布于:2022-12-24,除非注明,否则均为
原创文章,转载请注明出处。
发表评论