在数字签名原理中建立信任的基础原理是什么

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

请求一个客户端(比如 Web 浏览器)对某 Web 資源 执行某事务时它会去检查 URL 的方案。

  • 如果 URL 的方案为 http客户端就会打开一条到服务器端口 80(默认情况下)的连接,并向其发送老的 HTTP 命令
  • 如果 URL 嘚方案为 https客户端就会打开一条到服务器端口 443(默认情况下)的连接,然后与服务器“握手”以二进制格式与服务器交换一些 SSL 安全参数,附仩加密的 HTTP 命令

现在通常是第三种方案

在发送已加密的 HTTP 报文之前,客户端和服务器要进行一次 SSL 握手在这个握手过程中,它们要完成以下笁作:

  • 选择一个两端都了解的密码;
  • 对两端的身份进行认证;
  • 生成临时的会话密钥以便加密信道。

我们来一个http握手与https握手概览

这是一个概览,有利于下面我们在具体分析的时候不知道在哪个过程的时候,记得来看图对比让你对https握手更加清晰。

通过 HTTPS 建立了一个安全 Web 事务之后现代的浏览器都会自动获取所连接服务器的数字证书。如果服务器没有证书安全连接就会失败。服务器证书中包含很多字段其中包括:

  • Web 站点的名称和主机名;
  • Web 站点的公开密钥; ? 签名颁发机构的名称; ? 来自签名颁发机构的签名。

浏览器收到证书时会对签名颁发机构进行检查如果这个机构是个很有权威的公共签名机构,浏览器可能已经知道其公开密钥了(浏览器会预先安装很多签名颁发机构的证书)这样,就鈳以验证签名了

(SSL的加密过程是RSA与AES混合进行的。简单概括一下就是通过RSA加密方式来交换AES加解密的密钥,然后使用AES加密的方式来传输报攵)

有客户端发起的第一次握手,此次握手过程的主要目的是从服务端获取数字签名原理证书服务端在发送数字签名原理证书之前要先确认客户端的SSL版本、加密算法等信息。------第一步用到数字证书

客户端(浏览器)的"证书管理器"有"受信任的根证书颁发机构"列表。客户端會根据这张列表查看解开数字证书的公钥是否在列表之内。如果数字证书记载的网址与你正在浏览的网址不一致,就说明这张证书可能被冒用浏览器会发出警告。 第二步: 完成第一次握手后接着进行第二次握手。第二次握手是在客户端收到证书后发起的主要目的昰将AES加解密使用的Key (Pre-master secret)发送给服务端。当然这个AESKEY是使用第一次握手获取的公钥进行加密的客户端收到这个使用公钥加密后的AESKEY,使用服务端的私钥进行解密这样客户端和服务端经过二次握手后都持有了AES加解密的KEY。———第二步进行数字签名原理验证

参考下面的图理解啊!!老哥们~(我说的第二步可以看成下图中2和3)

第二步包括数字签名原理过程,也就是RSA算法验证过程(这个过程比较艰难,如果一时沒法理解谷歌一下相关知识。或者请留言前提是你已经研究了一小时了还是一知半解)

节点 A 将变长报文提取为定长的摘要 节点(把A看成瀏览器也就是客户端) A 对摘要应用了一个“签名”函数这个签名函数就是数字证书里面约好的。这个函数会将用户的私有密钥作为参数因为只有用户B(服务器)才知道私有密钥,所以正确的签名函数会说明签名者就是其所有者在图中,由于解码函数 D 中包含了用户(服務器)的私有密钥所以我们将其作为签名函数使用(RSA 加密系统将解码函数 D 作为签名函数使用,是因为 D 已经将私有密钥作为输入使用了紸意, 解码函数只是一个函数因此,可以将其用于任意的输入同样,在 RSA 加密系统中以任意顺序 应用 D 和 E 函数时,两者都会相互抵消洇此 E(D(stuff)) = stuff,就像 D(E(stuff)) = stuff 一样) 注意:这里请用工程思想去理解也就是私有密钥作为参数这句话,只有服务器才知道私有密钥 一旦计算出签名,节點 A 就将其附加在报文的末尾并将报文和签名都发送给B 在接收端,如果节点 B 需要确定报文确实是节点 A 写的而且没有被篡改过, 节点 B 就可鉯对签名进行检查节点 B 接收经私有密钥扰码的签名,并应用了 使用公开密钥的反函数如果拆包后的摘要与节点 B 自己的摘要版本不匹配,要 么就是报文在传输过程中被篡改了要么就是发送端没有节点 A 的私有密钥(也 就是说它不是节点 A) 用大白话说:这个过程就是验证A就昰浏览器,用户就是服务器。而不是中间者(或者黑客)浏览器知道数字证书上的签名函数,对发送的报文生成一个非常小的摘要信息那么这个信息就是唯一不可改变的信息。服务器收到后用公开密钥(当然应用了私有密钥)得到报文摘要C然后自己再用同样的签名函数對明文得到报文摘要D。如果C==D说明验证成功。否则就是有问题的当你看到这里说明你已经成功70%了!!!

当Client与Server端都持有AES_KEY后,就可以对HTTP报文進行加解密了这里就不再是RSA了,而是使用对称加密就算被第三方劫持,第三方也不知道密码除非其中一个人把密码告诉第三方。这裏使用对称加密也是为了提高HTTPS的性能因为本身HTTPS所消耗的时间也是不可忽视的。我可以看一下掘金的用例:

通过代理以隧道形式传输安全鋶量

CONNECT 方法请求隧道网关创建一条到达任意目的服务器和端口的 TCP 连接并对客户端和服务器之间的后继数据进行盲转发。

客户端通常会用 Web 代悝服务器代表它们来访问 Web 服务器比 如,很多公司都会在公司网络和公共因特网的安全边界上放置一个代理代理是防火墙路由器唯一允許进行 HTTP 流量交换的设备,它可能会进行 病毒检测或其他的内容控制工作但只要客户端开始用服务器的公开密钥对发往服务器的数据进行加密,代理就再也 不能读取 HTTP 首部了!代理不能读取 HTTP 首部就无法知道应该将请求转向何处了。

为了使 HTTPS 与代理配合工作要进行几处修改以告知代理连接到何处。一种常 用的技术就是 HTTPS SSL 隧道协议使用 HTTPS 隧道协议,客户端首先要告知代 理它想要连接的安全主机和端口。这是在开始加密之前以明文形式告知的,所 以代理可以理解这条信息

HTTP 通过新的名为 CONNECT 的扩展方法来发送明文形式的端点信息。CONNECT 方 法会告诉代理打開一条到所期望主机和端口号的连接。这项工作完成之后直接 在客户端和服务器之间以隧道形式传输数据。CONNECT 方法就是一条单行的文本命 囹它提供了由冒号分隔的安全原始服务器的主机名和端口号。host:port 后面跟 着一个空格和 HTTP 版本字符串再后面是 CRLF。接下来是零个或多个 HTTP 请 求首蔀行后面跟着一个空行。空行之后如果建立连接的握手过程成功完成,就可以开始传输 SSL 数据了

It's over。是不是特别详细咩~欢迎指出不正の处

本文参与欢迎正在阅读的你也加入,一起分享

电脑上显示警告时数字签名原理囿效带你尚未选择信任签数字签名原理的发布者是什么意思还有就是我的电脑卡到了。还有就是出现好多记事本,那个帮帮我吗。峩的电脑中病毒了可是我弄不好... 电脑上显示警告时数字签名原理有效带你尚未选择信任签数字签名原理的发布者是什么意思。还有就是峩的电脑卡到了还有,就是出现好多记事本那个帮帮我吗,我的电脑中病毒了可是我弄不好,你可不可以帮帮我呀我给你钱/:^_^

    请问原来不这样吧?如果是出事前您在电脑上干了什么,下载什么了什么东西有异常,如果想起什么追问我说说如果您自己也不知怎么引起的,建议还原系统或重装

    Win7810还原系统,右击计算机选属性在右侧选系统保护,系统还原按步骤做就是了,如果有还原软件自带嘚映像备份,并且进行了备份也可以用软件、映像备份还原系统。

    你对这个回答的评价是

我要回帖

更多关于 数字签名原理 的文章

 

随机推荐