TLS/SSL加解密详解(一)
TLS/SSL加解密详解(一)
本章节主要介绍TLS/SSL的历史
TLS/SSL的来源
SSL(Secure Socket Layer)安全套接层协议
最初由网景公司(Netscape)研发,后被IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入RFC(Request For Comments).
SSL是基于TCP和应用层协议之间的一个协议层,比如:HTTPS,是HTTP+SSL/TCP的简称。
TLS(Transport Layer Security 安全传输层协议)
在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制,但大体和SSL相同,标准化后的更名为TLS,也可以说TLS1.0就是SSL3.1.
关于SSL/TLS的更多介绍可以参考官网介绍:www.rfc-editor.org。官网搜索RFC2246即可。
SSL/TLS发布版本:
年份 | 版本 | 介绍 |
---|---|---|
1994 | SSL1.0 | 1994年,NetScape公司设计了SSL协议的1.0板本,但未发布 |
1995 | SSL2.0 | 由NetScape提出,这个版本由于设计缺陷,并不安全,很快就发现了严重的漏洞,已经废弃 |
1996 | SSL3.0 | 写入RFC,开始流行,目前已经不安全了,必须禁用 |
1999 | TLS1.0 | SSL3.1,作为RFC2246发布。互联网标准化组织ISOC接替NetScape公司,发布了SSL升级版本TLS1.0 |
2006 | TLS1.1 | 作为RFC4346发布。主要修复了CBC模式相关的漏洞,比如:BEAST攻击 |
2008 | TLS1.2 | 作为RFC5246发布。增进了安全性,是目前主要流行版本之一 |
2018 | TLS1.3 | 作为RFC8446发布。相对于之前的版本,安全性和性能有了极大的提高,同时也具备了更多的扩展和握手模式。相对于1.2版本,握手流程做了简化,从之前的4此握手变成了3此 |
SSL和TLS的区别
TLS是基于SSL发展而来,只是在SSL的基础上扩展了很多安全机制,具体区别如下:
区别 | 细节 |
---|---|
版本号 | TLS记录格式与SSL记录格式相同,但版本号的值不同,TLS的版本1.0使用的版本号为SSLv3.1 |
报文鉴别码 | SSLv3.0和TLS的MAC算法及MAC计算的范围不同。TLS使用了RFC-2104定义的HMAC算法。SSLv3.0使用了相似的算法,两者差别在于SSLv3.0中,填充字节与密钥之间采用的是连接运算,而HMAC算法采用的是异或运算。但是两者的安全程度是相同的 |
伪随机函数 | TLS使用了称为PRF的伪随机函数来将密钥扩展成数据块,是更安全的方式 |
报警代码 | TLS支持几乎所有的SSLv3.0报警代码,而且TLS还补充定义了很多报警代码,如解密失败(decryption_failed)、记录溢出(record_overflow)、未知CA(unknown_ca)、拒绝访问(access_denied)等 |
密文族和客户证书 | SSLv3.0和TLS存在少量差别,即TLS不支持Fortezza密钥交换、加密算法和客户证书 |
certificate_verify和finished消息 | SSLv3.0和TLS在用certificate_verify和finished消息计算MD5和SHA-1散列码时,计算的输入有少许差别,但安全性相当。 |
加密计算 | TLS与SSLv3.0在计算主密值(master secret)时采用的方式不同 |
填充 | 用户数据加密之前需要增加的填充字节。在SSL中,填充后的数据长度要达到密文块长度的最小整数倍。而在TLS中,填充后的数据长度可以是密文块长度的任意整数倍(但填充的最大长度为255字节),这种方式可以防止基于对报文长度进行分析的攻击 |
TSL增强内容
- 更安全的MAC算法
- 更严密的警报
- “灰色区域”规范的更明确的定义
TSL安全性的改进
- 对于消息认证使用密钥散列法:TLS 使用“消息认证代码的密钥散列法”(HMAC),当记录在开放的网络(如因特网)上传送时,该代码确保记录不会被变更。SSLv3.0还提供键控消息认证,但HMAC比SSLv3.0使用的(消息认证代码)MAC 功能更安全
- 增强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF使用两种散列算法保证其安全性。如果任一算法暴露了,只要第二种算法未暴露,则数据仍然是安全的。
- 改进的已完成消息验证:TLS和SSLv3.0都对两个端点提供已完成的消息,该消息认证交换的消息没有被变更。然而,TLS将此已完成消息基于PRF和HMAC值之上,这也比SSLv3.0更安全。
- 一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型
- 特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。TLS还对何时应该发送某些警报进行记录
4. 名词解释
RFC
RFC(Request For Comments) 是由互联网工程任务组(IETF)发布的文件集。文件集中每个文件都有自己唯一编号,例如:rfc1831。目前RFC文件由互联网协会(Internet Society,ISOC)赞助发行。 基本的互联网通信协议都有在RFC文件内详细说明。RFC文件还额外加入许多的论题在标准内,例如对于互联网新开发的协议及发展中所有的记录。因此几乎所有的互联网标准都有收录在RFC文件之中。
RFC官网:https://www.rfc-editor.org/rfc/
SSL
Secure Socket Layer安全套接层协议
TLS
Transport Layer Security 安全传输层协议
TLS/SSL加解密详解(一)相关推荐
- sm2格式数字信封加解密详解
sm2格式数字信封 0.参考链接 密码行业标准化技术委员会http://www.gmbz.org.cn/main/bzlb.html SM2密码算法使用规范http://www.gmbz.org.cn ...
- PHP 基础篇 - PHP 中 DES 加解密详解
2019独角兽企业重金招聘Python工程师标准>>> 一.简介 DES 是对称性加密里面常见一种,全称为 Data Encryption Standard,即数据加密标准,是一种使 ...
- 【Bcrypt+AES】 Vue+Java前后端分离信息加解密详解和问题解决
文章目录 1.简单介绍Bcrypt[单向hash] 2.登录服务:使用Bcrypt加密和验证 2.1 Vue前端使用Bcrypt加密 2.2 SpringBoot后端使用Bcrypt验证密码 3.简单 ...
- 【网络基础】Https加解密详解
目录 一.简述 二.图解流程 1.加密通信 2.入侵者 3.证书通信 三.参考文档 一.简述 概要:https采用两种加密方式. 对称加密:使用一个密钥,进行加密解密. 非对称加密:使用两个密钥,相互 ...
- python加解密详解
一.python加密方式 目前python支持的加密有一下几种方式: md5 base64 AES RSA 注意:python3里默认的str是unicode,所以需要encode字符串,才可以进行加 ...
- SSL / TLS 协议运行机制详解
转载自 SSL / TLS 协议运行机制详解 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想 ...
- 转:SSL 握手协议详解
SSL 握手协议详解 RSA作为身份认证,ECDHE来交换加密密钥,AES/DES等作为加密. 如果RSA来加解密,那么身份认证后,直接用认证后的RSA公钥解密.不需要再额外交换加密密钥了. 相关报文 ...
- 加密、解密详解及CA的实现
加密.解密详解及CA的实现 推荐 转载nmshuishui的文章,文章链接 http://blog.51cto.com/nmshuishui/1370917?utm_source=tuicool&am ...
- C#高级--加密解密详解
C#高级–加密解密详解 零.文章目录 一.名词介绍 1.加密 是以某种特殊的算法改变原有的信息数据,以另外一种形式呈现,这里有几个名词:加密之前的信息数据可以理解为原数据,原文:加密之后的数据信息可以 ...
最新文章
- 园艺专业相关计算机知识,2017年秋园艺概论(专业选修)
- uni-app——一种通过Nginx反向代理处理302重定向请求解决网络请求中无法获取Cookie的解决方案
- 区块链人才缺口明年将达顶峰,核心开发者年入百万很正常
- android贝塞尔曲线多点,Canvas 贝塞尔曲线的多点波动
- WLAN定位技术——(无线信号定位2)
- python和c++哪个好-升学为主的编程学python和C++哪个好?
- AngularJS Documents 官方英文文档
- 基于Tomcat + JNDI + ActiveMQ实现JMS的点对点消息传送
- 敏感词在线检测工具-免费敏感词在线检测工具
- Popclip插件:任务自动添加进 Microsoft ToDo的任务列表
- java代码教程_【B0609】[java视频教程]高效编程-代码精进之路2019视频教程 it教程...
- 小米路由R4A千兆版安装breed+OpenWRT教程以及救砖(全脚本无需硬改)
- 如何让必应bing收录我的网站
- nas服务器用户无访问权限,群晖NAS文件权限管理和账户的权限
- WPF窗体禁用Alt + F4键关闭窗体
- 养生年龄的早龄化一一朱乐睿教授
- Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂
- GitChat软件中的课程、专栏下载脚本,包含各种格式(pdf、markdown)
- 移动小人Python程序
- 数据采集需要学习哪些东西
热门文章
- android 从TCP实现一个即时聊天app的简单理论过程
- DWG文件打开很卡怎么办?一招叫它“瘦身”成功~
- antv x6 工艺路径 流程图 前端工厂工艺路径流程图绘制
- 经典算法学习——逆转链表
- 论文笔记——AlignDet
- 一个页面添加两个swiper轮播
- 【专业选择】想选择 IT 相关专业?那么就要先详细了解 IT 行业!
- CAD二次开发--如何获取图面“组”对象及其内部实体(以南方CASS居民地-房屋为例)
- 追风筝的人 第六章
- 记录vue+饿了么整合阿里云oss 实现图片上传保存到MySQL 前台回显