TLS简单理解
TLS简单理解
TLS的历史
From GTP3.5
TLS(传输层安全)是一种加密协议,旨在确保 Internet 通信的安全性和隐私保护。下面是 TLS 的历史概述:
SSL(安全套接层):TLS 的前身是 Netscape 公司在 1994 年推出的 SSL 协议。
SSL 1.0、2.0 和 3.0 逐渐发展,但 3.0 存在一些安全漏洞。
TLS 1.0:为了解决 SSL 3.0 的安全漏洞,1999 年发布了 TLS 1.0。TLS 1.0 安全性更高,
主要基于 SSL 3.0。这是第一个被冠以 “TLS” 名称的版本,但其实质上仍然是 SSL。
TLS 1.1:在 TLS 1.0 发布后的几年,一些安全漏洞被发现。为了修复这些漏洞,于2006年发布了 TLS 1.1。
TLS 1.1 取消了对一些旧有密码套件的支持,增加了对新的安全特性的支持。
TLS 1.2:2008 年发布了 TLS 1.2,这是一个重要的更新。TLS 1.2 引入了对新的密码套件的支持,提供更高的安全性和效率。
它还解决了一些与 TLS/SSL 相关的安全问题。
TLS 1.3:TLS 1.3 是 TLS 的最新版本,于2018 年发布。TLS 1.3 进一步提高了安全性和性能,并简化了握手协议。
它废除了一些不安全和不常用的特性,提供更快的连接速度和更好的安全性。
总的来说,TLS 的历史是从 SSL 逐渐演化而来的。每个版本都添加了新的特性和安全性改进,以适应互联网发展中的需求,并修复已知的安全漏洞。
TLS 1.3 是目前使用最广泛的版本,也是最安全和高效的版本。
加密套件
什么是加密套件?
加密套件是用于在SSL / TLS握手期间协商安全设置的算法的组合。
在ClientHello和ServerHello消息交换之后,客户端发送优先级列表的密码支持套件。
然后,服务器使用从列表中选择的密码套件进行响应。
TLS算法组合:
在TLS中,5类算法组合在一起,称为一个CipherSuite:
认证算法
加密算法
消息认证码算法 简称MAC
密钥交换算法
密钥衍生算法
比较常见的算法组合是
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 和
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
都是ECDHE 做密钥交换,使用RSA做认证,SHA256做PRF算法。
一个使用AES128-CBC做加密算法,用HMAC做MAC。
一个使用AES128-GCM做加密算法,MAC由于GCM作为一种AEAD模式并不需要。
这里是一个加密套件的例子:
TLS _ECDHE_ RSA _ WITH_AES_128_GCM _ SHA256
TLS是协议。从ECDHE开始,在握手期间,密钥将通过临时ECDHE进行交换。RSA是认证算法。
AES_128_GCM是批量加密算法。SHA-256是散列算法。
大多数浏览器和服务器都有各自支持的密码套件列表,两者将在握手过程中进行优先顺序比较,以确定使用的安全设置。
最后作为TLS 1.3最终版本,这一切都会改变。虽然以前SSL / TLS通过TLS 1.2版本是使用上诉描述的加密套件模板,
但1.3版本的加密套件将会有所改变,因为它们仅用于协商加密和HMAC算法。
因为1.3加密套件的结构与之前的版本不同,所以它们与旧的TLS版本不能进行互换。
密码是算法,用于加密和解密。它们可以是对称的或不对称的,这取决于它们支持的加密类型。
加密套件是用于在SSL / TLS握手期间协商安全设置的密码的命名组合。在握手期间,
客户端和服务器交换密码套件的优先级列表,并决定两者最佳支持的套件。
在TLS 1.3中,加密套件的结构将改变。
来源: https://blog.csdn.net/gx11251143/article/details/104360375
cipher-suite介绍

