首页> 中国专利> 一种Java程序可信执行环境的构建方法及构建系统

一种Java程序可信执行环境的构建方法及构建系统

摘要

本发明提供了一种Java程序可信执行环境的构建方法,包括步骤:构建协处理器板卡,协处理器板卡连接主板:协处理器板卡包括协处理器芯片、内存芯片和闪存芯片;主板上插有主处理器、TPM芯片,主处理器、协处理器板卡、TPM芯片相互连接;将每个Java应用的安全性需求等级填到Java应用安全性需求等级配置表中:将Java应用名称和散列值写入协处理器板卡闪存芯片的Java应用度量经验表,根据安全等级分开处理。本发明在TPM芯片和协处理器板卡的支持下构建Java可信执行环境,使高安全性Java应用在对用户透明的协处理器中隔离执行,通过TPM芯片对协处理器驱动程序和Java应用程序进行度量与验证,使得执行Java应用的安全性得到大大加强。

著录项

  • 公开/公告号CN106778249A

    专利类型发明专利

  • 公开/公告日2017-05-31

    原文格式PDF

  • 申请/专利权人 湖南文盾信息技术有限公司;

    申请/专利号CN201710058962.6

  • 发明设计人 张妲;

    申请日2017-01-23

  • 分类号G06F21/53;

  • 代理机构长沙七源专利代理事务所(普通合伙);

  • 代理人郑隽

  • 地址 410005 湖南省长沙市开福区芙蓉中路一段468号湖南财富中心富座2807室

  • 入库时间 2023-06-19 02:19:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-02-14

    授权

    授权

  • 2017-06-23

    实质审查的生效 IPC(主分类):G06F21/53 申请日:20170123

    实质审查的生效

  • 2017-05-31

    公开

    公开

说明书

技术领域

本发明涉及建立应用程序可信执行环境的技术领域,特别地,涉及一种针对基于Java语言编写的Java应用程序可信执行环境的构建方法。

背景技术

随着计算机和互联网技术的飞速发展,人类已经进入了“信息时代”。信息系统越来越广泛的应用于政治、经济、教育和军事领域中。然而,系统缺陷、策略漏洞、恶意攻击等问题一直严重威胁着信息系统的安全性。如何有效抵御多种安全威胁,提升信息系统可靠性一直是信息安全领域广泛关注的热点问题。

Java技术利用Java虚拟机(Java Virtual Machine,JVM)实现了平台无关、前端设计语言无关程序设计。这一特性能够有效地为遗留系统的改造接入、异构系统的互连互通提供支持,使得Java技术广泛地应用于各种信息系统构建。IBM、Oracle等知名企业均广泛采用Java技术作为其企业级业务系统构建的核心技术。Google在其云计算服务中部署定制的JVM,为各种采用Python、Java等语言实现的应用提供统一的执行环境。知名手机操作系统Android的核心部分也是基于JVM技术规范实现的Dalvik虚拟机,其应用开发也是采用Java语言。目前,越来越多的软件系统开始直接面向JVM开发,JVM和基于JVM技术规范实现的语言级虚拟机已经成为各种应用运行的基础性平台。随着越来越多的Java应用服务的部署,Java应用程序在软件生命周期中经常遭受到字节码篡改、内存篡改等完整性破坏的威胁。因此,从JVM层次提供有效的信任与安全保障机制具有非常重要的意义。

硬件协处理器技术,长期以来一直被广泛地应用于科学计算领域,主要是为了解决主处理器计算能力不足等问题。最典型的协处理器包括早期的浮点运算协处理器,用于数字信号处理的DSP,以及近年来被大量应用于超级计算机的GPU和最新的英特尔MIC处理器等。这些硬件协处理器通常针对特定的应用进行优化,利用硬件加速特定的运算,使其更加适应某些具体的应用领域。近年来随着信息系统对安全性和可用性要求的不断提升,利用协处理器进行加密解密运算提高系统可用性的需求也越来越强,可信计算组织TCG提出的可信平台模块TPM(Trusted Platform Module,TPM)就是一种安全芯片。协处理器的另外一个优势在于提供良好的隔离性,在协处理器中运行的应用程序相对独立,不受主处理机中的上下文对于构建信息系统的Java应用程序而言,由于共享系统运行环境,应用程序之间的隔离性也是严重影响系统安全的因素,虽然现有的虚拟化技术,包括JVM,都提供了一定程度上的应用隔离能力,但是还是达不到硬件隔离的强度,而针对Java应用及JVM的攻击也越来越多,现有技术难以为Java应用提供一个安全的基础。

