背景

近年来,随着移动互联网和万物互联的兴起,带来了数据的爆炸式增长。暴增的数据是后互联网时代的金矿,各种数据挖掘,大数据分析,机器学习,都需要用到这些海量数据,数据的价值也变得越来越重要。与此同时这些珍贵的数据也吸引来了各类黑客的关注,耸人听闻的个人信息泄漏也时常会被刷到新闻的头条。

Facebook 8700万用户数据泄漏

Under Armour1.5亿数据泄漏

MyHeritage:9200万用户信息泄露

这样的新闻还有很多,是不是很惊人!

据IDC(International Data Corporation)介绍,全球数据容量从2018年的33ZB到2025年将超过175ZB(相当于若以25Mb/s的速度下载这些数据,你需要下载18亿年)。这其中既包含用户个人隐私数据,也包含具有重大商业价值的企业数据和涉及到国家政府安全的机密数据。

那如何在充斥着各种威胁的网络中构建可信的系统,有效保护用户的个人隐私信息和企业的核心数据?

加解密服务与边界安全模型

要有效保护这些用户隐私数据最简单的方式就是数据加密。然而传统的硬件加密机一般都是使用的边界安全模型,只能够在内网使用加解密服务,最多可以通过配置IP白名单来控制TCP/IP访问权限。这种加解密服务只是提供了加解密的计算服务,一旦内部网络被突破,加密的数据依然可以被轻易破解。而且对于需要加密海量数据的情况时,硬件加密机昂贵的价格也是其难以普遍部署的一个重要原因。

那么首先让我们来看一下现有硬件加密机边界安全模型的网络环境:

在边界安全模型的网络环境中,我们使用防火墙,网控器等设备或软件搭建了一片隔离边界来区分内网和外网,也就是DMZ区。我们信任内网的数据流,提防来自外网的恶意数据流。这种基于网络区域定义的安全策略只在网络边界处强制执行,并且仅使用了源和目标信息进行安全决策。所以一旦在边界防火墙上出现了一个缺口,导致恶意数据流侵入,那么内网将成为一个不设防的图书馆,任人随意的翻阅和查找。

至于防火墙的缺口不管是0Day打击,还是远程访问工具的回拨访问,亦或是被社工获取的内网权限,都可以轻易突破这道脆弱的城墙。我们信任的内网并没有我们想象中的那么安全。

据加利福尼亚州旧金山的计算机安全研究所称,60%到80%的网络滥用事件来自内部网络。因为传统的防火墙和入侵检测系统(IDS)主要是针对网络外部发起的攻击,而对来自内部的网络攻击是无效的。

面对隐私数据泄漏,传统的硬件加密机在边界安全模型的网络环境中好像并不能起到很好的效果!作为互联网安全工作的从业者,我们又要如何面对挑战呢?

零信任网络模型

其实早在2010年,IT市场研究机构Forrester的分析师John Kindervag就首次提出了零信任网络架构,相比传统网络安全架构,零信任认为任何网络连接都不可信。默认的信任是不存在的,每一个请求访问,无论是来自办公热点wifi接入的个人电脑还是来自数据中心机房的一台服务器,都需要严格检查确认其合法授权。

零信任是一个安全理念,中心思想是企业不应自动信任内部或外部的任何人/事/物,应在授权前对任何试图接入企业系统的人/事/物进行验证。“验证全部,保持统一的控制” — 这就是 Zero Trust 的本质。

JohnKindervag在提出“零信任”概念时提出过三个原则:

  • 不应该区分网络位置;

  • 所有的访问控制都应该是最小权限且严格限制;

  • 所有的访问都应当被记录和跟踪。

如果说传统网络安全模型是用“城墙”将人民保护在一起,那么“零信任网络”则是“城门大开”,但是每个民众都配备一个士兵保护。相比于用广阔的“城墙”来防护,这种“点到点”的防护策略显得更加灵活与安全。

零信任下谈信任

那么在这种零信任的环境中城内的人要如何交流呢?

首先我们需要聊一下什么是信任。设想一下:现在有两个人找你借钱,一个是面目亲切的陌生人,一个是你项目组的同事,你会更放心借给谁?相信答案是显而易见的,你会更信任你的同事,那么为什么你会更信任同事?理由也很简单,你更了解你的同事,所以你也就更信任你的同事。

再设想一下:你是古代领兵打仗的将军,收到两份密信,一份密信核对虎符是严丝合缝,一份密信无法匹配你的虎符,你会信任哪份密信?答案也是显而易见的,第一份密信是值得信任的。基于对虎符的信任,也就是基于对秘钥的信任,只要保障了秘钥的安全,我们就可以在零信任的网络环境中信任的与别人交换信息了。

是不是很神奇,在不可信任的环境却要去信任一个秘钥,这里就要讲到零信任安全架构里的一个重要功能模块----信任管理。

信任管理与密钥安全

如何才能信任一个秘钥呢?

首先,我们要知道任何系统的信任都是源于系统管理员的,我们必须信任系统管理员的操作才能信任整个系统,系统管理员就是整个信任系统的锚点我们称之为信任锚。不过现在有另一个问题,不管系统管理员是如何可信,人都是会出错的,也可能会被攻破的,系统管理员如果不信任自己该如何处理呢?

这也简单,我们可以使用硬件加密机来记录系统管理员的操作来录入一组根秘钥,再将加密机的秘钥操作卡分为两份妥善保管,那么系统管理员的可信任操作就被固化在硬件加密机中了。

我们再使用软加密服务从硬件加密机中派生出系统秘钥来授权软加密系统产出和使用应用秘钥,就可以搭建出一套自动化的秘钥派生系统。

