数据安全互联系统及数据安全互联系统建立方法

文档序号:6489751阅读:204来源:国知局
数据安全互联系统及数据安全互联系统建立方法
【专利摘要】本发明提供一种数据安全互联系统的建立方法,包括:步骤1、计算设备向注册服务器发送注册请求;步骤2、注册服务器向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据,或者询问该计算设备是否同意部署数据安全存储方法和数据安全读取方法;步骤3、计算设备向注册服务器发送应答消息;和步骤4、注册服务器检查所述应答消息;如果该应答为不同意接管,注册服务器拒绝该计算设备的注册请求,结束建立方法;如果该应答为同意接管,注册服务器在计算设备上部署数据安全存储方法和读取方法,注册服务器为该计算设备部署安全存储设备,并且将该计算设备添加在注册服务器上的注册列表中。
【专利说明】数据安全互联系统及数据安全互联系统建立方法
【技术领域】
[0001]本发明涉及计算机安全领域,尤其涉及一种数据安全互联系统及其建立方法。
【背景技术】
[0002]现有的电子信息安全领域包括系统安全、数据安全和设备安全三个子领域。
[0003]在数据安全领域内,一般采用下面三种技术确保数据安全:(I)数据内容安全技术,包括数据加密解密技术和端到端数据加密技术,保障数据在存储和传输过程中内容不被非法读取;(2)数据安全转移技术,包括防止非法拷贝、打印或其它输出,保障数据在使用和转移过程中的安全;(3)网络阻断技术,包括网络物理阻断和设置网络屏障等技术。
[0004]根据相关分析,目前针对计算机的所有危害总有效侦测能力最多在50%左右;由于上述技术在应对计算机内核病毒、木马、操作系统漏洞、系统后门以及人为泄密时能力不足,事实上任何计算设备(例如计算机、手持通信设备等)都可能存在恶意代码。一旦恶意代码进入终端系统,上述的加密技术、防拷贝技术以及网络阻断技术在这种情况下将失去作用。现有的黑客技术可以利用系统漏洞或系统后门穿透上述安全技术并植入恶意代码,并利用恶意代码取得用户数据。上述技术更无法防范涉密人员的主动或被动泄密,例如,内部人员可以携带存储设备,从内部网络或终端上下载所需的资料并带走存储设备,导致内部泄密;又例如,内部人员可以直接将计算设备带走。
[0005]综上,防拷贝技术无法保证涉密信息在终端不被非法存储。基于网络过滤无法确保涉密信息不丢失。涉密人员可通过恶意代码或恶意工具造成泄密,还可能因涉密设备或存储介质失控造成泄密。

【发明内容】

[0006]本发明的目的是提供一种数据安全互联系统及其建立方法,提高数据安全性。
[0007]根据本发明一个方面,提供一种数据安全互联系统的建立方法,包括:
[0008]步骤1、计算设备向注册服务器发送注册请求;
[0009]步骤2、注册服务器向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据,或者询问该计算设备是否同意部署数据安全存储方法和数据安全读取方法;
[0010]步骤3、计算设备向注册服务器发送应答消息;和
[0011]步骤4、注册服务器检查所述应答消息;
[0012]如果该应答为不同意接管,注册服务器拒绝该计算设备的注册请求,结束建立方法;
[0013]如果该应答为同意接管,注册服务器在计算设备上部署数据安全存储方法和读取方法,注册服务器为该计算设备部署安全存储设备,并且将该计算设备添加在注册服务器上的注册列表中;
[0014]其中,数据安全存储方法包括:[0015]步骤al、接收硬件指令;
[0016]步骤a2、分析所述硬件指令;
[0017]步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和
[0018]步骤a4、将修改后的存储指令发送到硬件层;
[0019]其中,数据安全读取方法包括:
[0020]步骤bl、接收硬件指令;
[0021 ] 步骤b2、分析所述硬件指令;
[0022]步骤b3、如果所述硬件指今是读取指令,获取读取指令中的源地址;
[0023]步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和
[0024]步骤b5、将修改后的读取指令发送到硬件层。
[0025]可选的,在步骤a3之后,数据安全存储方法还包括:
[0026]更新第一映射位图中所述目标地址对应的位;
[0027]将已经更新的第一映射位图同步到所述安全存储设备,保存为第二映射位图;所述第二映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备。
[0028]可选的,在步骤al之前,数据安全存储方法还包括:
[0029]建立计算设备与所述安全存储设备的通讯;
[0030]将所述安全存储设备上的第二映射位图同步到所述计算设备,保存为第一映射位图。
[0031]可选的,在步骤b4之前,数据安全读取方法还包括:
[0032]建立计算设备与所述安全存储设备的通讯;
[0033]将所述安全存储设备上的第二映射位图同步到所述计算设备,保存为第一映射位图。
[0034]可选的,在步骤al和bl中,所述硬件指令来自硬件映射层。
[0035]可选的,在步骤4中,注册服务器还在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0036]步骤c 1、缓存指令运行环境;
[0037]步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;
[0038]步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
[0039]可选的,在步骤4中,注册服务器还在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0040]步骤dl、缓存指令运行环境;
[0041]步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;
[0042]步骤d3、在第一存储位置保存第一跳转指令的目标地址;[0043]步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0044]步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0045]可选的,在步骤4中,注册服务器还在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0046]步骤e 1、缓存指令运行环境;
[0047]步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0048]步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0049]步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;
[0050]步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0051]步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0052]根据本发明另一个方面,提供一种应用于上述方法建立的数据安全互联系统的数据访问方法,包括:
[0053]步骤1、第一计算设备向第二计算设备发送访问请求;
[0054]步骤2、第二计算设备向注册服务器发送安全地址询问消息,询问所述第一计算设备是否为安全地址;
[0055]步骤3、注册服务器向第二计算设备发送安全地址应答消息,告知该第一计算设备是否为安全地址;
[0056]步骤4、如果得到肯定的应答消息,第二计算设备根据访问请求读取相应的数据,读取过程为所述的数据安全读取方法;如果得到否定的应答消息,第二计算设备忽略所述访问请求;和
[0057]步骤5、第二计算设备向第一计算设备发送访问应答。
[0058]可选的,所述的数据访问方法在步骤5之后还包括:
[0059]步骤6、如果第一计算设备需要保存数据,则根据所述的数据安全存储方法保存数据。
[0060]根据本发明另一个方面,提供一种数据安全互联系统建立及数据访问方法,包括:
[0061]步骤1、第一计算设备向第二计算设备发送访问请求;
[0062]步骤2、第二计算设备向第一计算设备发送部署询问,询问第一计算设备是否同意部署数据安全存储方法和数据安全读取方法,或者询问第一计算设备是否同意通过安全存储设备接管该第一计算设备所操作和访问的数据;
[0063]步骤3、第一计算设备向第二计算设备发送部署应答;
[0064]步骤4、第二计算设备检查所述部署应答;
[0065]如果部署应答是不同意部署,第二计算设备拒绝第一计算设备的访问请求,结束所述方法;[0066]如果部署应答是同意部署,第二计算设备在第一计算设备上部署数据安全存储方法和读取方法,第二计算设备为第一计算设备部署第一安全存储设备,并将第一计算设备添加在第二计算设备的注册列表中;
[0067]步骤5、第二计算设备利用安全读取方法从其对应的第二安全存储设备读取第一计算设备需要的数据;和
[0068]步骤6、第二计算设备向第一计算设备发送访问应答;
[0069]其中,数据安全存储方法包括:
[0070]步骤al、接收硬件指令;
[0071]步骤a2、分析所述硬件指令;
[0072]步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在安全存储设备上的存储地址;和
[0073]步骤a4、将修改后的存储指令发送到硬件层;
[0074]其中,数据安全读取方法包括:
[0075]步骤bl、接收硬件指令;
[0076]步骤b2、分析所述硬件指令;
[0077]步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址;
[0078]步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和
[0079]步骤b5、将修改后的读取指令发送到硬件层。
[0080]可选的,所述的数据安全互联系统建立及数据访问方法在步骤6之后还包括:
[0081]步骤7、如果第一计算设备需要保存数据,第一计算设备利用数据安全存储方法将获得的访问数据保存在其对应的第一安全存储设备中。
[0082]可选的,在步骤a3之后,数据安全存储方法还包括:
[0083]更新第一映射位图中所述目标地址对应的位;
[0084]将已经更新的第一映射位图同步到所述安全存储设备,保存为第二映射位图;所述第二映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备。
[0085]可选的,在步骤al之前,数据安全存储方法还包括:
[0086]建立计算设备与所述安全存储设备的通讯;
[0087]将所述安全存储设备上的第二映射位图同步到所述计算设备,保存为第一映射位图。
[0088]可选的,在步骤b4之前,数据安全读取方法还包括:
[0089]建立计算设备与所述安全存储设备的通讯;
[0090]将所述安全存储设备上的第二映射位图同步到所述计算设备,保存为第一映射位图。
[0091]可选的,在步骤al和bl中,所述硬件指令来自硬件映射层。
[0092]可选的,在步骤4中,第二计算设备还在第一计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0093]步骤Cl、缓存指令运行环境;
[0094]步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;
[0095]步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
[0096]可选的,在步骤4中,第二计算设备还在第一计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0097]步骤dl、缓存指令运行环境;
[0098]步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;
[0099]步骤d3、在第一存储位置保存第一跳转指令的目标地址;
[0100]步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0101]步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0102]可选的,在步骤4中,第二计算设备还在第一计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0103]步骤el、缓存指令运行环境;
[0104]步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0105]步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0106]步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;
[0107]步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0108]步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0109]可选的,所述的数据安全互联系统建立及数据访问方法在步骤I和步骤2之间还包括:
[0110]步骤H、第二计算终端向第一计算终端发送部署检查消息,该消息用于检查在第一计算终端上是否已经部署了数据安全存储方法和数据安全读取方法;
[0111]步骤f2、第一计算终端向第二计算终端发送部署检查反馈消息;和
[0112]步骤f3、第二计算终端根据该部署检查反馈消息确定第一计算终端的部署状态:如果已经部署,则将第一计算设备添加在第二计算设备的注册列表中并执行步骤5;如果尚未部署,继续执行步骤2。
[0113]根据本发明又一个方面,提供一种数据安全互联系统建立及数据访问方法,包括:
[0114]步骤1、第一计算设备向第二计算设备发送访问请求;
[0115]步骤2、第一计算设备向第二计算设备发送部署告知消息,该消息用于表示在第一计算设备上已经部署了数据安全存储方法和数据安全读取方法;
[0116]步骤3、第二计算设备基于部署告知消息,确定第一计算设备的部署状态为已经部署;
[0117]步骤4、第二计算设备利用安全读取方法从其对应的第二安全存储设备读取第一计算设备将要访问的数据;和
[0118]步骤5、第二计算设备向第一计算设备发送访问应答;
[0119]其中,数据安全存储方法包括:
[0120]步骤al、接收硬件指令;
[0121]步骤a2、分析所述硬件指令;
[0122]步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在安全存储设备上的存储地址;和
[0123]步骤a4、将修改后的存储指令发送到硬件层;
[0124]其中,数据安全读取方法包括:
[0125]步骤bl、接收硬件指令;
[0126]步骤b2、分析所述硬件指令;
[0127]步骤b3、如果所述硬件指今是读取指令,获取读取指令中的源地址;
[0128]步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和
[0129]步骤b5、将修改后的读取指令发送到硬件层。
[0130]可选的,所述的数据安全互联系统建立及数据访问方法在步骤5之后还包括:
[0131]步骤6、如果第一计算设备需要保存数据,第一计算设备利用数据安全存储方法将获得的访问数据保存在其对应的第一安全存储设备中。
[0132]可选的,在步骤a3之后,数据安全存储方法还包括:
[0133]更新第一映射位图中所述目标地址对应的位;
[0134]将已经更新的第一映射位图同步到所述安全存储设备,保存为第二映射位图;所述第二映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备。
[0135]可选的,在步骤al之前,数据安全存储方法还包括:
[0136]建立计算设备与所述安全存储设备的通讯;
[0137]将所述安全存储设备上的第二映射位图同步到所述计算设备,保存为第一映射位图。
[0138]可选的,在步骤b4之前,数据安全读取方法还包括:
[0139]建立计算设备与所述安全存储设备的通讯;
[0140]将所述安全存储设备上的第二映射位图同步到所述计算设备,保存为第一映射位图。
[0141]可选的,在步骤al和bl中,所述硬件指令来自硬件映射层。
[0142]可选的,所述部署告知消息还用于表示在第一计算设备上已经部署了行时指令重组方法,该运行时指令重组方法包括:
[0143]步骤Cl、缓存指令运行环境;
[0144]步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;[0145]步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
[0146]可选的,所述部署告知消息还用于表示在第一计算设备上已经部署了行时指令重组方法,该运行时指令重组方法包括:
[0147]步骤dl、缓存指令运行环境;
[0148]步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;
[0149]步骤d3、在第一存储位置保存第一跳转指令的目标地址;
[0150]步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0151]步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0152]可选的,所述部署告知消息还用于表示在第一计算设备上已经部署了行时指令重组方法,该运行时指令重组方法包括:
[0153]步骤el、缓存指令运行环境;
[0154]步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0155]步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0156]步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;
[0157]步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0158]步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0159]可选的,在步骤3中,如果第二计算设备没有接收到部署告知消息,或第二计算设备基于部署告知消息不能确定第一计算设备的部署状态为已经部署,则忽略所述访问请求。
[0160]根据本发明另一个方面,提供一种数据安全互联系统,包括:计算设备、安全存储设备和注册服务器;
[0161]其中,所述注册服务器适于注册计算设备,并为计算设备分配安全存储设备;所述计算设备适于通过数据安全存储方法和数据安全读取方法将数据保存在安全存储设备上或从安全存储设备读取数据;
[0162]其中,数据安全存储方法包括:步骤al、接收硬件指令;步骤a2、分析所述硬件指令;步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和步骤a4、将修改后的存储指令发送到硬件层;
[0163]其中,数据安全读取方法包括:步骤bl、接收硬件指令;步骤b2、分析所述硬件指令;步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址;步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和步骤b5、将修改后的读取指令发送到硬件层。[0164]可选的,所述注册服务器适于:
[0165]接收来自计算设备的注册请求;
[0166]向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据,或者询问该计算设备是否同意部署数据安全存储方法和数据安全读取方法;
[0167]接收并检查来自计算设备的应答消息;如果应答为不同意接管,拒绝该计算设备的注册请求;如果应答为同意接管,在计算设备上部署数据安全存储方法和读取方法,为该计算设备部署安全存储设备,并且将该计算设备添加在注册服务器上的注册列表中。
[0168]可选的,所述注册服务器还适于在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0169]步骤Cl、缓存指令运行环境;
[0170]步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;
[0171]步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
[0172]可选的,所述注册服务器还适于在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0173]步骤dl、缓存指令运行环境;
[0174]步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;
[0175]步骤d3、在第一存储位置保存第一跳转指令的目标地址;
[0176]步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0177]步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0178]可选的,所述注册服务器还适于在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括:
[0179]步骤el、缓存指令运行环境;
[0180]步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0181]步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0182]步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;
[0183]步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0184]步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0185]根据本发明又一个方面,提供一种数据安全互联系统,包括:第一计算设备、第二计算设备和安全存储设备;其中,所述第一计算设备和第二计算设备适于相互注册,并通过数据安全存储方法和数据安全读取方法将数据保存在安全存储设备上或从安全存储设备读取数据;
[0186]其中,数据安全存储方法包括:步骤al、接收硬件指令;步骤a2、分析所述硬件指令;步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和步骤a4、将修改后的存储指令发送到硬件层;
[0187]其中,数据安全读取方法包括:步骤bl、接收硬件指令;步骤b2、分析所述硬件指令;步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址;步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和步骤b5、将修改后的读取指今发送到硬件层。
[0188]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0189]步骤Cl、缓存指令运行环境;
[0190]步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;
[0191]步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
[0192]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0193]步骤dl、缓存指令运行环境;
[0194]步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;
[0195]步骤d3、在第一存储位置保存第一跳转指令的目标地址;
[0196]步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0197]步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0198]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0199]步骤el、缓存指令运行环境;
[0200]步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0201]步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0202]步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;
[0203]步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0204]步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。[0205]根据本发明再一个方面,提供一种数据安全互联系统,包括:
[0206]位于第一局域网的第一计算设备和第一安全存储设备;
[0207]位于第二局域网的第二计算设备和第二安全存储设备;和
[0208]虚拟安全存储服务器,位于第一局域网和第二局域网;
[0209]其中,所述虚拟安全存储服务器适于注册第一和第二计算设备,并为第一和第二计算设备分别分配第一和第二安全存储设备;所述第一和第二计算设备适于通过数据安全存储方法和数据安全读取方法将数据分别保存在第一和第二安全存储设备上或分别从第一和第二安全存储设备读取数据;
[0210]其中,数据安全存储方法包括:步骤al、接收硬件指令;步骤a2、分析所述硬件指令;步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和步骤a4、将修改后的存储指令发送到硬件层;
[0211]其中,数据安全读取方法包括:步骤bl、接收硬件指令;步骤b2、分析所述硬件指令;步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址;步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和步骤b5、将修改后的读取指令发送到硬件层。
[0212]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0213]步骤Cl、缓存指令运行环境;
[0214]步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;
[0215]步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
[0216]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0217]步骤dl、缓存指令运行环境;
[0218]步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;
[0219]步骤d3、在第一存储位置保存第一跳转指令的目标地址;
[0220]步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0221]步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0222]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0223]步骤el、缓存指令运行环境;
[0224]步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0225]步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0226]步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;
[0227]步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0228]步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0229]根据本发明另一个方面,提供一种数据安全互联系统,包括:
[0230]位于第一局域网的第一计算设备;
[0231]位于第二局域网的第二计算设备;和
[0232]集中式安全存储服务器,位于第一局域网和第二局域网,包括第一安全存储设备和第二安全存储设备;
[0233]其中,所述集中式安全存储服务器适于注册第一和第二计算设备,并为第一和第二计算设备分别分配第一和第二安全存储设备;所述第一和第二计算设备适于通过数据安全存储方法和数据安全读取方法将数据分别保存在第一和第二安全存储设备上或分别从第一和第二安全存储设备读取数据;
[0234]其中,数据安全存储方法包括:步骤al、接收硬件指令;步骤a2、分析所述硬件指令;步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和步骤a4、将修改后的存储指令发送到硬件层;
[0235]其中,数据安全读取方法包括:步骤bl、接收硬件指令;步骤b2、分析所述硬件指令;步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址;步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和步骤b5、将修改后的读取指令发送到硬件层。
[0236]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0237]步骤Cl、缓存指令运行环境;
[0238]步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;
[0239]步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
[0240]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0241]步骤dl、缓存指令运行环境;
[0242]步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;
[0243]步骤d3、在第一存储位置保存第一跳转指令的目标地址;
[0244]步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和[0245]步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0246]可选的,所述第一计算设备或第二计算设备还适于被部署运行时指令重组方法,该运行时指令重组方法包括:
[0247]步骤el、缓存指令运行环境;
[0248]步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0249]步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0250]步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;
[0251]步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0252]步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0253]根据本发明另一个方面,提供一种计算终端/计算设备,包括:
[0254]I/O接口,适于与注册服务器建立连接并通信;
[0255]注册单元,与I/O接口耦接,适于在注册服务器上注册和/或接受注册服务器的部署检查;
[0256]黑洞单元,与I/O接口耦接,适于接收注册服务器部署的数据黑洞系统;和
[0257]查询单元,适于向注册服务器发送询问消息,询问第二计算设备是否已经注册;
[0258]其中,数据黑洞系统包括数据安全读取方法和数据安全存储方法;
[0259]其中,数据安全存储方法包括:
[0260]步骤al、接收硬件指令;
[0261]步骤a2、分析所述硬件指令;
[0262]步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和
[0263]步骤a4、将修改后的存储指令发送到硬件层;
[0264]其中,数据安全读取方法包括:
[0265]步骤bl、接收硬件指令;
[0266]步骤b2、分析所述硬件指令;
[0267]步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址;
[0268]步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和
[0269]步骤b5、将修改后的读取指令发送到硬件层。
[0270]可选的,所述数据黑洞系统还包括运行时指令重组方法,该运行时指令重组方法包括:
[0271]步骤Cl、缓存指令运行环境;
[0272]步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;和[0273]步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
[0274]可选的,所述数据黑洞系统还包括运行时指令重组方法,该运行时指令重组方法包括:
[0275]步骤dl、缓存指令运行环境;
[0276]步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;
[0277]步骤d3、在第一存储位置保存第一跳转指令的目标地址;
[0278]步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0279]步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0280]可选的,所述数据黑洞系统还包括运行时指令重组方法,该运行时指令重组方法包括:
[0281]步骤el、缓存指令运行环境;
[0282]步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0283]步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0284]步骤e4、替换第一跳转指今为压栈指令,在压栈指今中记录第一跳转指令的地址和操作数;
[0285]步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0286]步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
[0287]根据本发明又一个方面,提供一种注册服务器,包括:
[0288]I/O接口,适于与计算设备连接并进行通信;
[0289]部署检查单元,与I/O接口耦接,适于向计算设备发送部署检查消息,检查计算设备是否已经部署了数据黑洞系统;
[0290]部署询问单元,与I/O接口耦接,适于向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据;和
[0291]程序部署单元,与I/O接口耦接,适于向计算设备部署数据黑洞系统,当部署结束之后,还适于将该计算设备添加进入注册列表中。
[0292]可选的,如果部署检查单元检查发现所述计算设备已经部署了数据黑洞系统,部署检查单元还适于更新注册列表,将该计算设备添加进入注册列表中;如果部署检查单元发现该计算设备尚未部署数据黑洞系统,启动部署询问单元。
[0293]可选的,如果来自计算设备的应答消息表示不同意接管,部署询问单元适于拒绝该计算设备的注册请求;如果该应答为同意接管,部署询问单元适于调用程序部署单元部署数据黑洞系统。
[0294]可选的,所述的注册服务器还包括:
[0295]注册查询单元,与I/O接口耦接,适于接收来自计算终端的查询,通过查询注册列表来检查某个特定的计算终端是否已经注册,并向计算设备反馈查询结果。
[0296]根据本发明另一个方面,提供一种计算终端,包括:
[0297]注册单元,适于在注册服务器上注册和/或接受注册服务器的部署检查;
[0298]黑洞单元,适于接收注册服务器部署的数据黑洞系统;和
[0299]查询单元,适于向注册服务器发送询问消息,询问某计算设备是否已经注册。
[0300]根据本发明另一个方面,提供一种注册服务器,包括:
[0301]部署询问单元,适于向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据;和
[0302]程序部署单元,适于向计算设备部署数据黑洞系统,当部署结束之后,还适于将该计算设备添加进入注册列表中。
[0303]可选的,该注册服务器还包括:部署检查单元,适于向计算设备发送部署检查消息,检查计算设备是否已经部署了数据黑洞系统;
[0304]与现有技术相比,本发明的装置和方法提高了数据的安全性。通过指令重组方法,在指令运行状态下监控计算设备的指令;数据安全读取方法配合数据安全存储方法使数据始终存在于可控的安全范围内;由于本地将不再保存在涉密状态下的任何数据,因此防止了涉密人员的主动泄密和被动泄密。
【专利附图】

