SSL握手

一、SSL握手有三个目的:
1. 客户端与服务器需要就一组用于保护数据的算法达成一致;
2. 它们需要确立一组由那些算法所使用的加密密钥;
3. 握手还可以选择对客户端进行认证。

二、SSL握手过程:
1. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;
2. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;
3. 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/解密),并将加密后的信息发送给服务器;
4. 客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法)。
5. 客户端将所有握手消息的MAC值发送给服务器;
6. 服务器将所有握手消息的MAC值发送给客户端。

时间: 2024-12-13 05:27:23

SSL握手的相关文章

OkHttp还处理了代理服务器问题和SSL握手失败问题

Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient,HttpURLConnection相对来说比HttpClient难用,google自从2.3版本之后一直推荐使用HttpURLConnection,并且在6.0版本的sdk中直接删掉了HttpClient类. 但是, 上面两个类库和OkHttp比起来就弱爆了, 因为OkHttp不仅具有高效的请求效率,并且节省宽带, 还提供了很多开箱即用的网络疑难杂症解决方案.(据说Android4.4的源码中可

SSL握手过程

一.SSL握手有三个目的:1. 客户端与服务器需要就一组用于保护数据的算法达成一致:2. 它们需要确立一组由那些算法所使用的加密密钥:3. 握手还可以选择对客户端进行认证. 二.SSL握手过程:1. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器:2. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端:该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数:3. 客户端对服务器的证书进行验证(有关验证证书,可以参考

无效session ticket导致的SSL握手协商失败

SSL session ticket记录了加密参数,用于后续请求,减少握手次数,降低反复握手请求导致的高延迟. 如上截图,在SSL 握手完成之后,服务器生成session ticket.请求关闭后,如果客户端发起后续连接(超时时间内),可以随client hello复用这个session ticket,可以加快协商速度,如下截图:

CentOS6.5环境下OpenSSL实战:自己搭建CA中心,申请,签发,吊销,导入证书,SSL 握手详解

CentOS6.5环境下OpenSSL实战: 自己搭建CA中心,申请,签发,吊销,导入证书,SSL 握手详解

捉虫记:QT5.2 SSL握手失败问题

最近在测试项目的时候,出现了这样一个bug:在某些win7和 win8主机上,我们的客户端使用paypal进行付款时,出现SSL握手失败的问题. 项目使用QT5.2.1开发,由于QT移植了开源的webkit,我们在项目中内置了一个浏览器,用来完成商品浏览和付款. 问题来了,当然需要进行"捉虫"了. 自从上次OpenSSL爆出"心脏出血"(见wiki),我们也使用了最新的openssl代码. 首先,需要定位问题出现的位置具体在哪里. 好在QT是开源的,方便我们定位问题

SSL握手流程

一.SSL是什么? 安全套接字(SSL)协议是Web浏览器和Web服务器之间安全交换信息的协议. SSL介于应用层和TCP层之间,应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头. History: 1994年,NetScape公司设计了SSL协议(Secure Sockets Layer)的1.0版,但是未发布. 1995年,NetScape公司发布SSL 2.0版,很快发现有严重漏洞. 1996年,SSL 3.0版问世,得到大规模

ssl握手协议中的CipherSuite

下面是一个ssl握手的过程,没有进行客户端验证: 1.C-S:ClientHello---cipher-suit-list 2.S-C:ServerHello---selected-cipher-suit 3.S-C:ServerKeyExchange 4.S-C:ServerHelloDone 5.C-S:ClientKeyExchange 6.C-S:完成 7.S-C:完成 第3步是否发送要看c和s协商的cipher-suit是什么,cipher-suit包含四个部分(将摘要算法并入认证算法

ssl握手数据结构

ssl握手 SSL记录头(5字节) 字节0:记录内容的类型 Content Type Hex Code Description Change_Cipher_Spec 0x14 指示加密方式的更改 Alert 0x15 发出各种类型的错误信号 Handshake 0x16 携带握手消息的记录 Application_Data 0x17 加密的应用数据 字节1和2:SSL版本(TLSv1是0x0301,SSLv3是0x0300) 字节3和4:记录长度(不包括前面5字节) 握手消息头(3字节) 字节0

加密、签名和SSL握手机制细节

1.1 背景知识 对称加密     :加密解密使用同一密钥,加解密速度快.随着人数增多,密钥数量急增n(n-1)/2. 非对称加密 :使用公私钥配对加解密,速度慢.公钥是从私钥中提取出来的,一般拿对方公钥加密来保证数据安全性,拿自己的私钥加密来证明数据来源的身份. 单向加密     :不算是加密,也常称为散列运算,用于生成独一无二的校验码(或称为指纹.特征码)来保证数据的完整性和一致性,如MD5.SHA.具有雪崩效应,任何一点数据的改变,生成的校验码值变化非常大. 互联网数据安全可靠的条件: 1