HTTP+加密+认证+完整性保护=HTTPS算法
HTTP是一种新协议吗?:浏览器
不是,HTTPS只是HTTP通讯接口部分用SSL和TLS协议代替而已安全
HTTP中,身处应用层的HTTP直接和TCP通讯。而在使用了SSL时,则变成HTTP先和SSL通讯,再由SSL和TCP通讯,在采用了SSL以后,HTTP就拥有了HTTPS的加密,证书和完整性保护这些功能服务器
只有在HTTP协议中才可使用SSL协议吗?:网络
SSL是独立于HTTP的协议,不光是HTTP协议,其余运行在应用层的SMTP和Telnet等协议都可配合SSL协议使用。网站
SSL的具体加密方法?:加密
SSL采用一种叫作公开密钥加密的加密处理方式接口
这里说一下近代的加密方式,加密算法公开,而密钥保密。内存
共享密钥加密(对称密钥加密):发送端须要把密钥发送给接收端,这里就存在安全性问题,密钥的发送也须要安全保密,否则被窃取到了,窃听者既有了公开的加密算法,又有了密钥,破解密钥垂手可得,那么咱们就须要把密钥安全的发送到接收端,可是咱们若是能够把密钥安全的发送给接收端,那咱们就能够安全地把数据发送过去,那还要密钥干什么呢?因此如今采用的加密方式摒弃了以前的,公开加密算法,保护密钥的方式。资源
公开密钥加密(非对称密钥加密):使用两把密钥,一把叫作私有密钥,另外一把叫作公开密钥,私有密钥不能让其余任何人知道,而公开密钥则能够随意发布,任何人均可以得到。发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用本身的私有密钥进行解密。
优缺点:公开密钥加密明显安全性要更高一些,可是公开密钥加密的处理速度要比共享密钥加密慢。
HTTPS采用的加密方式?:
HTTPS采用共享密钥加密和公开密钥加密二者并用的混合加密机制。若密钥可以实现安全交换,那么有可能会考虑仅使用公开密钥加密来通讯。
在交换密钥环节使用公开密钥加密方式,以后的创建通讯交换报文阶段则使用共享密钥加密方式
公开密钥的安全性彷佛是完美的,是这样吗?:
不是,公开密钥加密方式仍是存在一些问题。那就是没法证实公开密钥自己就是货真价实的公开密钥。好比,正准备和某台服务器创建公开密钥加密方式下的通讯时,如何证实收到的公开密钥就是本来预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换掉了。
可是这种不完美是由解决办法的,可使用由数字证书认证机构(CA)和其相关机关颁发的公开密钥证书。数字证书的业务流程是这样的:
首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份以后,会对已申请的公开密钥作数字签名,而后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一块儿。
服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通讯。公钥证书也可叫作数字证书或直接称为证书。
接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证经过,客户端即可明确两件事:一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。
此处认证机关的公开密钥必须安全地转交给客户端。使用通讯方式时,如何安全转交是一件很困难的事,所以,多数浏览器开发商发布版本时,会事先在内部植入经常使用认证机关的公开密钥。
SSL慢吗?:
因为HTTPS还须要作服务器,客户端,双方加密及解密处理,所以会消耗CPU和内存等硬件资源,SSL通讯部分消耗网络资源。而SSL通讯部分又由于要对通讯进行处理,因此时间上又延长了。
HTTPS比HTTP要慢2到100倍,目前并无根本解决这一问题的方案,可使用SSL加速器这种(专用服务器)硬件来改善该问题。该硬件为SSL通讯专用硬件,相对软件来说,可以提升数倍SSL的计算速度。仅在SSL处理时发挥SSL加速器的功效,以分担负载。
为何全部的WEB网站不一直使用HTTPS?:
如上一条所说,若是全部网站都使用HTTPS,则请求处理速度会十分十分十分慢,而且购买证书也须要钱,因此不包含我的信息的网站没有必要使用HTTPS