https的数字签名流程
数字签名是什么?
鲍勃有两把钥匙,一把是公钥,另一把是私钥。
鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。
苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。
鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。
鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用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的数字签名流程相关推荐
- HTTPS原理与流程
Table of Contents HTTP HTTPS 实现原理 工作流程 对称加密与非对称加密 CA 颁发机构 总结 HTTP HTTP(Hypertext Transfer Protocol)超 ...
- https证书申请流程和简介
HTTPS证书是什么 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安 ...
- HTTPS的加密流程
前言 本人喜欢用CSDN,所以搬运了一篇文章,文章原链接见最后. HTTPS最本质的东西就是对称加密和非对称加密,理解了核心,这些问题也就迎刃而解了 为了方面理解,使用人物和场景来描述: 人物:盖伊. ...
- 【网络系列】应用层HTTP协议格式解析、实现、HTTPS的加密流程
应用层HTTP协议格式解析.实现.HTTPS的加密流程 什么是HTTP协议 HTTP协议格式 1.首行 2.头部 3.正文 实现HTTP协议服务器 HTTPS如何加密 什么是HTTP协议 应用层负责程 ...
- Elasticsearch基础3——密钥库工具、证书生成工具及四种生成模式、https请求步骤流程
文章目录 一.密钥库工具(elasticsearch-keystore) 1.1 列出密钥库里的设置 1.2 查看密钥库密码 1.3 设置/改变秘钥库密码 1.4 添加字符串设置 1.5 添加文件设置 ...
- HTTPS的工作流程
hi,大家好,好久不见,今天为大家带来HTTPS协议的工作流程 认识HTTPS 加密是什么 HTTPS的工作流程 1.认识HTTPS HTTPS也是应用层协议,让我们再来回忆一下TCP/IP五层协议模 ...
- Https原理及流程
原文地址 我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险.为了解决这个问题,Netscape 公 ...
- 什么是Https、数字签名、数字证书
一.Http和Https 1.HTTP和HTTPS的基本概念 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器 ...
- Mac Charles 抓包 iPhone Https(详细流程)
1.安装 Charles . 安装时会弹出授权提示,点后面的授权按钮就行了 Charles can automatically configure your Network Settings for ...
最新文章
- laravel 发送带附件的邮件
- 谈谈 Android MVP 架构 | 掘金技术征文
- 还觉得linux命令难吗,看这篇2w多字的linux命令详解,通俗易懂
- Codeforces 987B. High School: Become Human
- 强势解析 eBay BASE 模式、去哪儿及蘑菇街分布式架构
- Visual Studio/SQL Server系统开发常见问题归纳
- linux运行好麻烦,解析用Linux非常困难、必须用命令行、很老又丑陋及无法运行游戏...
- 安装codeblocks和wxwidgets及opencv
- OJ1003: 两个整数的四则运算
- drools的可升级读写锁探究
- Highcharts柱形范围图使用示例
- 过拟合的原因以及如何解决
- c语言程序设计黄保和第二章,c语言程序设计答案(选择题+编程)黄保和、江戈版...
- mesa3d源代码阅读笔记
- uniapp小程序体验版-白屏现象
- Flash XSS 漏洞实例
- 2022-2027年中国卫星遥感市场竞争态势及行业投资前景预测报告
- 苹果8wifi找不到服务器,教大家遇到苹果手机iPhone11搜不到无线网怎么解决
- LTE-M通信系统传输建模与可用性分析
- php printer 使用,printer扩张的一些使用疑问