https原理简述

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: https原理简述

https的作用是为了客户端与服务器之间通讯的安全性,实际上https是工作在SSL上的http协议。


SSL握手协议包含4个阶段:


第一阶段:建立安全能力


由客户端发起,向服务器发送Client Hello消息,其中包含SSL的版本,客户端随机数(用于生成密钥),会话号,加密算法清单,压缩算法清单。


服务器返回Server Hello消息,其中包含SSL版本,服务器随机数(用于生成密钥),会话号,选择的加密算法,选择的压缩算法。


总之就是互相先打招呼,告诉对方自己是谁干嘛的。


第二阶段:服务器认证与密钥交换


本阶段服务器是唯一发送消息方,这里共分三步:


第一步:证书,服务器将服务器数字证书以及整个CA证书链发给客户端,客户端由此获得服务器公钥;客户端还可以在这一步选择是否验证服务器是否可信,不验证的话就相当于跳过证书验证这一步,直接进行通讯,前提是服务器支持,不错这样一来https将失去其本来的安全作用,所以还是需要进行验证的,如果不可信则客户端可以停止连接,并提醒用户;


第二步:证书请求,服务器请求客户端的数字证书,客户端认证在SSL中是可选的,因此这一步也是可选的。


第三步:服务器握手完成,发送这个消息后,服务器等待客户端响应。


第三阶段:客户端认证与密钥互换


本阶段客户端是唯一消息发送方,共分三步。


第一步:证书,客户端将客户端数字证书发送给服务器,里面包含了客户端的公钥。通常来说这个证书应该是由服务提供者分发给客户端,由指定的CA签发的,因此服务器可以验证客户端证书的合法性,并决定是否继续。


第二步:密钥交换,客户端生成“预主密码”,用服务器的公钥加密,然后发送给服务器。这个加密过的“预主密码”只有客户端和服务器才能知道,与后面对称加密的对称密钥有关。在这一步也间接验证了服务器,服务器必须拥有与证书对应的私钥才能解密预主密码”。


第三步:证书验证,客户端还需要向服务器验证自己是真正的客户端(数字证书只是证明客户端拥有合法的公钥,但无法证明它就是客户端,拥有与公钥对应的私钥才是关键),为此客户端把已经加密的“预主密码”、客户端含有签名的随机数和自己的证书,发送给服务器。服务器通过验证CA的有效性合法性,随机数等等,若通过,服务器将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主通讯密码。(客户端获取主通讯密码的方式和服务器是一样的)


第四阶段:完成


在这个阶段,客户端和服务器各自独立的生成相同的主通讯密码,也就是所谓的对称密钥。


SSL握手之后就进入会话阶段,客户端和服务器使用握手协议中生成的对称密钥进行加密和解密以保证通信的安全。


综上所述,如果要完成HTTPS的双向认证需要以下密钥和证书:


服务器端 :


1.服务器私钥 ;

2.由CA签发的含有服务器公钥的数字证书 ;

3.CA的数字证书。在双向认证的实践中,通常服务器可以自己作为证书机构,并且由服务器CA签发服务器证书和客户端证书。


客户端 :


1.客户端私钥,因为公钥是通过服务端的数字证书和CA证书获得的 ;

2. 由CA签发的含有客户端公钥的数字证书。为了避免中间人攻击,客户端还需要内置服务器证书,用来验证所连接的服务器是否是指定的服务器。

目录
相关文章
|
9天前
|
安全 算法 网络安全
一张图就把HTTPS工作原理讲明白了!
【10月更文挑战第31天】
21 1
一张图就把HTTPS工作原理讲明白了!
|
2月前
|
安全 网络安全 数据安全/隐私保护
https的原理
https的原理
53 2
|
3月前
|
安全 算法 网络协议
【在Linux世界中追寻伟大的One Piece】HTTPS协议原理
【在Linux世界中追寻伟大的One Piece】HTTPS协议原理
46 2
|
4月前
|
缓存 网络协议 算法
(二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!
作为一名程序员,尤其是Java程序员,那必须得了解并掌握HTTP/HTTPS相关知识。因为在如今计算机网络通信中,HTTP协议的作用功不可没,无论是日常上网追剧、冲���、亦或是接口开发、调用等,必然存在HTTP的“影子”在内。尤其对于WEB开发者而言,HTTP几乎是每天会打交道的东西。
96 10
|
3月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
310 0
|
5月前
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
63 2
|
5月前
|
网络协议 前端开发 Java
网络原理 - HTTP / HTTPS(4)——构造http请求
网络原理 - HTTP / HTTPS(4)——构造http请求
55 1
|
5月前
|
存储 JSON 安全
网络原理 - HTTP / HTTPS(2)——http请求
网络原理 - HTTP / HTTPS(2)——http请求
58 1
|
6月前
|
安全 网络协议 算法
秒懂HTTPS接口(原理篇)
【4月更文挑战第24天】秒懂HTTPS接口(原理篇)
485 4
秒懂HTTPS接口(原理篇)
|
6月前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略