数字签名过程及数字证书

数字签名是什么? 

作者:David Youd 
翻译:阮一峰 
原文网址:http://www.youdzone.com/signature.html 

1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。

 

 

2.Bob把公钥送给他的朋友们-Pat、Doug、Susan-- 每人一把。

  

 

3.Susan要给Bob一封保密的信。她写完后用Bob的公钥加密,就可以达到保密的效果。

 

4.Bob收信后,用私钥解密,就看到了信件内容,这里强调的是,只要Bob的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

 

 5.Bob 给Susan回信,决定采用“数字签名”。他写完后先用Hash函数,生成信件的摘要(Digest)。

 

 6.然后,Bob使用私钥,对这个摘要(Digest)加密,生成“数字签名”(signature)。

 

7.Bob将这个“数字签名”,附在信件下面,一起发给Susan。(同样,如果Bob 要回复加密信息给Susan,那么Susan先公布自己的公钥给Bob用于加密,Susan 保存自己的私钥用于解密)

即假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密;

8.Susan 收信后,取下“数字签名”,用Bob的公钥解密,得到信件的摘要。由此证明,这封信确实是Bob发出的。

 

 9.Susan再对信件本身使用Hash函数,将得到的结果,与上一步得到的Digest进行对比,如果两者一直,就证明这封信未被修改过。

 

10.那么复杂的情况出现了,Doug想欺骗Susan,他偷偷使用了Susan的电脑,用自己的公钥换走了Bob的公钥。此时Susan实际拥有的是Doug的公钥,但是自以为是Bob 的公钥。因此,Doug就可以冒充Bob,用自己的私钥做成“数字签名”,写信给Susan,让Susan用假的Bob公钥进行解密

 

 

 11.后来,Susan感觉不对劲,发现在即无法确定公钥是否真的属于Bob。她想到了一个办法,要求Bob 去找“证书中心”(Certificate authority ,简称CA)为公钥做认证。证书中心用自己的私钥,对Bob的公钥和一些相关信息一起加密,

     生成:数字证书(Digital Certificate)

 

12.Bob拿到数字证书以后,就可以放心里。以后再给Susan写信,只要在签名的同时,再附上数字证书就行了

13.Susan收信后,用CA的公钥解开数字证书(Digital Certificate)就可以拿到Bob的真实公钥了,然后就能证明“数字签名(”Signture“)是否真的是Bob签的

 

 

下面,我们看一个应用”数字证书”的实例:https协议。这个协议主要用于网页加密:

 

主要步骤如下:

1.客户端向服务器发出加密请求

 

 

 

 2.服务端用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端

 

 

 3.客户端(浏览器)的”证书管理器“,有”受信任的根证书颁发机构“列表,客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。

 

 4.如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告

 

 5.如果这张证书不是由受信任的机构颁发的,浏览器会发出另一种警告

6.如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。

不过,非对称加密(公钥加密)在计算上相当复杂,性能欠佳,远远不比对称加密,so 在一般情况下,往往通过公钥加密来创建临时的对称密钥,亦即会话密钥(一次性用于会话中加密的对称式密钥),

然后才通过对称加密来传输大量、主体的数据。

 

 

 

参考链接:

https://baike.baidu.com/item/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/1208652 
https://baike.baidu.com/item/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86/9874417 
https://zh.wikipedia.org/wiki/Session_key

 

转载于:https://www.cnblogs.com/ppp1314520818/p/10594037.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Teams与OneDrive for Business和SharePoint的关系

作为一个相对看重个人信息安全与隐私的人,个人附件等资料在Microsoft Teams中的存储方式、文件访问权限、可见范围问题引起了我的好奇。 众所周知,Teams包含3大主要的模块:单人聊天、团队、会议。那下面让我们一起来看一下,对这三…

hadoop学习笔记(二):centos7三节点安装hadoop2.7.0

环境win7vamvare10centos7 一、新建三台centos7 64位的虚拟机 master 192.168.137.100 root/123456 node1 192.168.137.101 root/123456 node2 192.168.137.102 root/123456 二、关闭三台虚拟机的防火墙,在每台虚拟机里面执行: systemctl sto…

在Microsoft Teams中的Visio协作

所有Team站点都带有专用文件库,用于存储所有工作组的内容。 您现在可以从桌面或云存储站点将Visio文件上载到此库,例如,您所在Team的资产都集中在一个位置,供具有权限的任何人进行访问。与其他存储文件一样,您可以直接…

用区块链打击假新闻 这可能是最2017年的一件事

据外媒报道,非营利性基金会PUBLIQ公布了一个基于区块链打造的平台。这是一个用于创建和分享原创新闻和媒体内容的平台,它将在近期推出。据了解,PUBLIQ创建这一平台则是希望能借用类似于比特币一样的系统来打击假新闻。 通过创建一个受信任的经…

