数字签名和数字证书

article/2025/8/21 4:54:15

文章目录

  • 数字签名(digital signature)
    • 1. 解决问题
    • 2. 应用场景
    • 3. 运行原理
    • 4. 存在问题
  • 数字证书(digital certificate)
    • 1. 解决问题
    • 2. 应用场景
    • 3. 运行原理
      • 1)申请数字证书
      • 2)应用在Https网站


提示:本篇文章融入了个人对相关概念的理解,没说清楚的请参看原文(底部有相关链接)

数字签名(digital signature)

1. 解决问题

数字签名用于数据传输安全的技术,要解决的问题是:

  • 传输的数据不被篡改
  • 数据拥有者的身份认证
  • 以上两条满足后,数据拥有者就不可抵赖(身份确认+数据不被篡改=数据是拥有者的)。
    注:数据签名不涉及数据保密性

2. 应用场景

发送方(server)把一份文档(或数据)安全地发给接收方(client),并保证不被篡改、身份认证和不可抵赖性。

3. 运行原理


以下是利用数字签名技术实现这一应用场景的过程:

  • 第1步 server创建一对RSA非对称密钥(包含公钥和私钥)。
  • 第2步 sever对文档做哈希运算(哈希算法可是sha2等),得到消息摘要(或称哈希值)。
  • 第3步 用消息摘要与第1步创建的私钥生成数据的数字签名【可以理解为一串编码的数字字符串】。
  • 第4步 server把数字签名附加到文档通过网络发送给client。
  • 第5步 server把公钥通过其他安全地方式发送给client。
  • 第6步 client使用公钥解密数字签名,得到消息摘要。【如果解密成功,可证明公钥数字签名是属于同一人,如果第5步是安全地得到的公钥,那么那个人一定是server,即认证了server身份】
  • 第7步 client对文档做相同的哈希运算,得到消息摘要,如果此摘要与第6步的相同,说明文档没有被篡改。

4. 存在问题

Q:server如果不能安全地把公钥发送给client,例如由某中间人(middleman)伪造了公钥,将导致什么结果?

  • server发送到client的数字签名就不能被解密。
  • middleman发送的伪造数字签名可以解密成功,但client会认为文档是server发送的,这会导致类似冒充银行工作人员的诈骗活动一样的结果。

Q:server怎么安全地把公钥发送给client?

  • 引入第三方权威机构CA(Certificate Authority), server把公钥和身份信息作为文档(或数据)告诉CA,CA利用数字签名技术处理后,生成了数字证书(包含了数字签名,server公钥等信息),
  • 权威CA的公钥是公开的,并已内置于各类浏览器中,client可利用浏览器解密CA数字签名,从而拿到server的公钥。

数字证书(digital certificate)

1. 解决问题

server的公钥没有有效的机制安全地送到client,因此引入CA机构和数字证书的概念解决此问题。参见数字签名章节中“server怎么安全地把公钥发送给client?”内容。

2. 应用场景

数字证书通常应用在HTTPS协议里【可以理解为建立安全链路通道的web访问协议】,可以保证以此访问的web网站一定是server创建的。

3. 运行原理

1)申请数字证书

在这里插入图片描述

  1. server(图中Applicant)创建一对RSA非对称密钥(包含公钥和私钥)。
  2. sever利用公钥身份信息(网站域名、组织等)生成CSR文件(可以通过openssl工具生成)。
  3. CA网站申请数字证书,并把CSR文件内容上传,经过信息核实后,CA机构将使用CA私钥对server上传公钥等信息作为文档做数字签名【即上节讲的内容】,最后返回给server一组文件,即数字证书【包含了数字签名,server公钥,有效日期,网站域名,颁布机构等信息】。

