码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数字签名和CA证书


    1. 数字签名应该实现的功能

    (1)报文鉴别:接收方需要确信该报文时发送方发送的,别人无法伪造签名

    (2)报文的完整性:确认收发报文一致

    (3)不可否认:发送者事后不可对自己发送的报文否认

    1. 数字签名的实现:

    • 上述流程:仅仅实现了签名和核实签名。

    A用私钥加密--->通过D运算(叫做签名)----->生成密文---->B收到密文---->通过A的公钥--->通过E运算(验签)--->得到明文

    • B认为仅有A拥有A的私钥,所以B认为这个消息就是A发的,这就是报文鉴别
    • 若A要否认自己发了这个报文,于是B可把明文X和密文Dsk发给第三方机构,第三方机构可证明这个确实是给B的,这就是不可否认

    2. 具有保密性的数字签名

    2. 证书

    • 为了防止出现:B用户拥有A的公钥,B伪装成C发送报文到A,有一个认证中心CA:CA是用来绑定具体的设备与公钥---->设备会拿到CA证书:里面拥有公钥,拥有者的标识符(IP或者人名) 
    • 证书 = 公钥 + 数字签名

    1. 证书的应用场景:

    数字证书及CA详解_盐水煮毛豆的博客-CSDN博客_ca证书文章目录1. 证书1.1 证书的应用场景1.2 证书标准规范X.5091.2.1 证书规范1.2.2 证书格式1.2.3 CA证书1.3 公钥基础设施(PKI)1.3.1 什么是公钥基础设施1.3.2 PKI的组成要素用户认证机构(CA)仓库1.3.3 各种各样的PKI2.Fabric - ca2.1 简介2.2 基本组件2.3 安装2.4 初始化&快速启动2.5 服务端配置文件解析2.6...https://blog.csdn.net/lk2684753/article/details/100160856?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165889436316782425122649%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165889436316782425122649&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-100160856-null-null.185^v2^control&utm_term=CA%E8%AF%81%E4%B9%A6%E6%8B%BF%E5%88%B0%E7%9A%84%E6%B5%81%E7%A8%8B&spm=1018.2226.3001.4450

    在这里插入图片描述

    1.  Bob生成密钥对:Bob生成了一对公钥和私钥
    2. Bob在认证机构Trent注册自己的公钥:(1)Bob则将公钥发送给了认证机构Trent (2) 确认所收到的公钥是否为Bob本人所有
    3. 认证机构Trent用自己的私钥对Bob的公钥施加数字签名并生成证书
    4. Alice得到带有认证机构Trent的数字签名的Bob的公钥(证书)
    5. Alice使用认证机构Trent的公钥验证数字签名,确认Bob的公钥的合法性
    6. Alice用Bob的公钥加密消息并发送给Bob
    7. Bob用自己的私钥解密密文得到Alice的消息

    1,2,3不会每次都用

    2. 证书标准

    • 版本号(Version Number):规范的版本号,目前为版本3,值为0x2;
    • 序列号(Serial Number):由CA维护的为它所发的每个证书分配的一的列号,用来追踪和撤销证书。只要拥有签发者信息和序列号,就可以唯一标识一个证书,最大不能过20个字节;
    • 签名算法(Signature Algorithm):数字签名所采用的算法,如:

    sha256-with-RSA-Encryption
    ccdsa-with-SHA2S6;

    • 颁发者(Issuer):发证书单位的标识信息,如 ” C=CN,ST=Beijing, L=Beijing, O=org.example.com,CN=ca.org。example.com ”;
    • 有效期(Validity): 证书的有效期很,包括起止时间。
    • 主体(Subject) : 证书拥有者的标识信息(Distinguished Name),如:" C=CN,ST=Beijing, L=Beijing, CN=person.org.example.com”;
    • 主体的公钥信息(SubJect Public Key Info):所保护的公钥相关的信息:
    • 公钥算法 (Public Key Algorithm)公钥采用的算法;
    • 主体公钥(Subject Unique Identifier):公钥的内容。
    • 颁发者唯一号(Issuer Unique Identifier):代表颁发者的唯一信息,仅2、3版本支持,可选;
    • 主体唯一号(Subject Unique Identifier):代表拥有证书实体的唯一信息,仅2,3版本支持,可选:
    • 扩展(Extensions,可选): 可选的一些扩展。中可能包括:

    Subject Key Identifier:实体的秘钥标识符,区分实体的多对秘钥;
    Basic Constraints:一指明是否属于CA;
    Authority Key Identifier:证书颁发者的公钥标识符;
    CRL Distribution Points: 撤销文件的颁发地址;
    Key Usage:证书的用途或功能信息。

    • 此外,证书的颁发者还需要对证书内容利用自己的私钥添加签名, 以防止别人对证书的内容进行篡改。

    3 CA证书

    CA是Certificate Authority的缩写,也叫“证书授权中心”。

    CA 证书,顾名思义,就是CA颁发的证书。

    • 证书信任链

    1. 比如,C 信任 A1,A1 信任 A2,A2 信任 A3…这个叫做证书的信任链。只要你信任链上的头一个证书,那后续的证书,都是可以信任滴。

    假设 C 证书信任 A 和 B;然后 A 信任 A1 和 A2;B 信任 B1 和 B2。则它们之间,构成如下的一个树形关系(一个倒立的树)。
    在这里插入图片描述

     2. 最顶上的树根位置的那个证书,就是“根证书”

    4 公钥基础设施 (PKI)

    公钥基础设施(Public-Key infrastructure)是为了能够更有效地运用公钥而制定的一系列规范和规格的总称。公钥基础设施一般根据其英语缩写而简称为PKI。

    在这里插入图片描述

     

    • 注册公钥的用户所进行的操作(公钥注册者)

      • 生成密钥对(也可以由认证机构生成)
      • 在认证机构注册公钥(用户Bob把公钥给认证机构)
      • 向认证机构申请证书
      • 根据需要申请作废已注册的公钥
      • 解密接收到的密文
      • 对消息进行数字签名
    • 使用已注册公钥的用户所进行的操作(公钥使用者)

      • 下载带Bob公钥的证书
      • 验证数字签名
      • 拿到Bob的公钥
    • 之后Alice拿到Bob的公钥,加密给Bob发消息,Bob用公钥解密

    3. 报文摘要

     

  • 相关阅读:
    7000字+24张图带你彻底弄懂线程池
    RNN变体——LSTM原理及代码实现
    模电专题-比较器要不要接正反馈
    Delphi时间戳转日期、日期转时间戳
    扬帆起航:CCF开源发展论坛在深举办
    光谱通用款积分球
    【算法刷题】1 Python基础篇
    iNFTnews | 虚拟租赁是Web3的下一个发展方向
    NLP预训练模型-GPT-3
    IntelliJ IDEA 开发Vue项目 ElementUI 未知HTML标记 提示问题的解决
  • 原文地址:https://blog.csdn.net/m0_37844072/article/details/126009533
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号