数字证书原理

2023-10-29

转自:http://www.2cto.com/article/201203/122095.html

 

公钥机制面临的问题-假冒身份发布公钥
采用公钥机制进行加密传输面临的一个问题是公钥的发布。任何一个用户都可以通过网络向所有人发布伪造的公钥,如果某个用户假冒真正用户的名义发布一个公钥,在该假冒者被揭穿以前,他可以解读所有发向真正用户的加密消息,还可以通过签名冒充真正用户的身份。
 
用户A假冒用户B的身份发布一个公钥
 

 

  
其他用户使用假冒的公钥与用户B通信,信息内容被用户A窃取
 


 


数字证书-验证公钥所属的用户身份
在日常生活中,如果我们要验证一个人的身份,通常的做法是查看他的身份证。我们信任身份证颁发机构即政府机构的公信力,因此只要验证一个人的身份证不是伪造的,我们就相信这个人的身份和身份证上所描述的是一致的。
 
数字证书就是一个人或者组织在网络世界中的身份证,其发证机关是证书管理机构(certificate authority,CA)。CA用自己的私钥对用户的身份信息(主要是用户名和该用户的公钥)进行签名,该签名和用户的身份信息一起就形成了证书。
 
使用用户身份信息生成数字签名
 \ 
 
用户身份信息和数字签名一起组成数字证书

 
备注:除用户信息外,数字证书中还包括证书机构名称,证书有效期,证书的序列号,签名使用的哈希算法,公钥使用的加密算法等相关信息,参见rfc标准:RFC 2459 Internet X.509 Public Key Infrastructure
 
用户A把自己的证书发送给用户B。用户B使用CA的公钥对证书的签名进行验证,由于只有CA才能生成该证书,因此只要证书验证正确,即说明证书是由CA发布的,证书中用户A的公钥是值得信赖的。用户B以后就可以使用该公钥验证用户A的签名或者进行和A进行加密通信。
 
使用证书验证用户的身份,获取用户公钥
 
 

 
 
如何验证证书机构的公钥-证书的证书
这里有一个有趣的问题,用户B使用证书机构的公钥来验证用户A的数字证书,但如何又能够知道用户B拿到的证书机构的公钥不是伪造的呢?解决办法是再找一个证书机构对该证书机构的公钥颁发一个证书,这样形成了一个公钥证书的嵌套循环,该循环的终点就是根证书机构。根证书机构较少,其公钥可以通过安全的方式发布,如通过USB拷贝、书面文件当面移交。
数字证书认证链

\一个数字证书的例子


 
Certificate: 
   Data: 
       <span style="color:#FF0000;">证书标准版本号</span> 
       Version: 1 (0x0) 
       <span style="color:#FF0000;">该证书的唯一编号</span> 
       Serial Number: 7829 (0x1e95) 
       <span style="color:#FF0000;">该证书的签名算法</span> 
       Signature Algorithm: md5WithRSAEncryption  
       <span style="color:#FF0000;">颁布本证书的证书机构</span> 
       Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, 
               OU=Certification Services Division, 
               CN=Thawte Server CA/emailAddress=server-certs@thawte.com 
       <span style="color:#FF0000;">证书有效期</span> 
       Validity 
           Not Before: Jul  9 16:04:02 1998 GMT 
           Not After : Jul  9 16:04:02 1999 GMT 
       <span style="color:#FF0000;">证书持有人的姓名、地址等信息</span> 
       Subject: C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, 
                OU=FreeSoft, CN=www.freesoft.org/emailAddress=baccala@freesoft.org 
       <span style="color:#FF0000;">证书持有人的公钥</span> 
       Subject Public Key Info: 
           Public Key Algorithm: rsaEncryption 
           RSA Public Key: (1024 bit) 
               Modulus (1024 bit): 
                   00:b4:31:98:0a:c4:bc:62:c1:88:aa:dc:b0:c8:bb: 
                   33:35:19:d5:0c:64:b9:3d:41:b2:96:fc:f3:31:e1: 
                   66:36:d0:8e:56:12:44:ba:75:eb:e8:1c:9c:5b:66: 
                   70:33:52:14:c9:ec:4f:91:51:70:39:de:53:85:17: 
                   16:94:6e:ee:f4:d5:6f:d5:ca:b3:47:5e:1b:0c:7b: 
                   c5:cc:2b:6b:c1:90:c3:16:31:0d:bf:7a:c7:47:77: 
                   8f:a0:21:c7:4c:d0:16:65:00:c1:0f:d7:b8:80:e3: 
                   d2:75:6b:c1:ea:9e:5c:5c:ea:7d:c1:a1:10:bc:b8: 
                   e8:35:1c:9e:27:52:7e:41:8f 
               Exponent: 65537 (0x10001) 
   <span style="color:#FF0000;">证书机构对该证书的数字签名</span> 
   Signature Algorithm: md5WithRSAEncryption 
       93:5f:8f:5f:c5:af:bf:0a:ab:a5:6d:fb:24:5f:b6:59:5d:9d: 
       92:2e:4a:1b:8b:ac:7d:99:17:5d:cd:19:f6:ad:ef:63:2f:92: 
       ab:2f:4b:cf:0a:13:90:ee:2c:0e:43:03:be:f6:ea:8e:9c:67: 
       d0:a2:40:03:f7:ef:6a:15:09:79:a9:46:ed:b7:16:1b:41:72: 
       0d:19:aa:ad:dd:9a:df:ab:97:50:65:f5:5e:85:a6:ef:19:d1: 
       5a:de:9d:ea:63:cd:cb:cc:6d:5d:01:85:b5:6d:c8:f3:d9:f7: 
       8f:0e:fc:ba:1f:34:e9:96:6e:6c:cf:f2:ef:9b:bf:de:b5:22: 
       68:9f

 

