https

作者: Justaman | 来源:发表于2016-06-19 22:19 被阅读35次

http(对称加密):数据传输必须要有密码,所以服务器生成了一个密码,用于数据的加密和解密,可是现在只有服务器知道,所以也要告诉客户端这个密码是多少;那么问题来了,如果密码传输过程中被截获怎么办?

那么就采用非对称加密,这样客户端用公钥加密,服务器用私钥解密就行了,而黑客只有私钥而没有公钥,所以什么都做不了,哈哈。但是如果黑客又想了一招,拦截服务器发送的公钥而换成自己提供的公钥,这样加密之后,黑客用自己提供的公钥对应的私钥来解密。这样,接下来黑客就成了服务器,你的所有信息都送到了黑客手里,天哪。。

所以就要验证,对方是不是服务器。权威机构CA提供了证书。所以对方就要发送自己的证书给客户端来进行验证。所以重点就是这个证书能不能证明自己就是服务器而不是黑客,那么这个证书是什么原理来验证“我”就是服务器。

证书包括信息:证书的公钥,颁发机构,颁发给的机构,这些都是明文信息,我们称为内容P。

然后使用hash算法,对内容P进行hash计数,得到一个hash值H。

然后使用签发机构的私钥对H进行RSA加密,得到签名信息S。

然后将P,S连成一个文件,这个文件就是所谓的数字证书了。现在假设某人得到了这个证书,如何确认这个证书属于谁的呢?

我们看数字证书里有些什么?可以得到P,可以得到S。

我们用同样的hash算法对P进行hash计数,得到一个hash值H1.

P里有公钥,签发者ID,Subject,有效期,及其他信息。我们用公钥解密S,得到了一个值H’。

这个H‘就是制作数字证书的时候,用私钥对S加密的H。

现在对比H’和H1是否相等,如果不相等,就说明:1.内容P被篡改过,或者2.证书不是由CA签发的。

反之则证明了这个公钥就是服务器提供的。如果是服务器提供的,便可以用这个公钥对接下来客户端生成的随机数(也就是之后数据的加密解密的密码)进行加密。

此时,可靠的通信就以建立,可以安全的进行数据传输。

那为什么会出现浏览器警告用户,说这个网站提供的证书不安全,那是因为这个证书是第三方签发的,但这个第三方却不权威。浏览器就只认权威CA,只存了CA提供的证书的共钥。连公钥都没有,所以连内容P的验证都无法进行,更不用说验证S了,所以当然就是不能被信任的。

其中一部分引自知乎问题的一个答案:数字证书的原理

more:关于12306,参见12306的证书问题

相关文章

  • https VS https

    HTTPS=SSL+HTTPHTTP协议传输的数据是未加密的 ,也就是明文,因此使用HTTP协议传输隐私信息非常不...

  • HTTPS

    什么是HTTPS HTTPS(全称:Hypertext Transfer Protocol over Secure...

  • HTTPS

    HTTP 有以下安全性问题: 使用明文进行通信,内容可能会被窃听;(请求时,需加密) 不验证通信方的身份,通信方的...

  • HTTPS

    站点证书的有效性 SSL 自身不要求用户检查Web服务器证书,但大部分现代浏览器都会对证书进行简单的完整性检查,并...

  • Https

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采...

  • HTTPS

    1.为什么要有HTTPS2.HTTPS的工作原理3.密码学4.HTTPS的优缺点5.在iOS中使用HTTPS 为什...

  • HTTPS

    精悍小文:https是如何工作的? - 简书 急速开发系列——打造完善的https使用方案 - 简书

  • https

    摘自[白话Https]https://www.cnblogs.com/xinzhao/p/4949344.html...

  • HTTPS

    一、背景 对于大规模的购物、银行事务或访问机密数据来说,这些重要的事务需要将 HTTP和数字加密技术结合起来使用,...

  • HTTPS

    在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题。使用 HTTPS 通信机制可以有效地防止这些问题。本篇...

网友评论

      本文标题:https

      本文链接:https://www.haomeiwen.com/subject/glnbdttx.html