首页 > 其他分享 >https原理分析

https原理分析

时间:2024-02-26 09:03:39浏览次数:23  
标签:分析 加密 公钥 私钥 证书 https 原理 服务端 客户端

https说明

对称加密
   秘钥只有1个
   客户端和服务端都保存一个同样的秘钥


非对称加密
   秘钥有2个
   1个是公钥 1个是私钥
   公钥是由私钥生成出来的 公私钥是一对
   公钥可以公开给客户端  服务端保存私钥不能公开
   公钥加密后的密文只能用私钥解密 私钥加密后的密文能用公钥解密(私钥也能解密私钥加密的数据)


非对称加密缺点
    服务器的公钥是通过网络下发给客户端的
    网络中间商可以进行以下操作
      1.通过服务器的公钥解密服务器发送给客户端的响应数据(不能解密客户端公钥加密后发往服务端的数据)
      2.拦截服务端下发给客户端的公钥然后自己伪造一对公私钥并把自己的公钥发送给客户端
        这样就完全控制了客户端和服务端之间的网络通信
      3.客户端没法验证公钥是不是由真正的服务器生成的

    但是可以自己生成一对假的公私钥然后把假的公钥发给客户端来欺骗客户端并截断
    客户端和真实服务端之间的加密通信
    浏览器无法判断自己收到的公钥是不是由真正的服务器下发的


    所以使用非对称加密通信还需要验证产生公私钥主体的真实性
    因为任何设备都能产生自己的公私钥对


hash算法叫摘要算法
   md5 sha256 sha125
   数字签名
   相同的数据传递进去一定会得到同样的结果
   hash算法(公钥) = 公钥的签名(公钥的摘要)


两者之间必须有一个不用通过网络传递的东西
   


证书
  第三方私钥加密(Server.公钥) = 密文
  hash(Server.公钥) = 签名
  签名算法 = sha256
  密文 +  签名 + 签名算法 = 证书

  第三方的私钥是不可能存在服务器上的,是保存在CA的服务器上.申请证书的时候CA只能返回一个证书
  
  服务端不再下发自己的公钥 而是直接把证书下发给客户端
  客户端使用第三方公钥.解密(证书) =  Server.公钥 + 签名 + 签名算法


CA机构
   CA的公钥 
   客户端本地自带CA的公钥(已经内置在操作系统中就是可信任的根证书),无需通过网络进行传输


私钥
server.key

公钥(待签名证书) 
server.csr

证书
server.crt


包含公钥+证书
server.pem


免费(签名)生成证书网址
   www.freessl.cn

免费添加dns记录网址
   www.juming.com


TLS握手流程
   TLS握手流程是建立在TCP三次握手之后才开始的
   1.Client发起连接请求
   2.Server返回证书server.crt(server.pem)
   3.Client验证证书确定服务器的身份
   4.Client生成对称密钥,用Server证书中的公钥加密发送给Server
   5.Server用自己的私钥解密,得到Client发来的对称密钥
   6.Server和Client便可以使用对称密钥相互发送加密数据
View Code

 

https和http对比

          

          

          

          客户端和服务端之间都是通过对称加密的方式进行通信

          对称密钥不是由客户端发送给服务端的,两端的对称密钥都是在各自本地生成的,只不过客户端和服务端生成密钥的时候采用的是协商好的相同的加密算法和相同的随机字符串做为参数,这样两端生成的密钥字符串就是一样的

TLS握手过程

       1.客户端和服务端先进行TCP的三次握手连接

       2.在TCP的三次握手之后再进行TLS的握手连接

      

     TLS1.3优化了建立连接的往返次数

     

 

标签:分析,加密,公钥,私钥,证书,https,原理,服务端,客户端
From: https://www.cnblogs.com/yxh168/p/17088511.html

相关文章

  • 智能AI客服系统+企业专属AI知识库实现原理+配置教程
    企业专属AI知识库实现原理知识库是GPT用户咨询问题,调用文本转向量接口将问题转为向量数据,向量化搜索知识数据库,将相关知识文本整合后发送给GPT聊天补全接口 知识库服务主要基于以下两个接口:OpenAI聊天接口(/v1/chat/completions)OpenAI向量生成接口(/v1/embeddings......
  • 线程池的原理及实现
    线程池的原理及实现1、线程池简介:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。假设一个服务器完成一项任务所需时间为:T1创建线程时间,T2在线程中执行任务的时间,T3销毁线程时间。如果:T1+T3远大于T2,则......
  • bitmap 位图 底层原理标记的字符串放在哪
    在Redis中,位图(bitmap)是通过字符串(string)类型来实现的,具体来说,位图是存储在Redis字符串中的二进制位数据。Redis字符串一般采用动态字符串实现,最大长度可以达到512MB。对于位图来说,每个二进制位代表一个状态或标记,可以表示非常多的状态信息,同时占用的存储空间很小。当使用......
  • 数学分析关键概念
    1,自然数公理以及数学归纳法2,实数均可表示为小数,但小数有规范小数。(因为存在非规范小数,标准不统一)。存在顺序=》三歧性,大小比较=》传递性。存在稠密行(利用·规范小数在a与b的分歧处构造c)。实数系的连续性,即确界原理。上界是根据实数的三歧性定义出来的,即有大小=》有界概念=》但有......
  • 【安卓逆向】一款小说app去除广告与解锁vip分析
    这次的受害者是一款破解圈里面大名鼎鼎的:56yU6Laj6ZiB......
  • 对边不交图结构的解析组合分析
    图论题定义\(n\)个结点的平面图是满足如下条件的图:\(n\)个结点按标号在平面上顺序排列为一个正\(n\)边形。边是连接两个结点的直线段,任意两条边不在除端点外的位置交叉。定义一个平面图的极大连通分量为一个极大的结点集合,满足任意两个集合内节点联通。给定询问类型......
  • 各类LLM模型分析比较
    LargeLanguageModel模型对比对于LLM模型框架主要如下3类[1]:1、autoregressive,2、autoencoding,3、encoder-decoder。主要对3类结构以及部分细节进行阐述。(对于框架分类其实多种,在此论文中[2]采用的是双向/单向结构)模型参数量模型结构BERTGLMXLNetSpa......
  • follow-redirects 可以直接替换node http & https 的npm 模块
    follow-redirects可以直接替换nodehttp&https的npm模块包含的特性支持重定向功能支持重定向参数配置,比如最大重定向,以及最大请求大小,支持beforeredirect请求处理(比如认证处理)支持agents说明对于业务系统的请求会包含重定向场景的,follow-redirects是一个很不错的选......
  • 算法的评估指标 转载自知乎https://zhuanlan.zhihu.com/p/400644465
    什么是评估指标?评估指标是针对模型性能优劣的一个定量指标。一种评价指标只能反映模型一部分性能,如果选择的评价指标不合理,那么可能会得出错误的结论,故而应该针对具体的数据、模型选取不同的的评价指标。针对不同类型的学习任务,我们有不同的评估指标,这里我们来介绍最常见的分类......
  • 27.6k star,推荐一款开源的网页性能分析工具
    27.6kstar,推荐一款开源的网页性能分析工具原创 大侠之运维 大侠之运维 2024-02-2407:03 上海 听全文点击上方蓝字  关注大侠之运维大家好,这里是大侠之运维,文末有彩蛋。Lighthouse:一款优秀的网页性能分析工具Lighthouse是一款由GoogleChrome团队开发的......