憨豆说安全 · 2022年07月07日

【憨豆话安全】TLS的前世今生

上次提到HTTPS加密传输数据,HTTPS就是相当于HTTP+SSL/TLS,目前还是被论证是安全的信息传输模式。关于SSL/TLS又是什么呢?
图片1.png
Netscape 在90年代初就开发了原始的 SSL 协议,SSL 1.0 因为存在严重的安全缺陷从未公开发布,SSL 2.0于 1995年发布,但其中仍包含许多安全缺陷,于是在1996年发布了SSL 3.0。随着加密与解密安全攻防战的博弈,SSL 协议的安全性逐渐满足不了需求,SSL 2.0 在 2011 年被RFC 6176弃用,SSL 3.0 于 2015 年被RFC 7568弃用。
TLS 1.0 在 1999 年发布于RFC 2246中,TLS 1.0 和 SSL 3.0 之间的差异并不显著(TLS 1.0 等同于 SSL 3.1),改名主要是为了和Netscape撇清关系(SSL协议由Netscape主导开发),表示一个新时代的来临(TLS协议由 IETF 进行标准化)。
随着网络攻击技术的发展,TLS 加密算法也需要进行升级,TLS 1.1 于 2006 年在RFC 4346中定义,TLS 1.2 于 2008 年在RFC 5246中定义,并于2011年在RFC 6176中完成优化,最新版本的TLS 1.3 于 2018 年在RFC 8446中定义。早在2018年10月,苹果、谷歌、微软和Mozilla就联合宣布,将在2020年3月弃用TLS 1.0和TLS 1.1,目前TLS1.3已经是不管是HTTPS还是各种不同的物联网协议中广泛应用的标准。
图片2.png
TLS (Transport Layer Security)协议是由TLS 记录协议(TLS Record Protocol)和TLS 握手协议(TLS Handshake Protocol)这两层协议叠加而成的,位于底层的TLS 记录协议负责进行信息传输和认证加密,位于上层的TLS 握手协议则负责除加密以外的其它各种操作,比如密钥协商交换等。
TLS记录报文的字段可以用如下数据结构定义:
图片3.png
TLS的握手协议包括密钥交换协议,密码规格变更协议,警告协议以及应用数据协议,下面是密钥交换的流程图:
图片
既然是加密传输协议,加密算法必不可少,非对称加密主要是基于ECC或RSA,TLS中有加密算法的协商,但是考虑到各种不同的算法的执行效率和加密效果,ECC被更多的使用,尤其是在嵌入式物联网领域。
图片4.png5.png
而对于对称加密算法,AES128在嵌入式中是是比较主流的加解密算法。
图片6.png
更具体的TLS的细节就不展开了,物联网领域可以参考Arm的开源软件mbedtls实现(https://github.com/ARM-softwa...),也是目前最主流的IoT领域的通信加密实现。MbedTLS的前身是Arm在2015年2月收购的荷兰公司Offspark的商业PolarSSL软件,现在是作为开源软件贡献给社区,实现的效率和稳定性已经得到广大物联网操作系统平台的认可。
图片7.png
Arm关于安全的开源软件除了mbedTLS之外,还有TFA,TFM, OP-TEE, Halnium, TrustedServices,Open CI等,在https://www.trustedfirmware.org/,后续逐步做相关的介绍。

推荐阅读
关注数
4286
文章数
27
科普安全知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息