进程间通信身份验证及应用软件间通信方法和系统的制作方法

文档序号:9708166阅读:823来源:国知局
进程间通信身份验证及应用软件间通信方法和系统的制作方法
【技术领域】
[0001]本发明涉及计算机互联网技术领域,特别是涉及一种进程间通信身份验证及应用软件间通信方法和系统。
【背景技术】
[0002]随着计算机互联网技术的不断发展,各种各样功能的应用软件层出不穷,为用户带来了极大的应用体验。
[0003]在实际应用中,经常会涉及到应用软件间的信息通信,传统的应用软件之间的通信,一般都是通过后台交互来实现,在两个应用之间进行信息通信时,两个应用的进程间通信身份验证属于关键的技术点,假设为应用1和应用2,应用1的后台首先生成一个token (授权令牌),并生成一个授权token给应用2的后台;应用1的后台下发token给应用1,并将生成的授权token传递给应用2的后台;应用2的后台下发token给应用2 ;应用2将token传递给应用1,应用1检验token,通过则与应用2进行信息传递。
[0004]上述通信身份验证技术存在明显的缺点,由于是进程需要后台之间的交互,token在应用2与应用1之间传递存在被拦截的可能性,而且连接验证一般只在建立连接时,所以在连接建立以后,应用1无法通过上述验证确定与自己对接的是应用2,由此可见,该技术存在容易被第三方软件利用的危险,安全性低。

【发明内容】

