在说 https 之前,我们先了解一下 http ,以及为什么要使用 https . http(Hyper Text Transfer Protocol) 超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议,它是 TCP/IP 的上层协议,同时它也是万维网(万维网不等同于互联网,它只是基于互联网的一个服务)的数据通信的基础.
http 协议是客户端浏览器与其他程序或 Web 服务器之间交互的应用层通讯协议.但它也有一个致命的缺点: http 协议是明文传输协议 ,在传输信息的过程中并没有进行任何加密,通信的双方也没有任何的认证,这是非常不安全的,如果在通信过程中被中间人进行劫持、监听、篡改,会造成个人隐私泄露等严重的安全问题.
举一个现实中的例子来说,假设小李要给小张寄信,如果信件在运输的过程中没有任何安全保护,那么很可能会被邮递员(也就是中间人)窃取其中的内容,甚至于修改内容. https 就是用于解决这样的安全问题的,它的全称为 Hypertext Transfer Protocol Secure ,它在 http 的基础上添加了 SSL(安全套接字层) 层来保证传输数据的安全问题.

本文作者为: SylvanasSun .转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自SylvanasSun Blog,原文链接: https://sylvanassun.github.io/2017/08/06/2017-08-06-DigestHttps/ https 提供了端对端的加密,而且不仅对数据进行了加密,还对数据完整性提供了保护.不过在讲解 https 的加密方式之前,我们需要先了解一下加密算法.
对称加密对称加密的基本思想是: 通信双方使用同一个密钥(或者是两个可以简单地互相推算的密钥)来对明文进行加密与解密. 常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6. 
对称加密看起来很美好,但是密钥要怎么发送过去呢?如果直接发送过去,被中间人截获了密钥岂不是白费工夫. 非对称加密非对称加密也叫公开密钥加密,它使用了两个密钥,一个为公钥,一个为私钥,当一个用作于加密的时候,另一个则用作解密. 这两个密钥就算被其他人知道了其中一个也不能凭借它计算出另一个密钥,所以可以公开其中一个密钥(也就是公钥),不公开的密钥为私钥. 
如果服务器想发送消息给客户端,只需要用客户端的公钥加密,然后客户端用它自己的私钥进行解密. 常见的非对称加密算法有RSA、DSA、ECDSA、 DH、ECDHE. 我们以 DH 算法为例,了解一下非对称加密的魅力. 
Alice 要与 Bob 进行通信,他们协定了一组可以公开的质数p=23,g=5.
Alice 选择了一个不公开的秘密数a=6,并计算A=gamodp=56mod23=8并发送给 Bob .
Bob 选择了一个不公开的秘密数b=15,并计算B=gbmodp=515mod23=19并发送给 Alice
Alice 计算S=Bamodp=196mod23=2
Bob 计算S=Abmodp
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|