阿里云CDN不止于加速:基于https国密算法构建安全数据传输链路

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 5月20日,阿里云政企安全加速解决方案正式发布。在发布会中,阿里云技术专家林胜恩从HTTPS的技术概述,国密算法的标准内容以及国密算法在阿里云CDN上的应用情况三个方面,来介绍了阿里云CDN在安全方面的重要实践。

网络数据安全得到前所未有的重视 HTTPS成为解决传输安全问题利器

大家都知道,HTTP 本身是明文传输的,没有经过任何安全处理,网站HTTPS解决方案通过在HTTP协议之上引入证书服务,完美解决网站的安全问题。

下图左侧表示Chrome浏览器在HTTPS页面时会显示安全挂锁图标,这是在2016年Chrome55版本上的新增功能,用于引导互联网向安全的HTTPS协议转变。右侧是截止2020年1月,Chrome平台上HTTPS流量占比已经超过90%,另外通过Chrome平台的HTTPS浏览时间占比也超过90%,这些数据都表明网络数据安全得到了前所未有的重视。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

HTTPS的实现原理是什么?

HTTPS协议通过TCP层之上引入TLS/SSL协议,来实现对HTTP数据的保护,实现数据加密、完整性校验以及防篡改。整个HTTPS过程包括:TCP建联、SSL握手、应用数据加密传输阶段。其中SSL握手的目的是为了在服务端和客户端协商出一个对称密钥,在应用数据传输阶段使用这对称密钥进行数据的加密和解密。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

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

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

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

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

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

究竟什么是国密算法?

国密算法是国家密码局制定标准的一系列算法,包括了对称加密算法,椭圆曲线非对称加密算法,哈希算法。其中,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就是其中之一。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

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

  • 协议性能问题,当应用需要承载海量请求的时候,基于TLS1.1或者TLS1.2的双证书方案,需要2-RTT握手,会使得性能下降,导致用户体验变差甚至交易失败率上升等问题。
  • 证书数量问题。以手机端的移动应用为例,双证书方案需要交换的证书量是标准的TLS协议的2倍,在弱网环境下会导致RTT的增多及应用性能变差。
  • 易用性问题,如果直接套用当前的SSL VPN标准到互联网场景,例如手机到服务器的场景,则手机端需要增加VPN客户端进行拨号,然后才能开始正常的业务交互,这会破坏手机应用的易用性。
  • 技术路线冲突问题。新型技术在互联网行业中的演进十分快速,下一代网络通信协议QUIC已经在被逐渐应用,QUIC标准目前唯一指定加密协议就是标准的TLS1.3。对TLS1.3协议层面的任何修改,都会导致和QUIC协议的不兼容,从而导致兼容性问题的发生。
  • 技术标准推广问题。当一种技术标准如果能得到主流开源社区的认可和支持,就会在互联网行业得到快速推广,反之则很难。开源社区对修改协议流程的接纳程度很低,这就导致了国密双证书TLS协议难以扩大推广使用。但是独立的密码学算法则没有这个问题,因此SM系列算法要比修改版的TLS协议更容易在开源社区中推广。

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

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

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

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

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

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

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

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

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

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

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

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

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

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

点击回顾阿里云政企安全加速解决方案发布会详情

活动福利
2020年6月30日前,CDN加速10Mbps以内带宽免费试用1个月,30Gbps DDoS防护、高级版WAF试用1周,并赠送一次漏洞扫描服务,总名额限100个,先到先得。

点击填写表单参与活动

答疑钉钉群:34249460

相关文章
|
8天前
|
弹性计算 自然语言处理 开发工具
基于阿里云向量检索 Milvus 版和 LangChain 快速构建 LLM 问答系统
本文介绍如何通过整合阿里云Milvus、阿里云DashScope Embedding模型与阿里云PAI(EAS)模型服务,构建一个由LLM(大型语言模型)驱动的问题解答应用,并着重演示了如何搭建基于这些技术的RAG对话系统。
|
2天前
|
Cloud Native Java 关系型数据库
【阿里云云原生专栏】构建云原生应用:基于Spring Boot与阿里云服务的全栈指南
【5月更文挑战第21天】构建云原生应用是企业数字化转型的关键,本文提供了一份基于Spring Boot和阿里云的全栈指南。涵盖从阿里云账号注册、ECS与Docker搭建,到Spring Boot项目创建、业务代码编写和部署。此外,还介绍了如何集成阿里云OSS存储、RDS数据库服务以及ACK容器服务,助力打造高效、可扩展和易管理的云原生应用。
110 3
|
2天前
|
算法 安全 网络协议
https原理--RSA密钥协商算法
https原理--RSA密钥协商算法
8 0
|
8天前
|
安全 算法 量子技术
秘钥通信在哪些方面有助于保障数据传输安全?
【5月更文挑战第14天】秘钥通信在哪些方面有助于保障数据传输安全?
6 0
|
8天前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
17 2
|
8天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
15 1
|
8天前
|
安全 Devops 测试技术
深入了解阿里云云效DevOps:构建高效软件开发实践
阿里云云效DevOps,集成CI/CD与自动化测试,提升开发效率。支持持续集成确保代码质量,自动化测试加速交付,多环境及灰度发布保障安全可靠性。助团队构建高效开发实践,增强竞争力。
30 1
|
8天前
|
域名解析 人工智能 安全
【CDN产品测评-笔记】探索云服务中的安全和性能增强功能
【CDN产品测评-笔记】探索云服务中的安全和性能增强功能
27 8
【CDN产品测评-笔记】探索云服务中的安全和性能增强功能
|
8天前
|
安全 算法 网络协议
HTTPS:如何确保您的网站数据传输安全?
HTTPS:如何确保您的网站数据传输安全?
|
8天前
|
存储 安全 网络安全
安全开发实战(1)--Cdn
本文介绍了关于渗透测试中如何检测网站是否使用CDN(内容分发网络)的方法。CDN是一种优化网络内容传输的技术,通过在多个地理位置部署服务器节点,将网站内容缓存,以加快内容加载速度。在渗透测试中,网站使用CDN可能会影响IP地址的判断和进一步渗透,通过两种方式来进行判断,最后经过不断改进与调试,达到批量监测的功能。
安全开发实战(1)--Cdn