网络数据安全得到前所未有的重视 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握手的目的是为了在服务端和客户端协商出一个对称密钥,在应用数据传输阶段使用这对称密钥进行数据的加密和解密。

阿里cdn节点分布(阿里云CDN构建安全数据传输链路)(1)

在HTTPS交互过程中主要使用三种算法,首先SSL握手阶段用到非对称加密的算法,通过公钥和私钥对数据记性加密解密。在应用数据加密传输的阶段,主要使用的是对称加密的算法和hash算法。

目前,国际上通用的非对称加密算法包括RSA算法和ecdsa算法。对称加密算法主要是aes分组加密算法族以及chacha20流式加密,其中aes加密根据密钥位数和加密模式还能细分成多种不同的算法,所以这里写成aes(x),哈希算法主要是sha-1、sha-2、sha-3算法族。

行业信息系统需要“安全可控” 国密算法标准化加速实施

随着金融安全高度不断上升,近年来国家有关机关和监管机构提出了推动国密算法应用实施、加强行业安全可控的要求。密码算法是保障信息安全的核心技术,尤其是最关键的银行业核心领域长期以来都是沿用3DES、SHA-1、RSA等国际通用的密码算法体系及相关标准。

国家高度重视商用密码工作,自1999年国务院颁布《商用密码管理条例》以来,截止目前,已经有多项政策陆续出台,推进国密算法的实施落地。

阿里cdn节点分布(阿里云CDN构建安全数据传输链路)(2)

究竟什么是国密算法?

国密算法是国家密码局制定标准的一系列算法,包括了对称加密算法,椭圆曲线非对称加密算法,哈希算法。其中,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 VPN技术规范》,其宗旨是规范SSL VPN设备的通信协议以及增强互联互通性。个人用户使用VPN的情况较少,而互联网行业大部分以to C为主,大量的个人用户一般使用更加轻量级且通用的手段,例如为解决Web安全的HTTPS就是其中之一。

阿里cdn节点分布(阿里云CDN构建安全数据传输链路)(3)

(国密算法双证书标准交互流程)

阿里cdn节点分布(阿里云CDN构建安全数据传输链路)(4)

(国密算法双证书标准支持加密套件)

互联网应用现行国密技术标准的难点

国密算法单证书标准的推进

基于以上的困难,蚂蚁进入提出了单证书的方案,这个草案是基于TLS1.3的交互流程,新增国密算法套件进行支持。

阿里cdn节点分布(阿里云CDN构建安全数据传输链路)(5)

(国密算法单证书标准化推进)

相较于之前2个RTT的性能开销来说,TLS1.3完整握手开销只有1个RTT,性能有很大提升。并且TLS1.3只支持安全等级较高的加密算法,整个协议安全性也得到了较大提升。

阿里cdn节点分布(阿里云CDN构建安全数据传输链路)(6)

(国密算法单证书标准交互过程)

草案中描述的两个加密套件是需要添加到TLS1.3中,分别是TLS-SM4-GCM-SM3及TLS-SM4-CCM-SM3。这两个加密套件的基本含义是,非对称加密使用的是SM2算法,对称加密使用的SM4算法,哈希算法使用的SM3算法,不同的部分是分别使用了不同的对称加密模式,一种使用GCM,另一种使用CCM模式,这两种模式都属于AEAD,所以满足TLS1.3对算法的要求。由于这种方式具备更强的通用性,所以能够得到更快的推广。

阿里cdn节点分布(阿里云CDN构建安全数据传输链路)(7)

(国密算法单证书标准支持加密套件)

标准化国密算法在阿里云CDN上的具体应用

阿里云的CDN支持国密是通过Tengine加上babassl两个软件的结合实现的,其中Tengine是阿里云CDN的接入开源框架,babassl是蚂蚁金服为了支持国密算法,基于openssl1.1.1的开源版本进行深度定制开发的代码库。通过阿里云CDN和蚂蚁金服的深入合作为客户打造国密合规的代理服务。该软件部署到全网2000 节点,对外提供国内最大规模的国密接入能力。

第一阶段阿里云CDN会先支持接入层的国密算法能力,通过控制台上传国密证书后,配置选择单证书或者双证书方案,客户端即可通过CDN边缘节点完成国密算法的接入。这里更推荐客户使用的是单证书方案,该方案的通用性比较高,与国际标准接轨,同时该方案的客户端开发复杂度低,能降低开发成本。

阿里cdn节点分布(阿里云CDN构建安全数据传输链路)(8)

第二阶段,阿里云CDN会支持全链路的国密算法能力,包括接入层、节点之间的加密传输链路以及回源的数据链路,通过这个能力极大保障客户数据的安全。但是需要客户端以及源站均支持国密的接入能力。

正如前文所述,随着密码法颁布及各项密码相关标准的发布和实施,国密合规已经成为国家高度关注的重点,尤其是对金融和政企行业的数据安全提出了更高的要求。阿里云CDN推出的国密能力,能够帮助客户构建更加安全的数据传输链路,从而满足国密合规的要求。

这里有个好消息是:babassl在充分验证可用性和安全性之后有计划作为开源软件推出,客户端和源站的开发可以基于babassl代码库实现。

为了更好的支持国密算法的推广,蚂蚁金服相关团队针对国密算法的性能进行深度优化,以openssl1.1.1版本的实现为基线,目前sm4能够实现2倍以上的性能优化,sm2能够实现5倍以上的性能优化。算法性能的提升让阿里云CDN能够对外提供更加优质的国密服务,欢迎更多用户一同参与到国密算法的开发和使用,一起共建安全合规的互联网环境。

,