HTTPS加密原理

简介: 1、单向加密也称为不可逆加密,对明文产生一个密文,并且不能通过密文解出对应的明文使用场景:一般用于信息摘要,密钥加密等常见的单向加密算法有:

一、加密基础

1、单向加密

也称为不可逆加密,对明文产生一个密文,并且不能通过密文解出对应的明文

使用场景:一般用于信息摘要,密钥加密等

常见的单向加密算法有:


  1. MD5
  2. SHA:SHA192,SHA256


特点:

  • 不可逆
  • 输入一样,输出相同



2、对称加密

对称加密,用一个密钥,对明文进行加密,同理,同这把密钥,也可以对密文进行解密。也就是说加密和解密,可以用同一个密钥,这种加密方法就是对称加密


常见的对称加密算法有:


  1. DES
  2. 3DES
  3. AES

特点:


  • 加密方和解密方使用同一个密钥
  • 加密解密速度比较快



3、非对称加密

使用公钥和私钥进行加密解密,可以使用私钥加密,公钥进行解密,同理也可以使用公钥加密,私钥进行解密


常见的非对称加密算法有:


  1. RSA
  2. DSA


特点:


  • 使用两把密钥进行加密和解密,即公钥和私钥
  • 公钥加密私钥解密,私钥加密公钥可以解密
  • 加密或者解密,速度非常慢
  • 私钥和公钥是成对出现的


二、HTTPS加密原理

1、为什么需要加密

HTTP的内容是明文传输的,数据传输的过程会经过中间代理服务器、路由器、WiFi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,那么传输的内容就完全暴露了,甚至劫持者还可以篡改信息而不被通信双方察觉,这就是中间人攻击。


所以我们需要对传输的内容进行加密。


2、加密流程演变

1)对称加密

首先可以想到的就是对称加密,对称加密速度较快,通信过程中对信息进行加密解密的开销不大,只要通信双方约定好一个密钥,之后每次传输的时候都采用这个密钥进行加密解密即可。


但是这其中存在一个问题,就是双方如何约定一个仅双方知晓的密钥。如果服务器生成后传输给浏览器,那么这个密钥仍有被劫持的可能,那么后续的加密显然就失效了。所以我们将对称加密用于数据传输,但需要一种安全的方式保证对称加密的密钥传输


2)非对称加密

非对称加密采用公钥和私钥两把密钥,服务端将公钥发送给客户端,之后客户端每次传输数据之前都先采用公钥对要传输的数据进行加密,这样就保证了客户端到服务器端信息的安全,因为只有持有私钥的服务端才可以解密出客户端所发送的数据。


但是服务器端发送的数据却是无法保证的,因为公钥是公开的,那么其他人就可以截获并解密出服务端发给客户端的数据。


一组公钥私钥可以解决单向的安全,那么其实用两组公钥私钥也可以保证传输的安全,但是非对称加密的效率低

  1. 某网站服务器拥有公钥A与对应的私钥A’;浏览器拥有公钥B与对应的私钥B’。
  2. 浏览器把公钥B明文传输给服务器。
  3. 服务器把公钥A明文给传输浏览器。
  4. 之后浏览器向服务器传输的内容都用公钥A加密,服务器收到后用私钥A’解密。由于只有服务器拥有私钥A’,所以能保证这条数据的安全。
  5. 同理,服务器向浏览器传输的内容都用公钥B加密,浏览器收到后用私钥B’解密。同上也可以保证这条数据的安全。

3)非对称加密+对称加密

既然非对称加密可以保证客户端发给服务端的信息只有服务端能读取,那么我们不难想到让客户端生成对称传输的密钥,然后用非对称加密中服务端发布的公钥对该密钥进行加密发给服务端,服务端收到之后用非对称加密中的私钥解密即可拿到对称加密的公钥。之后双方就可以采用这个密钥进行对称加密传输了。这样不仅保证了安全,效率也够高(相比于用两组公钥私钥进行数据的传输)

3、存在问题

上面的方式看似安全,但其实还是存在一定的问题的。


服务端在发送公钥A给客户端时,如果被截取,那么攻击者可以把服务端本要发送给客户端的公钥A替换成自己生成的公钥B,这个操作对于客户端来说是不可得知的。那么后续客户端生成密钥X再加密发出时其实使用的就是攻击者生成的公钥B去进行加密的,那么攻击者就可以通过自己的私钥B’解密出客户端生成的对称加密密钥X,然后再用服务端的公钥A加密后返回给服务端。


那么后续双方通信的内容同样还是被攻击人所窃取了。


4、解决方式

其实之所以会存在这样的问题主要是因为服务端无法保证自己发出的公钥能够不被篡改地发送给客户端,即客户端不能确定接收到的公钥一定是服务端发送的。


如果按照之前的方式再次对公钥进行加密,那么加密的密钥的传输仍然还是重复上面的问题。所以在这里引入了第三方机构(CA机构)来解决这样的情况。


1)数字证书

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


书就如身份证,证明”该公钥对应该网站“


当然这里还得保证证书本身的真实性,即防止证书本身在传输过程中被篡改。


数字证书组成部分:


  • 服务端生成的公钥
  • 颁发者(证书认证机构)
  • 证书有效期
  • 生成摘要的算法
  • 指纹(摘要)
  • 签名算法
  • 序列号:证书的唯一标识


2)生成方式

数字签名的制作过程:


  1. CA机构拥有非对称加密的私钥和公钥。
  2. CA机构对证书明文数据T进行hash。
  3. 对hash后的值用私钥加密,得到数字签名S。
  4. 明文和数字签名共同组成了数字证书。



为什么需要对证书先进行哈希之后再加密:

因为非对称加密效率很差,而证书中包含的信息一般又比较长,所以先对证书进行哈希得到一个固定长度的值之后再进行加密可以有效降低耗时。


浏览器验证过程:

  1. 拿到证书得到明文T和数字签名S。
  2. 用CA机构的公钥对S解密(由于是浏览器信任的机构,所以浏览器保有它的公钥),得到S’。
  3. 用证书里指明的hash算法对明文T进行hash得到T’。
  4. 显然通过以上步骤,T’应当等于S‘,除非明文或签名被篡改。所以此时比较S’是否等于T’,等于则表明证书可信。


这里的核心其实就是在于浏览器保存有了CA机构的公钥,所以避免了这个公钥的传输导致的被篡改的可能。

其实这里的证书是操作系统和浏览器本身就会预装一些他们信任的根证书,如果其中有CA机构的根证书,就可以拿到它对应的可信公钥了。如果浏览器没有给这个网站颁发证书的机构的根证书,那么你就得手动下载安装该机构的根证书(风险自己承担)。安装后,你就有了它的公钥,就可以用它验证服务器发来的证书是否可信了。


因为签名是用CA机构的私钥加密得到的,攻击者即使篡改了数据,由于没有私钥也更改不了数字签名,那么最后验证时则会发现S‘和T’不相同的情况,说明证书不可信,从而终止向服务器传输信息,防止信息泄露给中间人。


并且证书中还保存了网站的域名和信息等,如果攻击者用自己在CA机构申请的证书进行替换,则浏览器接收到证书时就会发现与当前访问的网站不同,从而也避免了证书被掉包的情况。


5、整体流程

  1. 网站提交相关信息申请证书
  2. CA机构向证书中写入摘要算法、域名、网站公钥等信息,并通过摘要算法对证书进行哈希,之后用自己的私钥对摘要进行加密计算出签名
  3. 将证书颁发给申请者,申请者将证书放到服务器
  4. 浏览器访问网站,服务器将证书发送给浏览器
  5. 浏览器根据自身保存或操作系统内置的CA证书拿到CA的公钥,通过其对签名进行解密得到摘要
  6. 通过整数中的摘要算法对证书进行哈希,比较结果是否等于上一步得到的摘要
  7. 如果不相等则证明证书被篡改,如果相等则通过证书验证,浏览器拿到服务端的公钥
  8. 浏览器生成密钥并使用拿到的服务端公钥进行加密传输给服务端
  9. 服务端使用私钥计算出密钥并将其存储在服务端内部(通过sessionID标识对应的浏览器)
  10. 后续浏览器每次请求都携带sessionID,服务器会根据sessionID找到对应的密钥进行加密解密操作


相关文章
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
9月前
|
算法 安全 网络安全
https 的加密过程
HTTPS通过SSL/TLS协议实现安全通信,结合非对称加密与对称加密技术。客户端与服务器协商加密套件,验证证书后生成主密钥用于后续数据加密传输,确保身份真实、数据保密与完整。
2324 1
|
11月前
|
数据采集 监控 API
加密货币 Pump 监测刮刀工具开发原理及实现路径
开发Pump监测刮刀工具需综合运用高频数据采集、波动率建模、跨平台对冲三大核心技术,2025年的技术瓶颈已从基础数据获取转向超低延迟执行与合规适配。建议采用模块化开发策略,优先实现核心监控功能,再逐步接入AI决策与链上套利模块。代码示例需根据最新交易所API文档动态调整,并严格遵守所在地监管法规。
|
安全 算法 网络安全
HTTPS原理
HTTPS 通过加密、数字证书、握手过程等多种手段,确保了网络通信的安全和可靠。它为用户提供了更高级别的隐私保护和数据安全,是现代互联网中重要的安全保障机制。随着网络安全威胁的不断增加,HTTPS 的应用也越来越广泛,成为保障网络安全的重要基石。
960 168
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
948 3
|
安全 算法 网络协议
网易面试:说说 HTTPS 原理?HTTPS 如何保证 数据安全?
45岁老架构师尼恩在其读者交流群中分享了关于HTTP与HTTPS的深入解析,特别针对近期面试中常问的HTTPS相关问题进行了详细解答。文章首先回顾了HTTP的工作原理,指出了HTTP明文传输带来的三大风险:窃听、篡改和冒充。随后介绍了HTTPS如何通过结合非对称加密和对称加密来解决这些问题,确保数据传输的安全性。尼恩还详细解释了HTTPS的握手过程,包括如何通过CA数字证书验证服务器身份,防止中间人攻击。最后,尼恩强调了掌握这些核心技术的重要性,并推荐了自己的技术资料,帮助读者更好地准备面试,提高技术水平。
|
云安全 安全 数据建模
《数字证书:互联网世界的"身份证"与"防盗门"》 ——揭秘网络安全背后的加密江湖
在2023年某深夜,上海陆家嘴金融公司机房遭遇黑客攻击,神秘青铜大门与九大掌门封印的玉牌突现,阻止了入侵。此门象征数字证书,保障网络安全。数字证书如验钞机识别假币,保护用户数据。它通过SSL/TLS加密、CA认证和非对称加密,构建安全通信。证书分为DV、OV、EV三类,分别适合不同场景。忽视证书安全可能导致巨额损失。阿里云提供一站式证书服务,助力企业部署SSL证书,迎接未来量子计算和物联网挑战。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
308 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。