转载于:https://www.cnblogs.com/priarieNew/p/9761562.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字证书原理 的相关文章

  • SpringBoot输出“Hello”

    1 创建SpringBoot 创建controller包 其绝对路径是C Dpan javaProject jProject src main java com example jproject controller 在controller
  • 给已经创建好的项目添加eslint

    今天拿到一个项目 发现没有安装eslint 现在就在这大概记录一下vue项目添加eslint的具体的过程 实现目标 给项目添加eslint 在这叫做demo 准备工作 找一个已经开启了eslint的项目 在这叫做demo1 没有的话 可以直
  • 数字图像处理学习笔记(一)

    文章目录 前言 第一章绪论 1 1 什么是数字图像处理 数字图像 数字图像处理 像素 图像处理的三种典型计算处理 1 2 数字图像处理起源 1 3 数字图像处理应用 1 4 数字图像处理基本内容 1 5 图像处理系统的组成 1 6 小结 第
  • 通俗易懂详解typedef函数指针

    1 函数指针 第一个问题 搞清楚函数指针 必须知道函数指针的实质是一个是一个指针 并不是函数 函数有自己的函数体 而指针只是一个变量 也就比如我们常声明的int a 0中的a一样 细致的讲 如果在程序中定义了一个函数 那么在编译时系统就会为
  • csv批量读取测试数据

    1 添加循环控制器 需要注意请求 CSV配置都在循环控制器下 控制器次数为测试用例个数 2 CSV文件 需要注意不用加 因为读取出数据会自动加上 3 CSV配置 4 查看结果树 需要注意如果接口文档写了信息头 就一定要配置
  • web3.0的简单入门与项目介绍

    web3 0 是什么 1 简介 Web3 0是通过区块链等技术实现更加智能化 去中心化 安全可靠的应用 Web3 0的主要特点包括 去中心化 Web3 0将数据和应用从中心化的服务器转移到分布式的节点上 实现去中心化的应用 安全可靠 Web
  • 机考[81 - 90]

    华为机考 081 字符统计及重排 082 组成最大数 083 最大N个数与最小N个数的和 084 最大花费金额 085 最大矩阵和 086 最大括号深度 087 最远足迹 088 最长连续子序列 089 最长元音子串的长度 090 最长子字
  • 逻辑思维是运用计算机科学的基础概念,简析计算思维中的思维方式及思维本质...

    龙源期刊网 http doc docsou com 简析计算思维中的思维方式及思维本质 作者 张菡 来源 科学与财富 2020年第01期 摘要 计算思维是运用计算机科学的基础概念求解问题 设计系统以及理解人类行为的思维活动 本文主要介绍了计
  • 嵌入式linux应用开发完全手册(一)

    第一篇 嵌入式Linux开发环境构建 1 1 2 嵌入式发展 SCM Single Chip Microcomputer 单片机 MCU Micro Controller Unit 微控制器 SoC System on a Chip 系统级
  • 共享打印机 需要查找inf文件_打印机怎么用图文详解

    大家好 今天分享一篇来自小白系统官网 xiaobaixitong com 的图文教程 打印机在办公场所是非常易见的设备 对于打印机的使用需要也是比较大 但是很多人其实并不晓得打印机怎么用 每次打印的时候都要叫人帮忙 本文就来详细教大家如何解
  • 数据库基础题

    讲一下原来公司里建表的规范有哪些 这些规范有什么好处 事务的几个隔离级别 什么是聚集索引和非聚集索引 数据类型TIMESTAMP和DATETIME有什么不同 一个表有是那个查询字段 年龄 性别 姓名 符合索引怎么建 建的原则是什么 用户表
  • 【读书笔记】高级FPGA设计之面积结构设计

    目录 面积结构设计 折叠流水线 基于控制的逻辑复用 资源共享 复位对面积的影响 无复位的资源 无置位的资源 无同步复位的资源 复位 RAM 利用置位 复位触发器引脚 总结 面积结构设计 本篇讨论数字设计的三个主要物理特性的第二个 面积 并分
  • 【VMware】开启虚拟机时 出现“无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件“,这样完美解决

    今早我打开虚拟机时发现以往从没有出现过打不开的问题 今天竟然出现了 不论我尝试多少次 都是出现 无法打开内核设备 Global vmx86 系统找不到指定的文件 针对这个问题 我尝试了很多方法 以下这种方法是我觉得最好用的方法 Window
  • 别了,Firebug!

    点击上方公众号 可快速关注 转自 技术最前线 TopITNews 如有好文章投稿 请点击 这里了解详情 如果你是前端开发者 那你肯定知道或用过 Firebug 10月24日 Mozilla 工程师和 Firebug 团队领导 Jan Hon
  • “35岁还没副业,都不好意思混职场”:摆脱死工资推荐这种副业

    最近很流行一个词 叫 副业刚需 不管从事什么工作 作为一个成年人都应该要有自己的Plan B 根据某招聘网站发布的研究报告显示 43 9 白领当下有副业刚需 且随年龄增加 对副业的需求程度也在提升 在95后 90后 80后 70后中 有副业
  • drool 7.x 属性:duration

    规则 package com rules import entity Ping declare Ping role event 要把插入的数据声明为event 默认是fact expires 20s 用来显示设置事件的过期时间 也就是说过了
  • Java学习笔记38——网络编程02

    UDP通信程序 UDP通信程序 UDP通信原理 UDP发送程序 UDP接受数据 UDP联系 UDP通信程序 UDP通信原理 UDP协议是一种不可靠的网络协议 它在通信两端各自建立一个Socket对象 但是这两个Socket只是发送 接收数据
  • Java时间格式:yyyy-mm-dd转换为yyyy年mm月dd日

    1 sql直接操作 SELECT DATE FORMAT 2022 01 04 Y年 m月 d日 结果 2022年01月04日 2 java 格式化操作 Date date new SimpleDateFormat yyyy MM dd p
  • HAL库之读写STM32F103内部的FLASH空间

    在此声明 本文摘自这里 码神岛 STM32F0x HAL库学习笔记 5 片内FLASH的读写操作 本文开发环境 MCU型号 STM32F103C8T6 IDE环境 MDK 5 25 代码生成工具 STM32CubeMx 5 0 1 HAL库
  • c语言字符串数组的两种表示方法

    字符串数组 1 定义 字符串数组 一个数组中的所有的元素都是字符串 如果想存储一堆字符串那么可以使用字符串数组 说白了字符串数组就是二维数组 字符串数组两种表示 第一种 char strr 4 6 aaa bbb ccc char类型的二维

