https和http
https和http请求差别在于https比http多了一个加密协议。
HTTPS 协议的主要功能基本都依赖于 TLS/SSL 协议,TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。所解决的问题是防止内容被窃听,在通讯过程中,http协议因为无加密手段,第三方可以很随意地进入会话,拦截或者监听更改会话内容。而https协议,通过加密对会话进行保护,大大提高了会话的安全性。
加密方式分为三种:
1.对称性加密。
加密和解密同用一个密钥。加密和解密都会用到密钥。没有密钥就无法对密码解密。这种方式,因为只有唯一的一个密钥,而且还要想办法把密钥放在一个安全的地方,风险相对来说还是很高。
2.非对称性加密。
公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,另一把叫做公开密钥。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。
使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。
特点是可以一对多,服务器只要掌握自身的私钥,就可以对各个请求进行解密操作。
但是缺点也很明显,首先,因为公钥是公开的,所以可以通过公钥获取请求内容。其次,无法验证服务器端身份,有可能被拦截篡改。最后,非对称加密无论加密还是解密都需要花费一定时间,比较影响数据传输效率。
3.对称性加密+非对称性加密(https所使用方式)
先用非对称加密来建立链接,然后使用对称性加密来传输数据。
发送密文的一方使用对方的公钥进行加密处理“对称的密钥”,然后对方用自己的私钥解密拿到“对称的密钥”,这样可以确保交换的密钥是安全的前提下,使用对称加密方式进行通信。所以,HTTPS采用对称加密和非对称加密两者并用的混合加密机制。
而为了解决数据被篡改的问题,加入了数字签名,相对应就产生了数字证书颁发机构(简称CA),由专门的机构发放。