于是系统管理员授权硬件加密机,硬件加密机授权软加密服务,软加密服务授权应用服务,这一连串信任操作就构成了零信任网络模型中的信任链,应用服务使用信任链派生的秘钥加密数据相互交流。

完美,我们是不是已经解决了零信任下的相互信任了呢?

钥匙与门卫

并没有,如果黑客同样获取到了信任链中的秘钥呢?

就像SSL中的中间人攻击,嗅探数据后使用秘钥解密数据,难道一切又要回到原点?

终于,终于到了加解密服务出场的时候了。首先我需要你解答我小时候的一个疑惑:小的时候我都是带着家里的钥匙出门,有一次钥匙丢了我就担心了好久,万一小偷拿到了我家的钥匙,不就要被偷光光了么?

万幸的是这样的事情并没有发生。自从丢了钥匙之后,妈妈就把交易交给了门卫保管,于是以后的日子里我都是找门卫要钥匙开门的。

加解密服务就是这个内网环境的门卫,他帮你保管了重要的秘钥信息,完成你对数据加密和解密的操作,同时你需要用别名来称呼你的秘钥也可以防止秘钥的泄漏,如果你再花点小心思,别人哪怕拿到了钥匙但是找不到你家的门,你的安全是不是再次提高了?(笑)

遇到这么一个尽职可靠的门卫,你是不是觉得安全的问题已经没有后顾之忧,简直high爆了!

打造零信任安全理念下的加解密服务

零信任的网络架构结合硬件加密机的密钥管理再附加软加密服务的可扩展性,如此优秀的加解密服务都需要具备哪些特性和功能呢?

1. 加解密服务具备零信任的真传,不信任每一个调用方的每一次调用,我们为加解密服务配置了白名单功能,每个调用方在初始使用前需要激活注册并分配动态的授权token,在每次调用中都要校验token信息

2. 加解密服务为每个接入方设置了最小的特权,访问的每个秘钥都需要独立授权后才能使用

3. 加解密服务会采集每个接入方的调用特征,有效区分合理调用和异常调用

4. 加解密服务会别名化秘钥信息,同时设置了秘钥池来隔离不同秘钥池之间的秘钥

5. 加解密服务会记录每一次的加密和解密操作用于追溯每一次调用

6. 增加了流量控制和降级能力,确保加解密服务的健壮性

7. 脱机功能,在硬件加密机故障时除了不能创建新的秘钥,依然可以正常工作。

8. 动态评分功能,在服务调用时,会根据客户端的历史操作做安全评分,如果评分异常时会需要客户端做验证操作,验证客户端的安全评级。

具备了这么多优秀的特质,是不是想想就很激动?

不废话了赶紧在公司内部推广吧!

部门A,B,C,D,E : 厉害了,大佬!这么NB的加解密服务怎么使用呢?

我:这个简单,我们很贴心的提供了SDK,你只要在使用前用你们的应用ID和秘钥池名初始化一下SDK,等我们后台验证通过就可以使用秘钥名称对数据做加密和解密了!

部门A:还要激活啊?激活后还要等待验证通过啊!告辞...

部门B:我们要对接好几个外部应用你的秘钥名还要记啊?告辞...

部门C:我们这边承接上下游,你们可以支持灰度么?

我:这个,好像不行...

部门C:告辞...

部门D:我这边是大数据组,我们一台机器上会部署很多个实例,你们的认证机制能识别么?

我:这个,好像也不行啊...

部门D:告辞...

部门E: 我们创新部做数据挖掘,处理100亿条数据你们要多久,一小时内能跑完么?

我:这个有点难度...

部门E:告辞...

鬼知道,我都经历了什么!社会的毒打么?

OKOK,现在是买方市场,我改还不行么?

自动激活可以通过白名单实现,这个简单。

不想记秘钥名,可以配置默认秘钥提供秘钥组实现秘钥管理。

灰度发布,这个可以通过正则匹配区分密文和明文。

一台机器实现多个实例同时注册激活,这个也好办,注册接口短时间内幂等返回相同的token就可以了。

一小时内跑完100亿的数据?这个只能加解密服务本地化才可以啊!看来要实现一个动态库版本的SDK来封装加解密服务了。

一顿大改,服务终于可以在公司内推广了。

部门A: 大佬高义啊,配置白名单就辛苦了!

我: 不辛苦不辛苦。

部门B: 默认密钥啊,还不错,下次调整密钥再麻烦大佬了~

我: 好说好说。

部门C: SDK不错很好用,加油!

我: 嗯,加油~

部门D: 我们一台机器虚拟了30个终端,目前运行还不错,再观察观察...

我: 大佬,有问题尽管提

部门E: 我们64核的实体机CPU跑到飞起,你们还要优化啊!

我: 好的大佬,我们会优化算法的。

看着各部门开始陆续接入加解密服务,成就感还是有的,就是会让人觉得头冷!然后你终于可以掏出保温杯泡上82年的枸杞小憩一下了!可惜,你还是失策了,有坏人可能会伪造你的身份去欺骗门卫大叔,也可能欺骗弱小而又天真的你来获取你的钥匙和打听你家的门牌号。于是对大叔的训练,让他不要认错你,你家的门锁也要升级来阻挡恶意人员的闯入也被提上了日程。此时只能感叹一声:安全之道,任重道远!

让我们后续文章里继续一起探讨。

参考文献:

https://www.akamai.com/us/en/multimedia/documents/ebooks/zero-trust-networks-ebook.pdf

https://www.secrss.com/articles/3271

http://safe.it168.com/a2018/0912/5033/000005033045.shtml

https://siliconangle.com/2018/07/02/google-shares-details-get-started-beyondcorp-security-approach/

https://cloud.tencent.com/developer/article/1617619

声明:本文来自想象并创造,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。