软件进程间安全通信系统的制作方法

文档序号:8004380阅读:385来源:国知局
专利名称:软件进程间安全通信系统的制作方法
技术领域
本发明涉及计算机信息安全领域,尤其涉及一种进程间安全的交换数据信息的软件进程间的安全通信系统。
背景技术
在现代基于很多种原因,软件使用多进程的架构实现,比如由于模块化,权限分担等。在进程间安全的交换数据信息是一种非常基本的需求。许多软件设计利用传统的进程间通信技术来达到此目的,比如信号,套接字,邮件槽,共享内存,信号量等。
在有些情况下,进程间的需要高级别的安全通信。比如当将具有版权的内容在进程间进行拷贝。传统的进程间通信方法暴露在很多威胁面前,比如竞争条件,中间人攻击等等。一个安全的通信路径需要在进行内容交换前建立起来。所以,非常需要安全的进行认证和密钥交换的方法。
鉴于以上的几种问题,一种新的效果好、安全性能高的一种软件进程间安全通信系统的发明是势在必行的。发明内容
本发明要解决的技术问题是现有的进程间的安全通信的级别较低,仍然有许多问题,比如竞争条件,中间人攻击等等。
本发明的目的是针对上述问题,提出一种利用系统驱动层来进行认证和密钥交换的方法,即一个安全的通信路径在进行内容交换前被建立起来、安全的进行认证和密钥交换的方法。
为了达到上述目的,本发明提供了一种软件进程间安全通信系统,
一种软件进程间安全通信系统,其包括需要进行密钥交换的若干进程,其中发送数据的一方定义为源进程,接受数据的一方定义为终进程,其特征在于源进程与终进程间的进程间认证和密钥交换共享一个秘密的数据,所述该数据被用来生成密钥,所述生成的密钥将实时的加密两段进程的数据。
所述需要进行密钥交换的进程间通过系统驱动对对方进行认证,在认证过程中, 进程间没有直接的与安全相关的通信。
所述进程与驱动之间的命令,使用操作系统接口。
所述命令由安全模块发送,驱动层不发送命令,根据命令的格式从命令中解析出数据,或者写入数据到命令的缓冲区中。
所述进程各方保存有各自的公钥、私钥用以对发送的数据进行签名;进程各方保存对方的公钥用以对签名进行验证。
所述进行认证和密钥交换的流程还包括
标识数据的顺序连接;
源进程利用源进程的私钥对数据进行签名;
终进程利用终进程的私钥对数据进行签名;利用源进程的公钥对源进程的签名进行验证;利用终进程的公钥对终进程的签名进行验证。所述数据的传输从认证驱动到发送命令的进程,进而从认证驱动获获取随机数标识,改标识用以标记和对方进程互换的密钥。所述数据的传输从发送命令的进程到认证驱动,进而发送一段数据到认证驱动, 包括要发送的数据,密钥标识,和签名。所述数据的传输从认证驱动到发送命令的进程,进而,从认证驱动获取一段数据, 包括对方进程想要发送的数据,密钥标识,和对方进程的签名。所述进行认证和密钥交换的流程还包括源进程通过得到命令的到一个密钥标识;源进程通过发送命令发送互换数据;源进程调用终进程接口,终进程在接收到这一调用时开始进行终进程这段的步骤,如下4-7,终进程首先进行任何其他相关的准备工作;终进程通过得到命令得到一个密钥标识;终进程读取源进程的互换数据;终进程通过发送命令发送互换数据;初始化安全通信接口返回,源进程此时认为终进程已经准备好进行安全通信;源进程通过读取命令读取源进程的互换数据;终进程计算共享密钥;源进程计算共享密钥;利用共享密钥,源进程和终进程可以加密任意的需要加密的IPC信息,从而实现安全的进程间通信。本发明的有益效果是1.操作系统系统驱动更加难以拦截和调试,增加了软件方案的安全性。同时由于系统驱动层的命令拦截更加困难,中间人攻击的可能性被大大的降低。2.由于共享密钥在运行时确定,它可以被用作被认证过的两个进程未来的进程间通信的会话密钥,或者用于加密会话密钥的根密钥。这种方法区别于使用事先分享好的密钥,可以加强软件系统的安全性。


