HTTP主要有这些不足:算法
为了统一解决上述问题,在HTTP上再加入加密处理和认证等机制,成为HTTPS(HTTP Secure)数组
HTTPS并不是是应用层的一种新协议。只是HTTP通讯接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替。一般HTTP直接和TCP通讯,当使用SSL时,则变成先和SSL通讯,再由SSL与TCP通讯。安全
采用SSL后,HTTP就拥有了加密、证书和完整性保护这些功能服务器
SSL是独立于HTTP的协议,不光是HTTP协议,其余运行在应用层的SMTP和Telnet等协议都可配合SSL协议使用。能够说SSL是当今世界上应用最普遍的网络安全技术网络
1.共享密钥加密(Commom key crypto system),也叫作对称密钥加密:并发
加密和解密同用一个密钥。在加密后密钥也会发送给对方,在通讯过程当中若是被监听那么密钥就会落入攻击者手中从而对信息解密性能
2.公开密钥加密(Public-key-cryptography),也叫作非对称密钥加密:加密
使用一对非对称的密钥,私有秘钥和公有密钥。私有密钥不能让其余任何人知道,而公有密钥则能够随意发布。发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用本身的私有秘钥进行解密。利用这种方式,不须要发送私有秘钥,从而使信息安全接口
对称加密并不安全,而非对称加密虽然说安全度数高,但对CPU资源的消耗大,效率低,进而影响性能。HTTPS所采用的加密方式是结合二者的混合加密机制:在交换密钥环节使用非对称加密方式,在创建通讯交换报文阶段使用对称加密方式网络安全
使用对称加密生成的key对传输数据加密,而后使用非对称加密的公钥对key加密:
遗憾的是,公开密钥加密方式仍是存在一些问题:没法证实公开密钥自己就是货真价实的公开密钥。好比,正准备和某台服务器创建公开密钥加密方式下的通讯,如何证实收到的公开密钥就是本来预想的那台服务器发行的公开密钥,或许在公开密钥传输过程当中,真正的公开密钥已经被攻击者替换掉了
为了解决上述问题,可使用由数组证书认证机构和其相关机关颁发的公开密钥证书
数字证书认证机构处于客户端与服务器双方均可信赖的第三方机构的立场上
服务器会将由数字证书认证机构颁发的公钥证书(数字证书)发送给客户端,以进行公开密钥加密方式通讯。接到证书的客户端可以使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证经过,客户端即可明确两件事:认证服务器的公开密钥是真实有效的数字证书认证机构、服务器的公开密钥是可信赖的
2019.7.11更新 通俗来理解:
HTTPS也存在一些问题,如当使用SSL时,它处理速度会变慢 和使用HTTP相比,网络负载可能会变慢2到100倍,除去和TCP链接、发送HTTP请求以外,还必须进行SSL通讯,所以总体上处理通讯量不可避免地增长。因为SSL需加密传输,会更多地消耗资源