数字签名是什么?


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

鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。

苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。

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

鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。

然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。

鲍勃将这个签名,附在信件下面,一起发给苏珊。

苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。

苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。

鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。

苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。

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

首先,客户端向服务器发出加密请求。

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

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

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

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

作者:David Youd

翻译:阮一峰

英文原文网址:http://www.youdzone.com/signature.html

中文翻译网址:http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389547.html

https的数字签名流程相关推荐

  1. HTTPS原理与流程

    Table of Contents HTTP HTTPS 实现原理 工作流程 对称加密与非对称加密 CA 颁发机构 总结 HTTP HTTP(Hypertext Transfer Protocol)超 ...

  2. https证书申请流程和简介

    HTTPS证书是什么 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安 ...

  3. HTTPS的加密流程

    前言 本人喜欢用CSDN,所以搬运了一篇文章,文章原链接见最后. HTTPS最本质的东西就是对称加密和非对称加密,理解了核心,这些问题也就迎刃而解了 为了方面理解,使用人物和场景来描述: 人物:盖伊. ...

  4. 【网络系列】应用层HTTP协议格式解析、实现、HTTPS的加密流程

    应用层HTTP协议格式解析.实现.HTTPS的加密流程 什么是HTTP协议 HTTP协议格式 1.首行 2.头部 3.正文 实现HTTP协议服务器 HTTPS如何加密 什么是HTTP协议 应用层负责程 ...

  5. Elasticsearch基础3——密钥库工具、证书生成工具及四种生成模式、https请求步骤流程

    文章目录 一.密钥库工具(elasticsearch-keystore) 1.1 列出密钥库里的设置 1.2 查看密钥库密码 1.3 设置/改变秘钥库密码 1.4 添加字符串设置 1.5 添加文件设置 ...

  6. HTTPS的工作流程

    hi,大家好,好久不见,今天为大家带来HTTPS协议的工作流程 认识HTTPS 加密是什么 HTTPS的工作流程 1.认识HTTPS HTTPS也是应用层协议,让我们再来回忆一下TCP/IP五层协议模 ...

  7. Https原理及流程

    原文地址 我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险.为了解决这个问题,Netscape 公 ...

  8. 什么是Https、数字签名、数字证书

    一.Http和Https 1.HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器 ...

  9. Mac Charles 抓包 iPhone Https(详细流程)

    1.安装 Charles . 安装时会弹出授权提示,点后面的授权按钮就行了 Charles can automatically configure your Network Settings for ...

最新文章

  1. laravel 发送带附件的邮件
  2. 谈谈 Android MVP 架构 | 掘金技术征文
  3. 还觉得linux命令难吗,看这篇2w多字的linux命令详解,通俗易懂
  4. Codeforces 987B. High School: Become Human
  5. 强势解析 eBay BASE 模式、去哪儿及蘑菇街分布式架构
  6. Visual Studio/SQL Server系统开发常见问题归纳
  7. linux运行好麻烦,解析用Linux非常困难、必须用命令行、很老又丑陋及无法运行游戏...
  8. 安装codeblocks和wxwidgets及opencv
  9. OJ1003: 两个整数的四则运算
  10. drools的可升级读写锁探究
  11. Highcharts柱形范围图使用示例
  12. 过拟合的原因以及如何解决
  13. c语言程序设计黄保和第二章,c语言程序设计答案(选择题+编程)黄保和、江戈版...
  14. mesa3d源代码阅读笔记
  15. uniapp小程序体验版-白屏现象
  16. Flash XSS 漏洞实例
  17. 2022-2027年中国卫星遥感市场竞争态势及行业投资前景预测报告
  18. 苹果8wifi找不到服务器,教大家遇到苹果手机iPhone11搜不到无线网怎么解决
  19. LTE-M通信系统传输建模与可用性分析
  20. php printer 使用,printer扩张的一些使用疑问

热门文章

  1. rockchip中的vop
  2. mp3计算机无法识别,MP3\MP4连接windows电脑后无法识别怎么办
  3. 【转】iOS游戏/应用的营销及推广技巧(2)
  4. 中国500家企业【薪资待遇】一览
  5. java计算机毕业设计Internet快递柜管理系统源码+mysql数据库+系统+lw文档+部署
  6. 用Nonebot2搭建QQ机器人(一):我的学习经历(一)
  7. Python爬取数据存储到本地文本文件
  8. CSAPP第89章家庭作业(部分)
  9. 游戏手柄(JoyStick)编程控制的一个简单代码(Qt)
  10. Python爬虫学习之爬取财富快讯