随机推荐

  • 设置IntelliJ IDEA的heap size

    error Exception in thread Animation Thread java lang OutOfMemoryError Java heap space 解决方法 run gt edit configurations gt
  • gdb调试-dump

    gdb结合coredump定位崩溃进程 lazycat posted 2012年2月02日 09 35 in linux 18166 阅读 Linux环境下经常遇到某个进程挂掉而找不到原因 我们可以通过生成core file文件加上gdb来
  • Java高并发系统的限流策略

    概要 在大数据量高并发访问时 经常会出现服务或接口面对暴涨的请求而不可用的情况 甚至引发连锁反映导致整个系统崩溃 此时你需要使用的技术手段之一就是限流 当请求达到一定的并发数或速率 就进行等待 排队 降级 拒绝服务等 在开发高并发系统时有三
  • sql javascript ajax,javascript - AJAX Sql Update not working - Stack Overflow

    I stripped down my code to make this question a little simpler This is my PHP at the top of the file if isset POST actio
  • GIS常见数据格式

    文章目录 1 矢量数据格式 2 栅格文件格式 3 模型文件格式 1 矢量数据格式 矢量文件格式 文件说明 数据集类型 AutoCAD Drawing 文件 dwg DWG 是 AutoCAD 的图形文件 专门用于保存矢量图形的标准文件格式
  • 系统环境配置

    JAVA 1 openjdk和Maven安装 添加环境变量 bash profile export MAVEN HOME Users admin Software apache maven 3 8 1 export JAVA HOME Li
  • Jpa 主键@Id @IdClass 以及 @EmbeddedId和@idClass的区别

    1 自动主键 默认情况下 主键是一个连续的64位数字 long 它由ObjectDB自动为存储在数据库中的每个新实体对象自动设置 数据库中的第一个实体对象的主键是1 第二个实体对象的主键是2等等 当从数据库中删除实体对象时 主键值不会被回收
  • 简述什么是封装性、继承性和多态性

    封装就是把普通的对象进行封装 对象的属性设为私有的 对外提供get和set方法 其他类只能通过get和set对对象属性值进行操作 继承是发生在两个类之间 一个类继承另一个类是说这个类属于另一个类 具有另一个类的所有属性和方法 同时它还可以有
  • Word标题样式设置多级自动编号

    0x01 问题起源 有时候在写论文时需要设置自动编号 手动标记一来太多 太麻烦 二来牵一发而动全身 不易修改 Word的标题样式好用 如上图 可以方便设置同一级标题的样式 但是在标题样式设置中的 编号 如下图 却无法达到我们想要的多级自动编
  • 泛型——反射来获取泛型信息

    利用反射来获取泛型的类型 泛型信息 步骤 1 获取当前类 2 获取目标字段 3 获取包含泛型类型的类型 getGenericType 4 强转至子类ParameterizedType 5 获得泛型真正的类型 getActualTypeArg
  • linux系统rwx(421)、777权限详解

    摘要 linux的常见权限 mark一下 常用的linux文件权限如下 444 r r r 600 rw 644 rw r r 666 rw rw rw 700 rwx 744 rwxr r 755 rwxr xr x 777 rwxrwx
  • springboot 分页查询参数_精通SpringBoot--分页查询功能的实现

    本文将介绍如何实现分页查询功能 推荐使用github的pagehelper插件实现 事实上大家基本都是这么干的 但本文的实现方式和大多数不同 废话少说 现在就带着大家看看区别在哪里 先看pom xml依赖 相当简单的mybatis spri
  • 隐藏android中EditText的下划线

    有的时候需要隐藏掉EditText的边框和下划线 代码为 主要是这一栏 android background null
  • nested exception is org.apache.ibatis.exceptions.PersistenceException:

    问题 org mybatis spring MyBatisSystemException nested exception is org apache ibatis exceptions PersistenceException Error
  • Prometheus Node_exporter 之 Network Netstat ICMP

    Network Netstat ICMP proc net snmp 1 ICMP Errors 1 type GraphUnit shortLabel Messages out in InErrors 接收的 ICMP 错误的报文 例如I
  • 智慧水务行业市场研究 附下载地址

    智慧水务通过数采仪 无线网络 水质水压表等在线监测设备实时感知城市供排水系统的运行状态 并采用可视化的方式有机整合水务管理部门与供排水设施 形成 城市水务物联网 并可将海量水务信息进行及时分析与处理 并做出相应的处理结果辅助决策建议 以更加
  • java程序员_Java程序员必备的一些流程图

    前言 整理了一些Java基础流程图 架构图 做一下笔记 大家一起学习 1 spring的生命周期 Spring作为当前Java最流行 最强大的轻量级容器框架 了解熟悉spring的生命周期非常有必要 image png 首先容器启动后 对b
  • python syntaxerror unexpected eof的错误处理( IllegalCharacterError)

    python syntaxerror unexpected eof的错误处理 IllegalCharacterError 写了这样一段Python代码 用于将内容写入Excel 其中self keylist self valuelist 有
  • Docker安装Failed to start docker.service: Unit docker.service not found.

    CentOS安装Docker 启动时候报错Failed to start docker service Unit docker service not found 如下 原因是CentOS默认使用podman代替docker 所以需要将po
  • 数字证书原理

    转自 http www 2cto com article 201203 122095 html 公钥机制面临的问题 假冒身份发布公钥 采用公钥机制进行加密传输面临的一个问题是公钥的发布 任何一个用户都可以通过网络向所有人发布伪造的公钥 如果