一些说明
TLS 1.2其实存在的问题也很多, 比如不支持前向加密.
所以微软其实对TLS1.2非常不热心.
2009年发布的win7和 Win2008r2 就不支持 TLS1.2
但是TLS1.3的发布比较优秀. 基本上解决了大部分的安全问题.
各大开源软件 基本上再2018年都大部分支持了 TLS1.3
但是微软应该不使用 开源的代码, 自己进行代码开发.
所以实际上他这边使用的是自己开发的代码.
也导致Winserver2019发布时依旧不支持 TLS1.3
直到2021年发布的 Win Server 2022才正式支持 TLS1.3
关于TLS与TCP和HTTPS
TLS是传输层协议,HTTPS是表示层的协议.
HTTPS是建立在TLS协议之上的.
TLS其实是在TCP协议之上的安全协议.
TLS1.3时增加了很多特性, 比如0rtt等, 性能以及安全性都有了很大的提升.
HTTPS 其实需要借助于证书 才可以实现加密访问.
证书其实是证明网站身份的证明.
证书内有网站的信息.公钥信息,以及上级CA给的办法的签名信息.
客户端拿到证书后, 会有浏览器内嵌的CA证书的公钥进行验签, 验证证书的真伪
验证证书之后再拿到网站的公钥, 进行非对称加密发送客户端的一些密文等信息
需要注意 https 除了握手阶段, 数据流量其实都是对称加密的.
关于软件对TLS1.3的支持
JDK
JDK11 正式支持 TLS1.3
JDK8 需要在261的版本才兼容支持TLS1.3
Windows
Windows2022 才支持TLS1.3.
Win2012 开始支持TLS1.2
nginx 在2018年的版本基本上就支持了TLS1.3
关于工具
IISCrypto.exe
下载地址:
https://www.nartac.com/Downloads/IISCrypto/IISCrypto.exe
需要注意 这个软件名字很傻逼. 但是软件贼牛B
他其实是影响整个系统的设置, 不单独是修改 IIS的设置..
他的修改会影响 远程桌面, 数据库建立安全链接. 以及软件的其他设置等等.
这个工具可以极大的提升操作系统的安全性. 但是建议在能够访问主机(BMC等方式)时进行使用
某些操作系统该了之后会导致 远程桌面失效.
Windows2008r2的TLS增强设置
1. 更新补丁:
Windows6.1-KB3020369-x64
这个补丁是前置补丁, 不更新没法更新第二个可以安装TLS1.2兼容支持的补丁.
2.Windows6.1-KB3042058-x64
这个补丁是给Windows2008r2 增加TLS1.2支持的补丁, 必须先更新前置补丁1
3. windows6.1-kb3172605-x64
这个补丁应该是增加几个强度高一些的加密套件.
4. windows6.1-kb3140245,windows6.1-kb3080079
注意必须更新完这几个补丁再进行 TLS1.2Only的设置. 不然mstsc远程桌面就会失败.
注意 WindowsXPsp3据说可以使用:
windowsxp-kb4019276-x86-embedded-chs
这个补丁来开启TLS1.2的支持.
一个想法
其实TLS的设置分为服务端和客户端的设置.
服务端的设置 基本上是用来进行client/browser 和server的通信
而 client 的设置, 是用于应用服务器建立与第三方服务之间的请求.
根据安全性的差异, 其实服务器的服务端请求应该是 内网的. 我理解重要性要低于 他作为client的情景.
client 一般都是要进行 对外部系统的服务与调用请求.
可能会涉及一些重要的加解密事项, 比如银企直联, 发票/OCR识别等等.
他的重要性其实更高, 并且难度相应的也更大.
TLS简单理解的更多相关文章
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...
- [转]简单理解Socket
简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html 题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...
- Js 职责链模式 简单理解
js 职责链模式 的简单理解.大叔的代码太高深了,不好理解. function Handler(s) { this.successor = s || null; this.handle = funct ...
- Deep learning:四十六(DropConnect简单理解)
和maxout(maxout简单理解)一样,DropConnect也是在ICML2013上发表的,同样也是为了提高Deep Network的泛化能力的,两者都号称是对Dropout(Dropout简单 ...
- Deep learning:四十二(Denoise Autoencoder简单理解)
前言: 当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Be ...
- 简单理解dropout
dropout是CNN(卷积神经网络)中的一个trick,能防止过拟合. 关于dropout的详细内容,还是看论文原文好了: Hinton, G. E., et al. (2012). "I ...
- 我们为之奋斗过的C#-----C#的一个简单理解
我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET ...
- 简单理解ECMAScript2015中的箭头函数新特性
箭头函数(Arrow functions),是ECMAScript2015中新加的特性,它的产生,主要有以下两个原因:一是使得函数表达式(匿名函数)有更简洁的语法,二是它拥有词法作用域的this值,也 ...
- 简单理解JavaScript闭包
很多关于JS的书籍例如<JavaScript权威指南>或者<高程>都把闭包解释的晦涩难懂,萌新们是怎么也看不懂啊!不过别怕,今天我就用很简单的方式给大家讲解下到底什么是闭包.这 ...
随机推荐
- 2023.2 IDEA安装激活教程
1.下载安装IntelliJ IDEA 先去官网下载,我这里下载的是最新版本的2023.2,测试过2023最新版本以及2022版本以上的版本没问题. 安装然后打开 提示要输入激活码,先关闭应用,等下再 ...
- VsCode如何配置C语言环境?
以前学校上C语言课程都是使用VC++6.0上课,这个学期为了复习一遍C语言,而且自己经常使用VSCode开发前端项目,所以为了方便.这里把需要的环境和插件配置在这里介绍一下. Windows环境下安装 ...
- [活动(深圳)] .NET Love AI 之 .NET Conf China 2023 Party 深圳
中国.NET 社区2023年12月16日 在北京成功举办了.NET Conf China 2023,虽然北京飘起雪,依然挡不住想要参加活动的全国各地的.NET开发兄弟姐妹的热情.大家可以通过大会精彩照 ...
- 通过鼠标拖拉获取图片原像素的两个点坐标vue
<template> <div> <img class="no-drag" ref="image" src="https ...
- 手把手教你使用ModelArts的自动学习识别毒蘑菇分类
摘要:本文介绍了ModelArts如何通过自动学习进行毒蘑菇的识别. 想当年,白雪公主吃了毒蘑菇,换来了白马王子的一吻.如果白雪公主没有吃毒蘑菇,还会遇到白马王子吗?张小白觉得不见得--说不定她会遇到 ...
- 9个SQL运维常遇到的问题
摘要:本文重点介绍单个SQL语句持续执行慢的场景. 本文分享自华为云社区<GaussDB(DWS) SQL性能问题案例集>,作者:黎明的风. 本文重点介绍单个SQL语句持续执行慢的场景.我 ...
- 华为云FusionInsight MRS:千余节点滚动升级业务无中断
摘要:滚动升级作为大集群数据底座的必备能力,能够完美解决了传统大数据平台操作繁琐.业务停机.升级成本高等问题,实现一个架构的持续演进,业务无中断. 华为开发者大会2021(Cloud)大会期间,由华为 ...
- Python 可以满足你任何 API 使用需求
摘要:在本教程中学到的概念和技术将允许您使用自己喜欢的任何 API 进行练习,并使用 Python 来满足您可能拥有的任何 API 使用需求. 本文分享自华为云社区<Python 和 API:读 ...
- 探索SaaS产业发展新机遇|鲁班会贵安首秀圆满收官
摘要:2021年12月28日-12月29日,华为云·核心伙伴开发者训练营(第八期)-SaaS应用构建实践专场在华为贵安数据中心召开. 当前,在数字化新兴技术和数字化转型的热潮的引领下,SaaS业务应用 ...
- Gzip之后继者Brotli浅析之CDN厂商的智能压缩,服务器Brotli设置
"智能压缩"按照又拍云的说法是,同时支持 Gzip 和 Brotli 压缩算法.根据用于浏览器开启自动选择不同压缩方式. Gzip 压缩算法 Gzip 基于 DEFLATE 算法, ...