TLCP的过去、现在与未来

TLCP的过去、现在与未来

1 起源

​ Internet和WWW的出现,掀起了信息化浪潮而且经久不衰。如果现实世界一样,有价值的数据和信息,引来了了各种攻击和威胁,信息安全变得越来越重要。作为互联网基石技术之一HTTP,其安全的重要性不言而喻,HTTPS正是为解决HTTP安全而提出安全协议和规范。

​ HTTPS全称为HTTP over SSL,而SSL正是由早期WWW霸主Netscape提出的安全协议,其中SSLv3.0从1996年提出,并成为事实上的安全标准长达10年之久。后来IETF以SSLv3.0为基础,提出了新的TLS规范,版本由1.0发展到现在的1.3,替代SSL成为HTTPS的主要安全协议基础。

​ HTTPS是信息安全的一个最佳典范之一。仅仅是简单的在地址栏增加一个字母“S”,在用户几乎无感的情况下,就近乎完美地解决了HTTP的安全问题,包括数据传输的安全问题和网站身份的真实性问题。不但用户无感,而且对Web开发而言也几乎是透明的。

​ 为了成就这个最佳典范,则是数学家、密码学家、安全专家、CA厂商、Web浏览器厂商、Web服务器厂商以及一些列的相关安全厂商(比如密码加速芯片厂商和密码加速卡厂商)通力合作的结果。可以说,为了以一种极简和极致的方式解决HTTP的安全,整个学界和业界使出了洪荒之力。

在这里插入图片描述
图1 TLS发展示意图(摘自ttp://www.bewindoweb.com/271.html | 三颗豆子)

2 过去

​ 密码算法是安全协议的核心和基础,因此为了确保国家信息安全安全,国内的HTTPS和SSLVPN等协议和产品,就不能直接采用国际TLS标准及其密码算法,因此需要一个采用国产商用密码算法的类SSL传输层安全协议,即国密版类SSL协议,简称国密SSL。

​ 最早国密SSL是作为密码行业标准存在的,且不是一个独立的协议标准,而是定义在SSVLPN产品的技术规范里,即《GM/T 0024-2014 SL VPN技术规范》。对应的国密HTTPS就是基于国密SSL的安全HTTP。

​ 国密SSL参照了TLSv1.0规范,整个协议握手和加密国产基本一致,但和TLSv1.0并不兼容。主要的不同体现在三个地方:

1) 协议的版本号不同,握手和加密协议细节不同;

2) 协议采用的主要是SM2/SM3/SM4算法,不同于TLS采用的国际密码算法;

3) 采用的是SM2双证书体系。

​ 国密SSL是一个基础的核心安全协议,因为和TLS不兼容,因此国密HTTPS大规模普及碰到了一系列苦难。首选是国际主流浏览器不支持,其实是国际主流Web服务器不支持,再就是国际主流的CA和证书体系也不支持。

​ 随之国内信息安全的不断发展和各方的努力,国密SSL和国密HTTPS已经由了长足的发展和进步,可以说相关产业链已经达到了可以初步替代TLS和国际HTTPS的水平。相关的国密浏览器、国密SSL网关、国密中间件等已经广泛应用。

在这里插入图片描述

图2 国密SSL行标(摘自《GM/T 0024-2014**》封面**)

3 现在

​ 国家更加重视网络安全和信息安全,《密码法》相继生效。相应地,国密SSL的从密码行业标准上升到了独立的国家标准,这就是《GB/T 38636-2020 信息安全技术 传输层密码协议(TLCP)》。《GB/T 38636-2020》基本兼容《GM/T 0024-2014**》,**主要变化如下:

1)增加了GCM的密码套件,ECC_SM4_GCM_SM3和ECDHE_SM4_GCM_SM3;

2)去掉了行标《GM/T 0024-2014》中的涉及SM1和RSA的密码套件。

​ 国内对TLCP的跟进很迅速。国密浏览器端,360安全浏览器在2020年支持了TLCP,奇安信可信浏览器在2021年也支持了TLCP。国密服务器和网关端,也积极跟进了TLCP的支持,比如https://www.gmssl.cn实现了nginx、apache、tomcat、netty、springboot的TLCP支持。

​ 国密SSL上升为国标意义重大,为等级保护和密码评测提供了更好的标准支撑,同时也为产品网络和行业普及指明了目标和方向。

在这里插入图片描述

图3 国密SSL国标(摘自《GB/T 38636-2020》封面

4未来

​ 从目前的全球竞争环境和国家的意志来看,我国大力推行基于中国国家标准的网络安全和信息案标准是必然趋势。TLCP刚刚成为国家标准,并且TLCP相关的规范都已经国标化或将要国标化,因此TLCP势必在今后较长的一段时间内是作为主流规范存在的,其权威性不容置疑。

​ 国际规范方面,IETF出现了一个RFC8998(https://www.ietf.org/rfc/rfc8998.txt),增加了国密算法套TLS_SM4_GCM_SM3和TLS_SM4_CCM_SM3 ,且基于SM2单证书实现。需要注意的是RFC8998并不是Standards Track,而只是一个informational文档。

​ RFC8998是一个有益的尝试,但在国际上不太可能被chrome和edge等主流国际浏览器支持,并且还得国际主流CA也得支持SM2证书,而在国内又不兼容TLCP国家标准,其前景并不明朗,甚至说是一个尴尬的存在。

​ 随着应用场景的拓展,以及技术的不断迭代,在更远的将来,TLCP本身也一定会吸收包括TLS1.3在内的各种先进思想和技术,继续推出TLCP的新的版本。同时比较明确的是,TLCP依然会走中国特色的自有标准之路,国产密码产业也会有更光明的未来。

5资源

TLCP全文下载:https://www.tlcp.com.cn/down/gbt_38636.pdf

TLCP服务器检测:https://www.tlcp.com.cn/index.jsp

TLCP浏览器检测:https://www.tlcp.com.cn/scan/browser.jsp

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要调试 TLCP(Transport Layer Control Protocol)客户端和服务端的通信 API 接口,可以按照以下步骤进行: 1. 确定 TLCP 协议规范:首先,你需要了解 TLCP 协议的规范,包括消息的格式、字段定义、消息流程等。这将帮助你理解客户端和服务端之间的通信过程。 2. 设置调试环境:在客户端和服务端的开发环境中,确保你可以进行调试。这可能包括设置断点、日志输出或其他调试工具。 3. 开启详细日志记录:在客户端和服务端的代码中,开启详细的日志记录功能。这将允许你跟踪和分析通信过程中发送和接收的消息,以及相关的参数和状态信息。 4. 分析请求和响应:通过观察客户端发送的请求消息和服务端返回的响应消息,检查它们是否符合预期。确保消息的格式正确,字段值正确传递,并且符合 TLCP 协议规范。 5. 调试网络连接:检查客户端和服务端之间的网络连接是否正常建立。你可以使用网络调试工具(如 Wireshark)来捕获和分析网络数据包,确保数据包正确地在客户端和服务端之间传输。 6. 处理错误和异常情况:在调试过程中,注意处理错误和异常情况。观察日志和错误信息,定位潜在的问题,并针对这些问题进行调试和修复。 7. 使用调试工具和库:根据你所使用的编程语言和开发环境,使用相应的调试工具和库来帮助你进行调试。这些工具和库可以提供更高级的调试功能,如跟踪函数调用、变量监视等。 记住,调试通信 API 接口时需要耐心和细心。保持对问题的分析和追踪,逐步排除可能的错误,并与客户端和服务端的开发团队进行合作,以解决潜在的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值