关于如何制作自签证书,笔者在这篇文章中有详细的讲解

本篇文章会作为补充,说明自签证书的风险,以及何种情况下能使用,何种情况下不能使用,在介绍这些之前我们先来看一个问题:

自签证书究竟安不安全?

安全但也不安全!

看似说了句废话,但确实如此,我们需要根据不同的场景来分析这个问题。

首先,我们在上一篇文章中说过,证书一般由受信任的第三方CA来签发,这就意味着应用系统必须部署在能够被CA验证到的地方,也就是公网环境,但并不是所有的应用系统一定会部署在公网,比如企业的OA系统、银行的清分系统等等,这些系统通常会部署在内网环境,因此需要使用自签证书。

其次自签证书由于是由不受信任的CA签发,因此绝大多数的浏览器也不会信任这些网站,同时还会弹出警告提醒用户甄别。

从加密手段上来说,自签证书是安全的,但是对于整个系统的生态来说,自签证书也是不安全的。

自签证书何时安全?何时不安全?

笔者整理了一张表格,相信聪明的你看完就能明白~

场景

安全性

说明

本地开发环境

安全

数据流只会在自己的机器或者容器里打转,几乎不会受到攻击。

内网环境

未安装证书

危险

自签证书必须通过内网DNS服务器配置或者终端进行安装才能生效,否则无法抵御中间人攻击

所有设备安装证书

安全

自己当CA自己签发证书自己批量安装证书使所有设备受信,整个链路完整,浏览器不会弹出警告,能在一定程度上抵御中间人攻击

公网环境

危险

自签证书不受CA认证,赤裸裸的活靶子,无法抵御中间人攻击

什么是中间人攻击

中间人攻击,全称Man-in-the-Middle Attack(简称MitM),攻击者通过一些技术手段将自己置于用户与目标服务之间的通信链路中,扮演“中间人”的角色,看似是用户直接访问了服务,实际上用户的访问首先经过了“中间人”,再到达目标服务,从而实现:

  • 窃听:监听并窃取敏感信息。

  • 篡改:修改通信内容。

  • 会话劫持:窃取用户的会话令牌,冒充用户身份。

  • 伪装:伪造身份,欺骗通信双方。

按照攻击类型,笔者粗略整理了六大类攻击类型:

  • WiFi假冒:攻击者创建恶意的WiFi热点,名称与合法热点相似,诱导用户连接,从而截获流量。

  • DNS劫持:攻击者伪造ARP响应包,将自己的MAC地址伪装成网关或其他主机的MAC地址,从而截获局域网流量。

  • SSL劫持:攻击者伪造或盗用合法网站的SSL证书,欺骗用户浏览器,使其误以为连接的是安全网站。

  • 邮件劫持:攻击者置己于发送方与接收方之间,截获、篡改甚至重定向邮件流量。

  • ARP欺骗:攻击者篡改DNS解析结果,将用户访问的合法网站域名解析到恶意的IP地址,从而将用户重定向到钓鱼网站。

  • SSL剥离:攻击者拦截用户与服务器之间的HTTPS连接请求,强制降级为不安全的HTTP连接,从而以明文方式窃取数据。

如何抵御中间人攻击

笔者整理了一些技术层面常用的防护手段,如:

  • 强制使用HTTPS加密

  • 验证SSL证书

  • 实施证书固定

  • 采取端到端加密

  • 使用VPN

  • etc.

防护的手段不止局限于技术层面,人为层面的防护也尤为重要,凡事没有绝对,网络安全亦是如此,而我们需要做的就是不断去完善、持续去迭代防御体系,把中间人攻击的发生概率和造成的影响降到最低。