CN109783207B - 保护双系统共享内存数据安全的方法及系统 - Google Patents
保护双系统共享内存数据安全的方法及系统 Download PDFInfo
- Publication number
- CN109783207B CN109783207B CN201711115302.3A CN201711115302A CN109783207B CN 109783207 B CN109783207 B CN 109783207B CN 201711115302 A CN201711115302 A CN 201711115302A CN 109783207 B CN109783207 B CN 109783207B
- Authority
- CN
- China
- Prior art keywords
- data
- shared memory
- operating system
- client
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004891 communication Methods 0.000 claims description 89
- 230000009977 dual effect Effects 0.000 claims description 17
- 230000007958 sleep Effects 0.000 claims description 10
- 238000005538 encapsulation Methods 0.000 claims description 5
- 230000002618 waking effect Effects 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 abstract description 3
- 230000003993 interaction Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005059 dormancy Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000010926 purge Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Multi Processors (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种保护双系统共享内存数据安全的方法及系统,方法包括:普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权;拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存;安全操作系统从共享内存中读取所述数据,并发送至所述服务端;拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存;所述客户端从共享内存中读取所述反馈数据;清除所述共享内存中的数据,并释放所述独占权。本发明通过互斥独占方式来读写共享内存中的数据,并在读写共享内存后进行数据清除,从而保证共享内存内数据的安全性。
Description
技术领域
本发明涉及数据交互领域,具体说的是一种保护双系统共享内存数据安全的方法及系统。
背景技术
Trustzone技术是ARM处理器的一种安全扩展功能,该技术可以把处理器核分割成两个虚拟的核:一个是安全虚拟核,一个是普通虚拟核;同时可以把处理器上的设备划分成两种状态:安全状态设备和非安全状态设备。两个虚拟核上可以分别运行一个操作系统。把运行在安全虚拟核下的操作系统称为安全操作系统,把运行在非安全虚拟核上的操作系统称为普通操作系统。普通操作系统内容比较丰富,可以运行很多的应用程序,比如linux或者Android系统。安全操作系统可以访问处理器上的所有资源,而普通操作系统只能访问非安全状态的资源,这样就可以把一些安全性相关的操作放在安全操作系统进行操作,而安全无关的操作放在普通操作系统上,可以起到系统隔离的作用,比如安全操作系统可以进行加解密操作,当普通操作系统需要对文件进行加解密时,可以把文件发送到安全操作系统,安全操作系统把文件进行加解密后再返回给普通操作系统,所有的加解密相关的密钥库和算法都存放在安全操作系统下,防止数据泄露。本申请提到的双系统就是指运行在trustzone技术上的安全操作系统和普通操作系统。
安全操作系统和普通操作系统在运行环境上是隔离的,然而两个操作系统之间的软件却经常需要进行数据交互以完成某种功能,比如文件加密(这里把运行在普通操作系统的软件称为客户端,运行在安全操作系统上的软件称为服务端)。具体的,客户端把需要加密的文件发送到安全操作系统的服务端,服务端软件把文件加密后再返回给客户端。可以把客户端和服务端的通信看作运行在两个不同操作系统上的两个进程间的通信,实质是进程间通信问题。对于linux操作系统中目前进程间通信主要有管道、信号、报文、信号量和socket等方式。
现有技术中,双系统中大多使用共享内存作为客户端和服务端间的通信方式。共享内存就是允许两个不相关的进程访问同一个逻辑内存,共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存,进程可以将同一段物理内存连接到它们自己的地址空间中,所有进程都可以访问这段物理内存的数据从而形成共享。
但是,现有的双系统中的共享内存由于与之连接的进程都可以访问,其内存储的数据将缺乏安全性。因此,有必要提出一种能够解决由于只有一个共享内存,多个客户的可能同时对这个共享内存进行读写操作,容易导致数据泄露的问题,从而对共享内存中的数据进行安全性保护。
发明内容
本发明所要解决的技术问题是:提供一种能提高双系统使用共享内存进行数据通信的数据安全性的方法及系统。
为了解决上述技术问题,本发明采用的技术方案为:
一种保护双系统共享内存数据安全的方法,包括:
普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权;
拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存;
安全操作系统从共享内存中读取所述数据,并发送至所述服务端;
拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存;
所述客户端从共享内存中读取所述反馈数据;
清除所述共享内存中的数据,并释放所述独占权。
本发明提供的另一个技术方案为:
一种保护双系统共享内存数据安全的系统,包括:
获取模块,用于普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权;
第一拷贝模块,用于拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存;
第一读取模块,用于安全操作系统从共享内存中读取所述数据,并发送至所述服务端;
第二拷贝模块,用于拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存;
第二读取模块,用于所述客户端从共享内存中读取所述反馈数据;
第一清除模块,用于清除所述共享内存中的数据,并释放所述独占权。
本发明的有益效果在于:通过互斥独占方式来读写共享内存中的数据,只允许获取独占权的客户端进程对共享内存区域进行操作,并在读写共享内存后,对共享内存进行清除操作,可以有效防止共享内存中数据泄露等风险。本发明通过保证对共享内存的访问权限一次只能对应一个客户端,从而有效防范共享内存数据被其他客户端程序获取,进而有效的保护双系统中共享内存内数据的安全。
附图说明
图1为本发明保护双系统共享内存数据安全的方法的流程示意图;
图2为本发明基于trustzone的双操作系统数据通信模型;
图3为本发明实施例一的数据交互方法的流程示意图;
图4为本发明保护双系统共享内存数据安全的系统的功能模块结构组成示意图;
图5为本发明实施例五的一具体实施方式的功能模块结构组成示意图。
标号说明:
1、获取模块;2、第一拷贝模块;3、第一读取模块;4、第二拷贝模块;5、第二读取模块;6、第一清除模块;7、第二清除模块;8、第一切换模块;9、第二切换模块;10、休眠模块;11、唤醒模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过互斥独占方式来读写共享内存中的数据,并在读写共享内存后进行数据清除,从而保证共享内存内数据的安全性。
本发明涉及的技术术语解释:
请参照图1以及图2,本发明提供一种保护双系统共享内存数据安全的方法,包括:
普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权;
拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存;
安全操作系统从共享内存中读取所述数据,并发送至所述服务端;
拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存;
所述客户端从共享内存中读取所述反馈数据;
清除所述共享内存中的数据,并释放所述独占权。
需要说明是,独占权即互斥量,互斥量用于保护一个共有资源或者程序区域,拥有这个互斥量的进程才具有这个区域的访问权限,互斥量所保护的区域只允许一个进程对这个区域进行访问操作。
进一步的,所述拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存,之前,还包括:
清除共享内存中的数据。
由上述描述可知,在将交互的数据拷贝至共享内存之前,先清除共享内存中的所有数据,以此防止共享内存中预存其他客户端的数据,保证交互数据的准确性。
进一步的,所述安全操作系统从共享内存中读取所述数据,并发送至所述服务端,之前,进一步包括:
处理器从普通操作系统切换至安全操作系统;
所述客户端从共享内存中读取所述反馈数据,之前,还包括:
处理器从安全操作系统切换至普通操作系统。
由上述描述可知,通过安全等级不同的两个操作系统分别执行对应安全性要求的操作,保证数据的安全性。
进一步的,所述普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权,具体为:
普通操作系统中的一客户端进入底层普通通信驱动,获取处于非使用中状态的共享内存的独占权;
所述安全操作系统从共享内存中读取所述数据,并发送至所述服务端,具体为:
安全操作系统的底层安全通信驱动从共享内存中读取所述数据后发送至所述服务端;
所述拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存,具体为:
底层安全通信驱动接收到所述服务端发送过来的对所述数据进行相应处理后的反馈数据后,将其拷贝至共享内存中;
所述客户端从共享内存中读取所述反馈数据,具体为:
底层普通通信驱动从共享内存中读取所述反馈数据后拷贝至所述客户端中。
由上述描述可知,本发明基于如图2所示的双系统数据通信模型进行数据的通信交互。具体通过安全操作系统的服务端程序调用服务端系统调用接口(GPTEE InternelAPI),普通操作系统的客户端程序调用客户端系统调用接口(GPTEE Client API),并通过普通操作系统的底层普通通信驱动(doscom-driver)和安全操作系统的底层安全通信驱动(tee-driver)来进行数据通信。
进一步的,所述拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存,具体为:
底层普通通信驱动将所述客户端要发送至安全操作系统中一服务端的数据经过封装后,拷贝至共享内存;
所述安全操作系统的底层安全通信驱动从共享内存中读取所述数据后发送至所述服务端,具体为:
安全操作系统的底层安全通信驱动从共享内存中读取经过封装的所述数据,并解析得到所述数据,然后发送至所述服务端。
由上述描述可知,本发明通过对交互的数据的封装和解析,保证通信交互过程中数据的完整性和对应性。
进一步的,在所述拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存之后,客户端进入休眠等待状态;
在所述拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存之后,唤醒所述客户端。
由上述描述可知,客户端获取独占权后便进入休眠,得到释放独占权后再唤醒,避免客户端一直处于工作状态,带来不必要的资源浪费。
请参阅图4,本发明提供的另一个技术方案为:
一种保护双系统共享内存数据安全的系统,包括:
获取模块,用于普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权;
第一拷贝模块,用于拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存;
第一读取模块,用于安全操作系统从共享内存中读取所述数据,并发送至所述服务端;
第二拷贝模块,用于拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存;
第二读取模块,用于所述客户端从共享内存中读取所述反馈数据;
第一清除模块,用于清除所述共享内存中的数据,并释放所述独占权。
进一步的,还包括:
第二清除模块,用于拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存之前清除共享内存中的数据。
进一步的,还包括:
第一切换模块,用于所述安全操作系统从共享内存中读取所述数据,并发送至所述服务端之前,处理器从普通操作系统切换至安全操作系统;
第二切换模块,用于所述客户端从共享内存中读取所述反馈数据之前,处理器从安全操作系统切换至普通操作系统。
进一步的,所述获取模块,具体用于普通操作系统中的一客户端进入底层普通通信驱动,获取处于非使用中状态的共享内存的独占权;
所述第一读取模块,具体用于安全操作系统的底层安全通信驱动从共享内存中读取所述数据后发送至所述服务端;
所述第二拷贝模块,具体用于底层安全通信驱动接收到所述服务端发送过来的对所述数据进行相应处理后的反馈数据后,将其拷贝至共享内存中;
所述第二读取模块,具体用于底层普通通信驱动从共享内存中读取所述反馈数据后拷贝至所述客户端中;
所述第一拷贝模块,具体用于底层普通通信驱动将所述客户端要发送至安全操作系统中一服务端的数据经过封装后,拷贝至共享内存;
所述第一读取模块,具体用于安全操作系统的底层安全通信驱动从共享内存中读取经过封装的所述数据,并解析得到所述数据,然后发送至所述服务端。
实施例一
请参照图2和图3,本实施例提供一种保护双系统共享内存数据安全的方法,可以有效防止其他客户端程序读取共享内存中的数据,从而保证在通信过程中,共享内存内数据的安全性。
本实施例基于图2所示的双系统的数据通信模型实现。通过安全操作系统的服务端程序调用服务端系统调用接口(GPTEE Internel API),普通操作系统的客户端程序调用客户端系统调用接口(GPTEE Client API),并通过普通操作系统的底层普通通信驱动(doscom-driver)和安全操作系统的底层安全通信驱动(tee-driver)来进行数据通信。
本实施例的共享内存,物理上反应的是一块连续的物理内存区域,客户端程序和服务端程序分别通过doscom-driver和tee-driver间接对这个区域进行读写。
基于上述说明,请参阅图3,本实施例的数据交互流程如下:
S1:普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权。
具体的,包括:
S11:普通操作系统中的一客户端通过调用服务端系统调用接口(GPTEE InternelAPI),进入底层普通通信驱动(doscom-driver)区域;
S12:客户端尝试获取共享内存的独占权。所述独占权即为互斥量,通过在底层普通通信驱动中设置一个互斥量,来实现对共享内存的独占。所述互斥量用于保护操作共享内存的程序及这块共享内存。
若当前共享内存区域已经有其他客户端程序在使用,即互斥量已经被其他进程所获取,则获取独占权失败,则当前客户端程序就进入休眠,等待这个互斥量被释放,再返回执行S12;优选的,其他客户端释放互斥量的同时,将发送一事件来唤醒休眠中的客户端。
若互斥量处于空闲状态,即当前共享内存区域处于可操作状态,则当前客户端获取共享内存的独占权。即获取了互斥量,则其他客户端就不能再获取这个互斥量,需要等到当前客户端释放了这个互斥量后,其他客户端才有机会获取这个独占权。客户端获取了共享内存独占权后,也就拥有了使用底层普通通信驱动(doscom-driver)对共享内存进行操作的权利(可以理解为此时底层普通通信驱动完全代理了客户端,底层普通通信驱动(doscom-driver)对共享内存的操作就是客户端对共享内存的操作)。
S2:底层普通通信驱动(doscom-driver)清除共享内存中的数据。即客户端清除了共享内存的数据,通过这个步骤可以防止共享内存中预留其他客户端的数据。
S3:底层普通通信驱动(doscom-driver)将拥有独占权的客户端要发送至安全操作系统中一服务端的数据经过封装后,拷贝至共享内存(即客户端把数据拷贝到共享内存区域)。
封装的意思是在客户端原有的数据的基础上增加一些信息,比如数据所应该发往的目的服务端的编号,因为安全操作系统上有多个服务端。
S4:处理器从普通操作系统切换至安全操作系统;
可选的,通过底层普通通信驱动(doscom-driver)设置一快速中断来实现切换。同时,切换后客户端将进入休眠等待状态,等待一个事件将其唤醒,在这个事件发生前,客户端进程处于非运行态。
S5:安全操作系统进入底层安全通信驱动(tee-driver),通过底层安全通信驱动(tee-driver)从共享内存中读取经过封装的所述数据后发送至所述服务端。
S6:底层安全通信驱动(tee-driver)解析所获取的数据,然后将解析后的数据发送至对应的服务端。解析的意思是把从共享内存读取的数据去除步骤S3所增加的信息。
S7:服务端接收到从tee-driver发送而来的数据后,对这些数据进行相应的处理(比如加密、解密、计算操作等),处理完成后,服务端再把处理后的数据作为反馈数据发送到tee-driver。
S8:底层安全通信驱动(tee-driver)接收上述服务端发送过来的反馈数据后,将其拷贝至共享内存中。
S9:处理器从安全操作系统切换至普通操作系统。
可选的,通过底层安全通信驱动(tee-driver)设置一普通中断来实现切换。
S10:普通操作系统进入底层普通通信驱动(doscom-driver);
在一具体实时方式中,还包括:底层普通通信驱动(doscom-driver)唤醒拥有共享内存独占权的客户端。唤醒的本质是发送一个事件,这个事件会使正在等待这个事件的进程重新恢复运行态。
S11:底层普通通信驱动(doscom-driver)从共享内存中读取所述反馈数据后,将其拷贝至所述客户端中。
S12:底层普通通信驱动(doscom-driver)清除所述共享内存中的数据,并释放独占权。具体的,拥有独占权的客户端清除共享内存后,就释放共享内存独占权,即释放在步骤S2获取的互斥量。优选的,还将同时发送一个事件,这个事件会唤醒正在等待获取共享内存独占权的其他客户端进程。
S13:当前的客户端退出底层普通通信驱动(doscom-driver)区域,并返回自己的空间。底层普通通信驱动(doscom-driver)则继续接收来自其他客户端的操作请求,重复步骤S1到步骤S13的过程。
实施例二
本实施例基于实施例一提供一具体运用场景,该运用场景为客户端A请求服务端A加密数据。
具体的,可以包括以下步骤:
1.客户端A通过GPTEE Client API接口进入了doscom-driver区域(假设此时共享内存处于空闲状态);
2.客户端A获取共享内存独占权;
3.客户端A清除共享内存数据;
4.客户端A把需要发送给服务端A的数据进行封装,并把封装后的数据拷贝到共享内存区域;
5.处理器切换到安全操作系统进行运行,客户端进入休眠等待;
6.安全操作系统通知tee-driver读取共享内存数据;
7.tee-driver读取共享内存数据,并解析这些数据;
8.tee-driver把解析后的数据发送给服务端A;
9.服务端A接收到数据后,对数据进行加密;
10.服务端A把加密后的数据发送给tee-driver;
11.tee-driver接收来自服务端A的数据,把数据写到共享内存区域;
12.处理器切换到普通操作系统进行运行,唤醒客户端A;
13.客户端A读取共享内存数据到自己的空间;
14.客户端A清除共享内存数据,并释放共享内存独占权,同时唤醒正在等待获取独占权的其他客户端进程;
15.客户端A退出GPTEE Client API,返回自己的用户空间,请求加密数据过程结束。
实施例三
本实施例在实施例一的基础上进一步拓展,提供一种基于双系统共享内存的数据交互方法,解决双系统使用共享内存进行通信,从而存在如何协调双系统和保护共享内存中数据的问题。本实施例既可以有效防止其他客户端程序读取共享内存中的数据,又能够协调多个客户端及两个操作系统对共享内存进程进行有序操作。
本实施例同样基于图2所示的双系统的数据通信模型实现。
同时结合图3,具体数据交互流程如下:
S1:预设一快速中断及其对应的快速中断处理程序、一普通中断及其对应的普通中断处理程序,所述快速中断处理程序位于安全操作系统的底层安全通信驱动中,所述普通中断处理程序位于普通操作系统的底层普通通信驱动中。
需要说明的是,ARM处理器上的中断分成快速中断(FIQ)和普通中断(IRQ),trustzone技术可以使安全操作系统处理快速中断,而普通操作系统处理普通中断。即当处理器发生一个快速中断时,处理器会切换到安全操作系统处理这个快速中断向量,当处理器发生一个普通中断时,处理器会切换到普通操作系统处理这个普通中断向量。
利用上述trustzone的这个中断机制,本实施例通过该步骤,使用处理器上两个未被分配的中断号,比如中断号129和中断号130,把中断号129设置成快速中断(FIQ-129),把中断号130设置成普通中断(IRQ-130),并在驱动程序doscom-driver中设计IRQ-130中断处理程序,在tee-driver驱动程序中设计FIQ-129的中断处理程序。当处理器产生FIQ-129中断时,处理器就会进入tee-driver中断号129的中断处理程序,同理,当处理器发生IRQ-130中断时,处理器就会进入doscom-driver中断号130的中断处理器程序。
其中,未分配的中断号指处理器上那些暂时没有被分配到外部或者内部设备的中断号,一旦被分配后,只能由相应的设备才能产生相应的中断,没有被分配的中断号,这些中断号可以作为软中断使用,即软件可以通过手动配置的方式产生这个中断。
S2:普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权。
具体的,包括:
S21:普通操作系统中的一客户端通过调用服务端系统调用接口(GPTEE InternelAPI),进入底层普通通信驱动(doscom-driver)区域;
S22:客户端尝试获取共享内存的独占权。
若当前共享内存区域已经有其他客户端程序在使用,则获取独占权失败,则当前客户端程序就进入休眠,等待这个独占权被释放,再返回执行S22。
若互斥量处于空闲状态,则当前客户端获取共享内存的独占权。
S3:底层普通通信驱动(doscom-driver)清除共享内存中的数据。
S4:底层普通通信驱动(doscom-driver)将拥有独占权的客户端要发送至安全操作系统中一服务端的数据经过封装后,拷贝至共享内存。
S5:底层普通通信驱动(doscom-driver)触发S1中预设的快速中断;
在一具体实施方式中,所述S5中触发了快速中断后,客户端将进入休眠等待状态,等待一个事件将其唤醒,在这个事件发生前,客户端进程处于非运行态。
S6:处理器依据所述快速中断切换至安全操作系统运行;
S7:安全操作系统响应所述快速中断服务,并根据该快速中断进入底层安全通信驱动(tee-driver)中的快速中断处理程序;
S8:底层安全通信驱动(tee-driver)依据所述快速中断处理程序从共享内存中读取经过封装的所述数据后发送至所述服务端。具体的,快速中断处理程序通知tee-driver的共享内存读取程序,通过tee-driver读取程序读取共享内存的经过封装的所述数据。
S9:底层安全通信驱动(tee-driver)解析所获取的数据,然后将解析后的数据发送至对应的服务端。
S10:服务端接收到从tee-driver发送而来的数据后,对这些数据进行相应的处理(比如加密、解密、计算操作等),处理完成后,服务端再把处理后的数据作为反馈数据发送到tee-driver。
S11:底层安全通信驱动(tee-driver)接收上述服务端发送过来的反馈数据后,将其拷贝至共享内存中。
S12:底层安全通信驱动(tee-driver)触发S1预设的普通中断;
S13:处理器依据所述普通中断切换至普操作系统运行;
S14:普通操作系统响应所述普通中断服务,并根据该普通中断进入底层普通通信驱动(doscom-driver)的普通中断处理程序;
在一具体实时方式中,S14还包括:普通中断处理程序唤醒拥有共享内存独占权的客户端。唤醒的本质是发送一个事件,这个事件会使正在等待这个事件的进程重新恢复运行态。
S15:底层普通通信驱动(doscom-driver)依据所述普通中断处理程序从共享内存中读取所述反馈数据后,将其拷贝至所述客户端中。
S16:底层普通通信驱动(doscom-driver)清除所述共享内存中的数据,并释放独占权。优选的,还将同时发送一个事件,这个事件会唤醒正在等待获取共享内存独占权的其他客户端进程。
S17:当前的客户端退出底层普通通信驱动(doscom-driver)区域,并返回自己的空间。底层普通通信驱动(doscom-driver)则继续接收来自其他客户端的操作请求,重复步骤S2到步骤S16的过程。
实施例四
本实施例对应实施例三提供一具体运用场景,该运用场景为客户端A请求服务端A加密数据。
具体的,可以包括以下步骤:
1.客户端A通过GPTEE Client API接口进入了doscom-driver区域(假设此时共享内存处于空闲状态);
2.客户端A获取共享内存独占权;
3.客户端A清除共享内存数据;
4.客户端A把需要发送给服务端A的数据进行封装,并把封装后的数据拷贝到共享内存区域;
5.客户端A产生快速中断FIQ-129(此时处理器会自动切换到安全操作系统进行运行),之后进入休眠等待;
6.安全操作系统进入FIQ-129快速中断服务程序,中断服务程序通知tee-driver读取共享内存数据;
7.tee-driver读取共享内存数据,并解析这些数据;
8.tee-driver把解析后的数据发送给服务端A;
9.服务端A接收到数据后,对数据进行加密;
10.服务端A把加密后的数据发送给tee-driver;
11.tee-driver接收来自服务端A的数据,把数据写到共享内存区域;
12.tee-driver产生普通中断IRQ-130(此时处理器会自动切换到普通操作系统进行运行);
13.普通操作系统进入IRQ-130中断服务程序,中断服务程序唤醒客户端A;
14.客户端A读取共享内存数据到自己的空间;
15.客户端A清除共享内存数据,并释放共享内存独占权,同时唤醒正在等待获取独占权的其他客户端进程;
16.客户端A退出GPTEE Client API,返回自己的用户空间,请求加密数据过程结束。
实施例五
请参阅图5,本实施例对应实施例一,提供一种保护双系统共享内存数据安全的系统,包括:
获取模块1,用于普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权;
在一具体实施方式中,所述获取模块1,具体用于普通操作系统中的一客户端进入底层普通通信驱动,获取处于非使用中状态的共享内存的独占权;
第二清除模块7,用于拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存之前清除共享内存中的数据;
第一拷贝模块2,用于拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存;
第一切换模块8,用于所述安全操作系统从共享内存中读取所述数据,并发送至所述服务端之前,处理器从普通操作系统切换至安全操作系统;
第一读取模块3,用于安全操作系统从共享内存中读取所述数据,并发送至所述服务端;
在一具体实施方式中,所述第一读取模块3,具体用于安全操作系统的底层安全通信驱动从共享内存中读取所述数据后发送至所述服务端;
第二拷贝模块4,用于拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存;
在一具体实施方式中,所述第二拷贝模块4,具体用于底层安全通信驱动接收到所述服务端发送过来的对所述数据进行相应处理后的反馈数据后,将其拷贝至共享内存中;
第二切换模块9,用于所述客户端从共享内存中读取所述反馈数据之前,处理器从安全操作系统切换至普通操作系统;
第二读取模块5,用于所述客户端从共享内存中读取所述反馈数据;
在一具体实施方式中,所述第二读取模块5,具体用于底层普通通信驱动从共享内存中读取所述反馈数据后拷贝至所述客户端中;
第一清除模块6,用于清除所述共享内存中的数据,并释放所述独占权。
在另一具体实施方式中,所述第一拷贝模块,具体用于底层普通通信驱动将所述客户端要发送至安全操作系统中一服务端的数据经过封装后,拷贝至共享内存;所述第一读取模块,具体用于安全操作系统的底层安全通信驱动从共享内存中读取经过封装的所述数据,并解析得到所述数据,然后发送至所述服务端。
在另一具体实施方式中,还包括:
休眠模块10,用于在所述拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存之后,客户端进入休眠等待状态;
唤醒模块11,用于在所述拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存之后,唤醒所述客户端。
综上所述,本发明提供的一种保护双系统共享内存数据安全的方法及系统,在普通操作系统底层通信驱动内部采用互斥独占方式来读写共享内存,只允许获取独占权的客户端进程对共享内存区域进行操作,并在读写共享内存前后,对共享内存进行清除操作,可以防止共享内存中数据泄露等风险。同时,在安全操作系统和普通操作系统的底层通信驱动中分别维持一个中断服务程序,用于互相通知对方,可以协调两个操作系统有条不稳的对共享内存进程操作,防止两个操作系统产生冲突。本发明既可以协调多个客户端程序同时访问共享内存造成的冲突,又可以防范共享内存数据被其他客户端程序获取。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种保护双系统共享内存数据安全的方法,其特征在于,包括:
普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权;
拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存;
安全操作系统从共享内存中读取所述数据,并发送至所述服务端;
拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存;
所述客户端从共享内存中读取所述反馈数据;
清除所述共享内存中的数据,并释放所述独占权;
所述普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权,具体为:
普通操作系统中的一客户端进入底层普通通信驱动,获取处于非使用中状态的共享内存的独占权;
所述安全操作系统从共享内存中读取所述数据,并发送至所述服务端,具体为:
安全操作系统的底层安全通信驱动从共享内存中读取所述数据后发送至所述服务端;
所述拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存,具体为:
底层安全通信驱动接收到所述服务端发送过来的对所述数据进行相应处理后的反馈数据后,将其拷贝至共享内存中;
所述客户端从共享内存中读取所述反馈数据,具体为:
底层普通通信驱动从共享内存中读取所述反馈数据后拷贝至所述客户端中。
2.如权利要求1所述的一种保护双系统共享内存数据安全的方法,其特征在于,所述拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存,之前,还包括:
清除共享内存中的数据。
3.如权利要求1所述的一种保护双系统共享内存数据安全的方法,其特征在于,所述安全操作系统从共享内存中读取所述数据,并发送至所述服务端,之前,进一步包括:
处理器从普通操作系统切换至安全操作系统;
所述客户端从共享内存中读取所述反馈数据,之前,还包括:
处理器从安全操作系统切换至普通操作系统。
4.如权利要求1所述的一种保护双系统共享内存数据安全的方法,其特征在于,所述拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存,具体为:
底层普通通信驱动将所述客户端要发送至安全操作系统中一服务端的数据经过封装后,拷贝至共享内存;
所述安全操作系统的底层安全通信驱动从共享内存中读取所述数据后发送至所述服务端,具体为:
安全操作系统的底层安全通信驱动从共享内存中读取经过封装的所述数据,并解析得到所述数据,然后发送至所述服务端。
5.如权利要求1所述的一种保护双系统共享内存数据安全的方法,其特征在于,在所述拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存之后,客户端进入休眠等待状态;
在所述拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存之后,唤醒所述客户端。
6.一种保护双系统共享内存数据安全的系统,其特征在于,包括:
获取模块,用于普通操作系统中的一客户端获取处于非使用中状态的共享内存的独占权;
第一拷贝模块,用于拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存;
第一读取模块,用于安全操作系统从共享内存中读取所述数据,并发送至所述服务端;
第二拷贝模块,用于拷贝所述服务端对所述数据进行相应处理后的反馈数据至共享内存;
第二读取模块,用于所述客户端从共享内存中读取所述反馈数据;
第一清除模块,用于清除所述共享内存中的数据,并释放所述独占权;
所述获取模块,具体用于普通操作系统中的一客户端进入底层普通通信驱动,获取处于非使用中状态的共享内存的独占权;
所述第一读取模块,具体用于安全操作系统的底层安全通信驱动从共享内存中读取所述数据后发送至所述服务端;
所述第二拷贝模块,具体用于底层安全通信驱动接收到所述服务端发送过来的对所述数据进行相应处理后的反馈数据后,将其拷贝至共享内存中;
所述第二读取模块,具体用于底层普通通信驱动从共享内存中读取所述反馈数据后拷贝至所述客户端中;
所述第一拷贝模块,具体用于底层普通通信驱动将所述客户端要发送至安全操作系统中一服务端的数据经过封装后,拷贝至共享内存;
所述第一读取模块,具体用于安全操作系统的底层安全通信驱动从共享内存中读取经过封装的所述数据,并解析得到所述数据,然后发送至所述服务端。
7.如权利要求6所述的一种保护双系统共享内存数据安全的系统,其特征在于,还包括:
第二清除模块,用于拷贝所述客户端要发送至安全操作系统中一服务端的数据至共享内存之前清除共享内存中的数据。
8.如权利要求6所述的一种保护双系统共享内存数据安全的系统,其特征在于,还包括:
第一切换模块,用于所述安全操作系统从共享内存中读取所述数据,并发送至所述服务端之前,处理器从普通操作系统切换至安全操作系统;
第二切换模块,用于所述客户端从共享内存中读取所述反馈数据之前,处理器从安全操作系统切换至普通操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711115302.3A CN109783207B (zh) | 2017-11-13 | 2017-11-13 | 保护双系统共享内存数据安全的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711115302.3A CN109783207B (zh) | 2017-11-13 | 2017-11-13 | 保护双系统共享内存数据安全的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783207A CN109783207A (zh) | 2019-05-21 |
CN109783207B true CN109783207B (zh) | 2023-08-22 |
Family
ID=66493120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711115302.3A Active CN109783207B (zh) | 2017-11-13 | 2017-11-13 | 保护双系统共享内存数据安全的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783207B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427274B (zh) * | 2019-07-16 | 2020-07-17 | 阿里巴巴集团控股有限公司 | Tee系统中的数据传输方法和装置 |
US11003785B2 (en) | 2019-07-16 | 2021-05-11 | Advanced New Technologies Co., Ltd. | Data transmission method and apparatus in tee systems |
CN111209571A (zh) * | 2020-01-07 | 2020-05-29 | 天津飞腾信息技术有限公司 | 基于arm处理器的安全世界与非安全世界的通信方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123233A (zh) * | 2013-04-26 | 2014-10-29 | 华茂云天科技(北京)有限公司 | 一种虚拟机大容量内存共享方法 |
CN106899545A (zh) * | 2015-12-18 | 2017-06-27 | 联芯科技有限公司 | 一种终端安全通信的系统和方法 |
CN107194284A (zh) * | 2017-06-22 | 2017-09-22 | 济南浪潮高新科技投资发展有限公司 | 一种基于TrustZone隔离用户数据的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8312228B2 (en) * | 2010-04-06 | 2012-11-13 | Sap Ag | Processing data in shared memory by multiple processes |
-
2017
- 2017-11-13 CN CN201711115302.3A patent/CN109783207B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123233A (zh) * | 2013-04-26 | 2014-10-29 | 华茂云天科技(北京)有限公司 | 一种虚拟机大容量内存共享方法 |
CN106899545A (zh) * | 2015-12-18 | 2017-06-27 | 联芯科技有限公司 | 一种终端安全通信的系统和方法 |
CN107194284A (zh) * | 2017-06-22 | 2017-09-22 | 济南浪潮高新科技投资发展有限公司 | 一种基于TrustZone隔离用户数据的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109783207A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9628279B2 (en) | Protecting application secrets from operating system attacks | |
US11943340B2 (en) | Process-to-process secure data movement in network functions virtualization infrastructures | |
CN107851151B (zh) | 保护虚拟机的状态信息 | |
CN109783245B (zh) | 基于双系统共享内存的数据交互方法及系统 | |
TWI697805B (zh) | 載入和虛擬化密碼金鑰 | |
US9086913B2 (en) | Processor extensions for execution of secure embedded containers | |
US8862898B2 (en) | Secure environment management during switches between different modes of multicore systems | |
US7827326B2 (en) | Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral | |
US20150089246A1 (en) | Information processing apparatus and computer program product | |
JP5737050B2 (ja) | 情報処理装置、割込み制御方法および割込み制御プログラム | |
GB2531844B (en) | Hardware-protective data processing systems and methods using an application executing in a secure domain | |
US7475257B2 (en) | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data | |
US7853954B2 (en) | Method and apparatus for preserving the context of tasks during task switching in a pipeline architecture | |
US10754991B2 (en) | Method to isolate real-time or safety-critical software and operating system from non-critical software and operating system | |
JP4507791B2 (ja) | 複数のプロセッサにソフトウェアをロードするシステムおよび方法 | |
CN109783207B (zh) | 保护双系统共享内存数据安全的方法及系统 | |
JP6682752B2 (ja) | セキュアエンクレーブを用いてデータ暗号化を強化するための技術 | |
US11748493B2 (en) | Secure asset management system | |
JP4375980B2 (ja) | マルチタスク実行システム及びマルチタスク実行方法 | |
Nakashima et al. | MigSGX: a migration mechanism for containers including SGX applications | |
US11842227B2 (en) | Hypervisor secure event handling at a processor | |
US20120066415A1 (en) | Methods and systems for direct memory access (dma) in-flight status | |
US20150356307A1 (en) | Safe input method and system | |
US7320044B1 (en) | System, method, and computer program product for interrupt scheduling in processing communication | |
US20190042797A1 (en) | Security Hardware Access Management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 303-e, Zone C, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province Patentee after: Xiamen Yaxun Zhilian Technology Co.,Ltd. Country or region after: China Address before: 303-e, Zone C, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province Patentee before: XIAMEN YAXON NETWORK Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |