什么是 HTTPS ? HTTPS 协议背景 ?
===>>>
HTTP 协议 即 超文本传输协议 ,
它出生的很早,在早期,网络服务的相关攻击呢,或者病毒啥的几乎没有,安全类的问
题也是少之又少。
但是,随着计算机技术的发展,到目前呢安全攻击啥的就很多了,而 http 协议 就有点对
付不了了,因为它几乎就没啥安全防御的措施。
HTTP 协议呢 它是以明文方式发送内容的,它并不提供任何方式的数据加密,那如果攻
击者截取了 Web浏览器和网站服务器之间的传输报文,那就可以直接读取其中的信息,
因此 HTTP 协议 不适合传输一些 敏感信息,比如 银行卡号,密码等。
所以,慢慢的专家就在 HTTP 协议的基础上 后来又开发了 ssl 协议,主要的目的
呢就是给 HTTP 协议 补充一些 安全类相关的控制 ( 比如 加密、认证 啥的 )
所以,超文本传输协议适用于 传输 Web浏览器 和 网站服务器之间的数据,它的最大问
题就是传输的方式 是明文,你写的是什么传输的就是什么,没有提供任何方式的数据加
密,那就有风险了; 你想想,如果攻击者截取了 Web浏览器和网站服务器之间的传输报
文,那就可以直接读懂其中的信息,因此 HTTP 协议不适合传输一些敏感信息,比如银
行卡号,密码啥的。
那为了解决这一问题 ( HTTP 安全方面的缺陷 ) 这就有了我们要讲的 HTTPS
HTTPS : 超文本传输安全协议
HTTPS 这个协议并不是一个新协议,而是 HTTP + SSL (TLS) 这两个协议组成。
在之前, HTTP 是先和 TCP ( 假定传输层是 TCP 协议 ) 直接通信;
而加了 SSL 协议之后,
就变成 HTTP 先和 SSL 通信,再由 SSL 和 TCP 通信,就相当于 SSL 被嵌在了
HTTP 和 TCP 之间 。
如下图所示
===>>>
===>>>
SSL 即 Secure Sockets Layer 的缩写, 中文名叫做 “ 安全套接层 ” 它是在上世纪90年
代中期设计的,到了1999年就应用广泛了,默认成为了互联网的标准,再后来就被标准
化了,标准化为 TLS --- 传输层安全协议 。
它建立在可靠的传输协议之上 ( 如TCP ) 之上,为高层协议提
供数据封装、压缩、加密等基本功能。
记录 主要提供的是 加密 ~!!!
它建立在 SSL 记录协议之上,用在 实际的数据传输开始前,通讯
双方进行身份认证、协商加密算法。交换加密密钥等。
握手 , 是用于认证的,就是表明对方的身份是认可的~!!
SSL协议提供的服务 :
* 认证用户和服务器,确保数据发送到正确的客户机和服务器
* 加密数据以防止数据中途被窃取
* 维护数据的完整性,确保数据在传输过程中不被改变
SSL 主要是解决两个问题 ( 作用 )
* 传输时的秘密性
就是 在数据传输时 这个数据是加密的,不能被对方破译掉 。
* 身份验证的真实性
传给对方接收者,你对对方的身份也是认可的~!!
* 最常见的加密算法 就是 哈希 ( HASH )了
常见的 HASH 算法 :
MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5
HMAC、 SHA1
共享密钥加密 :
* 又称为对称密钥加密,即 : 加密和解密使用相同的密钥
常见的对称加密算法 : DES、3DES、DESX、Blowfish、IDEA、RC4、RC5
RC6 和 AES 。
公开密钥加密 :
* 又称为 非对称密钥加密
* 公开密钥加密使用一对非对称的密钥。
一把叫 私有密钥,一把叫公开密钥 。
* 私有密钥不能让其他人知道, 而公开密钥则可以随意发布,任何人都可以获得
* 使用此加密方式,发送密文的一方使用公开密钥进行加密处理,对方收到被加密
的信息后,再使用自己的私有密钥进行解密。
利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听
盗走。
注 : 公开密钥比共享密钥 要慢 。
常见的非对称加密算法: RSA、ECC、Diffie-Hellma、 EL Gamal DSA ( 数字签名用)