Https与Http在数据传输过程的差别:
Https与Http都是OSI模型中传输层协议,而唯一不同的就是Https中在Http的应用层和TCP/IP增加了一个SSL /TLS层,其实也是属于应用层,主要用来对数据进行加解密,保证数据的传输的正确性。
Http为何不安全
http协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,通信过程非常容易遭遇劫持、监听、篡改,严重情况下,会造成恶意的流量劫持等问题,甚至造成个人隐私泄露(比如银行卡卡号和密码泄露)等严重的安全问题。可以把http通信比喻成寄送信件一样,A给B寄信,信件在寄送过程中,会经过很多的邮递员之手,他们可以拆开信读取里面的内容(因为http是明文传输的)。A的信件里面的任何内容(包括各类账号和密码)都会被轻易窃取。除此之外,邮递员们还可以伪造或者修改信件的内容,导致B接收到的信件内容是假的。比如常见的,在http通信过程中,“中间人”将广告链接嵌入到服务器发给用户的http报文里,导致 用户界面出现很多不良链接; 或者是修改用户的请求头URL,导致用户的请求被劫持到另外一个网站,用户的请求永远到不了真正的服务器。这些都会导致用户得不到正确的服务,甚至是损失惨重。
Https如何保证数据的完整性
既然知道了Http的不安全,那我们先用自己的办法来慢慢引入Https,既然传输过程数据容易被修改,那客户端和服务端可以使用加密算法将数据加密,只有client与server知道,那就可以使用对称加密算法:
这样只要不公开秘钥S就能保证数据不被修改,但是在WWW的Web环境下将会变成这样的结构: