信创体系下的浏览器安全可信架构研究

2021-04-06 00:39张晓兵吕遒健孟繁盛
信息安全研究 2021年4期
关键词:信创沙箱私钥

张晓兵 王 妍 吕遒健 田 亮 孟繁盛

1(奇安信科技集团股份有限公司 北京 100012)

2(中国科学院信息工程研究所 北京 100093)

(zhangxiaobing@qianxin.com)

随着浏览器技术的快速发展,几乎所有办公类应用都采用基于浏览器访问的B/S架构,据统计,办公人员浏览器的使用时长已经占全天时长的70%以上.

另一方面,信创体系平台多样、系统丰富、场景重要,作为互联网和企业业务的统一入口,浏览器的业务兼容性和自身安全性显得尤为重要.而未来信创体系将面临着更多层面的网络攻击与安全问题,因此开发一款安全可信的浏览器就成为一个必然.但是现有的浏览器开源框架只考虑了自身代码的安全性,并没有兼顾实际的业务场景,因此具有很大的局限性[1].

本文将试图从浏览器面临的风险出发,推演出浏览器应有的安全架构,并探讨基于Chrome浏览器开源框架开发一款安全可信的信创浏览器的可行性,助力信创生态健康发展.

1 信创体系下浏览器安全威胁分析

信创体系下的浏览器与WIN-TEL体系下的威胁类似,但是又有其独特性,总体来说会面临如下安全威胁:

1) 异构硬件平台会导致代码离散,会引入更多安全漏洞.

随着Web技术的发展,浏览器的复杂性已经接近操作系统,如果针对不同硬件平台、操作系统环境开发不同的适配版本会带来代码离散,引入更多代码级的漏洞,形成天然的不安全状态.

2) 面临身份仿冒风险.

由于浏览器是企业业务的承载平台与重要入口,所有访问都将以终端设备与浏览器为起点,因此一旦出现身份仿冒问题,就会影响业务本身的安全性.

3) 面临网页攻击与数据泄露风险.

从攻防角度看,出于窃取业务机密、盗取业务数据、攻击和控制操作系统等目的,黑客往往把浏览器作为突破口,使用网页挂马、钓鱼欺诈等手段攻击系统,并造成数据泄露.

4) 国密系统兼容性带来传输安全问题.

越来越多的国家与企业重要业务系统采用国密算法来保护,而通用的浏览器使用国外的密码算法,不兼容国产密码算法,不支持我国网络信任体系,不符合我国关于密码的相关标准规范,不能对我国的金融、政务等基础性应用提供必要的安全支撑[1].从而导致数据无法安全传输,带来安全隐患.

5) 浏览器面临着更高维度的攻击问题.

在办公网络环境下,除了业务系统的正常浏览,大量的文档处理、审批流程工作也都通过浏览器方式完成,这样就带来一些文件级和身份级的更高维度的攻击问题.

2 信创体系下浏览器可信安全架构

Chrome浏览器为了解决之前架构带来的一系列问题,2016年使用面向服务的架构(services oriented architecture, SOA)的思想设计了新的架构[2],如图1所示:

图1 Chrome浏览器架构

图2 浏览器安全可信架构

原来的各种模块会被重构成独立的服务(service),访问服务必须使用定义好的接口,通过IPC进行通信,每个服务都可以在独立的进程中运行,并且可以轻松拆分为不同的进程或聚合为一个进程.

从图1可以看出,Chrome浏览器本身并没有更多安全性方面的考虑,因此需要基于信创体系的实际情况,设计一个浏览器的安全可信架构,如图2所示.

在整个浏览器的安全可信架构下,共分为跨平台层、可信身份层、数据安全层、安全集成层与安全传输层.

跨平台层:利用交叉编译技术,用一套代码覆盖信创所有平台,解决异构环境下代码离散问题.

可信身份层:利用可信计算技术,保证设备与浏览器自身的可信.

数据安全层:利用浏览器沙箱技术,进行进程和数据隔离,阻止网页挂马攻击的影响,并保证数据本身的安全、采用数据隐写技术对数据进行标记和追踪.

安全集成层:利用插件技术、终端安全、零信任等外部安全机制,形成协同安全效应,保证环境安全和访问安全.

安全传输层:采用国密算法加密机制,实现国密的单双向认证和国密网站的动态探测,让传输更安全.

3 信创体系下浏览器安全技术探讨

3.1 交叉编译技术与跨平台支持研究

交叉编译是在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但编译平台本身却不能运行该程序.

交叉编译是指通过不同平台的编译技术,将一套源代码同时转换成不同硬件平台都能正常运行的目标程序.

浏览器通过运用交叉编译技术,可以实现采用一套代码多种编译的方式解决平台差异带来的多版本维护问题和安全问题.

经过交叉编译后,就可以实现一套代码同时支持X86,MIPS,ARM等不同CPU架构的信创平台,保证了代码唯一性,增加了安全性.

3.2 可信计算技术与身份安全研究

可信主要通过度量和验证的技术手段实现.度量分为静态度量和动态度量2种.静态度量通常指在运行环境初装或重启时的度量.度量是逐级的,通常先启动的软件对后一级启动的软件进行度量,度量值验证成功则标志着可信链从前一级软件向后一级的成功传递.

以操作系统启动为例,可信操作系统启动时基于硬件的可信启动链,对启动链上的UEFI,loader,OS的image进行静态度量,以判断系统是否被改动.

动态度量和验证是指在系统运行时动态获取其运行特征,根据规则或模型分析判断系统是否运行正常.

可信计算一般会涉及3个部分:可信根、可信链和可信加密技术.

可信根:在可信计算组的定义中,一般会将其分为可信度量根和可信报告根,可信度量根将用于对整个项目的完整性进行判断或者测量.大部分情况下,可信根由软件、可信报告模块、内置寄存存储器和密钥构成.

可信根通常是可信硬件芯片.可信计算通过芯片厂家植入在可信硬件中的算法和密钥,以及集成的专用微控制器对软件栈进行度量和验证来确保可信.根据安全芯片和其上运行的可信软件基(trusted software stack)分类,业界目前主流的可信计算标准主要有3种:TPM(trusted platform module),TCM(trusted cryptography module),TPCM(trusted platform control module)[3].

可信链:是信任度量模型的实施技术方案,通过可信链把信任关系从信任根扩展到整个计算机系统.在实际使用中,可信根在构建可信链时,会将信息传递给存储单元,同时报告根将证明整个过程,并将可信状态信息返回给整个可信平台,其中包括平台配置信息、审计日志、密钥等.

可信加密技术:最重要的是设置签注密钥,通常情况下,会利用非对称加密的特性在指定的位数下,设置对应的公私钥,从而随机产生类似于“门锁”的装置,除非拥有“钥匙”,否则无法对其进行解密.

可信计算模块生成可信私钥后,要立即将它放入可信存储区以免产生泄露风险.再存在TPM安全芯片的设备上,首选使用安全芯片来存储私钥,TPM可直接在内部生成密钥并保存.

申请TPM芯片生成自定义TPM用户和关联的用户密钥,并使用用户口令保护,可以保护密钥不被恶意导出和拷贝,并防止本机其他程序非法使用.

如果设备上不存在安全芯片时,只能使用软件级的密钥保护,使用自定义的白盒加密模块来实现可信存储.私钥落地前先用白盒加密模块进行密钥白盒化,这里的白盒化使用硬盘序列号作为额外白盒化因子,加密库可以用ECDSA实现私钥数字签名算法.

由于本地存储的私钥是经过白盒化处理的,即使将私钥文件拷走也无法解出明文的私钥,即使本机上用可信私钥进行数字签名,私钥明文也不会在内存中出现,从而防止恶意盗用.

攻击者将白盒化私钥和白盒加密库一起拷贝到其他机器上,在不知道私钥的情况下透明调用加密库实现加密的场景,由于私钥白盒化时是用硬盘序列号作为额外因子的,如果这里的硬盘序列号不匹配,则运算结果一定不合法,后续服务端使用公钥验证数字签名的过程则会失败.

通过上述软、硬件结合的方式实现一个可信的度量空间,从而可以完成设备可信和浏览器自身可信的度量.当然除了可信度量外,浏览器的进程还需要采用进程守护的方式实现自保护,即无法通过第三方的方式来随意关闭浏览器的进程或修改浏览器的主程序文件.

3.3 浏览器沙箱技术与安全防护研究

沙箱技术设计的目的是为了让不可信代码运行在一定的环境中,保证每一条代码可以做或不能做什么而不受输入条件的影响.

浏览器沙箱利用操作系统提供的安全性来管控无法对计算机进行持久更改或访问机密信息的代码执行.沙箱进程逻辑架构如图3所示.

图3 沙箱进程逻辑架构

沙箱逻辑结构中包含代理进程(broker process)和目标进程(target process).

在浏览器多进程架构中,代理进程就是浏览器主进程,代理进程的职责是:

1) 为每个目标进程指定策略;

2) 生成目标进程;

3) 承载沙箱策略引擎服务;

4) 主机沙箱拦截管理器;

5) 主机沙箱IPC服务到目标进程;

6) 代表目标进程执行策略允许的操作.

代理进程永远比它所产生的所有目标过程运行更长时间.沙箱进程间通信代理是一种低级机制,用于透明地将某些系统API调用从目标进程到代理进程.

图4 浏览器零信任体系

拦截管理器的工作是修补系统API调用,在浏览器多进程架构中,渲染进程始终是目标进程[4].

有了沙箱机制之后,就可以将不同的网页放在沙箱里进行进程隔离,当一个页面发生问题后,也不会影响另外一个页面的正常访问.当网页上出现挂马时,也能够只在沙箱中运行,从而不会影响其他页面的访问.另外还可以将IE内核包裹在沙箱里实现多核访问,从而能够兼容早期的一些使用ACTIVEX控件的业务应用.

同时可以对整个沙箱的行为进行监控,能够防止业务系统产生数据泄露.

另外,信息隐写是一种基于内容的、非密码机制的计算机信息隐藏技术,它将一些标志信息嵌入到数字载体当中,包括多媒体、文档、软件等,不影响原载体的使用价值,也不容易被探知和再次被修改,但可以被生产方标识和辨认,通过隐藏在载体中的信息,可以达到确认内容创建者、购买者、察看者的信息,判断载体是否被篡改、盗用,是保护信息安全、实现防伪溯源、版权保护的有效方法.

沙箱技术与隐写技术的配合,就能实现浏览器深层次的数据安全需求.

3.4 插件技术与安全协同研究

插件技术是一种常见的模块级集成技术,它可以将有独立功能的模块从软件产品中独立出来,通过内部封闭机制,同另外一个软件产品进行无缝集成,能够快速增强软件产品的能力.

通过插件技术可以轻松建立基于零信任的安全体系,如图4所示:

浏览器集成零信任插件,再结合零信任网关,就可以构建零信任体系.当浏览器访问业务时,会首先被零信任网关阻断,然后去零信任策略控制中心查询浏览器的可信状态,收到状态后,再根据身份等信息,最终将当前的访问控制策略返回给零信任网关,然后零信任网关选择是代理访问还是阻断的动作.

恶意程序会通过攻击浏览器实现对业务系统的数据窃取和破坏行为,将杀毒引擎通过插件的方式集成到浏览器内部,当用户上传或下载文件时就可以实时检测并识别浏览器的文件,阻止其中的恶意程序写入文件系统.

3.5 国密算法支持技术与安全传输研究

国密算法指的是我国自主研制的SM2,SM3,SM4算法.SM2是椭圆曲线公钥密码算法,由国家密码管理局于2010年12月17日发布,是用来替换国际上的RSA算法的,与RSA算法相比具有处理速度快、复杂度高、计算机性能消耗小等特点.

图5 传输层安全协议标准

SM3是我国采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布,其安全性及效率与国际密码算法SHA-256相当.

SM4分组密码标准由国家密码管理局于2012年3月21日发布,相当于国际上的DES和AES密码算法[5].

当密码应用于加密传输领域中时,我们需要了解传输层安全协议标准,如图5所示.

浏览器国密算法支持方案是在传输层安全性协议使用到对称加密算法、非对称加密算法和哈希算法的地方,如client_hello.cipher_sui,client_hello.extension分别调用替换掉原来的SHA256,RSA等国际算法,使用国密算法替代,整体算法使用机制如图6所示.

而在浏览器国密算法支持方面,最重要的是国密单向、双向身份认证问题.单向认证用于1对多提供服务的场景,实现单向认证.双向认证要求服务器和客户端双方都有证书,这样双方具体的通信内容就是加密过的数据,如果数据被攻击,第三方所获得的只是加密数据,想要了解具体信息就需要解密,因此双向认证的加密强度要高于单项认证.

目前Web应用都是采用单向认证方式,适合大量的用户,而HTTPS双向认证则更加适合企业应用,在传输企业私密信息时,使用双向认证能保证数据更加安全,不容易被第三方拦截或者篡改,避免因为数据泄露而带来严重损失.

有了单双向认证技术后,就可以识别并标志出HTTPS网站的证书和通信协议的安全性;维护最新的受信任证书列表包括可信数字根证书等;支持国密算法和国密证书体系,自动判断国密网站,提供从HTTP迁移到HTTPS的业务系统解决方案.

图6 国密算法机制原理

4 结束语

本文系统地介绍了浏览器的发展背景、浏览器面临的安全威胁以及在信创体系下如何构建一个安全可信的浏览器架构,为学术界和工业界提供了一个有针对性的安全可信浏览器解决方案.

猜你喜欢
信创沙箱私钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
低代码开发平台加速信创落地
基于改进ECC 算法的网络信息私钥变换优化方法
EasyStack下注信创云
江苏省信创生态构建发展新格局
江苏省信创生态构建发展新格局
Removing a stone
巧用沙箱检测文件安全
一种基于虚拟私钥的OpenSSL与CSP交互方案