通过以下对本发明的实施例结合其附图的描述,可以进一步理解其发明的目的、 具体结构特征和优点。其中,附图为图1为本发明进程间密钥交换流程示意图;图2为本发明命令传递示意图;图3为本发明进程间建立一条安全的通信通道的示意图。图4为本发明实施例的操作流程示意图。
具体实施例方式本发明是应用在计算机信息安全领域,尤其涉及一种进程间安全的交换数据信息的软件进程间的安全通信系统,是在对现有的软件进程间的安全通信系统的基础上作出的重大改进,具有非常重要的实践意义。本发明介绍了一种利用系统驱动层来进行认证和密钥交换的方法。首先,把通信的进程发送数据的一方和接受数据的一方简称为源进程和终进程。 进程间认证和密钥交换的目的是为了共享一个秘密的数据,然后该数据被用来生成的密钥,这个生成的密钥将实时的加密两段进程的数据。如图1所示,在这一模型中,许多认证算法可以使用。下面使用椭圆曲线密钥交换算法(Elliptic curve Diffie-Hellman)来描述一个进程认证和密钥交换的流程。如图1所示,本发明的目的是为源进程(数据发送进程)和终进程(数据接受进程)安全的IPC(进程间通信)和安全的数据传输提供密钥分享机制。在一种典型的设计场景中有源进程,终进程,认证驱动3方。双方进程在运行时通过一系列与认证驱动的命令 (具体由图2、图3所示)来进行认证和密钥交换,此后,利用所交换的密钥,对IPC和数据传输进行加密传输(具体的加密格式可以任意)。如图2所示,需要进行密钥交换的两个进程通过系统驱动对对方进行认证,在认证过程中,进程间没有任何直接的与安全相关的通信。进程与驱动之间命令,使用操作系统接口。在windows中,使用DeviceIoControl,在Linux中,使用ioctl接口。所有的命令都是由安全模块发送,驱动层不会发送命令,根据命令的格式从命令中解析出数据,或者写入数据到命令的缓冲区中。图例3示例了一个在进程间建立一条安全的通信通道的过程。如下将以此为例详细介绍认证和密钥交换的流程双方进程将保存有各自的公钥、私钥对用以对发送的数据进行签名。进程双方保存对方的公钥用以对签名进行验证。其中Al |B标识A数据和B数据的顺序连接。Sign_src (DATA)表示源进程利用源进程的私钥对DATA数据进行签名。Sign_sin (DATA)表示终进程利用终进程的私钥对DATA数据进行签名。Verify_src (DATA (Sign_src (DATA)))表示利用源进程的公钥对源进程的签名进行验证。Verify_sin (DATA (Sign_sin (DATA)))表示利用终进程的公钥对终进程的签名进行验证。认证驱动命令列表
权利要求
1.一种软件进程间安全通信系统,其包括需要进行密钥交换的若干进程,其中发送数据的一方定义为源进程,接受数据的一方定义为终进程,其特征在于源进程与终进程间的进程间认证和密钥交换共享一个秘密的数据,所述该数据被用来生成密钥,所述生成的密钥将实时的加密两段进程的数据。
2.根据权利要求1所述的一种软件进程间安全通信系统,其特征在于所述需要进行密钥交换的进程间通过系统驱动对对方进行认证,在认证过程中,进程间没有直接的与安全相关的通信。
3.根据权利要求1所述的一种软件进程间安全通信系统,其特征在于所述进程与驱动之间的命令,使用操作系统接口。
4.根据权利要求3所述的一种软件进程间安全通信系统,其特征在于所述命令由安全模块发送,驱动层不发送命令,根据命令的格式从命令中解析出数据,或者写入数据到命令的缓冲区中。
5.根据权利要求1所述的一种软件进程间安全通信系统,其特征在于所述进程各方保存有各自的公钥、私钥用以对发送的数据进行签名;进程各方保存对方的公钥用以对签名进行验证。
6.根据权利要求5所述的一种软件进程间安全通信系统,其特征在于所述进行认证和密钥交换的流程还包括标识数据的顺序连接;源进程利用源进程的私钥对数据进行签名;终进程利用终进程的私钥对数据进行签名;利用源进程的公钥对源进程的签名进行验证;利用终进程的公钥对终进程的签名进行验证。
7.根据权利要求1所述的一种软件进程间安全通信系统,其特征在于所述数据的传输从认证驱动到发送命令的进程,进而从认证驱动获取随机数标识,该标识用以标记和对方进程互换的密钥。
8.根据权利要求7所述的一种软件进程间安全通信系统,其特征在于所述数据的传输从发送命令的进程到认证驱动,进而发送一段数据到认证驱动,包括要发送的数据,密钥标识,和签名。
9.根据权利要求8所述的一种软件进程间安全通信系统,其特征在于所述数据的传输从认证驱动到发送命令的进程,进而,从认证驱动获取一段数据,包括对方进程想要发送的数据,密钥标识,和对方进程的签名。
10.根据权利要求9所述的一种软件进程间安全通信系统,其特征在于所述进行认证和密钥交换的流程还包括源进程通过得到命令的到一个密钥标识;源进程通过发送命令发送互换数据;源进程调用终进程接口,终进程在接收到这一调用时开始进行终进程这段的步骤,如下,终进程首先进行任何其他相关的准备工作;终进程通过得到命令得到一个密钥标识;终进程读取源进程的互换数据; 终进程通过发送命令发送互换数据;初始化安全通信接口返回,源进程此时认为终进程已经准备好进行安全通信; 源进程通过读取命令读取源进程的互换数据; 终进程计算共享密钥; 源进程计算共享密钥;利用共享密钥,源进程和终进程可以加密任意的需要加密的IPC信息,从而实现安全的进程间通信。
全文摘要
本发明提供了一种软件进程间安全通信系统,其包括需要进行密钥交换的若干进程,其中发送数据的一方定义为源进程,接受数据的一方定义为终进程,其源进程与终进程间的进程间认证和密钥交换共享一个秘密的数据,所述该数据被用来生成密钥,所述生成的密钥将实时的加密两段进程的数据;本发明的有益效果是操作系统系统驱动更加难以拦截和调试,增加了软件方案的安全性;同时由于系统驱动层的命令拦截更加困难,中间人攻击的可能性被大大的降低。由于共享密钥是在运行时确定的,它可以被用作被认证过的两个进程未来的进程间通信的会话密钥,或者用于加密会话密钥的根密钥,这种方法区别于使用事先分享好的密钥,可以更加有效的加强软件系统的安全性。
文档编号H04L29/06GK102497267SQ20111040382
公开日2012年6月13日 申请日期2011年12月7日 优先权日2011年12月7日
发明者张磊 申请人:绚视软件科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1