首页 > 其他分享 >HTTPS 的加密流程

HTTPS 的加密流程

时间:2023-09-06 19:06:07浏览次数:44  
标签:公钥 加密 证书 流程 密钥 HTTPS 服务器 客户端

在网络上如果进行明文传输数据,是非常危险的操作,只有加密操作才能保证安全

加密方式大致分为两类 

对称加密:

对称加密就是通过同一个密钥,把明文加密为密文 ,并且也能将密文解密成明文

HTTPS 的加密流程_对称加密

但是由于客户端生成密钥,需要发送给服务器,此时密钥只能明文传输,密钥可能被黑客截取

HTTPS 的加密流程_对称加密_02

为了使密钥更安全的传输,引入非对称加密

非对称加密:

生成一对密钥:公钥 ,私钥

明文通过公钥加密成密文,密文通过私钥解密成明文(使用公钥加密,使用私钥解密)

HTTPS 的加密流程_客户端_03

将对称加密和非对称加密相结合,尽可能加快整体的速度

这样就绝对安全了吗?

HTTPS 的加密流程_对称加密_04

此时服务器就可以使用pri1 来解密接收到的数据,得到对称密钥key 

服务器以为这个对称密钥是从客户端来的,后续的交互操作都是用这个对称密钥进行加密了

为了解决这个问题引入证书

证书:

可以理解位一个结构化的字符串:

1)证书的发布机构

2)证书的有效期

3)公钥

4)证书所有者

5)签名 ......

就相当于我们的身份证,在搭建https网站是就需要在CA机构申请一个证书

当客户端与服务器建立连接时候,服务器不单单返回一个公钥,而是将证书一起发送给服务器

此时客户端拿到这个证书就会对其进行效验

1)判断证书是否过期

2)判断证书的颁发机构是否受信任

3)验证证书是否被修改

(从系统中拿到该证书发布机构的公钥, 对签名解密, 得到一个 hash 值(数据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2. 对比 hash1 和 hash2 是否相等.如果相等, 则说明证书是没有被篡改过的 )

小结:

https 加密

1)针对业务数据引入对称加密

2)使服务器生成非对称密钥,公钥和私钥,将公钥连同证书一同发送给客户端

3)客户端拿着证书进行效验(使用颁发机构提供的公钥,对证书的签名进行解密计算校验和是否匹配)

4)客户端拿着服务器发来的公钥针对对称密钥进行加密,发送给服务器.

标签:公钥,加密,证书,流程,密钥,HTTPS,服务器,客户端
From: https://blog.51cto.com/u_16166203/7389252

相关文章

  • 螺母加工工艺流程
    螺母是具有内螺纹并与螺栓配合使用的紧固件,具有内螺纹并与螺杆配合使用用以传递运动或动力的机械零件,是自动化行业中的重要传动零部件之一。大家知道螺母的加工工艺吗?一般来说,螺母的加工工艺流程包括原材料采购、初加工、调质、精加工、表面处理等多个环节。1、原材料采购:一般采用......
  • PGP:一种基于RSA公钥加密体系的邮件加密软件
    PGP(PrettyGoodPrivacy)是一种基于RSA公钥加密体系的邮件加密软件。它可以让您对邮件进行加密,以防止非授权者阅读。PGP还能对邮件加上数字签名,使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。除此之外,PGP还可以用来加密文件,以及代替UUencode生成RADIX64格式的编码文件等。P......
  • 你知道HTTP与HTTPS有什么区别吗?
    每天都在上网,在搜索东西的时候,你有发现网址有什么不同吗?本文就来谈谈HTTP与HTTPS有什么不同。一、什么是HTTP?HTTP是“HyperTextTransferProtocol”的简称,翻译过来就是超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。简单来说就是一种发布和接收HTML页面......
  • glibc2.35-通过tls_dtor_list劫持exit执行流程
    前言glibc2.35删除了malloc_hook、free_hook以及realloc_hook,通过劫持这三个hook函数执行system已经不可行了。传统堆漏洞利用是利用任意地址写改上上述几个hook从而执行system,在移除之后则需要找到同样只需要修改某个地址值并且能够造成程序流劫持的效果。__call_tls_dtors在......
  • glibc2.35-通过tls_dtor_list劫持exit执行流程
    前言glibc2.35删除了malloc_hook、free_hook以及realloc_hook,通过劫持这三个hook函数执行system已经不可行了。传统堆漏洞利用是利用任意地址写改上上述几个hook从而执行system,在移除之后则需要找到同样只需要修改某个地址值并且能够造成程序流劫持的效果。__call_tls_dtors在程序......
  • PMP最新续证流程!超全!
    通过PMP®考试的同学都知道,PMP®证书有效期只有三年,每三年需要换发一次,否则就过期了。更新需要累积60小时的继续教育学分(PDUs),然后需要支付150美元才能成功更新证书。所以三年需要收集60PUD。PMP®如何更新执照?所以今天我们特别整理了一份新的换证指南流程。 办理PMP®续证流程前......
  • Hadoop的写流程(微观层面)
    解释:步骤1:客户端进行发送存储消息,FileSystem通过rpc调用NameNode的put方法,NameNode对文件的路径,大小以及权限进行校验,步骤2:校验成功后,返回FSDateOutputStream对象给客户端进行使用步骤3:客户端对文件进行划分,将划分信息返回给NameNode,告诉NameNode需要多少个block......
  • Node.js 使用 officecrypto-tool 读取加密的 Excel 和 Word 文档, 支持 xlsx 和 docx
    Node.js使用officecrypto-tool读取加密的Excel(xls,xlsx)和Word(docx)文档,还支持xlsx和docx文件的加密(具体使用看文档)。暂时不支持doc文件的解密传送门:officecrypto-tool读取加密的Excel示例一:xlsx-populate//只支持xlsx,xlsx-populate自带了解密功能......
  • kernel内核启动流程
    (1)自解压代码 linux-2.6.22.6\arch\arm\boot\compressed\head.S 对比于linux-2.6.22.6\arch\arm\kernel\head.S,是自解压代码+原本的代码,执行时执行自解压代码的内容(2)第一阶段: ENTRY(stext) msr cpsr_c,#PSR_F_BIT|PSR_I_BIT|SVC_MODE@ensuresvcmode ......
  • 敏捷开发 - 敏捷软件开发理论及流程
    什么是敏捷软件开发敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,......