一 我们先来了解下,HTTP存在的问题,HTTP 主要有这些不足:
1、无状态,每个请求结束后都会被关闭,每次的请求都是独立的;服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器
2、通信使用明文(不加密),内容可能会被窃听
3、不验证通信方的身份,因此有可能遭遇伪装
4、无法证明报文的完整性,所以有可能已遭篡改
二 HTTPS在HTTP基础上增加了哪些内容呢?
HTTPS = HTTP+ 加密 (ssl加密通信线路)+ 认证(ca证书验证) + 完整性保护(混合加密)
HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用SSL(Secure Socket Layer)和 TLS(Transport Layer Security)协议代替而已。通常,HTTP 直接和 TCP 通信。当使用 SSL 时,则演变成先和 SSL 通信,再由 SSL 和 TCP 通信了。简言之,所谓 HTTPS,其实就是身披SSL 协议这层外壳的 HTTP。
image.png三 我们来了解一下加密的方式
1 对称加密(共享密钥方式):
加密和解密同用一个密钥的方式;以对称密钥方式加密时必须将密钥也发给对方。可究竟怎样才能安全地转交?
在互联网上转发密钥时,如果通信被监听那么密钥就可会落入攻击者之手,同时也就失去了加密的意义。另外还得设法安全地保管接收到的密钥。
2 非对称加密(公开密钥加密方式):
公开密钥加密使用一对非对称的密钥。一把叫做私有密钥(private key),另一把叫做公开密钥(public key);
使用非对称加密加式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。
例如客户需发送银行卡密码,最开始由银行服务端发送自己的公开密钥给客户端,客户端通过该公开密钥加密,再把密文发送给服务端,服务端用自己的私钥解密
四 HTTPS的加密方式--混合加密
HTTPS 采用对称加密和非对称加密两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用 非对称密钥加密来通信。但是非对称密钥加密与对称加密相比,其处理速度要慢。所以应充分利用两者各自的优势,将多种方法组合起来用于通信。在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式
存在的问题
非对称加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。为了解决上述问题,可以使用由数字证书认证机构(CA,CertificateAuthority)和其相关机关颁发的公开密钥证书。
CA验证过程:
服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。服务器会将这份由数字证书认证机构颁发的公钥证书 发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。
接到证书的客户端可使用数字证书认证机构的公开密钥(事先已植入到浏览器里),对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。此处认证机关的公开密钥必须安全地转交给客户端
五 总结:
HTTPS解决的问题:
1 信任主机的问题
采用HTTPS的server 必须从CA (数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上)申请一个用于证明服务器用途类型的证书,该证书里包含CA的签名和服务器的公开密钥,服务器会将公钥证书发送给客户端,以进行非对称加密方式通信。客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,客户端才能知道访问的服务器是安全的。目前基本所有的在线购物和网银等网站或系统,关键部分应用都是HTTPS的,客户通过信任该证书,从而信任了该主机,这样才能保证安全。
2 通讯过程中的数据的泄密和被窜改
使用HTTPS 协议,HTTPS 采用非对称加密和对称加密两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用非对称加密来通信。但是非对称加密与对称加密相比,其处理速度要慢。所以应充分利用两者各自的优势,将多种方法组合起来用于通信。在交换密钥环节使用非对称加密方式,之后的建立通信交换报文阶段则使用对称加密方式
《http图解》
网友评论