协处理器是为了解决中央处理器无法执行或执行效率低下的处理工作而开发的处理器。典型的协处理器包括图形/音频处理芯片、外设接口控制器以及代数运算加速芯片等。在信息安全领域,除了各类密码运算加速协处理器外。TPM也可以看成一种协处理器安全芯片,TPM主要功能是提供关键数据的安全存储、采用哈希算法对二进制数据进行度量验证。可信计算组织依托于TPM提出了可信计算平台的基本思想:以TPM为信任根,建立一条信任链,从信任根到硬件平台、到操作系统、再到应用程序,一级度量认证一级,一级信任一级,最终把这种信任扩展到整个计算机系统,从而确保整个系统的可信。在可信平台中,信任根包括:可信度量根(Root of Trust for Measurement,RTM)、可信存储根(Root ofTrust for Storage,RTS)和可信报告根(Root of Trust for Report,RTR)。可信存储根则由平台配置寄存器(Platform configuration Register,PCR)和存储根密钥(StorageRoot Key,SRK)组成。

在Java技术出现和发展的早期,由于Java程序执行的效率较低,出现了以PicoJava、MicroJava和JOP为代表的一系列Java协处理器,这些协处理器的主要目标定位于提升Java程序的执行效率和性能。随着Java虚拟机技术的进步以及Java即时编译执行技术的成熟,Java程序的执行效率得到了大幅提升,上述Java协处理器也逐渐退出市场。但是,从可信计算平台技术的发展来看,利用协处理器提升计算机系统的安全性具有一定的可行性和应用前景,目前也尚未存在此类产品。

发明内容

本发明目的在于提供一种Java程序可信执行环境的构建方法,以解决Java应用程序在发布、加载以及运行过程中可能面临的Java字节码篡改、内存篡改等完整性破坏的威胁,使得计算机系统的Java程序安全性不够的技术问题。

为实现上述目的,本发明提供了一种Java程序可信执行环境的构建方法,其特征在于,包括步骤:

A、构建协处理器板卡,协处理器板卡设置在主板上:

所述协处理器板卡包括协处理器芯片、均与协处理器芯片连接的内存芯片和闪存芯片;

主板上插有主处理器、TPM芯片,所述主处理器、协处理器板卡、TPM芯片相互连接;

B、配置主处理器上部署的Java应用安全性需求等级和协处理器上的Java应用度量经验表:

将每个Java应用的安全性需求等级填到Java应用安全性需求等级配置表中:

将Java应用名称和散列值写入协处理器板卡闪存芯片中的Java应用度量经验表;

C、当判断Java应用有网络通信需求,且未在主处理器中运行过时,TPM芯片获取该Java应用的度量值;

若度量值与协处理器读取的Java应用度量经验表中存储的该Java应用的Java应用字节码SHA1散列值相等,则将Java应用加载到协处理器运行的删减版Linux操作系统中执行。

优选的,步骤C中,当判断Java应用无网络通信需求,则主处理器直接执行Java应用。

优选的,步骤C中,当判断Java应用有网络通信需求,且在主处理器中运行过时,则主处理器与协处理器同步Java应用运行数据,主处理器通过协处理器驱动程序将运行时数据传输给协处理器板卡上的内存芯片,主处理器终止该Java应用运行并转发请求到协处理器,协处理器中的主控程序读取Java应用字节码,并将Java应用字节码提交给TPM芯片,TPM芯片得到Java应用的度量值;

若度量值与协处理器读取的Java应用度量经验表中存储的该Java应用的Java应用字节码SHA1散列值相等,则将Java应用加载到协处理器运行的删减版Linux操作系统中执行。

优选的,步骤C中,当度量值与协处理器读取的Java应用度量经验表中存储的该Java应用的Java应用字节码SHA1散列值不相等,则向主处理器运行的Linux操作系统报告错误。

优选的,步骤B中,所述Java应用度量经验表有N项,每项有2个域,分别为Java应用名称和Java应用字节码SHA1散列值;

所述Java应用安全性需求等级配置表有N项,每项有2个域,分别为Java应用名称和安全性需求等级,N是Java应用的个数。

优选的,步骤A中,主处理器与TPM芯片相连,主处理器将协处理器驱动程序二进制数据送给TPM芯片,TPM芯片将协处理器驱动程序二进制数据进行计算得到度量值送给主处理器;协处理器板卡与TPM芯片相连,协处理器板卡将Java应用字节码送给TPM芯片进行度量,TPM芯片将度量值送回给协处理器板卡;协处理器板卡与主处理器相连,主处理器向协处理器板卡发送Java应用运行的映像和数据,协处理器板卡向主处理器报告Java应用运行结果。

优选的,步骤C具体还包括步骤:

D1、主处理器运行的Linux操作系统接收Java应用请求;

D2、主处理器运行的Linux操作系统查询Java应用安全性需求等级配置表,若用户请求为低安全性需求应用则主处理器执行Java应用,执行完后转4.11;若为高安全性需求应用则转D3;

D3、主控程序对从主处理器接收的Java应用进行判定,若是在主处理器中运行过的Java应用,则执行D4,若是未在主处理器中运行过的Java应用,则执行D5;

D4、主处理器与协处理器同步Java应用运行数据,主处理器通过协处理器驱动程序将运行时数据传输给协处理器板卡上的内存芯片;主处理器终止该Java应用运行并转发请求到协处理器,由协处理器中的Java应用继续为客户端提供服务;

D5、协处理器中的主控程序读取Java应用字节码,并将Java应用字节码提交给TPM芯片,TPM芯片得到Java应用的度量值;用得到的Java应用的度量值与协处理器读取的Java应用度量经验表中存储的该Java应用的Java应用字节码SHA1散列值进行比对验证,如果不相等,则向主处理器报告错误,转D1;若相等,将Java应用加载到协处理器运行的删减版Linux操作系统中执行。

优选的,所述内存芯片要求具有1GB以上运行内存,闪存芯片要求具有4GB以上固化闪存。

本申请还提供一种Java程序可信执行环境的构建系统,包括相互连接的主处理器、协处理器板卡和TPM芯片,所述协处理器板卡包括协处理器芯片、均与协处理器芯片连接的内存芯片和闪存芯片;

主处理器上存储有Java应用安全性需求等级配置表,Java应用安全性需求包含Java应用名称和安全性需求等级,协处理器上存储有Java应用度量经验表,Java应用度量经验表包含Java应用名称和散列值。

优选的,所述闪存芯片中存有经过删减的仅保留Linux内核的删减版Linux操作系统、主控程序、Java应用度量经验表和Java固化应用程序;删减版Linux操作系统指删减了Linux操作系统中关于用户应用软件、图形用户接口的功能模块,只剩下Linux内核的Linux操作系统。

本发明具有以下有益效果:

本发明在现有可信计算技术的基础上,利用特定的协处理器及协处理器上运行的软、固件系统,实现有高安全性需求的Java应用由主处理器向协处理器的平滑迁移,并在协处理器中实现内存运行时度量与认证,Java应用字节码度量与验证功能,为Java应用提供安全的运行环境和信任保障。

本发明在TPM芯片和协处理器板卡的支持下构建一个Java可信执行环境,使高安全性Java应用在对用户透明的协处理器中隔离执行。通过TPM芯片对协处理器驱动程序和Java应用程序进行度量与验证,保护了协处理器驱动程序和Java应用程序的完整性,使得执行Java应用的安全性得到大大加强。本发明能够较好的满足Java应用的安全与可信需求。

除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明优选实施例的总体流程图;

图2是本发明优选实施例的第一步构建Java可信执行环境结构图;

图3是本发明优选实施例的分步流程图。

具体实施方式

以下结合附图对本发明的实施例进行详细说明,但是本发明可以根据权利要求限定和覆盖的多种不同方式实施。

图1是本发明总体流程图;本发明包括以下步骤:

第一步,构建Java程序可信执行环境,Java程序可信执行环境由协处理器板卡、主处理器、TPM芯片组成,协处理器板卡、主处理器、TPM芯片均插在主板上。

内存芯片要求具有1GB以上运行内存,闪存芯片要求具有4GB以上固化闪存。

第二步,配置主处理器上部署的Java应用安全性需求等级。

第三步,配置协处理器上Java应用度量经验表。

第四步,采用Java应用可信执行环境运行Java程序。

具体步骤为:

第一步,构建Java程序可信执行环境,Java程序可信执行环境由协处理器板卡、主处理器、TPM芯片组成,方法是:

1.1利用协处理器芯片、内存芯片和闪存芯片构建协处理器板卡,方法为:协处理器芯片采用x86或arm指令集的协处理器芯片,闪存芯片中存有经过删减的仅保留Linux内核的删减版Linux操作系统、主控程序、Java应用度量经验表和Java固化应用程序;Java应用度量经验表有N项,每项有2个域,分别为Java应用名称和Java应用字节码SHA1散列值;Java应用字节码SHA1散列值是用Java应用的二进制字节码,通过哈希函数SHA1计算得到的值,作为Java应用度量值;协处理器芯片读取闪存芯片中的Java固化应用程序送入内存芯片执行;协处理器板卡通过PCIE接口插在主板上,协处理器通过PCIE接口与主处理器及TPM芯片通信;

删减版Linux操作系统指删减了Linux操作系统中关于用户应用软件、图形用户接口的功能模块,只剩下Linux内核。

1.2主处理器也插在主板上,主处理器上安装有Linux操作系统、协处理器驱动程序和Java应用安全性需求等级配置表;协处理器驱动程序是协处理器板卡上的协处理器芯片的驱动程序;Java应用安全性需求等级配置表是说明每个Java应用的安全性需求等级的表格,有N项,每项有2个域,分别为Java应用名称和安全性需求等级,N是Java应用的个数;

1.3 TPM芯片也插在主板上,主处理器、协处理器板卡、TPM芯片相互连接;主处理器与TPM芯片相连,主处理器将协处理器驱动程序二进制数据送给TPM芯片,TPM芯片将协处理器驱动程序二进制数据进行计算得到度量值送给主处理器;协处理器板卡与TPM芯片相连,协处理器板卡将Java应用字节码送给TPM芯片进行度量,TPM芯片将度量值送回给协处理器板卡;协处理器板卡与主处理器相连,主处理器向协处理器板卡发送Java应用,协处理器板卡向主处理器报告Java应用运行结果;

第二步,配置主处理器上部署的Java应用安全性需求等级,方法为:利用安装在主处理器中的Linux实用工具编辑器配置已部署的Java应用安全性需求等级,将所有Java应用根据是否有网络通信来划分安全性等级需求,有网络通信则定义为高安全性需求,无网络通信的本地Java应用定义为低安全性需求,将每个Java应用的安全性需求等级填到Java应用安全性需求等级配置表中;网络通信指通过数据网、无线网等手段与互联网连接进行数据交换;

第三步,配置协处理器上Java应用度量经验表,方法为:协处理器驱动程序将所有Java应用的字节码传输到协处理器板卡的闪存芯片中,协处理器将Java应用的字节码作为哈希函数SHA1的输入参数,得到SHA1函数值,即Java应用字节码SHA1散列值,将Java应用名称和SHA1散列值写入协处理器板卡闪存芯片中的Java应用度量经验表;

第四步,采用Java应用可信执行环境运行Java程序,过程如下:

4.1 TPM芯片对协处理器驱动程序进行度量,如协处理器驱动程序完整则启动协处理器,转4.2步,若协处理器驱动程序不完整则协处理器启动失败,向主处理器中Linux操作系统报告错误,转4.12;

4.2协处理器从闪存芯片中加载删减版Linux操作系统;

4.3协处理器从闪存芯片中加载主控程序;

4.4主处理器运行的Linux操作系统接收Java应用请求;

4.5主处理器运行的Linux操作系统查询Java应用安全性需求等级配置表,若用户请求为低安全性需求应用则主处理器执行Java应用,执行完后转4.11;若为高安全性需求应用则转4.6;

4.6迁移Java应用:主控程序对从主处理器接收的Java应用进行判定,若是已经在主处理器中运行过的Java应用,则执行4.7,若是未在主处理器中运行过的Java应用,则执行4.8;

4.7对于已在主处理器中运行过的Java应用,执行以下步骤:

4.7.1、将主处理器中已运行的Java应用的映像传输到协处理器;

4.7.2主处理器与协处理器同步Java应用运行数据,主处理器通过协处理器驱动程序将运行时数据传输给协处理器板卡上的内存芯片;

4.7.3、主处理器终止该Java应用运行并转发请求到协处理器,转第4.9步;

4.8对未在主处理器中运行过的Java应用,执行以下步骤:

4.8.1协处理器中的主控程序读取Java应用字节码,并将Java应用字节码提交给TPM芯片,TPM芯片对Java应用字节码进行度量,得到Java应用的度量值;

4.8.2用4.8.1中得到的Java应用的度量值与协处理器读取的Java应用度量经验表中存储的该Java应用的Java应用字节码SHA1散列值进行比对验证,如果不相等,则向主处理器运行的Linux操作系统报告错误,转第4.4步,等待下一个Java应用请求;如果相等,则执行4.9步;

4.9将Java应用加载到协处理器运行的删减版Linux操作系统中执行;

4.10协处理器将执行结果返回给主处理器;

4.11主处理器将运行结果返回给主处理器Linux操作系统,转第4.4步,等待下一个Java应用请求,Java程序可信执行环境一直处于等待、接收、处理Java应用的循环过程中。

本发明在TPM芯片和协处理器板卡的支持下构建了Java可信执行环境,使高安全性Java应用在对用户透明的协处理器中隔离执行。

由此,本申请还提供一种Java程序可信执行环境的构建系统,包括相互连接的主处理器、协处理器板卡和TPM芯片,所述协处理器板卡包括协处理器芯片、均与协处理器芯片连接的内存芯片和闪存芯片;主处理器上存储有Java应用安全性需求等级配置表,Java应用安全性需求包含Java应用名称和安全性需求等级,协处理器上存储有Java应用度量经验表,Java应用度量经验表包含Java应用名称和散列值。

所述闪存芯片中存有经过删减的仅保留Linux内核的删减版Linux操作系统、主控程序、Java应用度量经验表和Java固化应用程序;删减版Linux操作系统指删减了Linux操作系统中关于用户应用软件、图形用户接口的功能模块,只剩下Linux内核的Linux操作系统。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号