文档章节

TLS 流程新解(未经证实)

NestleCaau
 NestleCaau
发布于 2015/11/18 20:53
字数 876
阅读 40
收藏 0

写这文章的是为了梳理整个SSL/TLS流程,一步步进行说明

TLS : TLS是SSL的新版的叫法(不会表达= =),SSL最新版是3.0 但SSL更新一版不是叫 3.1或4.0,而是叫 TLS 1.0,从此新版都叫 TLS 1.X 。TLS最新版本是

对称加密:用密钥K加密的密文需要只能用密钥K解密(算法有AES,DES等)

非对称加密:出现一对密钥,称为公钥和私钥,公钥加密的密文只能用私钥解密,私钥加密的密文只能用公钥解密(算法有DH,ECC,RSA等)

RSA:据上可知是非对称加密算法,并且它也是数字签名的算法,这个很多人都忽略了,包括我。参考

DH:DH也是非对称加密,不过密钥交换算法有点特别,例如有A和B两对不同的DH密钥对 ,但双方都能根据自己的私钥和对方的公钥生成相同(未证实)的本地密钥。

想知道如何交换数据,可以知乎(刘巍然-学酥的答案),比较简单明了 http://www.zhihu.com/question/35137387

SSL/TLS 最基本的3次握手可以看这里 并且附加了图解

好了,假设你有了上面的基础知识下面就讲解TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256是什么意思。

回到开始,在申请SSL证书的时候,要求我们上传自己生成的证书(A),然后SSL证书供应商用他的私钥对我们的证书进行了签名。这个证书(A)必须用非对称加密的方式生成,现在最多是用RSA算法。SSL证书供应商的公钥已经安装在我们的操作系统(Windows/Linux),什么时候安装的?据我所知道是装系统的时候就安装了一些,然后系统更新的时候会更新/增加/删除证书。SSL证书供应商的证书一般称之为根证书或CA证书。

看下图,RSA和DH密钥协商

TLS第一次握手是没有区别,区别从服务器收到clientHello开始。服务器收到浏览器支持 的加密方法,然后根据服务器配置获取到大家都支持的加密算法,算法的优先顺序也是服务器设置的。可了解nginx的ssl_ciphers。

然后流程就是服务器发送数据证书之类的,但是当协商使用的是DH算法的话,服务器会生成DH密钥对,并且用申请SSL证书的RSA私钥对DH公钥签名发送给浏览器。

浏览器收到证书,根据证书的链找到CA证书,然后用系统的里面CA证书的公钥对收到的证书进行解密和校验,不正确就当然88了。

如果是RSA密钥协商,就生成随机数,并用服务器发来的公钥进行加密和签名,再发给服务器。服务器用SSL证书的RSA私钥校验和解密,然后双方都根据得到的三个随机数生成master secret。

但如果是DH密钥协商,浏览器在本地生成DH密钥对,再将公钥发给服务器。服务器用SSL证书的RSA私钥对浏览器的DH公钥进行校验,然后双方都根据之前的两个随机数和DH的本地密钥生成master secret。




© 著作权归作者所有

NestleCaau
粉丝 3
博文 3
码字总数 2118
作品 0
广州
程序员
私信 提问
Android Q 中的安全性更新

作者: Rene Mayrhofer 和 Xiaowen Xin, Android 安全与隐私团队 每次发布 Android 的新版本,我们的首要任务之一就是提高平台的安全防护。在过去几年,安全方面的优化在整个生态圈都取得了喜...

Android_开发者
06/03
0
0
黑客可获假 HTTPS 认证,Let's Encrypt 紧急采取措施

网页应用程序安全自动扫描服务Detectify安全研究员Frans Rosén发现,TLS-SNI-01以及TLS-SNI-02在特定的情况下,允许黑客取得他人网站的HTTPS认证 证书颁发认证机构Let's Encrypt表示,由于太...

周其
2018/01/20
2.2K
3
不是 HTTPS 拖慢网站速度,而是优化做的不够优秀

HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层。 HTTPS 的安全基础是 SSL,因此加密...

又拍云
2018/08/29
0
0
在windows上搭建svn服务器(支持邮件提醒)

1、首先下载svn服务器端,我使用的是visual svn server,版本是3.9.1,下载地址:https://www.visualsvn.com/server/download/ 下载跟操作系统位数相同的版本,下载完成后安装即可 2、下载完之...

chro008
2018/08/29
77
0
Kong 1.3 发布,原生 gRPC 代理、上游 TLS 交叉认证

Kong 1.3 发布了,此版本亮点包括支持原生 gRPC 代理、上游 TLS 交叉认证,以及一系列新功能和性能改进。 原生 gRPC 代理 越来越多的用户转向微服务架构,并且希望有对原生 gRPC 代理的支持,...

h4cd
08/22
4.2K
4

没有更多内容

加载失败,请刷新页面

加载更多

Rust:最小化窗口后 CPU占用率高 (winit,glutin,imgui-rust)

最近试着用 imgui-rust 绘制界面,发现窗口最小化后CPU占用会增大。 查询的资料如下: https://github.com/rust-windowing/winit/issues/783 https://github.com/ocornut/imgui/issues/1151 ...

reter
22分钟前
8
0
cloud-zuul路由网关

九、zuul路由网关 概述 1.1 能干嘛 路由、过滤 路由基本配置 路由访问映射规则 十、springCloud config分布式配置中心

榴莲黑芝麻糊
22分钟前
6
0
Circuit Breaker模式

Circuit Breaker模式会处理一些需要一定时间来重连远程服务和远端资源的错误。该模式可以提高一个应用的稳定性和弹性。 问题 在类似于云的分布式环境中,当一个应用需要执行一些访问远程资源...

mskk
35分钟前
11
0
写论文之前的准备都有哪些?干货来了!

原文链接:https://www.lwfdy.com/archives/144.html 之前跟大家谈了许多有关于初稿修改以及写作事项需要注意的问题,那么今天我们来说一说,在写之前,我们需要做哪些准备呢,为了做到下笔如...

辅导员
41分钟前
9
0
idea快捷键

Alt + Enter 引入类 Ctrl + O 查看我们继承的类或者接口中的方法,以及我们要实现的方法 Ctrl + Alt + b 查看接口实现类中方法(就是我们使用接口编程时,在调用实现类方法处直接Ctrl+鼠标左...

行者终成事
49分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部