浅谈HTTPS加密

2019-03-21  本文已影响0人  Curt_Sleeping

了解web网络基础,什么是http

HTTP( HyperText Transfer Protocol,超文本传输协议 )的协议作为规范,完成从客户端到服务器端等一系列运作流程。而协议是指规则的约定。
Web 是建立在 HTTP 协议上通信的

HTTP工作原理

HTTP工作原理.png

HTTP有哪些问题

1、窃听风险 : 内容明文传递,任何中间人都可以去获取你的信息(路由器)
2、中间风险 : 不验证通信方身份,因此有可能遭遇伪装(转账)
3、篡改风险 : 无法验证报文的完整性,所有有可能已篡改(运营商)

SSL协议

SSL位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL协议有三个特性:机密性、可靠性、完整性。 就是SSL协议使用密钥加密通信数据。服务器和客户都会被认证,客户的认证是可选的。
SSL协议会对传送的数据进行完整性检查。有这三个特性来保证数据通讯的安全支持。
SSL协议可分为两层:

  • SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等

HTTPS和HTTP的区别

这个S是SSL(全称: Secure Sockets Layer)其实就是在传统http协议上加了一层壳,在http启动前对齐进行了加密解密
HTTP是无状态、无连接的通常端口为80。
HTTPS是由SSL+HTTP协议构建的的加密传输、身份认证的网络协议,通常端口为443
HTTP 工作于应用层,而 HTTPS 工作在传输层

如何解决信息安全问题

对称加密算法

1、客户端和服务端用相同的算法发送数据

缺点:使用统一加密算法,别的页面可以用相同的加密算法反推获取

2、服务端针对不同的客户端使用不同的加密算法


缺点:客户端获取自身应该使用何种算法时需要和服务器进行协商,此时数据还是暴露的

非对称加密算法

1、服务段通过私钥解密,客户端通过公钥获取自身需要的内容

缺点:确认加密方式时仍然可以知悉,通过随机数来确定每一次交互使用何种算法

2、中间人角色

不能直接将公钥传送给客户端

数字证书

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。具有一点时效性,一般由各地的CA机构颁发

1、证书中有服务器的公钥,而且这个公钥被第三方机构的私钥加密了。如果能解密,就说明这个公钥没有被中间人调包。

SSL证书的安全问题

1、SSL证书欺骗 ( SSL劫持 )
2、个人未受认证的CA机构也会提示( 12306 )

HTTPS握手流程

HTTPS流程图

SSL证书申请

SSL证书可以向CA机构通过付费的方式申请,也可以自己制作。

在申请SSL证书时需要向CA机构提供网站域名,营业执照,以及申请人的身份信息等。

HTTPS的优缺点

优点:

1、HTTP2协议只支持HTTPS加密连接,H2是建立在HTTPS的SSL层上
2、iOS和安卓都要求使用HTTPS加密
3、利于SEO优化

缺点:

1、使用cdn时候需要相关节点支持
2、相关静态资源需要配置https
3、多次握手增加耗时大概60ms

为什么Charles和fiddler可以获取到https请求内容

1、Charles和Fiddler的本质都是通过安装根证书实现的

上一篇 下一篇

猜你喜欢

热点阅读