内容简介:为了统一解决上述问题,HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替。通常HTTP直接和TCP通信,当使用SSL时,则变成先和SSL通信,再由SSL与TCP通信。采用SSL后,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是当今世界上应用最广泛的网络安全技术
3、加密方式
1.共享密钥加密(Commom key crypto system),也叫做 对称密钥加密 :
加密和解密同用一个密钥。在加密后密钥也会发送给对方,在通信过程中如果被监听那么密钥就会落入攻击者手中从而对信息解密
2.公开密钥加密(Public-key-cryptography),也叫做 非对称密钥加密 :
使用一对非对称的密钥,私有秘钥和公有密钥。私有密钥不能让其他任何人知道,而公有密钥则可以随意发布。发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有秘钥进行解密。利用这种方式,不需要发送私有秘钥,从而使信息安全
对称加密并不安全,而非对称加密虽说安全度数高,但对CPU资源的消耗大,效率低,进而影响性能。HTTPS所采用的加密方式是结合两者的 混合加密机制 :在交换密钥环节使用非对称加密方式,在建立通信交换报文阶段使用对称加密方式
使用对称加密生成的key对传输数据加密,然后使用非对称加密的公钥对key加密:
- 获取到非对称加密的公钥A
- 使用对称加密的密钥B对数据加密
- 使用公钥A对密钥B进行加密得密钥C
- 将密钥B加密后的数据和密钥C通信
4、证书
遗憾的是,公开密钥加密方式还是存在一些问题:无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立公开密钥加密方式下的通信,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥,或许在公开密钥传输过程中,真正的公开密钥已经被攻击者替换掉了
为了解决上述问题,可以使用由数组证书认证机构和其相关机关颁发的 公开密钥证书
数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上
服务器会将由数字证书认证机构颁发的公钥证书(数字证书)发送给客户端,以进行公开密钥加密方式通信。接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:认证服务器的公开密钥是真实有效的数字证书认证机构、服务器的公开密钥是可信赖的
5、HTTPS通信步骤
- 客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件列表(所使用的的加密算法及密钥长度等)
- 服务器可进行SSL通信时,会以Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的
- 之后服务器发送Certificate报文,报文中包含公开密钥证书
- 最后服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束
- SSL第一次握手结束之后,客户端以Client Key Exchange报文作为回应。报文中包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3的公开密钥进行加密
- 接着客户端继续发送Change Cipher Spec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密钥加密
- 客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准
- 服务器同样发送Change Cipher Spec报文
- 服务器同样发送Finished报文
- 服务器和客户端的Finished报文交换完毕后,SSL建立完成。通信会受到SSL的保护,从此开始进行应用层协议的通信,即发送HTTP请求
- 应用层协议通信,发送HTTP请求
- 最后有客户端断开连接。断开连接时发送close_notify报文
6、HTTPS不足
HTTPS也存在一些问题,如当使用SSL时,它处理速度会变慢 和使用HTTP相比,网络负载可能会变慢2到100倍,除去和TCP连接、发送HTTP请求之外,还必须进行SSL通信,因此整体上处理通信量不可避免地增加。由于SSL需加密传输,会更多地消耗资源
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Effective C++
[美]Scott Meyers / 侯捷 / 电子工业出版社 / 2006-7 / 58.00元
《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)......一起来看看 《Effective C++》 这本书的介绍吧!