HTTPS的加密机制和加密流程?

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: HTTPS的加密机制和加密流程?

HTTPS 和 HTTP 的对比 ?

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

为什么需要加密?

因为http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击。所以我们才需要对信息进行加密。

主要的加密机制:

对称加密

(简单的说,用同一个密钥,加密和解密一段信息。)

对称加密的优点:加密速度快、加密效率高。 缺点:密钥管理的安全性很低.

非对称加密:

(简单说就是有两把密钥,通常一把叫做公钥、一把叫私钥,用公钥加密的内容必须用私钥才能解开,
  同样,私钥加密的内容只有公钥能解开。)

非对称加密安全吗?

非对称加密也不是绝对安全的,如果在上图的流程中,当服务器把公钥发送给客户端时,这时候被中间人拦截了,然后中间人用自己的公钥发送给客户端,客户端用中间人的公钥加密后的密文本想发送给服务器端,又被中间人拦截,并且用自己的密钥解密。然后中间人再用服务器的公钥加密发送给服务器端。这样就造成不安全了。

非对称加密的优点:安全性较高。 缺点:加密方法复杂,加密效率低,速度慢

数字证书

网站在使用HTTPS前,需要向CA机构申领一份数字证书,数字证书里含有证书持有者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了,证书就如身份证,证明“该公钥对应该网站”。

如何放防止数字证书被篡改?

我们把证书原本的内容生成一份“签名”,比对证书内容和签名是否一致就能判别是否被篡改。这就是数字证书的“防伪技术”,这里的“签名”就叫数字签名。

中间人有可能篡改该证书吗?

假设中间人篡改了证书的原文,由于他没有CA机构的私钥,所以无法得到此时加密后签名,无法相应地篡改签名。浏览器收到该证书后会发现原文和签名解密后的值不一致,则说明证书已被篡改,证书不可信,从而终止向服务器传输信息,防止信息泄露给中间人。

中间人有可能把证书掉包吗?

假设有另一个网站B也拿到了CA机构认证的证书,它想劫持网站A的信息。于是它成为中间人拦截到了A传给浏览器的证书,然后替换成自己的证书,传给浏览器,之后浏览器就会错误地拿到B的证书里的公钥了,这确实会导致上文“中间人攻击 ,但是其实这并不会发生,因为证书里包含了网站A的信息,包括域名,浏览器把证书里的域名与自己请求的域名比对一下就知道有没有被掉包了。

HTTPS的加密机制和流程:

(HTTPS的加密机制 = 对称加密机制+非对称加密机制。而不是单独的某一种。)

HTTPS加密流程(非对称加密+对称加密):

某服务器拥有用于非对称加密的公钥A、私钥A’。
浏览器向服务器请求,服务器把公钥A明文给传输浏览器。
浏览器随机生成一个用于对称加密的密钥X,用公钥A加密后传给服务器。
服务器拿到后用私钥A’解密得到密钥X。
这样双方就都拥有密钥X了,且别人无法知道它。之后双方所有数据都通过对称加密的密钥X加密解密即可。

HTTPS使用非对称加密+对称加密的好处?为什么不单独使用非对称加密机制呢?

好处:由于对称加密速度快,不安全,非对称加密速度慢,相对安全。所以https使用非对称加密来进行对称加密秘钥的发送。用对称加密来进行信息的传输。这样就能够利用两种加密机制各自的优点,提高传输效率。

HTTPS加密机制(非对称加密+对称加密)安全吗?

如果在使用非对称加密发送对称加密的秘钥时,被中间人窃取了,则之后的使用对称加密发送秘文都是不安全。非对称性加密之所以不安全,是因为客户端不知道,这把公钥是不是服务器的。

简略概况:HTTPS加密机制之所以不安全,根本原因是客户端无法确认收到的公钥是不是服务器自己的。


相关文章
|
19天前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
21 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
2月前
|
安全 网络安全 数据安全/隐私保护
HTTPS中的加密算法
HTTPS中的加密算法
|
24天前
|
安全 网络协议 网络安全
【HTTPS】对称加密和非对称加密
【HTTPS】对称加密和非对称加密
28 0
|
4月前
|
缓存 网络协议 算法
(二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!
作为一名程序员,尤其是Java程序员,那必须得了解并掌握HTTP/HTTPS相关知识。因为在如今计算机网络通信中,HTTP协议的作用功不可没,无论是日常上网追剧、冲���、亦或是接口开发、调用等,必然存在HTTP的“影子”在内。尤其对于WEB开发者而言,HTTP几乎是每天会打交道的东西。
86 10
|
3月前
|
安全 网络安全 数据安全/隐私保护
|
3月前
|
安全 网络安全 数据安全/隐私保护
HTTPS的执行流程是什么
【8月更文挑战第15天】HTTPS的执行流程是什么
110 0
|
3月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
247 0
|
Java 数据安全/隐私保护
Java中请求HTTPS加密的源代码
 HTTPS访问方法的代码,抄一个能用的DEMO吧,我测试过的,可以用、,希望对大家也有用   import java.io.*;import java.net.*;import java.security.*;import java.security.cert.*;import java.util.*;import javax.net.ssl.*;public class Http
1046 0
|
Java 数据安全/隐私保护
Java中请求HTTPS加密的源代码
import java.io.*;import java.net.*;import java.security.*;import java.security.
777 0
|
2月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性