今天,我读到一篇好文章。

它用图片通俗易懂地解释了,"数字签名"(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.

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

数字证书与数字签名(图文并茂)详解相关推荐

  1. windows数字签名与详解信息替换

    文章目录 1.前言 2. 数字签名修改方式 2.1 自己给程序加签名 2.2 盗取他程序的签名给自己的程序使用 3.修改详细信息与编译时候修改程序图标 参考文章 1.前言 数字签名: 详解信息: 2. ...

  2. 网上交易的卫兵—数字证书和数字签名

    网上交易的卫兵-数字证书和数字签名 CFCA 本文力图以最浅显的语言解释数字证书和数字签名的科学原理,以及它们对网上交易信息的安全保障机制,可供各位网民参考. 网上银行交易中的安全问题 在网上交易中, ...

  3. 对称加密与非对称加密的区别_https原理及对称加密、非对称加密、数字证书、数字签名的含义...

    一.为什么要使用https 使用https的原因其实很简单,就是因为http的不安全. 当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障 ...

  4. iOS 证书与签名 解惑详解

    iOS 证书与签名 解惑详解 分类: iPhone2012-06-06 19:57 9426人阅读 评论(1) 收藏 举报 iosxcodecryptographyappleiphone测试 目录(? ...

  5. 关于数字证书,数字签名,CA证书,Https都在这里了

    Http协议大家都不陌生了,但是http的请求内容都是明文的内容,如果被拦截了请求,就能看到你的请求内容,比如账号密码之类的,这样的话就是不安全的, 然后就有了http+SSL/TLS =https ...

  6. 信息系统项目管理师必背核心考点(六十八)数字证书、数字签名

    科科过为您带来软考信息系统项目管理师核心重点考点(六十八)数字证书.数字签名和CA认证中心,内含思维导图+真题 [信息系统项目管理师核心考点]数字证书 1.具有不可抵赖性的特征(一段电子文档) 2.包 ...

  7. 数字推理题725道详解

    [转]http://group.hudong.com/n80/doc/LGgdcWgJBBQlcAHIa.html 数字推理题725道详解 [1]7,9,-1,5,( ) A.4:B.2:C.-1:D ...

  8. 数字证书、数字签名的实现使用以及keytool工具生成私钥公钥

    数字证书.数字签名的实现使用以及keytool工具生成私钥公钥 数字签名 数字证书 数字签名的实现 keytool工具 基本命令 生成私钥公钥 导出公钥 数字签名 数字签名(又称公钥数字签名)是只有信 ...

  9. switch怎么一个账号绑定各种服务器,任天堂switch主副机器介绍,ns数字版游戏共享操作详解...

    原标题:任天堂switch主副机器介绍,ns数字版游戏共享操作详解 任天堂在日前推送了switch主机的6.0系统,其网络会员服务Switch Online也正式上线,值得一提的是此次更新引入了主副机 ...

  10. iOS 证书申请和使用详解

    iOS 证书申请和使用详解 对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成员介绍 1.Cer ...

最新文章

  1. bootstrap modal 弹出效果
  2. Java数据库——CallableStatement接口
  3. Scala swing和FX
  4. SpringCloud入门[转]
  5. flash 遮罩层全解
  6. bitnamigitlab_Bitnami Gitlab 安装配置 step by step
  7. H264中的SPS、PPS提取与作用
  8. 关于php的ifelse说法,PHP,否则elseif
  9. C++ 字节流与二进制字符串相互转换(一个简单的明文加解密程序)
  10. 计算机视觉基础:霍夫变换(Computer Vision Fundamentals: Hough Transform)
  11. 第4讲 The Zend Framework MVC Architecture
  12. Lotus Traveler 8.5.1的安装及配置
  13. freeimage.dll
  14. OSChina 周五乱弹 —— 有一个朝代红薯不能去
  15. 【GPLT】【2022天梯赛真题题解】
  16. STM32 cudeIDE工程新建步骤
  17. 数据传输速率:传码速率(波特率)、传信速率(比特率)
  18. JavaScript中for、for...in、for...of、forEach的区别和用法
  19. 数据库查询+数据库备份+数据库恢复
  20. Python数据处理方法总结

热门文章

  1. Elasticsearch 7.X data stream 深入详解
  2. 计算机网络学习笔记(持续更新)
  3. 变压器状态的监测与诊断
  4. j1900适合装哪版群晖_NAS 拔草记:群晖 DS220j 使用体验
  5. 简述DB ,DBMS与DBS
  6. Python如何判断一个数据的小数点后面首个非零数字位于小数点后面第几位
  7. Data-free量化
  8. 高中计算机听课总结,信息技术听课心得.doc
  9. 2010年6月 工作 计划 发奋图钱 再接再厉
  10. mysql 基础选择题_MySQL基础之练习题