SSL协议握手过程
来源:互联网 发布:广东省社会科学院知乎 编辑:程序博客网 时间:2024/03/29 05:26
今天学习了一下SSL协议的握手内容,在此整理一下,做一个总结。
据说SSL应用广泛,但本人孤陋寡闻,只知道在http协议的基础上加上SSL协议即为https协议。众所周知,https协议比http协议更安全,那么究竟安全在何处呢,这就要探究SSL协议的机制。
我们以客户端A和服务器B的通信为例讲解一下SSL协议的握手过程。
在开始通信前,需要进行握手(当然了,最重要的还是先建立TCP连接),SSL协议的握手过程如下:
1.客户端发送随机数s1,SSL版本号以及可选的加密算法给服务器B。
2.服务器B从可选的加密算法中选择其中一种作为服务器支持的加密算法(暂且称其为m),并且产生一个随机数s2。
服务器将m、s2和一份包含服务器B的RSA公钥的数字证书发送给客户端;该证书还包含了用于认证目的的服务器标识。
3.客户端A使用该证书的认证机构CA公开发布的RSA公钥对该证书进行验证(如果认证机构不靠谱,那就很难受了),同时客户端A又产生一个随机数s3(产生这么多随机数我也很绝望),其实s3有一个专门名称,叫做pre_master_secret。客户端将使用服务器B发送过来的服务器RSA密钥匙(就是存放在数字证书中的那个密钥)对s3进行加密后,得到的内容message,将其发送给B。
4.B用自己的私钥将message解密,此时,客户端和服务器都拥有s1,s2,s3的内容,它们将分别利用这三者的内容独立计算出共享的对称会话密钥(至于怎么计算的,可自行搜索DH密钥交换算法了解,当然我自己也准备写一篇文章来介绍)。本来有了对称密钥,就可以进行通信了,但是为了防止握手本身遭受篡改,还需要进行以下两步检验:
5.客户端将所有握手消息的MAC值发送给服务器;
6.服务器将所有握手消息的MAC值发送给客户端;
图解过程如下:
有了对称密钥后,A和B就能更为安全地进行通信啦!
- ssl协议握手过程
- SSL协议握手过程
- SSL协议握手过程
- SSL协议握手过程
- SSL协议的握手过程
- SSL协议以及握手过程
- SSL协议详细握手过程
- SSL协议的握手过程
- SSL协议的握手过程
- SSL协议的握手过程
- SSL协议的握手过程
- SSL协议以及握手过程
- 白话SSL协议的握手过程
- SSL协议概述和握手过程
- SSL协议握手过程报文解析
- SSL协议握手过程报文解析
- SSL协议握手过程报文解析
- SSL的握手协议
- python pandas.errors Buffer overflow caught
- 使用 NTP 解决 Ceph 集群的时钟偏移
- 动态规划
- Hdu6078Wavel Sequence
- 双目匹配过程记录
- SSL协议握手过程
- 设计模式初探-桥接模式
- 集合
- Hibernate中使用@Temporal修饰日期类型的属性
- SEO(搜索引擎优化)百度鼓励原创,那么如何判断呢,百度原创识别“起源”算法与星火计划
- Python3+OpenCV人脸识别
- 域名解析到本地主机
- combineByKey算子求解平均值实例
- [View Controller切换效果] 自定义动画+交互式动画