数字证书与数字签名(图文并茂)详解
今天,我读到一篇好文章。
它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。
我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。
文中涉及的密码学基本知识,可以参见我以前的笔记。
====================================================
数字签名是什么?
作者:David Youd
翻译:阮一峰
转载于:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
原文网址:http://www.youdzone.com/signature.html
1.
鲍勃有两把钥匙,一把是公钥,另一把是私钥。
2.
鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。
3.
苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。
4.
鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。
5.
鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。
6.
然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。
7.
鲍勃将这个签名,附在信件下面,一起发给苏珊。
8.
苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。
9.
苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。
10.
复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。
11.
后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。
12.
鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。
13.
苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。
14.
下面,我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。
15.
首先,客户端向服务器发出加密请求。
16.
服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。
17.
客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。
18.
如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。
19.
如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。
20.
如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。
数字证书与数字签名(图文并茂)详解相关推荐
- windows数字签名与详解信息替换
文章目录 1.前言 2. 数字签名修改方式 2.1 自己给程序加签名 2.2 盗取他程序的签名给自己的程序使用 3.修改详细信息与编译时候修改程序图标 参考文章 1.前言 数字签名: 详解信息: 2. ...
- 网上交易的卫兵—数字证书和数字签名
网上交易的卫兵-数字证书和数字签名 CFCA 本文力图以最浅显的语言解释数字证书和数字签名的科学原理,以及它们对网上交易信息的安全保障机制,可供各位网民参考. 网上银行交易中的安全问题 在网上交易中, ...
- 对称加密与非对称加密的区别_https原理及对称加密、非对称加密、数字证书、数字签名的含义...
一.为什么要使用https 使用https的原因其实很简单,就是因为http的不安全. 当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障 ...
- iOS 证书与签名 解惑详解
iOS 证书与签名 解惑详解 分类: iPhone2012-06-06 19:57 9426人阅读 评论(1) 收藏 举报 iosxcodecryptographyappleiphone测试 目录(? ...
- 关于数字证书,数字签名,CA证书,Https都在这里了
Http协议大家都不陌生了,但是http的请求内容都是明文的内容,如果被拦截了请求,就能看到你的请求内容,比如账号密码之类的,这样的话就是不安全的, 然后就有了http+SSL/TLS =https ...
- 信息系统项目管理师必背核心考点(六十八)数字证书、数字签名
科科过为您带来软考信息系统项目管理师核心重点考点(六十八)数字证书.数字签名和CA认证中心,内含思维导图+真题 [信息系统项目管理师核心考点]数字证书 1.具有不可抵赖性的特征(一段电子文档) 2.包 ...
- 数字推理题725道详解
[转]http://group.hudong.com/n80/doc/LGgdcWgJBBQlcAHIa.html 数字推理题725道详解 [1]7,9,-1,5,( ) A.4:B.2:C.-1:D ...
- 数字证书、数字签名的实现使用以及keytool工具生成私钥公钥
数字证书.数字签名的实现使用以及keytool工具生成私钥公钥 数字签名 数字证书 数字签名的实现 keytool工具 基本命令 生成私钥公钥 导出公钥 数字签名 数字签名(又称公钥数字签名)是只有信 ...
- switch怎么一个账号绑定各种服务器,任天堂switch主副机器介绍,ns数字版游戏共享操作详解...
原标题:任天堂switch主副机器介绍,ns数字版游戏共享操作详解 任天堂在日前推送了switch主机的6.0系统,其网络会员服务Switch Online也正式上线,值得一提的是此次更新引入了主副机 ...
- iOS 证书申请和使用详解
iOS 证书申请和使用详解 对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成员介绍 1.Cer ...
最新文章
- bootstrap modal 弹出效果
- Java数据库——CallableStatement接口
- Scala swing和FX
- SpringCloud入门[转]
- flash 遮罩层全解
- bitnamigitlab_Bitnami Gitlab 安装配置 step by step
- H264中的SPS、PPS提取与作用
- 关于php的ifelse说法,PHP,否则elseif
- C++ 字节流与二进制字符串相互转换(一个简单的明文加解密程序)
- 计算机视觉基础:霍夫变换(Computer Vision Fundamentals: Hough Transform)
- 第4讲 The Zend Framework MVC Architecture
- Lotus Traveler 8.5.1的安装及配置
- freeimage.dll
- OSChina 周五乱弹 —— 有一个朝代红薯不能去
- 【GPLT】【2022天梯赛真题题解】
- STM32 cudeIDE工程新建步骤
- 数据传输速率:传码速率(波特率)、传信速率(比特率)
- JavaScript中for、for...in、for...of、forEach的区别和用法
- 数据库查询+数据库备份+数据库恢复
- Python数据处理方法总结