计算机网络-http/https
读书笔记 来自图解HTTP
1.HTTP的缺点
- 通信使用明文(不加密),内容可能会被窃听
- 不验证通信方的身份,因此有可能遭遇伪装
- 无法证明报文的完整性,所以有可能已遭篡改
以下是对明文的相关加密算法
2. HTTP+加密+认证+完整性保护=HTTPS
我们把添加了加密及认证机制的HTTP称为HTTPS(HTTP Secure)。
HTTPS是身披SSL外壳的HTTP
HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已。
SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。可以说SSL是当今世界上应用最为广泛的网络安全技术。
2.1 相互交换**的公开**加密技术
SSL采用一种叫做公开**加密(Public-key cryptography)的加密处理方式。
近代的加密方法中加密算法是公开的,而**却是保密的。通过这种方式得以保持加密方法的安全性。
加密和解密都会用到**。没有**就无法对密码解密,反过来说,任何人只要持有**就能解密了。如果**被攻击者获得,那加密也就失去了意义。
加密和解密同用一个**的方式称为共享**加密(Common key crypto system),也被叫做对称**加密。
2.2 以共享**方式加密时必须将**也发给对方。可究竟怎样才能安全地转交?
使用两把**的公开**加密
公开**加密使用一对非对称的**。
一把叫做私有**(private key),另一把叫做公开**(public key)。
顾名思义,私有**不能让其他任何人知道,而公开**则可以随意发布,任何人都可以获得。
利用这种方式,不需要发送用来解密的私有**,也不必担心**被攻击者窃听而盗走。
2.3 HTTPS采用混合加密机制
2.4 证明公开**正确性的证书
公开**加密方式还是存在一些问题的。那就是无法证明公开**本身就是货真价实的公开**。
为了解决上述问题,可以使用由数字证书认证机构(CA,Certificate Authority)和其相关机关颁发的公开**证书。
其流程为:
首先,**服务器的运营人员向数字证书认证机构提出公开**的申请。**数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开**做数字签名,然后分配这个已签名的公开**,并将该公开**放入公钥证书后绑定在一起。
接到证书的客户端可使用数字证书认证机构的公开**,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:
一,认证服务器的公开**的是真实有效的数字证书认证机构。
二,服务器的公开**是值得信赖的。
而使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开**。
2.5 证书的作用
证书的一个作用是用来证明作为通信一方的服务器是否规范,另外一个作用是可确认对方服务器背后运营的企业是否真实存在。
3. HTTPS的安全通信机制
此外使用SSL时,服务器的处理速度会变慢。 因为存在加密解密的过程;