HTTPS
一、HTTPS工作原理
- 客户端通过URL发起HTTPS请求,要求服务器建立SSL链接
- 服务器收到客户端的请求后,返回公钥证书
- 客户端验证公钥证书是否有效,验证不通过则显示警告信息;验证通过则利用伪随机数生成器生成会话密钥,然后用证书的公钥加密会话密钥并发送给服务器
- 服务器通过自己的私钥解密会话密钥。至此,客户端和服务器双方都持有了相同的会话密钥
- 服务器和客户端之间通过会话密钥加密双方间的通信
二、HTTPS加密方式
HTTPS使用非对称加密传输一个对称密钥,服务器和客户端使用这个对称密钥来加密解密收发数据;而具体传输数据则是用对称加密的方式。
- 对称加密DES:加密和解密使用同一个密钥(速度快)
- 非对称加密RSA:发送端使用公开的公钥加密,接收端使用私密的私钥解密(安全)
三、HTTPS优点和缺点
优点
- 能够进行信息加密、完整性校验和身份验证,很大程度上避免了HTTP协议容易发生信息窃听、信息篡改、信息劫持的风险。
缺点
- 握手阶段比较费时,会使页面加载时间延长,增加耗电
- HTTPS缓存不如HTTP高效,会增加数据开销
- SSL证书需要费用,功能越强大的证书费用越高
- SSL证书需要绑定IP,不能在同一个IP上绑定多个域名,ipv4资源支持不了这种消耗
四、HTTPS和HTTP的区别
HTTP:超文本传输协议,TCP协议的一种,用于从WWW服务器传输超文本到本地浏览器的一种网络协议
HTTPS:HTTP+SSL,是HTTP的安全版,加入SSL层实现加密传输和身份认证
区别
- HTTP传输的数据是未加密的,即明文传输;HTTPS是具有安全性的SSL加密传输协议
- HTTPS需要使用SSL证书;HTTP不用
- 端口号不同,HTTP端口号80;HTTPS端口号443
- HTTPS基于传输层;HTTP基于应用层
五、HTTPS中间人攻击及其防范
MITM中间人攻击:攻击者相当于一个介入通信的传话员,攻击者知道通信双方的所有通信内容且可以任意增加、删除、修改双方的通信内容,而双方对此并不知情。
通信过程安全性的保证(自下而上)
公钥的正确性:双方通信采用非对称加密的方式,非对称加密中私钥不会传递,而公钥是公开的 。
数字证书的正确性:公钥由对方在通信初始提供,但很容易被中间人替换,因此发送公钥的时候也要提供对应的数字证书,用于验证公钥来自于对方而不是中间人。
上级CA证书的正确性:数字证书由上级CA签发给个人或组织,上级CA用自己的私钥给个人证书签名,保证证书的公钥不被篡改。
根证书的私钥不被泄露或其公钥不被篡改:上级CA证书也是由其上级CA签发的,这条信任链一直延续到根证书,而根证书是自签名的。
设备分发到消费者手中之前不被恶意修改:根证书一般通过操作系统而非网络分发;最初的操作系统应采用原始的当面交流的方式分发。因此,硬件厂商和证书签发机构合作,在设备出厂前在其操作系统中内置签发机构的根证书。