[0005]基于此,有必要针对上述问题,提供一种安全性更高的进程间通信身份验证方法和系统及应用软件间通信方法和系统。
[0006]一种进程间通信身份验证方法,包括如下步骤:
[0007]创建本进程的第一消息接收窗体,其中,所述第一消息接收窗体用于与通信对象进程的第二消息接收窗体进行通信;
[0008]获取通信对象进程的通信连接请求,其中,所述通信连接请求包括第二消息接收窗体的窗体句柄;
[0009]根据所述窗体句柄获取第二消息接收窗体的线程标识,并根据所述线程标识获取系统进程中创建第二消息接收窗体的线程模块;
[0010]根据所述线程模块验证所述通信对象进程的身份。
[0011]一种进程间通信身份验证系统,包括:
[0012]第一窗体创建模块,用于创建本进程的第一消息接收窗体,其中,所述第一消息接收窗体用于与通信对象进程的第二消息接收窗体进行通信;
[0013]第一连接请求获取模块,用于获取通信对象进程的通信连接请求,其中,所述通信连接请求包括第二消息接收窗体的窗体句柄;
[0014]第一线程模块获取模块,用于根据所述窗体句柄获取第二消息接收窗体的线程标识,并根据所述线程标识获取系统进程中创建第二消息接收窗体的线程模块;
[0015]第一对象身份验证模块,用于根据所述线程模块验证所述通信对象进程的身份。
[0016]上述进程间通信身份验证方法和系统,首先进程通信双方创建相应的消息接收窗体,利用窗体标识的唯一性,通过获取线程相关标识信息,进而获取到创建通信对象窗体的真实体,验证创建窗体的真实体的身份,实现对通信对象进程的安全验证和识别,能够确保准确知道与本进程通信对方的身份,提高了进程间通信时的身份验证的安全性和可靠性。
[0017]一种应用软件间通信方法,包括如下步骤:
[0018]创建本应用软件的第一消息接收窗体,其中,所述第一消息接收窗体用于与通信对象软件的第二消息接收窗体进行通信;
[0019]获取通信对象软件的通信连接请求,其中,所述通信连接请求包括第二消息接收窗体的窗体句柄;
[0020]根据所述窗体句柄获取第二消息接收窗体的线程标识,并根据所述线程标识获取系统进程中创建第二消息接收窗体的线程模块;
[0021 ] 根据所述线程模块验证所述通信对象软件的身份;
[0022]验证通过后利用所述第一消息接收窗体与第二消息接收窗体进行信息传递。
[0023]一种应用软件间通信系统,包括:
[0024]第二窗体创建模块,用于创建本应用软件的第一消息接收窗体,其中,所述第一消息接收窗体用于与通信对象软件的第二消息接收窗体进行通信;
[0025]第二连接请求获取模块,用于获取通信对象软件的通信连接请求,其中,所述通信连接请求包括第二消息接收窗体的窗体句柄;
[0026]第二线程模块获取模块,用于根据所述窗体句柄获取第二消息接收窗体的线程标识,并根据所述线程标识获取系统进程中创建第二消息接收窗体的线程模块;
[0027]第二对象身份验证模块,用于根据所述线程模块验证所述通信对象软件的身份;
[0028]信息传递模块,用于验证通过后利用所述第一消息接收窗体与第二消息接收窗体进行信息传递。
[0029]上述应用软件间通信方法和系统,是为应用软件通信双方创建相应的窗体,利用窗体标识的唯一性,通过获取线程相关标识信息,进而获取到创建通信对象窗体的真实体,验证创建窗体的真实体的身份,实现对通信对象软件的安全验证和识别,能够确保准确知道与本应用软件通信对方的身份,然后利用通过验证的窗体来进行消息传递,无需通过后台的接入,避免被第三方截获风险,提高了通信的安全性。
【附图说明】
[0030]图1为一个实施例的进程间通信身份验证方法流程图;
[0031]图2为进程间通信身份验证方法一个应用示例的时序图;
[0032]图3为一个实施例的进程间通信身份验证系统结构示意图;
[0033]图4为一个实施例的第一线程模块获取模块结构示意图;
[0034]图5为一个实施例的应用软件间通信方法流程图;
[0035]图6为进程间通信身份验证方法一个应用示例的时序图;
[0036]图7为一个实施例的应用软件间通信系统结构示意图;
[0037]图8为一个实施例的第一线程模块获取模块结构示意图;
[0038]图9为能实现本发明实施例的一个计算机系统的模块图。
【具体实施方式】
[0039]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0040]参考图1所示,图1为一个实施例的进程间通信身份验证方法流程图,包括如下步骤:
[0041]步骤S101,创建本进程的第一消息接收窗体,其中,所述第一消息接收窗体用于与通信对象进程的第二消息接收窗体进行通信。
[0042]在此步骤中,为本进程创建用于通信双方进行通信的消息接收窗体,这里可以采用windows系统下WM_C0PYDATA消息作为消息进程间的通信方式,实现本进程与通信对象进程的消息接收窗体进行通信。
[0043]步骤S102,获取通信对象进程的通信连接请求,其中,所述通信连接请求包括第二消息接收窗体的窗体句柄。
[0044]在此步骤中,属于建立通信连接过程,可以由本进程接收第二消息接收窗体带上窗体句柄的请求,窗体句柄是操作系统生成的一种窗体标识,具有唯一性。在操作系统内不能创建另一个具有相应窗体句柄的消息接收窗体。
[0045]步骤S103,根据所述窗体句柄获取第二消息接收窗体的线程标识(即线程ID),并根据所述线程标识获取系统进程中创建第二消息接收窗体的线程模块。
[0046]在此步骤中,利用窗体标识的唯一性的特性,通过窗体句柄获取第二消息接收窗体的线程标识,通过获取线程相关标识信息,进而获取到对应在系统进程中创建通信对象进程的消息接收窗体的线程模块,即创建与本进程进行通信的消息接收窗体的真实体。
[0047]对于根据窗体句柄获取消息接收窗体的线程标识,可以通过操作系统相应的API (Applicat1n Programming Interface,应用程序编程接口)得到消息接收窗体所在的线程标识。
[0048]例如,在windows系统中,由系统API直接支持,系统内部维护一个从句柄到其线程标识与进程标识的映射表,其API如下:
[0049]DWORD Get Window Thread Processld//返回窗体句柄所在的线程标识
[0050]HWND h ffnd, //传入窗体句柄
[0051]LPDWORD lp dw Processld//传出该句柄所在的进程标识;
[0052]通过调用windows系统的上述API就可以直接得到窗体所在的线程标识。
[0053]在一个实施例中,对于步骤S103的根据线程标识获取创建第二消息接收窗体的线程模块的过程,可以包括如下步骤:
[0054](a)根据所述线程标识查询线程信息获得相应线程的线程句柄。
[0055]线程句柄为一个线程信息对应的一个标识,通过线程句柄可以查询到相关的线程信息或操作线程。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1