HTTPS浅析

HTTPS原理


Https简介

    HTTPS 可以认为是 HTTP + TLS。HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的。TLS 是传输层加密协议,它的前身是 SSL 协议,最早由 netscape 公司于 1995 年发布,1999 年经过 IETF 讨论和规范后,改名为 TLS。如果没有特别说明,SSL 和 TLS 说的都是同一个协议。


非对称加密

定义:
     1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。

简介:

  1. 非对称加密算法又称现代加密算法。
  2. 非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。
  3. 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey) 和私有密(privatekey)
  4. 公开密钥和私有密钥是一对
  5. 如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。
  6. 如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。
  7. 因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

小结:非对称加密是一对儿,用其中一个加密,只能用另一个解密(这也是为什么经常会听到公钥加密,私钥解密和私钥加密,公钥解密的说法了,这部分后面再讲)



HTTPS建立过程

HTTPS浅析_第1张图片
小结:Https采用的是非对称加密+对称加密的一种模式,采用对称加密会比采用非对称加密快,在性能上也有一定的影响,查看详情


关于公私钥加密问题

公钥加密:
       私钥是保密的,也就是你一个人知道,公钥是公开的,所有人都知道。而且这个体系保证了:1、加密解密用一对密钥,一个加密一个解密,2、即便知道了加密用的密钥,也无法知道(不可计算或者多项式时间不可计算)解密用的密钥。所以A与B进行保密通信的过程是:A要给B发信息要用B的公钥加密,B用自己的私钥解密。而B给A发信息要用A的公钥加密,A用自己的私钥解密。

私钥加密(签名认证):
       认证要解决的问题是你要证明一个东西(比如说文件)真是你的,怎么证明?**用私钥!因为只有你一个人知道!**而非对称加密的两个密钥,随便用哪一个加密,可以用另一个解密,所以可以用公钥去验证私钥。

如果你想发布一个公告,需要一个手段来证明这确实是你本人发的,而不是其他人冒名顶替的。那你可以在你的公告开头或者结尾附上一段用你的私钥加密的内容(例如说就是你公告正文的一段话),那所有其他人都可以用你的公钥来解密,看看解出来的内容是不是相符的。如果是的话,那就说明这公告确实是你发的—因为只有你的公钥才能解开你的私钥加密的内容,而其他人是拿不到你的私钥的

以上能证明这个消息是不是你发的,但要想能证明有没有被修改过(虽然解不开加密内容,但是不代表我不能对截获的数据进行操作),可以把公告的原文做一次哈希,然后用你的私钥加密这段哈希作为签名,并一起公布出去。当别人收到你的公告时,他可以用你的公钥解密你的签名,如果解密成功,并且解密出来的哈希值确实和你的公告原文一致,就能证明收到的数据是完整的并且在传输过程中没有被动过手脚

你可能感兴趣的:(网络)