XFile的特有公网访问安全解决方案

目前,对于没有静态公网ip的普通用户,要解决外网的访问问题,无论是国内还是国外,主流的解决方法主要有两个:

[1] 动态域名基于FRP的转发(包括什么旁路路由器之类的):

      这种方法一般用于没有独立公网ip的用户,其实是通过公网服务器进行的转发,客户端和服务器端可以看作并没有真正的连接,一切都是公网服务器转发,因此 防攻击安全性很好,但是公网转发服务器的带宽是有限的,通常很昂贵,因此一般多用来传递小文件或者做访问转发等,对非web类服务的部署是很困难的.

[2] 基于动态域名的DDNS解析:

    这种方法一般用于有独立公网ip的用户,由于动态域名只要暴露,对应的服务器的ip地址就暴露,因此目前家庭或者小公司用户主要的防护有两种,

    一种是基于VPN (ssl vpn , ipsec vpn 等)的远程访问,用户在能够访问服务器上真实服务前,必须先通过vpn完成登录建立隧道, 当然你最好祈祷tls/ssl库没有安全漏洞,证书链条上也没有泄漏

    一种是类似web反向代理,隐藏了后台服务器的真实地址.

    其实这两种方法对于非专业厂商来说都有一个非常重大的问题,由于动态域名能直接得到ip地址,无论你部署vpn还是web反向代理,你这个网关服务器始终是对外公开暴露的,这台服务器就成了攻击目标,你要保证这台服务器的操作系统各种安全库没有安全漏洞,服务器程序本身没有安全漏洞,甚至你还要确保你的cpu和网卡驱动等没有安全漏洞. 恶意用户万一给你来个d.d.o.s.你也要能挺的住,因为动态域名的关系,重新拨号是无法摆脱的,除非下线.

    其次安全是有代价的,特别是虚拟拨号vpn,这种转发效率是很低的,搞不好会出现SSL over SSL的情况,而反向代理比vpn能强一点,但是它只适合web类服务.

[3] 我们的方案很独特,目前是乎是唯一的,因为使用这套方案,各种平台的客户端都必须解决通过电子邮件来获取服务器ipv6的方法

     普通用户利用ddns部署服务,国内属于游走在法律法规的灰色地带,因为如果严格来说,这种都是需要进行域名备案,服务备案以及网安审查的. 而我们的方案则最开始是因为动态域名不安全而改造的,后来歪打正着,正好符合法规的要求,我们的方法是,利用电子邮箱的安全属性,让有关用户获取,而其他用户无法获取服务器ip地址的方法,来完成外网的可控访问,借助ipv6地址的天然隐蔽性,达成服务器ipv6地址的安全.

    和上面的方法不同,我们保障的第一步,获取服务器ip地址的安全性

    服务器在ipv6地址变化的时候,通过smtp发送一封特定的邮件到指定邮箱

    客户端在需要通过ipv6从外网访问的时候,通过pop3从指定邮箱读取最新的一封包含服务器ipv6的地址的邮件,并进行校验,得到正确的ipv6地址.

    然后客户端通过得到的正确的ipv6地址直接连接到服务器 , 后续操作都是直接连接服务器而不是低效的转发,而其他人根本连服务器地址都不知道,想d.d.o.s攻击连目标都找不到.

   这里,由于电子邮箱无论是发件还是收件,都需要得到邮箱的账户密码,只有成功打开了邮箱才能查到当前正确的服务器ipv6地址,因此服务器ipv6地址的隐私性,只需要保证邮箱密码不泄漏就可以,通常提供电子邮箱的服务器,例如虚拟主机的供应商的资源可以认为是无限的,要攻破他们的邮箱系统,例如阿里的邮箱,这难度太大了

   其次,即使某次邮箱密码被泄漏,攻击者获取到了服务器ipv6地址,其实也产生不了什么危害,因为登录到XFile服务还需要一套账户密码,加个中文密码就能让攻击者瞎忙,顶多被d.d.o.s攻击.

   解决的方法很简单,给电子邮箱重新换个密码,然后服务器端网络重新拨号上网好了.