2)应用在Https网站

  1. 在https网站的web服务器上配置数字证书和server的私钥,具体配置参见nginx的配置。

  2. client通过浏览器访问server的https网站,可以获取到server配置的数字证书

  3. client用浏览器内置CA公钥验证数字证书里CA的数字签名,验证成功后,可以确定数字证书里数据都是真实的,其中server公钥一定是server生成的。

  4. client随机生成密钥A,使用server公钥对此加密后,发送到server。

  5. server利用server私钥解密出密钥A,这样双方都有了密钥A。【到这一步,爱思考的你可能会问:CA给server返回数字证书的时候,如果被middleman截获到,而且配置到伪造网站上?那是没问题的,首先配置数字证书的同时还要配置server的私钥,其次数字证书里包含了server网站域名信息,伪造网站域名不可能跟server的相同。】

  6. 后续client和server之间数据传输,使用相同的密钥A,采用对称加密技术(例如:AES)对数据加密处理,保证数据的密文保密性。


参考文档:

  • what is a digital signature
  • what is a digital certificate
  • how digital certificate work
  • csr generation guide
  • nginx ssl installation
  • certificate authority

http://chatgpt.dhexx.cn/article/7tR7odnR.shtml

相关文章

工艺路线和工序有差别吗_你知道吗?市政道路排水工程的主要工序施工工艺是什么...

易筑教育给排水课程火热招生中! 张老师微信号:yizhujiaoyu999 市政道排工程施工遵循的基本顺序是:先地下,后地上;先深后浅。按照这个顺序,正常的施工顺序为基础处理、排水管道(涵)施工(雨、污水)、道路基层…

从头搭建一个“微博”有多难

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是分布式专题的第13篇,今天的文章我们不讲空洞的理论,来聊一个实际点的问题。 众所周知,微博的程序员经常不定期加班。和别的程序员不同&#xff0c…

劫持流量是什么,常见的流量劫持手法有哪些呢?

网络流量劫持是什么?其实就是大坏蛋动用一切技术手段,当亲们输入一个网址然后点击回车的时候,把亲们忽悠另一个网站上去哦,或者向亲们原本想访问的的网站内容里加点花椒大料。 IIS7网站监控可以及时防控网站风险,快速准确监控网站是否遭到各种劫持攻击,网站在全国是否能正…

html时分选择器,HTML常用标签+CSS选择器-2018年8月14日20时20分提交

