【ZTA】零信任架构(Zero Trust Architecture)在内网环境的初步应用升级
ZTA(零信任架构)简述
零信任架构的提出是因为内网逐渐成为和互联网一样,被认为是不安全的网络安全环境而提出的新网络安全思想,核心在于:永不信任,始终验证
与传统安全模型(信任内网)不同,它假设所有网络都可能被攻击
所以对于任何请求:
- 每次访问都需验证身份
- 授予最小必要权限
- 动态评估访问风险
- 所有通信加密
问题背景及解决方案
当前内网之间调用,比如A服务调用B服务获取数据是通过在请求头中添加自定义header实现
比如
httpPost.setHeader("username", "woshizhangsan");
httpPost.setHeader("password", "zhangsanshiwo");
目前暂时无法做到完全符合原教旨主义的零信任架构
但改进思路是
1、每次访问验证身份
这里,选择取消username和password这种长期凭证
取而代之的是使用JWT,放入Header中,实现短期访问(时间暂定为3分钟)
然后由Interceptor或者AOP进行访问鉴权
2、最小必要权限
此处暂时无法实现动态配置,解决方案是将访问的路径以AES256加密,将其放入JWT的Claim中
然后在验证token时,获取后与请求URL进行比对
代价是解密会需要CPU资源因此请求时间会延长,但在to B业务中,尤其是to B管理端业务的开发对于请求即时性要求并不高,这是可以接受的
3、动态评估访问风险
这里使用IP白名单机制,但也不是完全实现了动态评估访问风险,只是一种很粗糙的解决办法。
如果某一台内网服务器被入侵,则标记为高危IP,所有此IP发出请求均予以拒绝。
但这中间存在不小的时间差,因此在标记为高危IP之前,该被入侵的服务器已经可以发出较多高危请求,这点还是没办法根本解决。
4、所有通信加密
如果是基于HTTPS实现,则是最好。但目前没有办法为服务器写入证书。暂时不搞了。

浙公网安备 33010602011771号