最近学习https,搜了几篇文章mark一下
1 客户端发起一个https的请求,把自身支持的一系列Cipher Suite(密钥算法套件,简称Cipher)发送给服务端
2 服务端,接收到客户端所有的Cipher后与自身支持的对比,如果不支持则连接断开,反之则会从中选出一种加密算法(此处应该是对称加密算法,简称A)和HASH算法
以证书的形式返回给客户端 证书中还包含了 公钥 颁证机构 网址 失效日期等等。
3 客户端收到服务端响应后会做以下几件事
3.1 验证证书的合法性
颁发证书的机构是否合法与是否过期,证书中包含的网站地址是否与正在访问的地址一致等
证书验证通过后,在浏览器的地址栏会加上一把小锁(每家浏览器验证通过后的提示不一样 不做讨论)
3.2 生成随机密码
如果证书验证通过,或者用户接受了不授信的证书,此时浏览器会生成一串随机数,然后用证书中的公钥加密。
3.3 HASH握手信息
用最开始约定好的HASH方式,把握手消息取HASH值, 然后用 随机数加密(此处应该是使用A机密的) “握手消息+握手消息HASH值(签名)” 并一起发送给服务端
在这里之所以要取握手消息的HASH值,主要是把握手消息做一个签名,用于验证握手消息在传输过程中没有被篡改过。
4 服务端拿到客户端传来的密文,用自己的私钥来解密握手消息取出随机数密码,再用随机数密码 解密 握手消息与HASH值,并与传过来的HASH值做对比确认是否一致。
然后用随机密码加密(此处也是A加密)一段握手消息(握手消息+握手消息的HASH值 )给客户端
5 客户端用随机数解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密
因为这串密钥只有客户端和服务端知道,所以即使中间请求被拦截也是没法解密数据的,以此保证了通信的安全
https://www.cnblogs.com/zery/p/5164795.html
http://blog.csdn.net/ituling/article/details/52541585
http://www.guokr.com/post/114121/
相关推荐
二、HTTPS握手过程 HTTPS基于SSL/TLS协议,其握手过程是安全通信的基础。以下是典型的四步握手流程: 1. TCP三次握手:建立TCP连接,确保数据传输的可靠性。 2. Client Hello:客户端发送TLS版本、随机数、会话ID...
《HTTPS协议详解:TLS/SSL握手过程》 HTTPS协议是HTTP的安全版本,它利用SSL/TLS协议进行数据传输,确保在网络通信中数据的保密性和完整性。本文将详细讲解TLS/SSL握手过程,主要包括握手与密钥协商过程、会话缓存...
3.https握手过程 4.https能否防住DNS攻击 5.https能否防止中间人攻击 5.TCP和UDP的区别 5.拥塞控制 6.死锁的条件 7.static的变量存在哪,内存模型 8.线程和进程 9.设计模式,我说我不是很会,就讲了一下单例模式的...
在本文中,我们将探讨如何使用Wireshark来分析HTTPS(HTTP over SSL/TLS)的传输过程。 HTTPS是一种安全的网络通信协议,它通过在HTTP协议的基础上加入SSL/TLS层来提供数据加密、服务器身份验证和消息完整性检查,...
了解其握手过程和工作原理是理解现代网络安全的关键。虽然整个过程比HTTP复杂,但为了保障通信的安全性,这些额外的步骤是必不可少的。通过本文的介绍,读者应该对HTTP和HTTPS握手有了更加深入的认识,也理解了为...
在本文中,我们将通过 Wireshark 来抓包和分析 TCP“三次握手,四次挥手”过程。 是什么是抓包? 网络传输信息是通过层层打包,最终到达客户端物理层,经过网线等设备传输到服务器端后,再进行层层拆包,最后获取...
知识点:HTTPS 握手过程中使用了 SSL/TLS 协议,包括密钥交换、证书验证、加密和 MAC 验证等技术。 9. Linux 中 PHP 环境,已知 disable_functions=exec,passthrupopen,proc_open,shell_exec,system,请写出两种有...
36. HTTPS握手过程: HTTPS握手包括密钥交换、服务器验证、客户端验证等步骤,保证了数据传输的安全性。 37. HTTPS证书验证过程: 客户端在握手过程中验证服务器的SSL/TLS证书,确保其合法性。 38. call和apply的...
- HTTPS握手过程:包括客户端发起请求、服务器发送证书、密钥交换等步骤。 5. Cookie与Session - Cookie:服务器端设置的标识,存储在客户端,用于跟踪用户状态。 - Session:服务器端存储用户信息,通过Session...
- **连接速度**:HTTP更快,HTTP 80端口,HTTPS 443端口,HTTPS握手过程多,消耗更多资源。 4. **TCP/IP协议**: - **协议簇**:TCP/IP是一组协议,包括TCP(传输控制协议)和IP(网际协议),独立于硬件和操作...
WebSocket协议通过一个HTTP/HTTPS握手过程建立连接,之后客户端和服务器之间可以通过TCP连接直接交换数据帧,无需每次请求都进行完整的HTTP头交换,从而降低了通信开销。在视频通信中,这种高效的双向通信机制使得...
8. HTTPS握手过程涉及的技术:包括公钥加密、数字签名、SSL/TLS协议、证书验证等。 9. 在Linux中PHP环境下,若disable_functions设置为禁用特定函数,如exec等,可以尝试通过文件包含漏洞、魔术引号绕过等方法实现...
那么,面试官说的"HTTPS中的TLS握手过程可以同时进行三次握手"是否正确呢?这个场景是可能发生的,但是需要在特定的条件下才可能发生。如果没有说任何前提条件,说这句话就是在耍流氓。 那么,什么条件下,这个场景...
### 大厂Go工程师面试题集锦知识点梳理 #### 一、Go语言基础与特性 1. **Go Channel关闭后的读取行为** - **知识点**:理解Go中的Channel工作机制,包括关闭后的读取行为及其意义。...8. **HTTPS握手过程** ...
HTTP连接的建立基于TCP三次握手过程,通常涉及以下步骤: 1. 客户端向服务器发送一个SYN(同步序列编号)包,请求建立连接。 2. 服务器响应客户端的SYN包,发送一个SYN+ACK(同步确认)包,同意建立连接。 3. 客户端...
TLS 的握手过程,如下图:上图简要概述来了 TLS 的握手过程,其中每一个“框”都是一个记录(record),记录是 TLS 收发数据的基本单位,类似于 TCP 中的 segment。多个记录可以组合成一个 TCP 包发送,所以通常经过...
TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层...在实际应用中,如HTTP、HTTPS、FTP等协议都是建立在TCP之上的,因此理解和掌握TCP的握手过程对于网络开发者和运维人员来说是必不可少的技能。
标题中的“握手”通常在IT领域中指的是网络通信中的TCP(传输控制协议)三次握手过程。这个过程是建立TCP连接的关键步骤,确保了数据能在可靠的连接上进行传输。接下来,我们将详细探讨TCP三次握手以及其在...