oo面向对象第一单元总结

oo第一次作业主要考察了多项式的求导,从简单的幂函数求导到三角函数求导再到嵌套函数的求导,难度循序渐进,对我们对于面向对象的理解的要求也在一次一次提升。一行行代码打下来,一夜夜熬过去,我也来到了这个短暂的停靠…

Microsoft Teams免费版本初体验

Microsoft Teams推出有一段时间了,如果想要体验Teams,必须需要有Office365的订阅。最近微软为了进一步推广Teams,突然宣布Teams免费了。使用过Teams的读者知道Teams是基于Office365账号和组的,那它免费后,不使用Office…

强制禁用gitlab的双因子认证:Two-Factor Authentication

(一)问题描述: 此博客解决如下问题:禁用gitlab的双因子认证 禁用前,如图(此时,你在gitlab中什么也干不了) (二)思路分析: 百度了很多方法&#xf…

如何将Outgoing Webhook部署到中国版Azure

在这篇文章中,我们主要来如何将Azure DevOps中的项目作为应用发布到中国版Azure的App Service中。 什么是Azure DevOps Azure DevOps, 原名为VSTS, 全称是Visual Studio Team System,是由微软开发的一套具有高生产力、高集成性、可扩展的生命周期开发工…

Google SRE 读书笔记 扒一扒SRE用的那些工具

写在前面 最近花了一点时间阅读了《SRE Goolge运维解密》这本书,对于书的内容大家可以看看豆瓣上的介绍。总体而言,这本书是首次比较系统的披露Google内部SRE运作的一些指导思想、实践以及相关的问题,对于我们运维乃至开发人员都有一定的借鉴…

Microsoft Teams的Meet Now功能

今天,我们宣布完成了Skype for Business to Teams路线图中首次披露的几项关键会议功能。当个人联系,沟通和协作时,工作就自然而然的完成了,我们相信这些功能(除了我们2月的公告之外)使Microsoft Teams为所有…

Java泛型主题讨论

说明:在学习泛型这一知识点中,主要参考自《疯狂Java讲义》第7章P307-P330的泛型内容,因为是跳着阅读,所以前面的一些名词不是特别清楚,这里也做出适当备注,供自己识记与理解。 1.泛型 理解:说到…

从Microsoft Teams技术栈看前端技术发展趋势

在前不久的微软美国一年一度的Ignite大会上,微软宣布Microsoft Teams是微软历史上发展最快的应用。它将取代Skype for business,成为语音视频协作的主打产品。 我也有幸在上个月微软中国年度技术大会Tech Summit 2018上被邀请作为讲师讲解基于Teams平台…

Confluence Cloud的Teams Message Extension

Confluence Cloud的Message Extension现在正式登入Microsoft Teams。 它可用于团队频道和私人聊天,使您的对话更具描述性和信息性。 从Microsoft Teams应用商店获取Confluence Cloud应用程序并连接到Confluence Cloud实例。 连接后,您将能够搜索Conflue…

45 | 打蛇打七寸:精准测试

转载于:https://www.cnblogs.com/lmx0621/p/10614966.html

Teams App统计

周末闲来无事,统计了一下Teams的app商店里的app ( Teams App Store )。截至到现在(2018年11月)一共有145个app。要注意一点:如果app不是公开的(即单独安装到Office365租户里,并没有提交到office store&…

你必须要懂的APK瘦身知识

随着业务复杂度的逐渐增加,代码、资源也在不断的增加,此时你的APP大小也在增加。从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要下载,不下载你就可能因此失去了一个用户。从公司层面来讲,流量…

DHT网络

(基础技术) 现在有一种方法,可以通过磁力链接,例如magnet:?xturn:btih:0482e0811014fd4cb5d207d08a7be616a4672daa,就可以获取BT文件。 这个是通过DHT网络来实现的。 DHT网络是一个去中心化的,分布式信息存储系统。 存储的信息就…

Node文件模块

在上一篇文章中有提到,Node模块分为核心模块和文件模块,接下来就简单总结一下文件模块。 文件模块则是在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程、速度相比核心模块稍微慢一些,但是用的非常多。这些模块需要我…

PHP GD库解析一张简单图片并输出

这里只演示一下2种颜色值的图片&#xff0c;简单描述下概念。 首先要安装下GD库。否则下面的代码运行不了。 $size getimagesize(2.png); // 获取图片大小 $res imagecreatefrompng(2.png); // 获取指定图片的资源对象for ($i 0; $i < $size[1]; $i) {for ($j 0; $j &…

开发Teams的messaging extension

什么是Messaging Extension Messaging Extension是微软Teams的一种十分有用的扩展方式。可以让用户发送adaptive cards。具体的说明不在这里展开了。可以阅读微软官方的详细说明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/messaging-e…