weixin_42787789 2018-11-08 20:30:20 1027 收藏
文章标签: 云计算 运维 云安全 VPN 零信任网络
编辑 版权
全文5000字左右,阅读时长约15分钟,技术方案交流,文末有一个走心福利广告。
预备知识1:什么是CDN
CDN即内容分发网络,最核心基础的作用是提供网络加速服务,如果企业或者个人建站,使用普通的云主机部署为用户提供访问,网络将速度受到跨运营商线路转换限制、长路径传输、传输协议效率低效、等诸多问题影响,用户的访问体验很差。CDN就是用来解决网络传输速度问题的手段,时至今日,CDN已经成为一种基础网络设施,大到亿级活跃用户的微信、淘宝、抖音,小至创业公司官网,都能见到CDN的身影。
CDN的加速原理可以通过1个送快递案例理解:
公司A是北京的一家售卖服装的公司,福建的小明通过公司A的网店购买一了件衣服。小明该如何快速获取他购买的衣服?
传统模式:小明自己坐火车或其他交通工具,从福建长途跋涉赶往北京公司A,拿到衣服并再次返回福建,耗时耗力耗钱。
快递模式(CDN模式):公司A在各个地区开设快递门店,其中包括了小明所在福建区域。公司A可以预先将服装发往各个门店,当小明购买服装时,就可从福建本地就近取货,或者快递员发货。
另一种情况是如果福建本地并没有小明购买的服装库存,则由门店代理通过高效的交通工具(如飞机),为小明从北京取回他想要的服装。
这个案例中,北京的公司A可以类比成企业的网站服务器,福建的小明类比为网站的访问用户,购买的服装类比用户向网站请求的数据,CDN则扮演着各个快递门店以及高效的交通工具角色。
在这里插入图片描述
预备知识2:Google BeyondCorp计划(零信任网络模型)
Google BeyondGorp是谷歌2015年提出的计划,旨在搭建安全可信、不分外网的无边界网络,以下简称零信任网络模型。零信任网络模型认为现在普遍应用的内网模型并不是安全的,主要表现在:
一旦内网被侵犯,来犯者可在内网不受任何阻扰的获取的企业内部资料;
安全的核心在于确保访问者是不是用户本人,而不是员工是否在内外网内;
持有密码的不一定企业员工,有可能是其从从黑市里买过来的,双因素认证很有必要;
用户至上,远程办公、分支办公的比例日益增长,网络环境的限制和操作的复杂性,将会影响用户的访问体验。
零信息网络的最终目的:实现目标用户不分时间段、不分地点、不分网络环境的对企业的敏感系统进行安全访问。
零信任网络模型从员工设备出发,包括笔记本、电脑、和手机,都需要登录设备清单服务,在服务中保持一段时间的身份信任和设备快照,使得用户可以通过可信任的设备,进行系统访问。相比普通的内外网架构依据用户所处的网络环境来决定是否为用户的访问放行,零信任网络的访问策略关注用户当前设备的归属、设备安全状态判断,用户所持有的设备是安全被授信的,用户可以即可随时随地访问网络。
不论是现有企业区分内外网,还是零信任网络模型,安全仍然是第一前提,需保障企业的敏感网站和敏感数据不受非法访问侵害,Google 的零信任网络模型可以进一步总结为:持有安全设备 + 服务定期快照安全设备 + 公网信息传输加密。
效果如下:
员工1持有可信任的设备(可以是公司发放或者自购设备),并在服务清单设备中被标记为可信,则用户1可以访问其权限范围内的系统域名;
员工2持有可信任的设备(可以是公司发放或者自购设备),但该员工近期已经申请离职,并从设备信任服务清单中被清除,则用户2无法访问系统公司的系统域名;
普通用户使用私人电脑,设备未经信任,则无法完成网络建联。
在这里插入图片描述
CDN 与 零信任网络结合
零信任网络让用户访问更便捷、企业业务更安全、维护投入成本更少、然后显而易见的是,企业自主实施搭建零信任网络架构将要耗费大量的精力和成本,收益和成本可能不成正比。
零信任网络与CDN的结合可以比较完美的解决这个问题,当系统使用CDN加速时,用户的访问将会先到达CDN的服务器,再由CDN将请求转发至企业原始服务器中。在这个过程,CDN的与用户直接联系,可以将零信任网络模型搭建与此,承担用户过滤的作用,类似于防火墙帮助企业隔绝非目标用户和黑客的访问,而企业的源站则不需要改动。
在这里插入图片描述
》》核心诉求:
如何将指定用户的设备标记为可信?
如何定期为设备设置安全快照,将离职员工的设备或非法设备从新人列表中移除?
如何保障敏感信息在网络传输的安全?
》》增值诉求:
如何最大化简化企业的管理流程,便捷用户访问系统的流程?
隐私网站在公网上,如何保障其不受黑客和爬虫的侵扰,DDos攻击?
如何让系统的服务性能更优秀?
带着上述的诉求,我将一一讲述CDN与零信任网络的融合构建:
–
核心诉求:
Google BeyondCorp提倡使用客户端数字证书作为设备可信任的身份凭据,嵌在设备当中。本次实践也遵循着Google BeyondCorp的设计理念,在这里客户端证书可以理解为每个合法公民的身份证,身份证与用户的关系为一一对应的关系,而CDN服务器或者专属的鉴权服务器,也将记录着用户着身份证的信息。 当用户通过可信设备发起访问时,身份证的指纹信息也将传入服务器中校验。校验通过,方可继续访问。这个过程就好比你指纹在公司上班打卡一样。
显然没有哪个设备是经过一次授权,即可永久访问的。为此必须考虑设备授权的有效周期,因为在设备被授权之后可能发生各种各样的情况,比如员工从公司离职了、员工的职权范围变化等,都可能影响着员工对特定系统的访问。因此要求企业管理员能够实时的为新用户的新设备授权、变更某特定设备的访问权限、将可信任设备从信任表中移除等一系列操作。为此需要一套专门的管理平台,供企业管理进行这一系列的操作,并将操作结果定期下发至CDN服务中去,以便CDN能够及时的对用户的访问权限做出反应。
在这里插入图片描述
传输安全相对好解决很多,直接在传输网络上套接SSL安全加密协议即可,这也是目前网络传输中最可靠的方式,比如VPN传输的加密、百度网站的传输加密都是如此应用,此处不做详细描述。
在这里插入图片描述
增值诉求
从企业的使用成本和难度维度上来看,企业基本都是不要做额外的改动,内网、VPN硬件设备等支持,仅需要将域名的访问权CNAME给 CDN做代理,并在CDN提供的管理平台或者API接口管理系统和用户即可。
当然这里还有另外一个重要的流程,前面讲到设备是否可信任的一个重要的评判指标是客户端证书,那么客户端证书该如何生成、如何给到用户、以及证书如何被装载进用户的设备、如何提升访问系统的便利性,均需要考虑每个步骤的操作便捷性。
■ 客户端证书生成:
客户端证书可以通过Openssl手动签发,并手动添加到信任列表中。但这显然不够便捷,当用户体量比较大的时候会为企业管理管理增加很多的工作量。本次实践中将证书的签发流程实现完全的自动化,将openssl证书签发工具集成至管理平台中,企业管理员可以通过管理平台实现单用户的添加、以及通过excel的批量生成客户端证书。生成客户端证书的过程其实就是创建用户的过程,每一个用户都将对应着一本专属的客户端证书,我们仅需对用户做权限管理操作即可。
在这里插入图片描述
■ 用户如何获取其专属的客户端证书:
被动获取:当管理员创建用户时,管理平台将客户端证书自动生成并通过邮件的形式发送至用户邮箱,但这种方式有一个明显的不足之处就是用户当下可能并没有访问系统诉求,这封邮件被限制的概率则很高,而当用户想要访问系统时,必须翻阅历史邮件再做安装。
主动获取:当用户访问系统时,CDN服务器监测当前用户所使用的设备并不是可信设备,则会将请求跳转到指定授权页面,引导用户获取客取客户端证书,此时用户则可通过邮箱信息验证获取客户端证书,只要用户的邮箱信息在服务器的可信任里列表里有可对应的证书,即会将证书发往相应邮箱以供安装。
在这里插入图片描述
■ 证书如何被装载进用户电脑:
windows和mac对于客户端证书的安装已经有了很成熟的机制,用户仅需要双击客户端证书,一直按默认流程点击下一步5-6次即可完成安装,全流程1~2分钟,一次性安装无需重复操作。当然当前也会有一些驱动或者客户端可以做这件事情,本次实践不涉及这块,因为原生系统当前已经做得比较完善。
在这里会衍生出一些其他的安全性问题。以下解释本次实践中针对这些事项解决方法:
(1)证书是每个人都可以获取和使用嘛?
答:每本证书都配有独一无二的一次性安装密码,并且下载链接也会被设置时效性。
(2)安装进电脑的设备是否会被导出用户其他电脑?
答:获得的证书只能被删除却不能被导出。
(3)网络建联过程中,证书会被发给服务器,是否会泄露?
答:仅会发送证书的一部分内容,这部分内容即使被截取也无妨。
(4)如果设备被人窃取,改如何保障系统安全?
答:管理平台可以直接吊销该设备的访问权限,当然也可以为客户端证书设置简单的调用口令(可选),即使有他人用了该设备,仍旧无法访问系统。
■ 如何提升访问系统的便利性
(1)一次安装,长期使用 :客户端证书被装载进设备后,设备可以处于长期可信的状态,二次访问将无需重新装载证书,服务器会定期持续对设备进行监测,直至被从可信列表中移除、权限变更,或设备被监测出安全隐患。
(2)兼容绝大多数浏览器 :设备安装的证书将默认被嵌于底层操作系统中,基于其之上的谷歌浏览器、IE浏览器、QQ浏览器等需可以调用客户端证书实现访问(除火狐外、火狐需要独立安装)。
(3)一凭据访问多域名 :客户端证书作为用户访问通行证,将被分配指定权限(角色形式),持有证书将可以访问其职权范围内的所有域名,而无需每访问一个域名时均重复安装证书。同时这种方式也将便利于企业管理员管理用户的访问权限,避免因为跨职权的访问带来的信息泄露。
在这里插入图片描述
■ 让证书安装更简单 – AD域集成,证书静默无感知安装
尽管上述的证书安装已经很便捷,用户可以再1~2分钟时间完成证书安装。但如果能过做到用户零操作、无感知的证书安装,用户甚至都不需要知道自己的设备已经被授予信任了,整体的用户体验将会更佳。通过与企业AD域的集成,则可实现这种效果。
AD域:面向具备一定员工规模的企业,提供一种集中式的用户统筹管理和信息安全管控模式,是当前中大型企业管控员工设备最常用的方式,其要求员工办公设备均需入域。AD域应用范畴很广,网上的资料也很多,简要了解可看链接:https://blog.csdn.net/afandaafandaafanda/article/details/48780485;
与企业AD域的集成,通过域策略实现客户端证书的静默安装业务流程:
(1) 企业管理员在原有的AD域机制上,添加客户端证书自动注册的策略信息。自动注册指企业管理员在自身AD域服务上设置客户端证书自动生成和推送至客户端机器默认安装的流程。微软对这个流程做了清晰的操作定义,相关详情,https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc758546(v%3Dws.10);
(2) 当用户设备进入到企业的AD域中,将会默认去到企业AD域服务器中注册一本专属的客户端证书,并自动安装在自己电脑上;
(3) 企业管理员将用户校验客户端证书的文件(CA文件),同步给CDN,即可完成整个服务的搭建。整体搭建周期1~2天。
在这里插入图片描述
完成上述操作后,入域的每一个员工,都能在自己的计算机设备上查看到个人专属的客户端证书,如同身份证一样,证书中记录着用户的名字、使用周期、证书签发组织等信息,如下图。
在这里插入图片描述
爬虫因为没有客户端证书,无法与CDN服务器建立网络连接,自然无法获取网站内容。另一方面CDN的节点资源也可用于抵御DDos攻击,此处不做过多的描述。
这是CDN天然的优势,网络可用性保障、网络加速、并发处理等,此处不做过多的描述。
场景匹配
场景一:中小企业快速搭建安全访问体系
对于创业公司而言,公司重心偏向于核心业务的突破与增长,公司系统也相对比较少。直接实施零信任网络在1~2天时间里搭建一个安全网络,省去内网架构搭建、人工维护成本等诸多因素的投入。
场景二:大型政企局部敏感系统应用
不能否认的是,受敏感信息因素、历史架构因素、政策因素、企业内部因素,企业内网将可能长期存在。对于大型的企业而言,显然无法轻易得去除内网。但对于具备 “访问用户与服务器异地”、“仅面向企业特定用户开放的系统” 这两类特征的系统则和适合实施零信任网络模型。举两个简单的案例:
一家大型医院常年热衷于慈善事业,并聘请了200+员工在全球各地做信息录入等文书工作,并为其提供专属的网站。为了网站的安全性,那么相比VPN,零信任网络将是一个优秀的选择,在网络加速、访问控制、成功管控等诸多方面均有建树。
位于汽车门店内的电脑设备,访问相关价格查询、型号查询等系统,零信任网络依旧是一个不错的选择。
走心福利,无套路
感谢你坚持看到最后,鄙人国内某一线CDN厂商的产品经理,也是这个架构的设计者,鉴于是技术交流,便不直接贴公司名称打广告。大家可以随时我发邮件
最后,发一个货真价实用的走心福利,免费使用 CDN加速 + 零架构网络模型,有效日期至2019年3月底:
针对新客户:10Mbps网络加速带宽 + 50人使用零信任网络)* 6个月使用 = 免费(19200元)
赠送总价值:
(1) 带宽费用 : 1700 元每月 = 10M * 170元M/月 ;
(2) 功能费用 : 1500元每月 = 50人 * 30元/ 人/月;
或者价值,不喜勿喷,感谢。欢迎邮件或留言交流。
原创文章,转载不得删减,并注明出处。