实例 HTML>标签的使用及布局 body{ width:auto; height:auto; padding: 0px; margin: 0px; font-weight:bold; background-color: #0d0410; }/*宽、高设置自动,内外补丁设置0PX,字体宽度默认,背景颜色黑色*/ a{ text-decoration: none; co…

私厨菜谱app的设计与实现(二)

一.准备工作 1.注册API账号 2.添加第三方依赖 首先添加首先添加RecyclerView、OkHttp、 Glide、Gson的依赖 implementation com.android.support:recyclerview-v7:28.0.0 implementation com.squareup.okhttp3:okhttp:4.4.0 implementation com.github.bumptech.glide:glide:4.…

Node.js学习(三)常用模块与网络爬虫

学习视频 Node.js学习(一)介绍 Node.js学习(二)异步、缓存区、文件系统 path模块 nodejs中,提供了一个path模块,在这个模块中,提供了许多实用的、可被用来处理与转换文件路径的方法和属性 什么…

Escript氨基酸对比图怎么看_23张和田玉真假皮色对比图,看懂了再也不怕被坑

在玉石珠宝这个行业中,利益的驱使常常使很多商贩有各种各样不同的手段来造蒙骗。不管哪一个品种里有或多或少的假货掺杂。比如和田玉,假皮种类形形色色、多种多样。如果是初学者,辨别其真伪的确有一定难度,高科技下的造假皮色&…

鹅肉是凉性还是热性 鹅肉怎么做好吃

鹅肉鲜嫩味美,很多人都非常爱吃,那么你知道鹅肉是凉性还是热性吗?鹅肉怎么做好吃呢?一起了解一下。 鹅肉是凉性还是热性 中医认为,鹅肉性平、味甘,具有益气补虚、和胃止渴、止咳化痰,解铅毒、祛风湿、防衰老等作用…

红烧肉怎么做好吃 红烧肉的做法

很多人都爱吃红烧肉,入口香味浓郁简直是人间美味啊,那么红烧肉怎么做好吃呢?红烧肉的做法了解一下。 原料 猪带皮五花肉 调料 葱姜蒜、八角、桂皮、小茴香、花椒、绍酒、盐、酱豆腐汤、酱油、冰糖、干辣椒 做法: https://www.chachaba…

素饺子馅的做法大全 素饺子馅如何做

素饺子,要的就是一个“素”字,寻常百姓家,希望新的一年没有什么大起大落,平平安安,用天津话就是“素素静静过一年”。素饺子馅儿有白菜,豆腐干儿,香菜,木耳,粉条&#xf…

我用Python爬取美食网站3032个菜谱并分析,没有我不会做的菜!

这是巨变的中国,人和食物,比任何时候走的更快。近日,J哥为了寻味中国,奔走于某五线城市的大街小巷,结果除了累,啥也没寻到。 于是,J哥默默打开了各大美食网站,如豆果美食、下厨房、…

【知识图谱导论-浙大】第二章:知识图谱的表示

前文: 【知识图谱导论-浙大】第一章:知识图谱概论本节内容的视频讲解如下: 【知识图谱理论】(浙大2022知识图谱课程)第二讲-知识图谱的表示 什么是知识表示 简而言之,知识表示(Knowledge Representation, KR)就是用易于计算机处理的方式来描述人脑知识的方法。KR不是…

我用Python爬取美食网站3032个菜谱并分析,真香!

这是巨变的中国,人和食物,比任何时候走的更快。近日,J哥为了寻味中国,奔走于某五线城市的大街小巷,结果除了累,啥也没寻到。 于是,J哥默默打开了各大美食网站,如豆果美食、下厨房、…

JLink重刷固件(win7/win8/win10亲测可用)

转 [转]JLink重刷固件(win7/win8/win10亲测可用) 2017年09月12日 14:31:55 醒着的树懒 阅读数:6329 去年刚刚用上J-link的时候坏过一次,当时在网上也看了很多重刷固件的方法,但绝大多数的都是win7甚至有些需要xp&#…

洋姜的腌制方法 怎样腌制洋姜好吃

怎样腌制洋姜好吃?提到洋姜很多人都很喜欢吃,洋姜吃法很多,但是最广为人知和受欢迎的就是腌洋姜了,味道佳营养丰富。下面本文来讲解一下洋姜的腌制方法: **洋姜的腌制方法**材料:洋姜、水、花椒、丁香、桂皮、食盐 做…

香料图片加名称及其作用

良姜:别名小良姜、高良姜(中药材,本品为姜科植物Alpinia officinarum Hance)基原物料的生态:多年生草本。根茎圆柱形, 其性温、味辛;具有芳香气,有节,节处有环形膜质鳞片…

BlogEngine.net---httpHandlers与httpModules

httpHandlers是什么?httpModules又是什么?原来我都不知道,只得先搞清楚这两样,再来研究blogengine了。Two Interceptors:HttpModule and HttpHandlers 这是我在codeproject上搜到的标题,翻译过来是两个拦截器&#xff…

jquery html解码字符串,jquery如何编码和解码url?

jquery如何编码和解码url?下面本篇文章给大家介绍一下用jquery编码和解码url的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 在jQuery中,我们可以使用以下方法实现URL的编码和解码:encodeURIComponent(url) :可把字符串作为 URI 组件进行编码。…

Node-JS-第三方模块.0603

1.什么是第三方模块? 写好的、具有特定功能的、我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包。 1.1 第三方模块有两种存在形式: 以js文件的形式存在,提供实现项目具体功能的API接口。 以命令行工具形式…

node.js

nodeJS 学习方法 掌握思想 ​ 编程思想很重要,语言只是工具。不仅仅只是记住了API。 查资料的方式 ​ API文档:比二阶段的API多出了3倍多。 https://blog.csdn.net/jiang7701037/article/details/95734911?ops_request_misc%257B%2522request%255Fi…