HTTPS协议的详细讲解(四次握手)

简介: HTTPS协议的详细讲解(四次握手)

HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。HTTPS协议是在HTTP的基础上加上了一个协议。

- SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

- TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。

SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。          

HTTPS 中使用到了对称加密和非对称加密,在不同的阶段使用。

加密算法

哈希算法:哈希函数:echo xxx|md5sum (输入值不一样,输出值也不一样,但是密码长度都是一样的)将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。

例如:MD5、SHA-1、SHA-2、SHA-256 等  

     

非对称加密

HTTPS 在内容传输的加密上使用的是对称加密非对称加密只作用在证书验证阶段

HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:

     

1、证书验证阶段

  • 浏览器发起 HTTPS 请求
  • 服务端返回 HTTPS 证书
  • 客户端验证证书是否合法,如果不合法则提示告警

2、数据传输阶段

  • 当证书验证合法后,在本地生成随机数
  • 通过公钥加密随机数,并把加密后的随机数传输到服务端
  • 服务端通过私钥对随机数进行解密
  • 服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输

①客户端向服务端发送访问(通过域名访问或者ip地址访问)请求。

② CA数字证书加密环节:CA证书使用自己的私钥对证书进行加密。

③ 服务器响应客户端的请求,并携带着数字证书(证书包含公钥A)发送给客户端。私钥B自己留着

④ 客户端进行证书验证环节:客户端对证书进行解析,验证公钥的合法性。

公钥不合法:提示http警告。

非对称加密:

公钥合法:取出公钥A并生成随机字符串KEY。使用公钥A加密随机字符串 KEY

⑤客户端把加密后的随机字符串发送给服务器,作为接下来对称加密的密钥。

对称加密:

⑥ 服务端使用私钥B解密随机字符串KEY,获取随机字符串KEY,使用随机字符串KEY,对传输数据进行对称加密。

⑦服务端传输对称加密的内容。

客户端使用之前生成的随机字符串 KEY解密数据。

⑧ 客户端和服务端通过对称加密传输所有内容。

中间人攻击

为了解决中间人攻击于是引入了数字签名。

CA证书如何使用:证书需要购买,CA机构购买,然后安装

3、密钥

公钥和私钥是一对加密使用的密钥(字符串)---可以自己产生也可以向CA申请。CA也有公钥和私钥。

CA:第三方认证 担保 、公证。CA有自己的私钥和公钥。以下是客户端和服务端公私钥认证过程

假如:A客户端    B:服务端

当用户通过浏览器(客户端)去访问B服务端的时候,服务端会去CA那里购买一个证书,CA会使用自己的私钥对证书进行加密然后给B服务端,然后B服务端就会将自己的公钥和认证过的证书发送给A客户端,A客户端内部会与CA进行合作,CA会之前给服务器端认证过的公钥发给A客户端,A客户端就会拿着这CA给的这个公钥认证服务器端发送过来的证书是否合法,如果合法的话就验证通过,然后客户端就使用自己的公钥对服务端发送过来的公钥进行加密,生成一个随机字符串。

然后再发送给服务端,服务端再使用自己的私钥对客户端传过来的公钥进行解密,解密获取到一个随机字符串(公钥加密的密文只有私钥可以解密,私钥加密的内容,也只有公钥可以解密)然后使用随机字符串对传输数据进行对称加密,然后将对称加密后的内容传输给客户端,然后客户端使用之前生成的随机字符串进程解密数据,最后就是双方通过对称加密传输所有的内容。

CA会给A一个身份证明(A上面也有公钥和私钥),里面携带的是CA的公钥。

浏览器内部会去找CA进行认证,如果是不安全的连接会发出警告(提醒),

B(含有公钥和私钥)拿到A的公钥之后会去找CA去做身份识别。            

4、HTTPS的四次握手过程

                           

客户端发起HTTPS请求
服务端的配置

采用HTTPS协议的服务器必须要有一套数字证书,可以是自己制作或者CA证书。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用CA证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥。公钥给别人加密使用,私钥给自己解密使用。

传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等。

客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随随机值,然后用证书对该随机值进行加密。

传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

传输加密后的信息

这部分信息是服务端用私钥加密后的信息,可以在客户端被还原。

客户端解密信息

客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容。

整个握手过程第三方即使监听到了数据,也束手无                策。


相关文章
|
9月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
249 18
|
9月前
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
239 19
|
9月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
859 20
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
9月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
366 1
|
10月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
527 3
|
网络协议 安全 网络安全
HTTP与HTTPS协议入门
HTTP协议是互联网的基石,HTTPS则是其安全版本。HTTP基于TCP/IP协议,属于应用层协议,不涉及数据包传输细节,主要规定客户端与服务器的通信格式,默认端口为80。
528 25
HTTP与HTTPS协议入门
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
859 3
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
440 11
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
577 8