由于添加了CA证书,HTTPS可以在会话前通过证书验证来证明通信方是他们声称的身份,因此可以防止中间人攻击。防止中间人攻击的前提是HTTPS协议的双向认证。如果只实现HTTPs的单向认证,比如不验证客户端,只验证服务端,仍然无法抵御中间人攻击。在这种情况下,SSL剥离攻击()和SSL劫持攻击(使用各种代理软件,如或等)。SSL 剥离攻击剥离 SSL 协议,在用户和攻击者之间表现为 HTTP,在攻击者和服务器之间表现为 HTTPS。SSL劫持攻击表现为用户和攻击者之间使用攻击者伪造的CA证书,使用其https协议进行通信,(重要的一步是将CA根证书导入用户浏览器,使用户浏览器可以信任假CA。发给中间人的证书在客户端和中间人之间建立了会话通道)攻击者和服务器之间使用真实CA证书创建的对称密钥进行加密,攻击者接收到客户端信息并解密用前者的会话密钥,然后加密后者之间的会话密钥。这使得客户端和服务器都认为他们正在与真正的交易对手进行通信。(重要的一步是将CA根证书导入用户浏览器配置burpsuit谷歌浏览器证书及HSTS问题处理,使用户浏览器可以信任假CA。颁发给中间人的证书在客户端和中间人之间建立了会话通道)攻击者和服务器之间使用真正的CA证书进行加密,攻击者接收到客户端信息并用前者的会话密钥解密,然后加密后者之间的会话密钥加密。这使得客户端和服务器都认为他们正在与真正的交易对手进行通信。(重要的一步是将CA根证书导入用户浏览器,使用户浏览器可以信任假CA。颁发给中间人的证书在客户端和中间人之间建立了会话通道)攻击者和服务器之间使用真正的CA证书进行加密,攻击者接收到客户端信息并用前者的会话密钥解密,然后加密后者之间的会话密钥加密。这使得客户端和服务器都认为他们正在与真正的交易对手进行通信。颁发给中间人的证书建立了客户端和中间人之间的会话通道)攻击者和服务器之间使用真实CA证书创建的对称密钥进行加密,攻击者接收到客户端信息并用前者解密 key ,然后加密,后者之间的 key 加密。这使得客户端和服务器都认为他们正在与真正的交易对手进行通信。颁发给中间人的证书建立了客户端和中间人之间的会话通道)攻击者和服务器之间使用真实CA证书创建的对称密钥进行加密,攻击者接收到客户端信息并用前者解密 key ,然后加密,后者之间的 key 加密。这使得客户端和服务器都认为他们正在与真正的交易对手进行通信。
为了防止SSL剥离攻击,可以在服务器上(1) HSTS(HTTP配置burpsuit谷歌浏览器证书及HSTS问题处理,HTTP ),使服务器只接受使用HTTPS的连接。(2)建HSTS站点list 到浏览器中)这样,只要浏览器判断站点离线启用了 HSTS,就会跳过原来的 HTTP 重定向,直接发起 HTTPS 请求。
为了防止SSL劫持攻击,我目前只能想到使用https双向认证,其他的暂时没有想到。
参考链接:
1、
2、
3、
4、
5、
6、
评论留言