【附图说明】
[0305]图1是现有技术中计算设备的系统层次示意图;
[0306]图2是本发明一个实施例中提供的运行时指令重组方法的流程图;
[0307]图3是本发明一个实施例中提供的重组指令片段的生成过程示意图;
[0308]图4是本发明另一个实施例中提供的图2中步骤S102的流程图;
[0309]图5是本发明另一个实施例中提供的运行时指令重组方法的流程图,利用地址对应表保存已经重组过的指令片段;
[0310]图6是本发明另一个实施例中提供的运行时指令重组方法的流程图,单独开辟存储位置保存第一跳转指令的目标地址;
[0311]图7是本发明另一个实施例中提供的运行时指令重组方法的流程图,针对非固定长度指令集进行反汇编和汇编处理;
[0312]图8是本发明另一个实施例中提供的运行时指令重组方法的流程图,以压栈指令替代或记录第一跳转指令;
[0313]图9a是本发明另一个实施例中提供的运行时指令重组方法的流程图,其中的运行时指令重组方法综合之前多个实施例中的特征;
[0314]图9b_9d是图9a中的运行时指令重组方法在X86体系处理器上运行时的操作过程不意图;
[0315]图10是本发明一个实施例中提供的运行时指令重组装置结构示意图;
[0316]图11是本发明另一个实施例中提供的运行时指令重组装置结构示意图;
[0317]图12是本发明另一个实施例中提供的指令重组单元结构示意图;
[0318]图13是本发明另一个实施例中提供的运行时指令重组装置结构示意图;
[0319]图14是本发明另一个实施例中提供的运行时指令重组装置结构示意图;[0320]图15是本发明一个实施例中计算设备的系统层次示意图;
[0321]图16是本发明一个实施例中提供的数据安全存取过程中的初始化过程的流程图;
[0322]图17是本发明一个实施例中的Bitmap示意图;
[0323]图18是本发明一个实施例中提供的数据安全存储方法的流程图;
[0324]图19是本发明一个实施例中提供的数据安全读取方法的流程图;
[0325]图20是本发明一个实施例中提供的数据安全存取方法的流程图;
[0326]图21是本发明一个实施例中提供的数据安全传输方法的流程图;
[0327]图22是本发明一个实施例中网络环境示意图;
[0328]图23是本发明一个实施例中提供的数据安全存储装置的结构示意图;
[0329]图24是本发明一个实施例中提供的数据安全读取装置的结构示意图;
[0330]图25是本发明一个实施例中提供的数据安全存储和读取装置的结构示意图;
[0331]图26是本发明另一个实施例中提供的数据安全存储和读取装置的结构示意图;
[0332]图27是本发明一个实施例中的网络环境;
[0333]图28a是本发明一个实施例中提供的数据安全互联系统的建立方法的时序图;
[0334]图28b是本发明一个实施例中提供的数据安全互联系统内计算设备的数据访问方法的时序图;
[0335]图28c是本发明另一个实施例中提供的数据安全互联系统内计算设备的数据访问方法的时序图;
[0336]图28d是本发明另一个实施例中提供的数据安全互联系统内计算设备的数据访问方法的时序图;
[0337]图28e是本发明另一个实施例中提供的数据安全互联系统内计算设备的数据访问方法的时序图;
[0338]图28f是本发明一个实施例中提供的计算终端的结构示意图;
[0339]图28g是本发明一个实施例中提供的注册服务器的结构示意图;
[0340]图28h是本发明另一个实施例中提供的计算终端的结构示意图;
[0341]图28i是本发明另一个实施例中提供的计算终端的结构示意图;
[0342]图29是本发明一个实施例中提供的广域网数据安全互联系统的结构示意图;
[0343]图30是本发明另一个实施例中提供的广域网数据安全互联系统的结构示意图;
[0344]图31是本发明一个实施例中提供的网络支付安全互联系统的结构示意图。
【具体实施方式】
[0345]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0346]公近
[0347]如图1所示为现有技术中计算设备的系统层次示意图,从上至下,计算设备包括:用户界面层101,应用层102,操作系统内核层103,硬件映射层104以及硬件层105。
[0348]其中,用户界面层101是用户与设备之间的接口,用户通过该层与设备(即设备的其他层次,例如应用层102)进行交互。应用层102指应用软件层。
[0349]操作系统内核层103是一种基于软件的逻辑层,一般来讲是由软件数据和软件代码组成,相比于界面层101和应用层102,操作系统内核层103的代码拥有更高的权限,可以对计算机系统中的各种软硬件资源进行完整的操作。
[0350]硬件映射层104是一种基于软件的逻辑层,它一般工作在操作系统内核层,拥有与内核层相同的权限。硬件映射层主要是为了解决将不同类型的硬件的操作模式映射为一种统一的上层接口,向上屏蔽硬件的特殊性。一般来说,硬件映射层主要被操作系统内核层103使用,来完成对各种硬件的操作。
[0351]硬件层105是指构成计算机系统的所有硬件部件。
[0352]用户通过用户界面层101 (即处于用户界面层101的用户界面)对该计算设备进行操作并得到图形化或非图形化反馈。以保存数据的操作为例,其过程包括:
[0353](I)用户通过某应用程序提供的用户界面101,选择“保存”功能;
[0354](2)应用层102调用对应代码,将上述用户操作转化为一个或多个操作系统提供的接口函数,即“保存”操作转化成为对一系列操作系统内核层103提供的接口函数的调用;
[0355](3)操作系统内核层103将每一个操作系统接口函数转化为一个或多个硬件映射层104提供的接口函数;即“保存”操作转化成为对一系列硬件映射层104提供的接口函数的调用;
[0356](4)硬件映射层104将每一个自己提供的接口函数转化为一个或多个硬件指令调用;最后,
[0357](5)硬件层105 (例如CPU)接收上述硬件指令调用并执行硬件指令。
[0358]针对该计算设备,当其被恶意代码侵入后,恶意代码可以从计算设备中取得所需数据,窃取数据后其行为模式包括:
[0359](I)存储行为:将目标数据内容保存到某个存储位置;
[0360](2)传输行为:将窃取的数据直接通过网络传输到指定的目标地址。
[0361]另外,使用上述计算设备或信息设备的人员进行内部泄密的行为模式包括:
[0362](I)主动泄密:涉密人员通过主动拷贝、通过恶意工具穿透安全系统、置入木马等手段直接取得涉密数据,并进行泄密;
[0363](2)被动泄密:涉密人员使用的电脑或存储介质因保管不善丢失或使用不当(例如将涉密装备直接接入Internet)造成的泄密。
[0364]上述多种泄密方式使得该计算设备的数据安全无法保障。
[0365]发明人经研究发现,计算机运行过程中,CPU地址寄存器保存下一条将要运行的机器指令的地址,例如pc (program counter,程序计数器)指向的地址;获取该寄存器中的数据,并按照该数据指向的地址,读取下一条或者多条将要运行的机器指令,可以实现运行时捕获机器指令的目的。
[0366]并且,通过修改所述一条或多条机器指令所组成的待调度指令片段(例如在其中插入额外的跳转指令,本文称为指令重组),使得在该段指令运行完毕之前重新获得CPU执行权,并再次捕获下一个待调度指令片段,可以实现运行时连续捕获机器指令的目的。
[0367]并且,在获取到待调度指令片段后,还可以对其中的机器指令进行分析以及处理,从而不仅可以实现运行时指令捕获、重组,还可以实现对预定的目标指令的管理。
[0368]指令重组或指令追踪
[0369]基于上述分析和发现,本发明的一个实施例中提供了一种运行时指令重组方法,该方法运行时称为指令重组平台。如图2所示,该方法SlOO包括:
[0370]S101,缓存指令运行环境;所述指令运行环境包括地址寄存器,地址寄存器保存下一条将要运行的机器指令的地址,该地址为第一地址;
[0371]S102,获取待调度的机器指令片段;其中,待调度的机器指令片段的最后一条指令为第一跳转指令;
[0372]S103,在所述第一跳转指令前,插入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址,即执行该第二跳转指令后,执行步骤 SlOl ;
[0373]S104,将所述地址寄存器中的第一地址修改为第二地址;和
[0374]S105,恢复所述指令运行环境。
[0375]在本实施例中,上述运行时指令重组方法在X86架构的CPU上执行;在本发明的其他实施例中,上述运行时指令重组方法也可以在MIPS处理器或基于ARM架构的处理器上执行。本领域普通技术人员可以理解,上述方法可以在计算设备中的任何其他类型的指令处理单元上执行。
[0376]其中,在步骤SlOl中,所述缓存指令运行环境可以包括:
[0377]向缓存栈中压入CPU机器指令运行相关的寄存器数据。
[0378]在本发明的其他实施例中,缓存或保存指令运行环境也可以在指定的、默认的其他缓存数据结构和地址中进行。
[0379]在步骤SlOl中,所述地址寄存器可以为CPU地址寄存器。
[0380]在步骤S102中,待调度的机器指令片段中最后一条指令为第一跳转指令,待调度的机器指令片段中只有一条跳转指令,待调度的机器指令片段包括所述第一跳转指令以及其之前的所有待调度的机器指令。
[0381]在步骤S103中,在所述待调度的机器指令片段的最后一条指令(即第一跳转指令JPl)前,插入第二跳转指令JP2,所述JP2指向指令重组平台的入口地址,生成具有第二地址A"的重组指令片段。
[0382]插入第二跳转指令是为了在CPU运行所述待调度的机器指令片段时,在JPl运行前,重新开始运行所述指令重组平台,这样,指令重组平台就可以继续分析下一段待调度的机器指令片段,从而通过重复本方法来完成对所有运行时指令的重组。
[0383]在步骤S105中,恢复所述指令运行环境可以包括:
[0384]从缓存栈中弹出指令运行相关的寄存器数据;其中地址寄存器保存的跳转指令的目标地址已经修改为以第二地址A"为入口地址的新的机器指令片段。
[0385]步骤S105执行后,恢复了所述指令运行环境,指令重组平台完成一次运行,CPU执行所述重组指令片段,即CPU将执行以第二地址A"为入口地址的机器指令片段。重组指令片段执行到第二跳转指令JP2时,所述指令重组平台重新得到CPU控制权(即执行步骤S101),此时第一跳转指令的目标地址已经得到,该目标地址为新的第一地址,继而重新执行步骤SlOl?步骤S105。[0386]下面结合图3,进一步说明指令重组过程和重组指令片段的生成过程。
[0387]图3中包括待调度的机器指令集合401 (例如已经载入内存中的某程序的机器指令),其中指令4012为第一跳转指令,如果指令4012的目标地址为变量,则首先假设指令4012指向机器指令4013 ;从第一跳转指令4012以前的包括第一跳转指令4012的所有待调度的机器指令构成了机器指令片段4011。
[0388]当指令重组方法运行后(指令重组平台411),首先缓存指令运行环境;然后获取(例如拷贝)机器指令片段4011 ;指令重组平台在第一跳转指令4012前插入了第二跳转指令4113,第二跳转指今4113指向指令重组平台411本身,从而生成了重组指令片段4111,重组指令片段的地址为A";将所述缓存的指令运行环境中的地址寄存器的值A修改为地址A";最后恢复所述指令运行环境。
[0389]指令重组平台411结束运行后,CPU执行以A"为地址的重组指令片段,当执行到第二跳转指令4113时,指令重组平台411会重新获得CPU控制权。此时,第一跳转指令4012的目标地址4013已经生成,该目标地址为新的第一地址,指令重组平台根据该目标地址重新开始执行步骤SlOl?步骤S105,继续分析后续的待调度的机器指令,从而完成了运行时指令重组的方法。
[0390]根据本发明另一个实施例,如图4所示,在步骤S102中,获取待调度的机器指令片段可以包括:
[0391]S1021,从地址寄存器(例如CPU地址寄存器)读取待调度的机器指令地址;
[0392]S1022,以跳转指令为检索目标,检索所述机器指令地址指向的机器指令及其后续指令,直到发现第一个跳转指令(称为第一跳转指令);所述跳转指令指能够改变机器指令顺序执行流程的机器指令,包括Jump指令、Call指令、Return指令等;
[0393]S1023,将所述第一跳转指令以及其之前的所有待调度的机器指令作为一个待调度的机器指令片段;将该机器指令片段保存在指令重组平台中,或其他指令重组平台能够读取的存储位置。
[0394]在本发明的其他实施例中,获取待调度的机器指令片段也可以以非跳转指令(例如写入指令、读取指令等)为检索目标,进一步切分机器指令片段。由于在这样的实施例中,也需要保证在待调度跳转指令执行后指令重组平台仍能够获取CPU控制权或执行权,所以跳转指令需要作为第二检索目标,从而得到粒度更小的机器指令片段。
[0395]根据本发明另一个实施例,在步骤S102和S103之间,所述运行时指令重组方法还可以包括:
[0396]利用指令集匹配所述待调度的机器指令片段,得到目标机器指令;所述指令集包括X86,MIPS和ARM指令集;和
[0397]按照预定的方式,修改所述目标机器指令。
[0398]不仅可以完成运行时指令监控,还可以进行其他处理过程,相关实施例将在后面详细介绍。
[0399]进一步的,为了提高指令重组方法的效率,可以将固定地址跳转指令所指向的待调度指令在步骤S102中一并获取。
[0400]根据本发明另一个实施例,提供一种运行时指令重组方法,该方法S300包括:
[0401]S301,缓存指令运行环境;所述指令运行环境包括地址寄存器,地址寄存器保存下一条将要运行的机器指令的地址,该地址为第一地址;
[0402]S302,获取待调度的机器指令片段;其中,待调度的机器指令片段的最后一条指令为第一跳转指令;
[0403]S303,在所述第一跳转指令前,插入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址,即执行该第二跳转指令后,执行步骤 S301 ;
[0404]S304,将所述地址寄存器中的第一地址修改为第二地址;
[0405]S305,恢复所述指令运行环境。
[0406]与之前的实施例中所提供的方法相比,区别在于:在步骤S302中,待调度的机器指令片段中可以包括多条跳转指令;跳转指令中只有一条参数地址跳转指令,称为第一跳转指令。
[0407]需要说明的是,跳转指令可以包括两类,参数地址跳转指令和常数地址跳转指令,其中,常数地址跳转指令的跳转地址为常数(即立即数),而参数地址跳转指令中的参数地址一般在跳转指令之前的一条机器指令中计算得到。
[0408]相似地,待调度的机器指令片段的最后一条指令为第一跳转指令;待调度的机器指令片段包括所述第一跳转指令以及其之前的所有待调度的机器指令。
[0409]进一步的,由于程序运行过程中所生成的机器指令具有很高的重复性,为了提高指令重组方法的效率,节省计算设备的计算资源(CPU资源),可以利用少量的存储空间来保存重组指令片段。
[0410]根据本发明另一个实施例,提供一种运行时指令重组方法。如图5所示,该方法S200包括:
[0411]S201,缓存指令运行环境;所述指令运行环境包括地址寄存器(例如CPU地址寄存器)(一般来说,指令运行环境是指CPU的所有寄存器,包括通用寄存器,状态寄存器,地址寄存器等),地址寄存器保存下一条将要运行的机器指令的地址,该地址为第一地址;
[0412]S202,利用所述第一地址查找地址对应表;所述地址对应表用于表不第一地址A指向的待调度指令片段是否具有已保存的重组指令片段,地址对应表的数据为地址对;
[0413]S203,如果找到相应的记录,将所述第一地址A(即地址寄存器的值A)修改为已保存的重组指令片段的地址A’ ;
[0414]S204,如果没有找到相应的记录,获取待调度的机器指令片段;其中,待调度的机器指令片段的最后一条指令为第一跳转指令;
[0415]S205,在所述第一跳转指令前,插入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址,即执行该第二跳转指令后,执行步骤 S201 ;
[0416]S206,将所述地址寄存器中的第一地址修改为第二地址;
[0417]S207,恢复所述指令运行环境。
[0418]进一步的,步骤S206还包括:利用第二地址A"与第一地址A在所述地址对应表中建立地址对(或一条记录)。具有地址A"的重组指令片段被保存在重组指令平台中,以
供重用。
[0419]本方法利用地址对应表,节省计算资源,提高运行时指令重组的效率。[0420]上述重组方法一般通过在待调度指令片段之中插入所需跳转指令完成,在本发明其他实施例中,也可以通过其他方式完成重组指令片段的生成。下面将结合实施例详细介绍。
[0421]根据本发明另一个实施例,提供一种指令重组方法,单独开辟存储位置保存第一跳转指令的目标地址。如图6所示,该方法SllO包括:
[0422]S111,缓存指令运行环境;
[0423]S112,从第一存储位置读取目标地址,根据目标地址获取待调度(即待执行)的机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0424]S113,在第一存储位置保存第一跳转指令的目标地址;
[0425]S114,将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址,即执行该第二跳转指令后,执行步骤Slll ;
[0426]S115,恢复所述指令运行环境,并跳转到第二地址继续执行。
[0427]其中,在步骤S112中,获取待调度的机器指令片段可以包括:
[0428]S1121、以跳转指令为检索目标,检索所述机器指令地址指向的机器指令及其后续指令,直到发现第一个跳转指令(称为第一跳转指令);
[0429]所述跳转指令指能够改变机器指令顺序执行流程的机器指令,包括Jump指令、Call指令、Return指令等;
[0430]S1122、将所述第一跳转指令以及其之前的所有待调度的机器指令作为一个待调度的机器指令片段;将该机器指令片段保存在指令重组平台中,或其他指令重组平台能够读取的存储位置。
[0431]在步骤S113中,目标地址即跳转指令的目标地址参数,其可以是立即数或变量参数,对于立即数保存其值,对于变量参数保存其地址/引用。当处理器即将执行某跳转指令时,其跳转目标地址已经计算完毕。
[0432]根据本发明另一个实施例,提供一种指令重组方法,针对非固定长度指令集进行反汇编和汇编处理。如图7所示,该方法包括:
[0433]S121,缓存指令运行环境;
[0434]S122,从第一存储位置读取目标地址,根据目标地址获取待调度指令片段:
[0435]从目标地址开始,获取待调度的一段机器指令,将该段机器指令进行反汇编,并将反汇编结果通过一个词法分析器进行处理并匹配是否其中包含跳转指令,如果不包含则继续获取下一段待调度的机器指令重复上述操作,直到匹配到跳转指令为止,该跳转指令为第一跳转指令;第一跳转指令以及之前的所有指令组成待调度指令片段;
[0436]S123,在第一存储位置保存第一跳转指令的目标地址;
[0437]S124,将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;本实施例中,该第一跳转指令和第二跳转指令皆为汇编指令;
[0438]S125,将生成的重组后的汇编代码通过汇编器生成对应的机器码;和
[0439]S126,恢复所述指令运行环境,并跳转到第二地址继续执行。
[0440]根据本发明另一个实施例,提供一种指令重组方法,以压栈指令替代或记录第一跳转指令。如图8所示,该方法S130包括:
[0441]S131,缓存指令运行环境;
[0442]S132,获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址;
[0443]S133,根据第一地址获取待调度/执行的机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0444]S134,替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;
[0445]S135,在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和
[0446]S136,恢复所述指令运行环境,并跳转到第二地址继续执行。
[0447]本领域普通技术人员可以理解,上述各个实施例中提供的功能或特征可以根据实际的需要叠加在同一个实施例中,这里就不再一一组合给出,下面只举一个例子进行示例性说明。
[0448]根据本发明另一个实施例,提供一种指令重组方法,如图9a所示,包括:
[0449](I)缓存指令运行环境,所述指令运行环境包括全部的CPU环境和内存环境;获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址(第零地址),将第一地址设置为第零地址;
[0450](2)利用第一地址来查找地址对应表(也称为地址查找表),如果找到记录,恢复所缓存的指令运行环境,并跳转到找到的对应地址(在地址对应表中的地址对内)继续执行;
[0451](3)如果没有找到记录,从第一地址开始获取待执行的机器指令片段,指令片段的结尾为跳转指令(跳转指令所在地址为第三地址);
[0452](4)从第一地址开始,将机器码进行反汇编,并将反汇编结果通过一个词法分析器进行处理,生成重组后的汇编代码,直到第三地址为止;
[0453](5)判断第三地址处的代码是否可以进一步处理,即第三地址处的跳转指令的目标地址为已知量(例如,立即数),如果可以,将第一地址设置为第三地址(或第三地址的目标地址),重新开始执行(3);
[0454](6)如果不可以,在生成的重组后的汇编代码最后,加入压栈指令记录当前第三地址的原始地址位置(即第三地址的值)和操作数,并在压栈指令之后加入跳转至重组平台开始的指令,即能够使步骤(I)再次开始执行;
[0455](7)将生成的重组后的汇编代码通过汇编器生成对应的机器码,并存储于重组地址空间中分配出的地址(第二地址),并将第二地址和第零地址以对应地址对的形式存储于地址对应表中;
[0456](8)恢复环境,并跳转到第二地址继续执行。
[0457]为了方便理解,现以X86体系处理器运行该实施例提供的方法进行说明,参考图9b-9d,指令重组的一个示例过程如下:
[0458](I)重组平台开始工作后,首先缓存当前指令运行环境;获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址。[0459](2)利用第一地址来查找地址对应表,如果找到记录,恢复所缓存的指令运行环境,并跳转到找到的对应地址继续执行(图%);如果没有找到记录,进行如下操作(图9c)。
[0460](3) - (6)从第一地址开始,将机器码进行反汇编,并将反汇编结果通过一个词法分析器进行处理,生成重组代码;
[0461]对该段汇编代码进行检索,检查是否包含跳转指令;
[0462]对第一个跳转指令进行分析,判断其跳转目标地址是否为已知量,如果是已知量,则继续寻找,直到找到第一条参数地址跳转指令,称为第一跳转指令,该指令的地址为第三地址;
[0463]在生成的汇编代码(从第一地址到第三地址的机器指令,不包括第一跳转指令)最后加入压栈指令记录当前第三地址的第一跳转的原始地址位置和操作数;
[0464]在压栈指令之后加入跳转至重组平台开始的指令(第二跳转指令)。
[0465](7)将生成的汇编代码通过汇编器生成对应的机器码,并存储于重组地址空间中分配出的地址(第二地址);
[0466]将第二地址和第零地址以对应地址对的形式存储于地址对应表中。
[0467](8)恢复环境,并跳转到第二地址继续执行。
[0468](图9d)处理器开始执行第二地址的指令,之前的待重组指令片段中的跳转指令已经替换为压栈指令和跳转去重组平台的指令,压栈指令主要的目的是向重组平台提供输入参数。(图9d)当执行到第二跳转指令时,重组平台重新得到执行,进行上述的步骤(I),通过查看压栈指令中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址。
[0469]之后的处理即上述过程的循环。
[0470]进一步的,为了从系统启动后即执行运行时的指令监控,实现计算设备运行阶段的运行时指令全监控,本发明另一个实施例中,修改计算机启动时的load指令,在load指令执行前调用本发明提供的指令重组平台,执行上述运行时指令重组方法,由于load指令跳转地址为已知的固定地址,指令重组平台可以事先建立好地址对应表及该第一条记录,并建立好第一个重组指令片段。
[0471]进一步的,根据本发明另一个实施例,提供一种计算机可读介质,其中,所述可读介质中存储有计算机可执行的程序代码,所述程序代码用于执行上述实施例中提供的运行时指令重组方法的步骤。
[0472]进一步的,根据本发明另一个实施例,提供一种计算机程序,其中,所述计算机程序包含上述实施例中提供的运行时指令重组方法的步骤。
[0473]针对数据安全的指令重组
[0474]上述的运行时指令重组方法为进一步的应用提供了基础。下面的实施例中提供了各种针对不同机器指令进行处理的运行时指令重组方法,其中包括存储/读取指令,I/O指令,以及网络传输指令:
[0475](I)存储/读取指令指计算机系统中所有对外部存储设备(包括但不限于磁盘、移动存储、光存储)进行存储/读取的指令或指令组合。
[0476](2) I/O指令指计算机系统中所有操作外设的地址空间的指令,这些指令最终会影响外设输入输出状态、数据、信号等。这里的输入输出地址空间包括但不限于(I/O地址空间、内存映射I/O设备地址空间)。
[0477](3)网络传输指令指计算机系统中所有影响网络设备的指今,这些指令最终会影响计算机系统网络设备的传输、状态、数据、信号等所有相关特性。
[0478]其中,存储/读取指令与I/O指令之间可以存在交集。
[0479]根据本发明一个实施例,提供一种针对存储/读取指令的运行时指令重组方法S400,包括:
[0480]S401,缓存指令运行环境;所述指令运行环境包括地址寄存器,地址寄存器保存下一条将要运行的机器指令的地址,该地址为第一地址;
[0481]S402,利用所述第一地址查找地址对应表;
[0482]S403,如果找到相应的记录,将所述第一地址A修改为已保存的重组指令片段的地址A’ ;
[0483]S404,如果没有找到相应的记录,重组指令片段的生成方法包括:
[0484]S4041,获取待调度机器指令片段;其中,待调度的机器指令片段的最后一条指令为第一跳转指令;与步骤S102相同;
[0485]S4042,反汇编所述待调度机器指令片段,得到汇编指令片段;
[0486]S4043,检索目标汇编指令,所述目标汇编指令为存储/读取指令;
[0487]S4044,如果检索得到所述汇编指令片段中的存储/读取指令,修改其中的存储和读取地址为安全存储设备上的地址;修改方式可以为本地地址空间和安全存储设备地址空间之间的直接映射;
[0488]S4045,在所述第一跳转指令JPl前,插入第二跳转指令JP2,所述JP2指向指令重组平台的入口地址;
[0489]S4046,汇编修改过的汇编指令片段,生成具有地址A"的重组机器指令片段;
[0490]S4047,利用重组机器指令片段地址A"与第一地址A在所述地址对应表中建立一条记录(或地址对),具有地址A"的重组指令片段被保存在重组指令平台中;
[0491]S4048,将第一地址A修改为第二地址A";
[0492]S405,恢复所述指令运行环境。
[0493]本实施例是在反汇编步骤之后进行指令处理的;在其他实施例中,也可以省略反汇编和对应的汇编步骤,直接处理机器指令。
[0494]在步骤S4044中,针对存储和读取指令进行操作,修改其中的目标和源地址,以实现存储重定位/重定向,确保数据安全。更具体的安全存储/读取的方法将在本发明提供的下面的实施例中介绍。
[0495]根据本发明一个实施例,提供一种针对I/O指令的运行时指令重组方法S500,包括:
[0496]S501,缓存指令运行环境;所述指令运行环境包括地址寄存器,地址寄存器保存下一条将要运行的机器指令的地址,该地址为第一地址;
[0497]S502,利用所述第一地址查找地址对应表;
[0498]S503,如果找到相应的记录,将所述第一地址A修改为已保存的重组指令片段的地址A’ ;[0499]S504,如果没有找到相应的记录,重组指令片段的生成方法包括:
[0500]S5041,获取待调度机器指令片段;其中,待调度的机器指令片段的最后一条指令为第一跳转指令;与步骤S102相同;
[0501]S5042,反汇编所述机器指令片段,得到汇编指令片段;
[0502]S5043,检索目标汇编指令,所述目标汇编指令为I/O指令;
[0503]S5044,如果检索得到所述汇编指令片段中的I/O指令,将所述I/O指令中的输入指令全部阻止;
[0504]S5045,在所述第一跳转指令JPl前,插入第二跳转指令JP2,所述JP2指向指令重组平台的入口地址;
[0505]S5046,汇编修改过的汇编指令片段,生成具有地址A"的重组机器指令片段;
[0506]S5047,利用重组机器指令片段地址A"与第一地址A在所述地址对应表中建立一条记录(或地址对),具有地址A"的重组指令片段被保存在重组指令平台中;
[0507]S5048,将第一地址A修改为第二地址A";
[0508]S505,恢复所述指令运行环境。
[0509]本实施例是在反汇编步骤之后进行指令处理的;在其他实施例中,也可以省略反汇编和对应的汇编步骤,直接处理机器指令。
[0510]在步骤S5044中,针对I/O指令进行操作,将所述I/O指令中的输入指令全部阻止,以实现彻底阻断对本地硬件设备的写操作;结合上一个实施例中的存储指令处理过程,还可以实现对除存储指令之外的输入指令的阻止,可以提高计算设备中的数据安全性。
[0511]根据本发明一个实施例,提供一种针对网络传输指令的运行时指令重组方法S600,包括:
[0512]S601,缓存指令运行环境;所述指令运行环境包括地址寄存器,地址寄存器保存下一条将要运行的机器指令的地址,该地址为第一地址;
[0513]S602,利用所述第一地址查找地址对应表;
[0514]S603,如果找到相应的记录,将所述第一地址A修改为已保存的重组指令片段的地址A’ ;
[0515]S604,如果没有找到相应的记录,重组指令片段的生成方法包括:
[0516]S6041,获取待调度机器指令片段;其中,待调度的机器指令片段的最后一条指令为第一跳转指令;与步骤S102相同;
[0517]S6042,反汇编所述待调度机器指令片段,得到汇编指令片段;
[0518]S6043,检索目标汇编指令,所述目标汇编指令为网络传输指令;
[0519]S6044,如果检索得到所述汇编指令片段中的网络传输指令,检验所述网络传输指令中的目标地址对应的远端计算设备是否为安全地址(即可访问地址),如果不是,阻止所述网络传输指令;
[0520]S6045,在所述第一跳转指令JPl前,插入第二跳转指令JP2,所述JP2指向指令重组平台的入口地址;
[0521]S6046,汇编修改过的汇编指令片段,生成具有地址A"的重组机器指令片段;
[0522]S6047,利用重组机器指令片段地址A"与第一地址A在所述地址对应表中建立一条记录(或地址对),具有地址A"的重组指令片段被保存在重组指令平台中;[0523]S6048,将第一地址A修改为第二地址A";
[0524]S605,恢复所述指令运行环境。
[0525]在步骤S6044中,阻止/拒绝网络传输指令可以通过在重组后的代码中插入一到多条指令来将本身的传输指令替换为“取消当前操作的指令”或直接替换为无效指令,要视硬件的不同而定。
[0526]本实施例是在反汇编步骤之后进行指令处理的;在其他实施例中,也可以省略反汇编和对应的汇编步骤,直接处理机器指令。
[0527]在步骤S6044中,针对网络传输指令进行操作,检验所述网络传输指令中的目标地址对应的远端计算设备是否为安全地址;如果不是,阻止所述网络传输指令,以实现数据安全传输。
[0528]上述多个实施例中的地址对应表是由指令重组平台建立并维护的,可以是固定长度的数组结构,也可以是可变长度的链表结构,还可以是其他存储二元数据的适当的数据结构。优选的,其长度可调节,并且其占用空间可释放。释放地址对应表的操作可以随机进行,也可以周期进行。在一些实施例中,所述的地址对应表还可以包括记录建立时间字段,用于在释放空间删除记录时,按照建立时间的长短删除记录。在一些实施例中,所述的地址对应表还可以包括记录使用次数字段,在查找地址对应表步骤中,如果找到,将改变该字段的值;所述记录使用次数字段也用于在释放空间删除记录时,按照使用次数的多少删除记录。
[0529]另外,本领域的技术人员可以理解,上述指令重组方法(即运行时指令重组方法)可使用软件或硬件的方法实现:
[0530](I)如果以软件实现,则上述方法对应的步骤以软件代码的形式存储在计算机可读介质上,成为软件产品;
[0531](2)如果以硬件实现,则上述方法对应的步骤以硬件代码(例如Verilog)描述,并固化(经过物理设计/布局布线/晶圆厂流片等过程)成为芯片产品(例如处理器产品)。下面将详细介绍。
[0532]指令重组装置
[0533]与上述运行时指令重组方法SlOO相对应,根据本发明一个实施例,提供一种运行时指令重组装置。如图10所示,指令重组装置500包括:
[0534]指令运行环境缓存和恢复单元501,适于缓存和恢复指令运行环境;所述指令运行环境包括地址寄存器,该地址寄存器保存下一条将要运行的机器指令的地址,该地址为第一地址;
[0535]指令获取单元502,适于在单元501缓存指令运行环境后,获取待调度的机器指令片段;其中,待调度的机器指令片段的最后一条指令为第一跳转指令;
[0536]指令重组单元503,适于解析、修改所述待调度的机器指令片段,包括:在第一跳转指令前,插入第二跳转指令,生成具有第二地址A"的重组指令片段;所述第二跳转指令指向装置500,即执行该第二跳转指令后,装置500的指令运行环境缓存和恢复单元501进行下一次处理;和
[0537]地址替换单元504,适于将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址。[0538]所述指令运行环境缓存和恢复单元501分别与指令获取单元502以及地址替换单元504耦接,所述指令获取单元502,指令重组单元503和地址替换单元504依次耦接。
[0539]装置500执行过程如下:
[0540]首先,指令运行环境缓存和恢复单元501缓存指令运行环境,例如向缓存栈中压入指令运行相关的寄存器数据;
[0541]然后,所述指令获取单元502从CPU地址寄存器511读取待调度的机器指令地址,并从所述机器指令地址读取机器指令片段,所述机器指令片段最后一条指令为跳转指令;
[0542]例如,指令获取单元502从CPU地址寄存器511读取待调度的机器指令地址;以跳转指令为检索目标,检索所述机器指令地址对应的机器指令,直到发现第一个跳转指令;所述跳转指令包括例如Jump指令和Call指令等;将所述第一个跳转指令及其之前的所有机器指令作为一个待调度的机器指令片段;将该机器指令片段保存在装置500中,或其他的装置500能够读取的存储位置;
[0543]然后,指令重组单元503在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向装置500的入口地址,生成具有地址A"的重组指令片段;
[0544]然后,地址替换单元504将所述缓存的指令运行环境中的地址寄存器的值A修改为地址A";
[0545]最后,指令运行环境缓存和恢复单元501恢复所述指令运行环境,例如从缓存栈中弹出指令运行相关的寄存器数据。
[0546]与上述运行时指令重组方法S300相对应,所述指令获取单元502可以将第一个非常数地址跳转指令作为第一跳转指令。以提高重组装置的执行效率。
[0547]与上述运行时指令重组方法S200相对应,根据本发明另一个实施例,提供一种运行时指令重组装置,能够充分利用运行时指令重复性,提高效率,节省计算资源。
[0548]如图11所示,指令重组装置600包括:
[0549]指令运行环境缓存和恢复单元601,适于缓存和恢复指令运行环境;所述指令运行环境包括地址寄存器,地址寄存器保存下一条将要运行的机器指令的地址,该地址为第一地址;
[0550]指令获取单元602,适于获取待调度的机器指令片段;其中,待调度的机器指令片段的最后一条指令为第一跳转指令;
[0551]指令重组单元603,适于解析、修改所述待调度机器指令片段,包括:在第一跳转指令前插入第二跳转指令,以生成具有第二地址的重组指令片段;所述第二跳转指令指向装置600,即执行该第二跳转指今后,装置600的指令运行环境缓存和恢复单元601进行下一次处理;
[0552]地址替换单元604,适于将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;和
[0553]指令检索单元605,适于利用所述第一地址查找地址对应表;所述地址对应表用于表示第一地址A指向的待调度指令片段是否具有已保存的重组指令片段,地址对应表的数据为地址对;
[0554]如果找到相应的记录,指令检索单元605适于调用地址替换单元604,将所述第一地址A(即地址寄存器的值A)修改为已保存的重组指令片段的地址A’ ;如果没有找到相应的记录,指令检索单元适于利用第二地址A"与地址A在所述地址对应表中建立一条记录。
[0555]所述指令运行环境缓存和恢复单元601分别与指令检索单元605以及地址替换单元604耦接,所述指令检索单元605分别与指令获取单元602,指令重组单元603和地址替换单元604耦接,所述指令获取单元602、指令重组单元603和地址替换单元604依次耦接。
[0556]装置600的执行过程如下:
[0557]首先,指令运行环境缓存和恢复单元601缓存指令运行环境,例如向缓存栈中压入指令运行相关的寄存器数据;
[0558]然后,指令检索单元605利用所述缓存的指令运行环境中的地址寄存器的值A查找地址对应表;
[0559]如果找到相应的记录,指令检索单元605调用地址替换单元604,地址替换单元604将所述地址寄存器的值A修改为记录中的值A’ ;地址替换单元604调用指令运行环境缓存和恢复单元602,以恢复所述指令运行环境,即从缓存栈中弹出指令运行相关的寄存器数据,本次重组操作结束;
[0560]如果没有找到相应的记录,所述指令获取单元602从CPU地址寄存器读取待调度的机器指令地址,并从所述机器指令地址读取机器指令片段,所述机器指令片段最后一条指令为跳转指令。具体的,指令获取单元602从CPU地址寄存器读取待调度的机器指令地址;以跳转指令为检索目标,检索所述机器指令地址对应的机器指令,直到发现第一个跳转指令;所述跳转指令包括Jump指令和Call指令等;将所述第一个跳转指令及其之前的所有机器指令作为一个待调度的机器指令片段;将该机器指令片段保存在装置600中,或其他的装置600能够读取的存储位置;
[0561]然后,指令重组单元603在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向装置600的入口地址,生成具有地址A"的重组指令片段;
[0562]然后,指令重组单元603将地址A"发送给指令检索单元605,指令检索单元605利用地址A"与地址A在其中的地址对应表中建立一条记录;以备后续指令重用;
[0563]然后,地址替换单元604将所述缓存的指令运行环境中的地址寄存器的值A修改为地址A";
[0564]最后,指令运行环境缓存和恢复单元601恢复所述指令运行环境,即从缓存栈中弹出指令运行相关的寄存器数据。
[0565]继续参考图11,其中,指令重组单元603还可以包括:
[0566]指令解析单元6031,适于利用指令集匹配所述机器指令片段,得到待处理的目标机器指今(即利用目标指令检索待调度的机器指令片段);所述指令集包括X86,MIPS和ARM指令集;
[0567]指令修改单元6032,适于按照预定的方式,修改所述目标机器指令。
[0568]例如,如果所述目标指令为存储/读取指令,所述指令解析单元6031将负责获取待调度的机器指令片段中的存储/读取指今,所述指令修改单元6032修改其中的存储和读取地址为安全存储设备上的地址。其作用和效果与上述对应的方法实施例S400相同,这里不再赘述。
[0569]又例如,如果所述目标指令为I/O指令,所述指令解析单元6031将负责获取待调度的机器指令片段中的I/o指令,所述指令修改单元6032将所述I/O指令中的输入指令全部阻止。其作用和效果与上述对应的方法实施例S500相同,这里不再赘述。
[0570]又例如,如果所述目标指令为网络传输指令,所述指令解析单元6031将负责获取待调度的机器指令片段中的网络传输指令,所述指令修改单元6032检验所述网络传输指令中的目标地址对应的远端计算设备是否为安全地址;如果不是,所述指令修改单元适于阻止所述网络传输指令。其作用和效果与上述对应的方法实施例S600相同,这里不再赘述。
[0571]根据本发明另一个实施例,上述指令重组单元还可以包括反汇编单元和汇编单元。如图12所示,指令重组单元703包括:依次稱接的反汇编单元7031,指令解析单元7032,指令修改单元7033和汇编单元7034。
[0572]其中,反汇编单元7031适于在解析、修改所述待调度的机器指令片段之前,反汇编所述待调度的机器指令片段,生成待调度的汇编指令片段;发送给指令解析单元7032。
[0573]汇编单元7034适于在解析、修改所述待调度的机器指令片段之后,汇编重组后的汇编指令片段,得到机器码表示的重组指令片段;发送给指令替换单元。
[0574]在该实施例中,所述指令解析单元7032和指令修改单元7033将操作待调度的汇编指令片段。
[0575]与上述运行时指令重组方法SllO相对应,根据本发明另一个实施例,提供一种运行时指令重组装置。如图13所示,指令重组装置800包括:
[0576]指令运行环境缓存和恢复单元801,适于缓存指令运行环境;
[0577]指令获取单元802和第一存储位置803,其中,指令获取单元802适于从第一存储位置803读取目标地址,并根据目标地址获取待调度/执行的机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;以及
[0578]指令重组单元804,适于在第一存储位置803保存第一跳转指令的目标地址,将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向装置800的入口地址。
[0579]其中,指令运行环境缓存和恢复单元801还适于在指令重组单元804替换指令之后,恢复所述指令运行环境,并跳转到第二地址继续执行。
[0580]装置800的执行过程如下:
[0581]首先,指令运行环境缓存和恢复单元801缓存指令运行环境;
[0582]然后,指令获取单元802从第一存储位置803读取目标地址(待调度指令地址),根据目标地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0583]然后,指令重组单元804在第一存储位置803保存第一跳转指令的目标地址;对于立即数保存其值,对于变量参数保存其地址/引用;
[0584]然后,指令重组单元804将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;
[0585]最后,指令运行环境缓存和恢复单元801恢复所述指令运行环境,并跳转到第二地址继续执行。
[0586]根据本发明另一个实施例,提供一种运行时指令重组装置,与上述方法S130相对应,并且包含上述某些实施例中提供的装置的特征。如图14所示,该装置900包括:
[0587]指令运行环境缓存和恢复单元901,适于缓存和恢复指令运行环境;
[0588]指令获取单元902,适于通过输入参数计算的方式获取下一条即将运行的指令地址,该地址为第一地址;还适于根据第一地址获取待调度/执行的机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0589]指令重组单元903,适于替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;还适于在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向装置900的入口地址;还适于将重组指令片段的第二地址与第一地址在地址对应表中建立一条记录;
[0590]指令检索单元904,适于利用所述第一地址查找地址对应表;所述地址对应表用于表示第一地址指向的待调度指令片段是否具有已保存的重组指令片段,地址对应表的数据为地址对;
[0591]如果找到相应的记录,指令检索单元904适于调用指令运行环境缓存和恢复单元901恢复所缓存的指令运行环境,并跳转到找到的对应地址继续执行(重组操作完成);
[0592]如果没有找到相应的记录,调用指令重组单元903进行重组操作。
[0593]其中,指令重组单元903还可以包括反汇编单元9031,指令解析单元9032,指令修改单元9033,和汇编单元9034。
[0594]其中,当指令重组单元902完成重组后,适于调用指令运行环境缓存和恢复单元901恢复所缓存的指令运行环境,并跳转到重组指令片段的地址继续执行(本次重组操作完成)。
[0595]根据本发明另一个实施例,上述反汇编单元9031可以位于指令获取单元902之中,在获取待调度的指令片段时由其进行反汇编操作。
[0596]本领域技术人员可以理解,上述装置实施例的附图中的数据流的箭头只是为了便于解释上述实施例中的具体操作流程,并不限定图中各个单元之间的数据流向或者连接方向,装置中各个单元之间为耦接关系。
[0597]上面通过一些实施例详细的介绍了运行时指令重组方法和装置,其与现有技术相t匕,具有以下优点:
[0598]通过指令重组方法,可以在指令运行状态下监控计算设备的指令;
[0599]利用地址对应表,提高了指令重组效率,节省了计算资源;
[0600]针对存储和读取指令进行操作,修改其中的目标和源地址,以实现存储重定位/重定向,确保数据安全;
[0601]针对I/O指令进行操作,将所述I/O指令中的输入指令全部阻止,以实现彻底阻断对本地硬件设备的写操作;还可以实现对除存储指令之外的输入指令的阻止,可以提高计算设备中的数据安全性;
[0602]针对网络传输指令进行操作,检验所述网络传输指令中的目标地址对应的远端计算设备是否为安全地址;如果不是,阻止所述网络传输指令,以实现数据安全传输。
_3] 数据安全存取过程[0604]图15是本发明一个实施例中计算设备的系统层次示意图。
[0605]其中,计算设备(例如计算机终端系统)200包括:用户界面层201,应用层202,操作系统内核层203,硬件映射层204,安全层205,和硬件层206。
[0606]其中,硬件层206进一步包括CPU2061,硬盘2062(即本地存储设备)以及网卡2063。
[0607]另外,计算设备200与存储设备10 (又称为安全存储设备)耦接。
[0608]本实施例中,存储设备10为远程磁盘阵列,通过网络连接硬件层206的网卡2063,与计算设备200交换数据。在本发明的其他实施例中,存储设备10也可以是其他已知或未知类型的存储设备。
[0609]其中,硬盘2062也可以替换为其他类型的本地存储设备,例如u盘和光盘等,这里只是举例说明,并无限制目的。
[0610]结合上述层次结构,本实施例提供的数据安全存取过程包括:
[0611]S1000,初始化;
[0612]S2000,数据写入;和
[0613]S3000,数据读取。
[0614]参考图16,上述的初始化过程S1000包括:
[0615]S1010,建立计算机终端系统200与安全存储设备10的通讯;
[0616]S1020,从安全存储设备10上同步映射位图(Bitmap)至当前计算机终端系统200,例如保存在计算机终端系统200内存中;所述映射位图用于表示本地存储设备的数据是否已经存储到安全存储设备;
[0617]S1030,如果步骤S1020的同步操作失败,在安全存储设备10上建立Bitmap并初始化,然后同步到计算机终端系统200。
[0618]其中,为了区分计算机终端200上的Bitmap与存储设备10上的Bitmap,下文中,除非另有说明,将计算机终端系统200(也可以称为计算设备)上的Bitmap称为映射位图或第一映射位图,将安全存储设备10上的Bitmap称为第二映射位图。
[0619]在步骤S1020中,如果从存储设备10上同步第二映射位图至当前计算机终端系统200的操作失败,说明存储设备10与计算机终端系统200之间是第一次连接。
[0620]其中,步骤S1030可以包括:
[0621]将计算机终端系统200中的本地存储空间映射到存储设备10上,映射关系为以I扇区(或其他存储的基本单位)为单位的一一映射,并且建立映射位图(Bitmap)。
[0622]在本发明的其他实施例中,也可以使用其他基本容量为单位建立本地存储空间到存储设备100上的Bitmap。
[0623]图17为本发明一个实施例中的Bitmap示意图。图中包括本地存储设备(例如图15中的硬盘2062)上的存储介质3000,与本地存储设备网络连接的存储设备10上的存储介质4000。
[0624]建立Bitmap的过程描述如下。对存储介质3000,在存储介质4000上建立与其大小相同的存储空间4010,作为——映射空间。在存储空间4010中保存Bitmap4020,Bitmap4020为一张位图,其中I位代表I扇区,每一位的数据(0或I)标识/指示存储介质3000上对应的扇区是否转储或对应存储在存储介质4000上的存储空间4010中,所以映射位图也可以称为转储表。存储设备10上的Bitmap4020建立完成之后同步到计算机终端系统200中。
[0625]更新Bitmap的过程描述如下。在Bitmap4020中,转储的扇区标记为I,非转储的扇区没有标记(转储扇区和非转储扇区所使用的标记可以自由选择)。当应用程序或操作系统保存一个数据(例如文件时),操作系统内部的文件系统将在本地存储设备的存储介质3000上开辟一定量的存储空间,例如扇区3040和扇区3050,并分配给该文件使用,并改写本地的文件分配表。该文件转储时(即写入扇区3040和扇区3050的数据被存储到存储设备10上时),在存储介质4000上相同的位置分配扇区4040和4050,并在其中保存转储数据,最后将Bitmap4020中扇区3040和扇区3050对应的位数据改为I。
[0626]结合图15,上述的数据写入过程S2000进一步包括:
[0627]S2010,应用层202通过操作系统内核层203的文件系统发出写文件操作请求,或操作系统内核层203直接发出写文件操作请求;或
[0628]应用层202直接向硬件映射层204发出写数据操作请求,或操作系统内核层203直接向硬件映射层204发出写数据操作请求;
[0629]S2020,操作系统内核层203将写文件请求解析成硬件端口指令(即硬件指令),下发至硬件映射层204,其中端口指令包含需要写存储设备的位置(例如扇区);
[0630]需要注意的是,如果步骤S2010是直接向硬件映射层204发出写数据操作请求,则该请求已经为硬件端口指令;
[0631]S2030,安全层205接收来自硬件映射层204的硬件端口指令,并且将端口指令中的写入位置(即扇区)改写为位于存储设备10上的对应存储地址,然后更新第一映射位图,例如将所述扇区对应的位数据修改为1,表示该扇区已经转储;安全层205将修改后的端口指令发送给硬件层206。
[0632]写入过程执行完成之后,计算机终端系统200并没有存储写入的数据,相应的数据已经重定位存储在安全存储设备10上。
[0633]在本发明的另一个实施例中,如果写本地硬盘指令本身与写网络硬盘指令不同,那么不仅需要改地址,还需要改存储指令。
[0634]根据本发明另一个实施例,写入过程S2000还可以包括:
[0635]S2040,将第一映射位图同步到存储设备10上,保存为第二映射位图,从而确保计算机终端系统200上的第一映射位图与存储设备上的第二映射位图一致。
[0636]在本发明的其他实施例中,为了节省系统资源,S2040也可以在本地的计算机终端系统200关机前统一进行一次。
[0637]结合图15,上述的数据读取过程S3000进一步包括:
[0638]S3010,将存储设备10上的第二映射位图同步到计算机终端系统200上,保存为第一映射位图;
[0639]S3020,应用层202通过操作系统内核层203的文件系统发出读文件操作请求,或操作系统内核层203直接发出读文件操作请求;或
[0640]应用层202直接向硬件映射层204发出读数据操作请求,或操作系统内核层203直接向硬件映射层204发出读数据操作请求;
[0641]S3030,安全层205接收来自硬件映射层204的数据读取指令,获取其中的读取地址(源地址),查找第一映射位图,如果第一映射位图中的位数据表示所述读取地址为转储地址,安全层205修改端口指令的读取地址为存储设备10上的地址;安全层205将修改后的端口指令发送给硬件层206。
[0642]该读取过程没有影响用户既有的操作模式,实现了对于安全存储设备(即存储设备10)上已经转储的数据的读取。
[0643]在步骤S3010中,从存储设备10同步第二映射位图到本地的过程是为了在计算机终端系统200重新启动了以后,保持本地数据与安全存储设备上的数据的一致性。
[0644]本领域技术人员可以理解,对于上述的数据写入、读取过程以及初始化过程,根据实际需要执行所需的过程或步骤即可。
[0645]数据安全存取方法
[0646]基于上述数据写入过程和读取过程,下面详细描述本发明提供的数据安全存储和读取方法。
[0647]本领域技术人员可以理解,上面结合图15来说明数据的读取和存储过程是为了方便理解,并不是限定,在本发明其他实施例中,可以在计算设备的适合层次上执行以上描述的各个步骤。
[0648]根据本发明一个实施例,提供一种数据安全存储方法;如图18所示,该方法包括如下步骤:
[0649]S4010,接收硬件指令;
[0650]S4020,分析并判断该硬件指令是否为存储指令;
[0651]S4030,如果该硬件指令是存储指令,修改存储指令中的目标地址为对应的存储设备(即安全存储设备)上的存储地址;
[0652]S4040,将修改后的存储指令发送到硬件层。
[0653]在步骤S4010中,所述硬件指令可以是来自硬件映射层的硬件指令。接收来自硬件映射层的硬件指令可以100%的筛查所有发送到CPU等处理器的硬件指令(接口指令)。
[0654]其中,在计算机终端系统上,可以运行Windows操作系统,Windows系统中的硬件抽象层HAL为硬件映射层。在其他实施例中,计算机终端也可以运行其他操作系统,例如Linux, Unix或嵌入式操作系统等,硬件映射层为Linux或Unix或嵌入式操作系统对应的硬件映射层。
[0655]在步骤S4010中,结合上述运行时指令重组方法,接收硬件指令的过程可以包括:采用运行时指令重组方法(例如S101-S105)获取硬件指令。换一种说法,就是可以在运行时指令重组方法获取到机器指令时,处理存储和读取指令(例如S404,S504,或S604)。通过运行时指令重组方法,可以不仅将计算最终结果重定位存储到安全存储设备,还能够将计算的中间过程(包括操作系统产生的中间过程)全部重定位存储到安全存储设备。
[0656]在步骤S4010和S4020中,硬件指令可以为X86指令、ARM指令、MIPS指令等类型,可以在计算终端中内置分析机制,以处理不同类型的CPU指令。
[0657]根据本发明另一个实施例,在步骤S4030之后,还可以包括:
[0658]S4050、更新第一映射位图,将目标地址(扇区)在第一映射位图中对应的“位”设置为转储标记,例如“ I ”;并且,将已经更新的映射位图同步到所述安全存储设备,保存为第二映射位图。[0659]本实施例中,转储操作对于上层应用以及用户完全透明,不影响现有计算机操作、应用系统的工作流程。
[0660]本实施例提供的上述方法不仅可以在计算机终端系统中使用,还可以应用在任何包含应用层、操作系统内核层、硬件层的计算设备和智能终端上,在硬件层执行指令前,实现指今级存储重定位/重定向(即基于硬件存储指令的存储重定位/重定向)。
[0661]根据本发明一个实施例,提供一种数据安全读取方法;参考图19,该方法包括:
[0662]S5010,接收硬件指今;
[0663]S5020,分析并判断该硬件指令是否为读取指令;
[0664]S5030,如果是读取指令,获取读取指令中的源地址,查找第一映射位图,并根据映射位图的数据修改读取指令中的读取地址;和
[0665]S5040,将修改后的硬件指令发送到硬件层。
[0666]步骤S5010之前,该方法还可以包括S5000:将存储设备上的第二映射位图同步到计算机终端系统200上,保存为第一映射位图。
[0667]步骤S5010中,所述的硬件指令可以来自硬件映射层。
[0668]在步骤S5010中,结合上述运行时指令重组方法,接收硬件指令的过程可以包括:采用运行时指令重组方法(例如S101-S105)获取硬件指令。换一种说法,就是可以在运行时指令重组方法获取到机器指令时,处理存储和读取指令(例如S400)。
[0669]步骤S5020中,如果该硬件指令不是读取指令,则可以直接将硬件指令发送给硬件层去执行。
[0670]步骤S5030还可以进一步分解为两步骤:
[0671]S5031,如果是读取指令,获取读取指令中的源地址,判断所述源地址是否为存储设备上的地址;
[0672]S5032,如果所述源地址不是存储设备上的地址,查找第一映射位图,并根据映射位图的数据修改读取指令中的读取地址。
[0673]步骤S5031中,如果该读取指令的源地址已经为存储设备上的地址,则计算设备(例如图15中的安全层205)不用再次查找第一映射位图中的数据,可以直接将硬件指令发送给硬件层去执行。
[0674]进一步的,为了节约网络资源,在本发明的一些实施例中,安全存储设备10可以作为多个终端系统的共享资源。
[0675]上面曾经提到可以将数据安全存储和读取方法与指令重组方法结合,为了方便理解,下面通过实施例详细介绍。
[0676]根据本发明一个实施例,提供一种数据安全存取方法。如图20所示,该方法S6000包括:
[0677]S6010,缓存指令运行环境;
[0678]S6011,从第一存储位置读取目标地址,根据目标地址获取待调度/执行的机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;
[0679]S6012,在第一存储位置保存第一跳转指令的目标地址;
[0680]S6013,分析并判断待调度机器指令中的每一条指令是否为存取指令;
[0681]S6014,如果是存取指令:[0682]对于存储指令,修改存储指令中的目标地址为对应的存储设备(即安全存储设备)上的存储地址;并修改第一映射位图;
[0683]对于读取指令,获取读取指令中的源地址,查找第一映射位图,并根据映射位图的数据修改读取指令中的读取地址;
[0684]如果写本地硬盘指令本身与写网络硬盘指令不同或者读取本地硬盘指令本身与读取网络硬盘指令不同,那么不仅需要修改地址,还需要相应的修改存储指令或读取指令;
[0685]S6015,将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;
[0686]S6016,恢复所述指令运行环境,并跳转到第二地址继续执行。
[0687]本领域技术人员可以理解,该实施例只是为了说明而举例,并不限制安全读取方法、安全存储方法和指令重组方法的组合方式,上述介绍的各种安全读取方法、安全存储方法和指令重组方法可以以各种所需的方式组合使用。
[0688]存储和读取一般是针对本地的存储设备进行的数据交换;传输一般是指通过网络设备进行的数据交换。
[0689]进一步的,本发明一个实施例中提供一种数据安全传输方法。
[0690]如图21所示,该方法包括:
[0691]S7010,接收(例如来自硬件映射层的)硬件指令;
[0692]S7020,分析并判断该硬件指令是否为网络传输指令;
[0693]S7030,如果该硬件指令是传输指令,读取目标地址;
[0694]S7040,判断目标地址是否为安全地址;
[0695]S7050,如果是安全地址,将硬件指令发送到硬件层;如果不是安全地址,拒绝该指令;
[0696]S7060,硬件层发送传输指令和数据到目标地址的终端系统;
[0697]S7070,目标地址的终端系统接收并利用数据安全存储方法保存数据。
[0698]在步骤S7040中,判断目标地址是否为安全地址的方法如下。参考图22,安全服务器820通过网络与终端系统800、810连接,终端系统800、810在部署本发明上述实施例中提供的数据安全传输方法时,都已经向安全服务器820进行了注册操作。安全服务器820内部维护一个安全地址表,记录了已经注册的所有终端系统。
[0699]当安全地址表有更改的时候,安全服务器820自动将更新的安全地址表发送给各个终端,终端系统800的架构包括应用层801,操作系统内核层802,安全层803以及硬件层804,安全层803负责维护该安全地址表。
[0700]安全层803将根据目标地址是否在安全地址表中,判断目标地址是否为安全地址。即在步骤S7040中,如果目标地址列入了安全地址表,则目标地址为安全地址。
[0701]上述安全传输方法的实施,使木马或恶意工具即使取得了涉密信息也无法传输所取得的信息。安全传输方法将在下面的安全互联部分结合实施例展开介绍。
[0702]虽然本发明一些实施例中以计算机终端系统作为应用本发明提供的方法的主体,但是,任何手持设备、智能终端等能够提供文件或数据编辑、保存或传输的电子设备,都可以成为应用本发明提供的数据安全存取及传输方法的载体。[0703]另外,本领域的技术人员可以理解,上述的数据安全存储方法、读取方法及传输方法可使用软件或硬件的形式来实现:
[0704](I)如果以软件实现,则上述方法对应的步骤以软件代码的形式存储在计算机可读介质上,成为软件产品;
[0705](2)如果以硬件实现,则上述方法对应的步骤以硬件代码(例如Verilog)的形式描述,并固化(经过物理设计/布局布线/晶圆厂流片等过程)成为芯片产品(例如处理器产品)。
[0706]数据安全存取装置
[0707]与上述的数据安全存储方法相对应,根据本发明一个实施例,提供一种数据安全存储装置。
[0708]需要注意的是,数据安全存储装置在本发明中指:以硬件形式来实现数据安全存储方法的装置;安全存储设备在本发明中指:用于转储信息或数据的存储实体,例如磁盘
坐寸ο
[0709]参考图23,数据安全存储装置7100包括:接收单元7110,指令分析单元7120,指令修改单元7130和发送单元7140。所述接收单元7110与指令分析单元7120耦接,指令分析单元7120分别与指令修改单元7130以及发送单元7140耦接,发送单元7140还与指令修改单元7130耦接。
[0710]其中,接收单元7110适于接收硬件指令,所述硬件指令可以来自硬件映射层;
[0711]指令分析单元7120适于分析所述硬件指令并判断所述硬件指令是否为存储指令;如果是存储指令,指令分析单元7120还适于将其发送给指令修改单元7130,如果不是存储指令,指令分析单元7120还适于将其发送给发送单元7140 ;
[0712]指令修改单元7130适于修改所述存储指令中的目标地址为对应的在安全存储设备上的存储地址,然后将修改后的存储指令发送给发送单元7140 ;
[0713]发送单元7150适于将接收到的指令转发给硬件层7200。
[0714]进一步的,该数据安全存储装置还可以包括:更新单元7150和同步单元7160。其中,更新单元7150与指令修改单元7130耦接;同步单元7160与更新单元7150耦接。
[0715]所述更新单元7150适于在指令修改单元7130修改所述存储指令之后,更新映射位图中所述目标地址对应的位。本实施例中,将存储指令目标地址包含的扇区在第一映射位图中对应的“位”数据置“ I ”,表示已经转储。
[0716]所述同步单元7160适于建立计算终端系统与所述安全存储设备的通讯,并将映射位图在所述计算终端系统和所述安全存储设备之间进行同步。
[0717]具体的,在计算终端系统启动时,同步单元7160建立计算终端系统与所述安全存储设备的通讯,并将所述安全存储设备上的第二映射位图同步到所述计算终端系统,保存为第一映射位图。
[0718]如果将所述安全存储设备上的第二映射位图同步到所述计算终端系统失败,表示计算终端系统与安全存储设备是第一次通讯,同步单元7160将计算机终端系统中的本地存储空间映射到所述安全存储设备上,并建立映射位图和第二映射位图。例如在本实施例中,先在安全存储设备上建立第二映射位图,然后同步到本地,成为第一映射位图。
[0719]当更新单元7150更新了第一映射位图(即映射位图)中所述目标地址对应的位,同步单元7160将把更新后的第一映射位图发送给安全存储设备,并在安全存储设备上保存为第二映射位图。
[0720]所述安全存储设备可以为远程存储设备或本地存储设备,所述远程存储设备可以为一个计算设备服务,也可以被多个计算设备共享。
[0721]所述硬件指令可以为硬件端口 I/O指令。
[0722]与上述的数据安全读取方法相对应,根据本发明另一个实施例,提供了一种数据安全读取装置。
[0723]参考图24,数据安全读取装置8100包括:
[0724]接收单元8110,指令分析单元8120,指令修改单元8130以及发送单元8140。其中,接收单元8110与指令分析单元8120耦接,指令分析单元8120分别与指令修改单元8130以及发送单元8140耦接,指令修改单元8130还与发送单元8140耦接。发送单元8140与硬件层8200耦接。
[0725]所述接收单元8110适于接收硬件指令,本实施例中,所述硬件指令来自硬件映射层。
[0726]所述指令分析单元8120适于分析所述硬件指令并判断所述硬件指令是否为读取指令,如果所述硬件指令是读取指令,获取读取指令的源地址并判断所述源地址是否为安全存储设备上的地址。
[0727]如果所述硬件指令不是读取指令,或者所述源地址是安全存储设备上的地址,指今分析单元8120将所述硬件指令发送到发送单元8140。
[0728]如果所述源地址不是安全存储设备上的地址,指令修改单元8130查找映射位图,并根据映射位图的数据修改所述读取指令中的读取地址。
[0729]与上述实施例中的映射位图相同,本实施例中所述映射位图也用于表示本地存储地址的数据是否转储到所述安全存储设备。例如,指令修改单元8130查找源地址包含的扇区在第一映射位图中对应的位。如果“位”数据显示为1,表示已经发生转储,如果“位”数据显示为0或NULL (空),表示没有发生转储。如果已经发生转储,指令修改单元8130将所述源地址(读取地址)改为对应的转储地址,并将修改后的硬件指令发送给发送单元8140。
[0730]进一步的,所述数据安全读取装置还可以包括同步单元8150。所述同步单元8150与指令修改单元8130耦接。所述同步单元8150适于建立计算终端系统与所述安全存储设备的通讯,并将映射位图在所述计算终端系统和所述安全存储设备之间进行同步。具体的,同步单元8150在计算终端系统启动时,建立计算终端系统与所述安全存储设备的通讯,并将所述安全存储设备上的第二映射位图同步到所述计算终端系统,保存为第一映射位图,提供指令修改单元8130使用。
[0731]所述安全存储设备可以为远程存储设备,所述远程存储设备可以被多个计算终端系统共享。
[0732]在本发明的其他实施例中,所述的安全存储设备也可以为本地存储设备。
[0733]根据本发明另一个实施例,上述数据安全读取装置和数据安全存储装置可以合并为一个装置,其中指令分析单元和指令修改单元既能处理存储指令又能处理读取指令,下面举例介绍。
[0734]根据本发明另一个实施例,提供一种数据安全存储和读取装置。如图25,数据安全存储和读取装置9100包括:
[0735]指令运行环境缓存和恢复单元9101,适于缓存和恢复指令运行环境;
[0736]指令获取单元9102,适于获取下一条即将运行的指令地址,该地址为第一地址;还适于根据第一地址获取待调度/执行的机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令;获取待调度机器指令片段的具体方式在前面的实施例中已经详细描述,这里不再赘述;
[0737]指令检索单元9104,适于利用所述第一地址查找地址对应表;所述地址对应表用于表示第一地址指向的待调度指令片段是否具有已保存的重组指令片段,地址对应表的数据为地址对;
[0738]如果找到相应的记录,指令检索单元9104适于调用指令运行环境缓存和恢复单元9101恢复所缓存的指令运行环境,并跳转到找到的对应地址继续执行(本次重组完成);
[0739]如果没有找到相应的记录,调用指令重组单元9103进行重组操作。
[0740]其中,指令重组单元9103包括:
[0741]指令解析单元9111,是上述指令分析单元7120和指令分析单元8120的组合,适于分析所述硬件指令并判断所述待调度/执行的机器指令片段中的每一条硬件指令是否为存储或读取指令;
[0742]指令修改单元9112,如果指令解析单元9111发现存储或读取指令:
[0743]对于存储指令,修改所述存储指令中的目标地址为对应的在安全存储设备上的存储地址;
[0744]对于读取指令,查找映射位图,并根据映射位图的数据修改所述读取指令中的读取地址;
[0745]更新单元9113,适于在指令修改单元9112修改所述存储指令之后,更新映射位图中所述目标地址对应的位,以体现已经转储;
[0746]同步单元9114,适于建立计算终端系统与所述安全存储设备的通讯,并将映射位图在所述计算终端系统和所述安全存储设备之间进行同步。
[0747]在指令解析单元9111、指令修改单元9112、更新单元9113和同步单元9114操作完成后,指令重组单元9103适于替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数;还适于在压栈指令之后加入第二跳转指今,生成具有第二地址的重组指令片段;所述第二跳转指令指向装置9100的入口地址;还适于将重组指令片段的第二地址与第一地址在地址对应表中建立一条记录。
[0748]基于上一段的描述,指令重组单元9103在其他实施例中,也可以与指令解析单元9111、指令修改单元9112、更新单元9113和同步单元9114作为同一层次的并列单元(如图26所示)ο
[0749]指令重组单元9103获得重组指令片段后,还适于调用指令运行环境缓存和恢复单元9101恢复所缓存的指令运行环境,并跳转到重组指令片段的地址继续执行(重组操作完成)。
[0750]本领域技术人员可以理解,该实施例只是为了说明而举例,并不限制数据安全读取装置、数据安全存储装置和指令重组装置合并方式,上述介绍的各种数据安全读取装置、数据安全存储装置和指令重组装置可以以各种所需的方式合并。
[0751]另外,上述安全存储方法和装置还可以与云技术结合,确保云内数据的安全,从而加快云计算(cloud computing)的应用和普及。具体实施例在下面将给予介绍。
[0752]本领域技术人员可以理解,在安全层实现的上述方法也可以在操作系统内核层至硬件层中的各个层内完成。具体功能的实现位置并不脱离本发明的精神和范围。
[0753]上述实施例中详细的介绍了本发明提供的安全存储方法和装置,与现有技术相t匕,具有如下优点:
[0754]1、数据安全存储方法实现了指令级数据转储即数据全转储,以此为基础,实现了计算终端系统全运行周期的数据安全存储方法,一方面,使木马或恶意工具即使取得了涉密信息也无法保存所取得的信息,使数据始终存在于可控的安全范围内;另一方面,本地不再保存在涉密状态下的任何数据,因此防止了涉密人员的主动泄密和被动泄密;
[0755]2、接收来自硬件映射层的硬件指令可以100%的筛查所有指令,进一步提高数据安全性。
[0756]上述实施例中还详细的介绍了本发明提供的安全读取方法和装置,与现有技术相t匕,具有如下优点:
[0757]1、数据安全读取方法配合数据安全存储方法使数据始终存在于可控的安全范围内,并且保证在安全存储数据(转储)之后,可以将转储数据读出;由于本地将不再保存在涉密状态下的任何数据,因此防止了涉密人员的主动泄密和被动泄密;
[0758]2、安全存储设备为远程存储设备时,可以为多个终端共享,提高安全存储设备的空间使用效率。
[0759]数据安全互联
[0760]根据上面介绍的数据安全读取/存储等方法及装置,可以设计数据安全互联系统,实现网络数据安全。
[0761]根据本发明一个实施例,提供一种网络环境,如图27所示,该网络环境包括:
[0762]通过网络I进行互联的终端系统A01、终端系统A02、...终端系统AOn (n为自然数)以及存储设备A80 ;
[0763]通过网络2进行互联的终端系统All、终端系统A12、...终端系统Aln (n为自然数)以及存储设备A81 ;
[0764]通过网络m进行互联的终端系统(未示出)以及存储设备ASn ;
[0765]通过网络X进行互联的网络1、网络2、...网络m以及注册服务器A90。
[0766]其中,存储设备(即安全存储设备)A80、A81、...A8n为上面实施例中介绍的安全存储设备。
[0767]存储设备A80与终端系统A01、终端系统A02、...终端系统AOn的本地存储设备之间建立映射位图;终端系统A01、终端系统A02、...终端系统AOn部署上面介绍的数据安全存储/安全读取方法,还可以部署上面介绍的运行时指令重组方法。
[0768]存储设备A81与终纟而系统八11、终纟而系统A12、...终纟而系统Aln的本地存储设备之间建立映射位图;终端系统All、终端系统A12、...终端系统Aln部署上面介绍的数据安全存储/安全读取方法,还可以部署上面介绍的运行时指令重组方法。
[0769]存储设备A8n与通过网络m互联的终端系统的本地存储设备之间建立映射位图;通过网络m互联的终端系统部署上面介绍的数据安全存储/安全读取方法,还可以部署上面介绍的运行时指令重组方法。
[0770]网络X可以是网络1、网络2、...网络m中的一个,也可以是不同于网络1、网络2、...网络m的另一个网络。换句话说,注册服务器A90可位于网络1、网络2、...网络m的一个中,网络1、网络2、...网络m互联即可。
[0771]网络1、网络2、...网络m中还可以包括数据服务器或应用服务器等,其与各个网络内的相应的存储设备建立映射位图;服务器部署上面介绍的数据安全存储/安全读取方法,还可以运行时指令重组方法。
[0772]注册服务器A90可以有一个,也可以有多个。注册服务器A90用于提供终端系统接入认证,即当终端系统希望介入该网络环境或网络系统时,注册服务器A90接收其注册请求并判断是否允许其接入。注册服务器A90的操作将在下面详细描述。
[0773]根据本发明一个实施例,在该网络环境中,终端系统的数据存储和读取操作可以按照上述的数据安全存储和读取方法进行的。
[0774]具体的,终端系统(或数据服务器/应用服务器)数据操作方法S800包括:
[0775]S801,初始化操作,包括:
[0776]S8011、从与本地存储设备建立映射位图的安全存储设备同步映射位图,保存为第一映射位图;保存位直可以在内存中;
[0777]S8012、从注册服务器上同步安全地址表,保存为本地安全地址表(也可以称为第一安全地址表);保存位置可以在内存中;
[0778]S802,接收硬件指令;
[0779]S803,分析并判断该硬件指令是否为读取指令、存储指令或传输指令;
[0780]S804,如果是该三种指令,进行指令处理如下:
[0781]S8041,对于存储指令,将存储指令中的本地目标地址修改为与本地存储设备建立映射位图的安全存储设备上的对应存储地址;
[0782]S8042,对于读取指令,获取读取指令中的源地址,利用源地址检索第一映射位图,并根据映射位图的数据修改读取指令中的读取地址;
[0783]S8043,对于传输指令,获取传输指令中的目标地址,利用目标地址检索第一安全地址表,判断目标地址是否为安全地址,如果不是,拒绝该传输指令;
[0784]S805,将修改后的或未被拒绝的硬件指令发送到硬件层。
[0785]根据本发明另一个实施例,S8041还可以包括:
[0786]更新第一映射位图,将目标地址(扇区)在第一映射位图中对应的“位”设置为I或其他指示转储的标记;并且,将已经更新的映射位图同步到对应的安全存储设备,在安全设备中保存为第二映射位图。
[0787]上述网络环境中的计算设备即构成了本发明提供的数据安全互联系统的一种实施例。数据安全互联系统的更多实施例将在下面详细介绍。
[0788]根据本发明一个实施例,提供一种数据安全互联系统的建立过程,如图28a所示,该建立过程S900包括:
[0789]S901a、计算设备(图中显示为计算终端I)向注册服务器发送注册请求;
[0790]S901b、注册服务器询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据;
[0791]S901C、计算设备向注册服务器发送应答消息;
[0792]S902a、如果该应答为不同意接管,注册服务器拒绝该计算设备的注册请求,结束该建立过程;(该步骤未示出)
[0793]S902b、如果该应答为同意接管,注册服务器在计算设备上部署上述的数据安全存储方法和读取方法以及安全传输方法,注册服务器同意该计算设备注册;
[0794]S902c、注册服务器为该计算设备部署安全存储设备,完成建立过程,同时将会完整的切断该计算设备与除安全存储设备以外的任何存储设备之间的交互,并且也将切断与除安全互联系统以外的所有网络交互。
[0795]其中的“切断”就是通过指令级别的操作、利用bitmap将所有的除安全存储设备以外的存储设备的操作重定向到安全存储设备上来实现的。
[0796]该安全存储设备的部署地域是没有限制的,可以在计算设备本地,也可以位于计算设备所在的局域网中,也可以位于注册服务器所在的局域网中,只要有网络能够物理连接就可以。
[0797]在本发明其他实施例中,注册服务器还可以向该计算设备部署上述的运行时指令重组方法,实现运行时指令重组或追踪。此时,还可以实现例如上述运行时指令重组方法和数据安全存取方法的结合S6000。
[0798]计算设备(例如计算机终端系统或智能终端)完成注册后,通过上述的数据安全存储和读取方法,将向安全存储设备中保存敏感数据或安全数据。
[0799]根据本发明一个实施例,安全互联系统中已经加入了数据服务器,该数据服务器也是根据S900注册加入的,其对应的安全存储设备例如为安全存储设备I。
[0800]当一台计算设备(例如计算终端2)需要访问安全互联系统内的数据时,首先,按照S900注册加入安全互联系统,其对应的安全存储设备例如为安全存储设备2。
[0801]然后,如图28b所示,计算终端2在数据安全互联系统内的数据访问过程S910包括:
[0802]S911、计算设备(例如计算终端2)向数据服务器发送访问请求;
[0803]S912、数据服务器向注册服务器发送安全地址询问消息,询问该计算终端2是否为安全地址;
[0804]S913、注册服务器向数据服务器发送安全地址应答消息,告知该计算终端2是否为安全地址;
[0805]S914、如果得到肯定应答之后,数据服务器根据该请求读取相应的数据,该读取过程为上述数据安全读取方法;如果得到否定应答,则数据服务器忽略所述数据访问请求;
[0806]S915、数据服务器向计算终端2发送数据应答;和
[0807]S916、如果计算终端2需要保存数据,则根据上述的数据安全存储方法,向安全存储设备2种保存数据。
[0808]在本发明另一个实施例中,上述实施例中注册服务器所完成的内容也可以在各个终端系统上完成,即每个终端系统都同时是一个注册服务器。如果需要终端自己完成确认来访者是否安全的任务,那么需要一种机制,能够让终端确认任意一台通过网络连接到终端的机器上部署了数据黑洞系统(包括上述数据安全存储/读取方法,还可以包括上述运行时指令重组方法,还可以包括上述数据安全传输方法),并且每个终端自己维护一个认证
注册表。
[0809]在有了这种机制之后,终端收到任何一个网络请求时,首先验证请求的发起者是否部署了数据黑洞系统,验证通过则在终端的认证注册表里加入请求的发起者,这样请求的发起者(另一台机器)就被这个终端认证了。验证请求的发起者是否部署了数据黑洞系统可以采用基于时间戳的互信验证算法来进行,验证通过则在终端的认证注册表里加入请求的发起者,这样请求的发起者(另一台机器)就被这个终端认证了。
[0810]相应的,上述数据访问方法S910需要进行调整。根据本发明一个实施例,如图28c所示,具有注册功能的计算设备的数据访问方法S940(同时也是一种数据安全互联系统建立方法),包括:
[0811]S941、计算终端I向计算终端2发送访问请求;
[0812]S942、计算终端2向计算终端I发送部署询问,即询问计算终端I是否同意部署上述数据安全存储方法和读取方法;
[0813]S943、计算终端I向计算终端2发送部署应答;
[0814]为了说明整个访问过程,本实施例中计算终端I发送肯定应答;如果计算终端I发送否定应答,则与计算终端2的信息交互结束,数据访问不能完成;
[0815]S944、计算终端2向计算终端I部署方法并指定安全存储设备;所述方法即上述的数据安全存储和数据安全读取方法,还可以包括上述数据安全传输方法和运行时指令重组方法;所述安全存储设备为安全存储设备I ;
[0816]S945、计算终端2利用安全读取方法从其对应的安全存储设备2读取计算终端I将要访问的数据;
[0817]S946、计算终端2向计算终端I发送访问应答;和
[0818]S947、如果需要保存数据,计算设备I利用数据安全存储方法将获得的访问数据保存在其对应的安全存储设备I中。
[0819]可选的,在每个计算终端上维护一个注册列表,例如,当计算终端I部署了数据黑洞系统后,将计算终端I加入计算终端2的注册列表,还可以同时将计算终端2加入计算终端I的注册列表。
[0820]可选的,在步骤S942之前,可以首先检查是否已经部署了数据安全存储方法和读取方法(或数据黑洞系统)。
[0821]如图28d所示,根据本发明另一个实施例,提供一种具有注册功能的计算设备的数据访问方法S950,包括:
[0822]S951、计算终端I向计算终端2发送访问请求;
[0823]S952、计算终端2向计算终端I发送部署检查消息,该消息用于检查在计算终端I上是否已经部署了数据黑洞系统(或上述的数据安全存取方法);
[0824]S953、计算终端I向计算终端2发送部署检查反馈消息;
[0825]该反馈消息包含一个或一组数值,根据该数值,计算终端2将能够判断计算终端I是否已经部署了数据黑洞系统;
[0826]S954、计算终端2确定计算终端I的部署状态,即判断计算终端I是否部署了数据黑洞系统;[0827](I)如果所述部署检查反馈消息确定计算终端I已经部署数据黑洞系统,则继续执行:
[0828]S955、计算终端2利用安全读取方法从其对应的安全存储设备2读取计算终端I将要访问的数据;
[0829]S956、计算终端2向计算终端I发送访问应答;
[0830]S957、如果需要保存数据,计算设备I利用数据安全存储方法将获得的访问数据保存在其对应的安全存储设备I中。
[0831](2)如果所述部署检查反馈消息确定计算终端I还没有部署数据黑洞系统,则执行上述数据访问方法S940:
[0832]S942、计算终端2向计算终端I发送部署询问,即询问计算终端I是否同意部署上述数据安全存储方法和读取方法;
[0833]S943、计算终端I向计算终端2发送部署应答;
[0834]为了说明整个访问过程,本实施例中计算终端I发送肯定应答;如果计算终端I发送否定应答,则与计算终端2的信息交互结束,数据访问不能完成;
[0835]S944、计算终端2向计算终端I部署方法并指定安全存储设备;所述方法即上述的数据安全存储和数据安全读取方法;所述安全存储设备为安全存储设备I ;
[0836]S945、计算终端2利用安全读取方法从其对应的安全存储设备2读取计算终端I将要访问的数据;
[0837]S946、计算终端2向计算终端I发送访问应答;和
[0838]S947、如果需要保存数据,计算设备I利用数据安全存储方法将获得的访问数据保存在其对应的安全存储设备I中。
[0839]上述步骤S953-S954可以包括:计算终端I和计算终端2利用基于时间戳的互信验证算法来判断对方是否已经部署了数据黑洞系统(过程类似CHAP协议)。
[0840]可选的,在每个计算终端上维护一个注册列表,例如,当计算终端I部署了数据黑洞系统后,将计算终端I加入计算终端2的注册列表,还可以同时将计算终端2加入计算终端I的注册列表。当某个计算终端访问本机时,首先检查注册类表是否包含该计算终端,如果包含,说明已经注册,不必再进行部署检查或部署询问等操作。
[0841]可选的,上述方法S950可以进一步改进,由访问发起方主动说明自身已经部署数据黑洞系统。如图28e所示,根据本发明另一个实施例,提供一种具有注册功能的计算设备的数据访问方法S960,包括:
[0842]S961、计算终端I向计算终端2发送访问请求;
[0843]S962、计算终端I向计算终端2发送“部署告知消息”,该消息用于通知计算终端2在计算终端I上已经部署了数据黑洞系统(或者上述数据安全存取方法);
[0844]S963、计算终端2确定计算终端I的部署状态,即判断计算终端I是否部署了数据黑洞系统;
[0845]S964、计算终端2利用安全读取方法从其对应的安全存储设备2读取计算终端I将要访问的数据;
[0846]S965、计算终端2向计算终端I发送访问应答;
[0847]S966、如果需要保存数据,计算设备I利用数据安全存储方法将获得的访问数据保存在其对应的安全存储设备I中。
[0848]进一步的,在每个终端都是一个注册服务器的实施例中,为了方便计算终端的使用并且为了使安全互联系统具有单向导入功能(数据只进不出),根据本发明另一个实施例,数据安全互联系统中的计算设备(例如终端系统A01)具有两个模式:
[0849]在第一模式下,又称为安全模式,计算设备上的指令重组平台运行(即在计算设备上部署了上述的运行时指令重组方法或应用了上述的运行时指令重组装置),数据存储和读取都在其分配的安全存储设备上完成,并且完整的切断该计算设备与除安全存储设备以外的任何存储设备之间的交互,还切断该计算设备与除安全互联系统以外的所有网络交互(通过上述运行时指令重组平台来屏蔽相关指令);
[0850]在第二模式下,又称为普通模式,计算设备上的指令重组平台不运行,注册服务功能不启用,普通模式下的计算设备可以与普通的计算设备一样使用,例如可以从其他网络节点获取数据。
[0851]另外,普通模式的计算设备与安全模式计算设备之间不能相互访问。例如,假设计算终端I处于安全模式而计算终端2处于普通模式。计算终端2如果要访问计算终端1,计算终端2将向计算终端I发送访问请求,计算终端I将发送部署检查消息,计算终端I无法得到计算终端2的有效应答,访问不能进行。计算终端I如果要访问计算终端2,计算终端I需要向计算终端2发送访问请求,在发送之前计算终端I同样会企图获取计算终端2的部署检查信息,如果计算终端I无法得到计算终端2的有效应答,访问不能进行。
[0852]上述两种模式的切换可以通过进行系统重启来完成,具体的,在系统启动之初将讯问系统使用者希望进入哪种模式,系统使用者根据自己的使用需求决定进入何种模式。
[0853]大体上与上面的描述的方法S900、S910相应的,根据本发明一个实施例,提供一种计算终端(即计算设备)。如图28f所示,该计算终端fOO包括:
[0854]I/O接口 fOl,适于与注册服务器fll建立连接并通信;
[0855]与I/O接口 fOl分别连接的注册单元f02、黑洞单元f03、查询单元f04。
[0856]其中,注册单元f02适于通过I/O接口 fOl向注册服务器fll注册;
[0857]注册单元f02的工作过程包括与注册服务器的信息交互,用于在注册服务器上注册或者接受注册服务器的部署检查,具体可以参考方法S900、S910以及S950。
[0858]其中,黑洞单元f03适于接收注册服务器fll部署的数据黑洞系统;所述数据黑洞系统已经在前面的介绍中定义。例如,数据黑洞系统包括(即实现了)上述数据安全存储方法和数据安全读取方法,或者数据黑洞系统包括上述数据安全存储装置和数据安全读取装置;数据黑洞系统还可以包括上述运行时指令重组方法,或者包括上述运行时指令重组装置;数据黑洞系统还可以包括上述数据安全传输方法等。
[0859]该黑洞单元f03还适于与其他计算终端或计算设备进行数据交互,例如包括发送访问请求等。
[0860]其中,查询单元f04适于向注册服务器fll发送询问消息,询问某计算设备是否已
经注册。
[0861]大体上与上面的描述的方法S900、S910相应的,根据本发明一个实施例,提供一种注册服务器。如图28g所示,该注册服务器g00包括:
[0862]1/0接口 g01,适于与计算设备(例如图中的计算设备gll和计算设备gl2,又称为计算设备a和计算设备b)连接并进行通信;
[0863]部署检查单元g02,适于向计算设备发送部署检查消息,检查计算设备是否已经部署了数据黑洞系统;检查交互过程可以参考方法S950 ;如果部署检查单元g02检查发现该计算设备已经部署了数据黑洞系统,部署检查单元g02还适于更新注册列表g05,将该计算设备添加进入注册列表中;如果部署检查单元g02发现该计算设备尚未部署数据黑洞系统,启动部署询问单元g03 ;
[0864]部署询问单元g03,适于向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据;如果来自计算设备的应答消息表示不同意接管,拒绝该计算设备的注册请求,结束;如果该应答为同意接管,调用程序部署单元g04部署数据黑洞系统;
[0865]程序部署单元g04,适于向计算设备部署数据黑洞系统,当部署结束之后,还适于更新注册列表g05,将该计算设备添加进入注册列表中。
[0866]该注册服务器g00还包括:注册查询单元g06,用于接收来自计算终端例如计算设备gl2的查询,通过查询注册列表g05来检查某个特定的计算终端是否已经注册,并向计算设备gl2反馈查询结果。
[0867]大体上与上面的描述的方法S940、S950相应的,根据本发明另一个实施例,提供一种计算终端。如图28h所示,该计算设备hOO包括:
[0868]I/O接口 hOl,适于与计算设备(例如图中的计算设备hll,又称为计算设备c)连接并进行通信;
[0869]部署检查单元h02,适于向计算设备(例如计算设备c)发送部署检查消息,检查计算设备是否已经部署了数据黑洞系统;检查交互过程可以参考方法S950 ;如果部署检查单元h02检查发现该计算设备c已经部署了数据黑洞系统,部署检查单元h02还适于更新注册列表h06,将该计算设备c添加进入注册列表中;如果部署检查单元h02发现该计算设备c尚未部署数据黑洞系统,启动部署询问单元h03 ;
[0870]部署询问单元h03,适于向计算设备(例如计算设备c)发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据;如果来自计算设备的应答消息表示不同意接管,拒绝该计算设备的注册请求,结束;如果该应答为同意接管,调用程序部署单元h04部署数据黑洞系统;
[0871]程序部署单元h04,适于向计算设备部署数据黑洞系统,当部署结束之后,还适于更新注册列表h06,将该计算设备添加进入注册列表中。
[0872]该计算设备h00还包括:黑洞单元h05,适于部署数据黑洞系统。该黑洞单元h05还适于与其他计算终端或计算设备进行数据交互,例如包括发送访问请求等。
[0873]大体上与上面的描述的方法S960相应的,根据本发明另一个实施例,提供一种计算终端/计算设备。如图28i所示,该计算设备i00包括:
[0874]1/0接口 i01,适于与计算设备(例如图中的计算设备ill,又称为计算设备d)连接并进行通信;
[0875]部署检查单元i02,适于接收来自其他计算设备(例如计算设备ill)的访问请求和部署告知消息;如果通过部署告知消息确定计算设备ill已经部署了数据黑洞系统,则更新注册列表h06,将该计算设备d添加进入注册列表中;[0876]黑洞单元i03,适于部署数据黑洞系统,还适于与其他计算终端或计算设备ill进行数据交互,例如包括发送访问请求、部署告知消息等。
[0877]另外,黑洞单元i03还适于部署上述运行时指令重组方法。此时,计算设备i00可以具有两种模式,即上述的安全模式和普通模式。
[0878]另外,该计算设备i00还可以包括部署询问单元和程序部署单元,当部署检查单元i02发现计算设备d没有部署数据黑洞系统时,进行部署询问和部署操作。
[0879]在本发明其他实施例中,上述实施例中的计算终端或注册服务器内的单元/部件数量可以根据需要进行增减(例如,可以不包含IO接口,各个单元直接与目标对象耦接),还可以重新组合各个实施例中提供的部件和功能,或者用已知部件替换实施例中的部件。
[0880]本领域技术人员可以理解,上述计算终端和注册服务器的实施例都是举例描述,并不作为限定之意,任何本领域普通技术人员对上述装置可能进行的变形都不脱离本发明权利要求所声明的保护范围。
[0881]广域网数据安全互联
[0882]继续参考图27,如果网络1、网络2和网络m中的一个或多个不在同一个局域网,下面将详细讨论这种情况下的数据安全互联系统。
[0883]根据本发明一个实施例,提供一种广域网数据安全互联系统。如图29所示,该广域网数据安全互联系统包括:
[0884]似于局域网I中的终系统BOl、终2而系统B02...、终2而系统BOn、存储设备B80 ;
[0885]似于局域网2中的终2而系统BI 1、终2而系统B12...、终2而系统Bln、存储设备B81 ;
[0886]似于局域网m中的终2而系统B21、终2而系统B22...、终2而系统B2n、存储设备B82 ;
[0887]分别与局域网1、局域网2和局域网m互联的虚拟安全存储服务器B30。
[0888]其中,虚拟安全存储服务器B30作为分布式文件系统的主干节点,存储设备B80-B82是分布式文件系统的各个分节点。终端Bll只需要访问虚拟安全存储服务器B30,即可通过虚拟安全存储服务器B30获取存储设备B80、B81和B82的数据。所有一个局域网络内的数据访问都是直接进行的,所有局域网络之间的数据访问实际上都是通过虚拟安全服务器B30进行中转的。
[0889]另外,在广域网安全互联系统中,每个节点(包括存储设备和终端系统甚至是虚拟安全存储服务器)自主的建立访问控制注册(例如上述方法S950或S960)。
[0890]根据本发明另一个实施例,提供一种广域网数据安全互联系统。如图30所示,该广域网数据安全互联系统包括:
[0891]似于局域网I中的终系统001、终2而系统C02...、终2而系统COn ;
[0892]似于局域网2中的终2而系统011、终2而系统C12...、终2而系统Cln ;
[0893]似于局域网m中的终2而系统021、终2而系统C22...、终2而系统C2n ;
[0894]分别与局域网1、局域网2和局域网m互联的集中式安全存储服务器C30,包括存储设备C80、存储设备C81和存储设备C82等。
[0895]其中,集中式安全存储服务器C30分别有相应的网络端口和局域网地址分配给各个局域网络1、局域网络2和局域网络m。
[0896]集中式安全存储服务器C30具有上述实施例中注册服务器的功能。局域网1、局域网2和局域网m中的终端系统都已经在集中式安全存储服务器C30上注册,并且已经被部署了上述安全读取/存储等方法以及运行时指令重组方法。
[0897]集中式安全存储服务器C30包括多个存储设备,例如存储设备C80、存储设备C81和存储设备C82等。这些存储设备已经分配给安全互联系统中各个局域网络内的系统终端,作为其安全存取方法中采用的安全存储设备。具体的,在集中式安全存储服务器C30向终端系统部署本发明前述实施例中提供的数据安全存储和读取方法的时候,存储设备C80分配给局域网I中的终端系统作为安全存储设备;存储设备C81分配给局域网2中的终端系统作为安全存储设备;存储设备C82分配给局域网m中的终端系统作为安全存储设备。
[0898]根据本发明一个实施例,上述广域网数据安全互联系统建立方法包括:
[0899]SA01、计算设备(例如系统终端C01)向安全存储服务器B30或C30发送注册请求;
[0900]SA02、安全存储服务器B30或C30询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据;
[0901]SA03、计算设备向安全存储服务器B30或C30发送应答消息,例如内容为同意接管的应答消息;
[0902]SA04、安全存储服务器B30或C30 (根据内容为同意接管的应答消息)在计算设备上部署数据黑洞系统,并注册该计算设备;
[0903]SA05、安全存储服务器B30或C30为该计算设备部署安全存储设备(例如存储设备C80),完成建立过程。
[0904]如果安全存储服务器B30或C30向该计算设备部署上述的运行时指令重组方法,就能够实现运行时指令重组或追踪。此时,还可以实现例如上述运行时指今重组方法和数据安全存取方法的结合S6000。
[0905]计算设备(例如计算机终端系统或智能终端)完成注册后,通过上述的数据安全存储和读取方法,将向安全存储设备中保存数据,或者从安全存储设备中读取数据。
[0906]网络支付安全互联系统
[0907]应用上述数据安全互联系统,根据本发明一个实施例,提供一种网络支付安全互联系统。如图31所示,该网络支付安全互联系统包括:
[0908]位于网络I中的:注册服务器D91,数据服务器DOl及其对应的安全存储设备D81,支付应用服务器D02及其对应的安全存储设备D82 ;
[0909]位于与网络I互联的网络2中的:注册服务器D90,网络终端D03(计算机),移动终端D04,及二者对应的安全存储设备D83 ;和
[0910]位于与支付应用服务器D02互联的网络3中的:注册服务器D92,结算服务器D05、账户数据服务器D06,及账户数据服务器和结算服务器对应的安全存储设备D84。
[0911]其中,支付应用服务器接入网络I的接口称为应用接口,接入网络3的接口称为支付接口。
[0912]其中,网络I和网络2可以为一个网络。
[0913]其中,数据服务器D01、支付应用服务器D02、网络终端D03、移动终端D04都已经按照上面介绍的S900的方法分别通过注册服务器D90和注册服务器D91注册并加入了网络I和网络2的安全互联系统;支付应用服务器D02、结算服务器D05、账户数据服务器D06都已经按照上面介绍的S900的方法通过注册服务器D92注册加入了安全互联系统。由于支付应用服务器D02分别位于网络I和网络3之中,所以分别向注册服务器D91和D92注
ΠΠ
/ttr O
[0914]其中,数据服务器D01、支付应用服务器D02对应的安全存储设备也可以相同;网络终端D03、移动终端D04对应的安全存储设备也可以不同;结算服务器D05、账户数据服务器D06对应的安全存储设备也可以不同。
[0915]其中,注册服务器D90、D91和D92向各个注册的设备部署了上述运行时指令重组方法以及基于该方法的安全存储/读取/传输方法。
[0916]继续参考图31,在网络支付安全互联系统中,网络终端D03或者移动终端D04可以访问网络I中的数据服务器DOl,并且可以在数据服务器DOl上建立使用账户保存访问信息(当然也可以在本地保存访问信息,其过程与S910相同)。
[0917]网络终端D03或者移动终端D04访问网络I中的数据服务器DOl的过程与S910相似,但增加了在数据服务器DOl上保存访问信息的步骤。具体的,该过程(即计算终端的数据访问请求的处理过程)S920包括:
[0918]S921、计算设备(网络终端D03或者移动终端D04)向数据服务器DOl发送访问请求;该访问请求可以由计算设备直接发送给数据服务器D01,也可以通过其他应用服务器转发给数据服务器DOl ;
[0919]S922、数据服务器DOl向注册服务器D90发送安全地址询问消息,询问该计算终端是否为安全地址;
[0920]S923、注册服务器D90向数据服务器DOl发送安全地址应答消息,告知该计算终端为安全地址;
[0921]S924、得到肯定应答之后,数据服务器DOl根据该请求读取相应的数据,该读取过程为上述数据安全读取方法;如果得到否定应答,则数据服务器DOl忽略所述数据访问请求;
[0922]S925、数据服务器DOl向计算终端发送数据应答;
[0923]S926、计算终端决定将一部分访问数据保存在数据服务器DOl上,根据上述的数据安全存储方法,数据服务器DOl向安全存储设备D81保存数据。
[0924]继续参考图31,在网络支付安全互联系统中,网络终端D03或者移动终端D04可以通过网络I中的支付应用服务器D02购买访问过的产品或服务。
[0925]网络终端D03或者移动终端D04(通过应用接口)访问支付应用服务器D02、然后通过支付应用服务器D02访问结算服务器D05的过程(即计算终端的支付请求的处理过程)S930包括:
[0926]S931、计算设备(网络终端D03或者移动终端D04)向支付应用服务器D02发送支付请求;
[0927]该支付请求可以由计算设备直接发送给支付应用服务器D02,也可以通过其他应用服务器转发给支付应用服务器D02 ;
[0928]该支付请求包含用户的资金账户信息和交易信息;所述资金账户信息可以是实体银行账户、虚拟银行账户以及其他类型的资金账户信息,所述交易信息包括交易数量、单价等;
[0929]S932、支付应用服务器D02向注册服务器B90发送安全地址询问消息,询问该计算终端是否为安全地址;
[0930]S933、注册服务器D90向支付应用服务器D02发送安全地址应答消息,告知该计算终端为安全地址;
[0931]S934、如果得到否定应答,则支付应用服务器D02忽略所述支付请求;如果得到肯定应答,支付应用服务器D02根据支付请求中的交易信息计算交易数据并生成结算信息;结算信息可以为一个具体数值(即所需支付金额),也可以为一系列用于计算结算信息的数据;
[0932]S935、支付应用服务器D02(通过支付接口)向结算服务器D05发送结算请求;所述结算请求包括用户的资金账户信息和结算信息;
[0933]S936、结算服务器D05向注册服务器D92发送安全地址询问消息,询问该支付应用服务器D02是否为安全地址;
[0934]S937、注册服务器D92向结算服务器D05发送安全地址应答消息,告知该支付应用服务器D02为安全地址;
[0935]S938、结算服务器D05根据结算信息中的资金账户信息(例如账户名和账户ID)调用对应的资金账户数据;
[0936]判断资金账户数据是否能够满足结算信息的要求;
[0937]如果不能满足,向支付应用服务器D02发送失败应答;
[0938]如果能满足,进行结算操作(即将结算信息的金额从资金账户数据中扣除),将更新的资金账户数据保存在对应的安全存储设备D84,并向支付应用服务器D02发送成功应答;
[0939]S939、支付应用服务器D02根据接收到的成功或失败应答向计算终端发送成功或失败应答,并且如果是成功应答,在对应的安全存储设备D82上保存该支付请求信息。
[0940]其中,在步骤S938中,结算服务器D05还可以访问账户数据服务器D06来获取资金账户数据。
[0941]上述安全互联系统(例如数据安全互联系统/网络支付安全互联系统)将数据安全特性(例如数据安全存储/读取/传输方法,以及基于运行时指令重组方法的数据安全存储/读取/传输方法)植入了局域网或广域网中,确保了局域网络和广域网络中敏感数据的安全性。即使恶意程序入侵,其访问的任何数据都不会被窃取,甚至连同恶意程序本身都将永远被禁锢在安全互联系统的安全存储设备之中。
[0942]上述安全互联系统不仅对云计算中的数据安全提供了有力的支持,更为网络支付和移动支付的普及奠定了安全的基础。
[0943]应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
【权利要求】
1.一种数据安全互联系统的建立方法,包括: 步骤1、计算设备向注册服务器发送注册请求; 步骤2、注册服务器向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据,或者询问该计算设备是否同意部署数据安全存储方法和数据安全读取方法; 步骤3、计算设备向注册服务器发送应答消息;和 步骤4、注册服务器检查所述应答消息; 如果该应答为不同意接管,注册服务器拒绝该计算设备的注册请求,结束建立方法; 如果该应答为同意接管,注册服务器在计算设备上部署数据安全存储方法和读取方法,注册服务器为该计算设备部署安全存储设备,并且将该计算设备添加在注册服务器上的注册列表中; 其中,数据安全存储方法包括: 步骤al、接收硬件指令; 步骤a2、分析所述硬件指令; 步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和 步骤a4、将修改后的存储指令发送到硬件层; 其中,数据安全读取方法包括:` 步骤bl、接收硬件指令; 步骤b2、分析所述硬件指令; 步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址; 步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和步骤b5、将修改后的读取指令发送到硬件层。
2.如权利要求1所述的数据安全互联系统的建立方法,其中,在步骤a3之后,数据安全存储方法还包括: 更新第一映射位图中所述目标地址对应的位; 将已经更新的第一映射位图同步到所述安全存储设备,保存为第二映射位图;所述第二映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备。
3.如权利要求2所述的数据安全互联系统的建立方法,其中,在步骤al之前,数据安全存储方法还包括: 建立计算设备与所述安全存储设备的通讯; 将所述安全存储设备上的第二映射位图同步到所述计算设备,保存为第一映射位图。
4.如权利要求1所述的数据安全互联系统的建立方法,其中,在步骤b4之前,数据安全读取方法还包括: 建立计算设备与所述安全存储设备的通讯; 将所述安全存储设备上的第二映射位图同步到所述计算设备,保存为第一映射位图。
5.如权利要求1所述的数据安全互联系统的建立方法,其中,在步骤al和bl中,所述硬件指令来自硬件映射层。
6.如权利要求1所述的数据安全互联系统的建立方法,其中,在步骤4中,注册服务器还在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括: 步骤Cl、缓存指令运行环境; 步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址; 步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
7.如权利要求1所述的数据安全互联系统的建立方法,其中,在步骤4中,注册服务器还在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括: 步骤dl、缓存指令运行环境; 步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令;` 步骤d3、在第一存储位置保存第一跳转指令的目标地址; 步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和 步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
8.如权利要求1所述的数据安全互联系统的建立方法,其中,在步骤4中,注册服务器还在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括: 步骤el、缓存指令运行环境; 步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址; 步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令; 步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数; 步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和 步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
9.一种应用于权利要求1-8中任一项所述方法建立的数据安全互联系统的数据访问方法,包括: 步骤1、第一计算设备向第二计算设备发送访问请求; 步骤2、第二计算设备向注册服务器发送安全地址询问消息,询问所述第一计算设备是否为安全地址; 步骤3、注册服务器向第二计算设备发送安全地址应答消息,告知该第一计算设备是否为安全地址; 步骤4、如果得到肯定的应答消息,第二计算设备根据访问请求读取相应的数据,读取过程为所述的数据安全读取方法;如果得到否定的应答消息,第二计算设备忽略所述访问请求;和步骤5、第二计算设备向第一计算设备发送访问应答。
10.如权利要求9所述的数据访问方法,在步骤5之后,还包括: 步骤6、如果第一计算设备需要保存数据,则根据所述的数据安全存储方法保存数据。
11.一种数据安全互联系统,包括:计算设备、安全存储设备和注册服务器; 其中,所述注册服务器适于注册计算设备,并为计算设备分配安全存储设备;所述计算设备适于通过数据安全存储方法和数据安全读取方法将数据保存在安全存储设备上或从安全存储设备读取数据; 其中,数据安全存储方法包括:步骤al、接收硬件指令;步骤a2、分析所述硬件指令;步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和步骤a4、将修改后的存储指令发送到硬件层; 其中,数据安全读取方法包括:步骤bl、接收硬件指令;步骤b2、分析所述硬件指令;步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址;步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和步骤b5、将修改后的读取指令发送到硬件层。
12.如权利要求11所述的数据安全互联系统,其中,所述注册服务器适于: 接收来自计算设备的注册请求; 向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据,或者询问该计算设备是否同意部署数据安全存储方法和数据安全读取方法; 接收并检查来自计算设备的应答消息;如果应答为不同意接管,拒绝该计算设备的注册请求;如果应答为同意接管,在计算设备上部署数据安全存储方法和读取方法,为该计算设备部署安全存储设备,并且将该计算设备添加在注册服务器上的注册列表中。
13.如权利要求11所述的数据安全互联系统,其中,所述注册服务器还适于在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括: 步骤Cl、缓存指令运行环境; 步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址; 步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
14.如权利要求11所述的数据安全互联系统,其中,所述注册服务器还适于在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括: 步骤dl、缓存指令运行环境; 步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令; 步骤d3、在第一存储位置保存第一跳转指令的目标地址; 步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
15.如权利要求11所述的数据安全互联系统,其中,所述注册服务器还适于在计算设备上部署运行时指令重组方法,该运行时指令重组方法包括: 步骤el、缓存指令运行环境; 步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址; 步骤e3、根据第一地址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令; 步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数; 步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和 步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
16.一种计算设备,包括: 注册单元,适于在注册服务器上注册和/或接受注册服务器的部署检查; 黑洞单元,适于接收注册服务器部署的数据黑洞系统;和 查询单元,适于向注 册服务器发送询问消息,询问第二计算设备是否已经注册; 其中,数据黑洞系统包括数据安全读取方法和数据安全存储方法; 其中,数据安全存储方法包括: 步骤al、接收硬件指令; 步骤a2、分析所述硬件指令; 步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和 步骤a4、将修改后的存储指令发送到硬件层; 其中,数据安全读取方法包括: 步骤bl、接收硬件指令; 步骤b2、分析所述硬件指令; 步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址; 步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和步骤b5、将修改后的读取指令发送到硬件层。
17.如权利要求16所述的计算设备,其中,所述数据黑洞系统还包括运行时指令重组方法,该运行时指令重组方法包括: 步骤Cl、缓存指令运行环境; 步骤c2、获取待调度的机器指令片段;在所述获取的机器指令片段的最后一条指令前,插入第二跳转指令,所述第二跳转指令指向指令重组平台的入口地址,生成重组指令片段;将所述缓存的指令运行环境中的地址寄存器的值修改为重组指令片段的地址;和 步骤c3、恢复所述指令运行环境;所述指令运行环境中的地址寄存器的值为修改后的值。
18.如权利要求16所述的计算设备,其中,所述数据黑洞系统还包括运行时指令重组方法,该运行时指令重组方法包括: 步骤dl、缓存指令运行环境; 步骤d2、从第一存储位置读取目标地址,根据目标地址获取待调度的机器指令片段;待调度的机器指令片段的最后一条指令为第一跳转指令; 步骤d3、在第一存储位置保存第一跳转指令的目标地址; 步骤d4、将第一跳转指令替换为第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和 步骤d5、恢复所述指令运行环境,并跳转到第二地址继续执行。
19.如权利要求16所述的计算设备,其中,所述数据黑洞系统还包括运行时指令重组方法,该运行时指令重组方法包括: 步骤el、缓存指令运行环境; 步骤e2、获取栈中保存的跳转指令的地址和参数,计算下一条即将运行的指令地址,该地址为第一地址; 步骤e3、根据第一地 址获取待调度机器指令片段;其中,待调度机器指令片段的最后一条指令为第一跳转指令; 步骤e4、替换第一跳转指令为压栈指令,在压栈指令中记录第一跳转指令的地址和操作数; 步骤e5、在压栈指令之后加入第二跳转指令,生成具有第二地址的重组指令片段;所述第二跳转指令指向指令重组平台的入口地址;和 步骤e6、恢复所述指令运行环境,并跳转到第二地址继续执行。
20.一种注册服务器,包括: 部署询问单元,适于向计算设备发送询问消息,询问该计算设备是否同意通过安全存储设备接管该计算设备所操作和访问的数据;和 程序部署单元,适于向计算设备部署数据黑洞系统,当部署结束之后,还适于将该计算设备添加进入注册列表中; 其中,数据黑洞系统包括数据安全读取方法和数据安全存储方法; 其中,数据安全存储方法包括: 步骤al、接收硬件指令; 步骤a2、分析所述硬件指令; 步骤a3、如果所述硬件指令是存储指令,修改所述存储指令中的目标地址为对应的在所述安全存储设备上的存储地址;和 步骤a4、将修改后的存储指令发送到硬件层; 其中,数据安全读取方法包括: 步骤bl、接收硬件指令; 步骤b2、分析所述硬件指令; 步骤b3、如果所述硬件指令是读取指令,获取读取指令中的源地址; 步骤b4、查找第一映射位图,并根据第一映射位图的数据修改读取指令中的读取地址;所述第一映射位图用于表示本地存储地址的数据是否转储到所述安全存储设备;和步骤b5、将修改后的读取指令发送到硬件层。
21.如权利要求20所述的注册服务器,其中,如果来自计算设备的应答消息表示不同意接管,部署询问单元适于拒绝该计算设备的注册请求;如果该应答为同意接管,部署询问单元适于调用程序部署单元部署数据黑洞系统。
22.如权利要求20所述的注册服务器,还包括: 注册查询单元,适于接收来自计算设备的查询,通过查询注册列表来检查某个特定的计算设备是否已经注册,并向计算设备反馈查询结果。
23.如权利要求20所述的注册服务器,还包括: 部署检查单元,适于向计算设备发送部署检查消息,检查计算设备是否已经部署了数据黑洞系统。
24.如权利要求22所述的注册服务器,其中,如果部署检查单元检查发现所述计算设备已经部署了数据黑洞系统,部署检查单元还适于更新注册列表,将该计算设备添加进入注册列表中;如果部署检查单元发现该计算设备尚未部署数据黑洞系统,启动部署询问单元。
【文档编号】G06F21/62GK103729601SQ201210384083
【公开日】2014年4月16日 申请日期:2012年10月11日 优先权日:2012年10月11日
【发明者】汪家祥, 杨潇 申请人:北京中天安泰信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1