一种验证客户端合法性的方法和装置与流程

文档序号:13882628阅读:319来源:国知局
一种验证客户端合法性的方法和装置与流程

本发明涉及计算机领域,更具体地说,涉及一种验证客户端合法性的方法和装置。



背景技术:

目前,当客户端访问服务器时,服务器需要对客户端的合法性进行验证,在验证合法时允许客户端访问,在验证不合法时拒绝客户端访问。

目前服务端验证客户端的合法性主要通过信息交互的方式来确认,如:服务端向客户端发送加密数据;客户端接收到加密数据之后进行解密并将解密得到的数据反馈给服务端;服务端确认解密数据准确时确定客户端合法。而在计算机领域,用于解密数据的验证信息很容易被恶意客户端窃取,因此,现有的该种验证客户端合法性的方式仍然存在安全隐患。



技术实现要素:

有鉴于此,本发明提供一种验证客户端合法性的方法和装置,以解决现有技术中验证客户端合法性不准确导致存在安全隐患的问题。

本发明的一方面,提供一种验证客户端合法性的方法,包括:

在接收到客户端发送的连接请求时,获取所述客户端的端口信息;

根据所述端口信息获取所述客户端的应用信息;

判断所述应用信息是否为预先存储的合法应用信息;

若是则确定所述客户端合法。

优选地,所述获取所述客户端的端口信息包括:

调用accept函数获取所述客户端的套接字socket;

根据所述socket获取所述客户端对应的端口信息。

优选地,所述根据所述端口信息获取所述客户端的应用信息,包括:

获取所述客户端的端口对应的协议文件;

根据所述客户端的端口从所述协议文件保存的端口与用户标识符uid的对应关系中,获取所述客户端的uid;

根据所述客户端的uid获取所述客户端的应用信息。

优选地,所述应用信息包括应用名packagename和签名信息,所述根据所述客户端的uid获取所述客户端的应用信息,包括:

根据所述客户端的uid获取所述客户端的packagename;

根据所述客户端的packagename获取所述客户端的签名信息;

判断所述应用信息是否为预先存储的合法应用信息,包括:

判断所述客户端的packagename和签名信息是否均为预先存储的合法信息,若是则确定所述客户端的应用信息为预先存储的合法应用信息。

优选地,前述方法还包括:

当判断所述应用信息不为预先存储的合法应用信息,则确定所述客户端不合法。

本发明另一方面,提供一种验证客户端合法性的装置,包括:

接收模块,用于接收客户端发送的连接请求;

第一获取模块,用于在所述接收模块接收到客户端发送的连接请求时,获取所述客户端的端口信息;

第二获取模块,用于根据所述端口信息获取所述客户端的应用信息;

判断模块,用于判断所述应用信息是否为预先存储的合法应用信息;

第一确定模块,用于当所述判断模块判断所述应用信息为预先存储的合法应用信息时,确定所述客户端合法。

优选地,所述第一获取模块包括:

第一获取子模块,用于调用accept函数获取所述客户端的套接字socket;

第二获取子模块,用于根据所述socket获取所述客户端对应的端口信息。

优选地,所述第二获取模块包括:

第三获取子模块,用于获取所述客户端的端口对应的协议文件;

第四获取子模块,用于根据所述客户端的端口从所述协议文件保存的端口与用户标识符uid的对应关系中,获取所述客户端的uid;

第五获取子模块,用于根据所述客户端的uid获取所述客户端的应用信息。

优选地,所述应用信息包括应用名packagename和签名信息;所述第五获取子模块具体用于:根据所述客户端的uid获取所述客户端的packagename;并根据所述客户端的packagename获取所述客户端的签名信息;

所述判断模块具体用于:判断所述客户端的packagename和签名信息是否均为预先存储的合法信息,若是则确定所述客户端的应用信息为预先存储的合法应用信息。

优选地,所述装置还包括:第二确定模块,用于当所述判断模块判断所述应用信息不为预先存储的合法应用信息时,确定所述客户端不合法。

本发明技术方案,在接收到客户端发送的连接请求后,并不是直接与客户端进行信息交互,而是通过获取到客户端的端口信息之后,根据端口信息获取客户端的应用信息,对该客户端的应用信息合法性进行验证,在验证客户端的应用信息合法时确定客户端合法,由于端口信息的唯一性、无法冒仿性,保证了本发明依据端口信息获取到的客户端的应用信息也是唯一确定、无法冒仿,因此确保了根据客户端的应用信息来验证客户端的合法性的准确性,克服了现有技术验证客户端合法性不准确而导致存在安全隐患的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明提供的验证客户端合法性的方法流程图之一;

图2为本发明提供的获取客户端的端口信息的方法流程图;

图3为本发明提供的获取所述客户端的应用信息的方法流程图;

图4为本发明提供的验证客户端合法性的方法的流程图之二;

图5为本发明提供的验证客户端合法性的装置的结构示意图;

图6为本发明中第一获取模块的结构示意图;

图7为本发明中第二获取模块的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的验证客户端合法性的方法可以被智能设备所执行,所述智能设备可以包括手机、便携式笔记本电脑等。为了便于描述,本发明下述实施例均以手机为例进行说明。

本发明实施例中的一个应用场景可以是:在同一个终端设备的操作系统中,一个应用程序app,在接收到该操作系统里的其他应用程序app发起的连接请求时,该应用程序app对前述其他用用程序app的合法性进行验证。例如,在该应用程序app中预先创建有本地sever(即本地服务器),由该本地服务器监听其他app的客户端发起的连接请求,根据以下图1所示的方法对该客户端的合法性进行验证。

请参阅图1,其示出了本发明提供的一种验证客户端合法性的方法的流程图,方法包括:

步骤101,在接收到客户端发送的连接请求时,获取所述客户端的端口信息。

在本发明实际应用过程中,终端设备的系统存储安装有多个应用程序,每个应用程序在终端设备的系统中运行时,系统都会为其分配一个唯一的端口信息,即系统中不可能同时出现相同的端口信息。

具体在本发明中,当某个应用程序,例如应用程序a处于运行状态中时,用户通过应用程序a中的相关链接向应用程序b的本地服务器发送连接请求;本地服务器接收到客户端发送的连接请求后,可以通过终端设备的系统获取到应用程序a的客户端的端口信息。其中具体的,本发明获取客户端的端口信息可以采用如下方式实现,如图2所示的步骤1011-步骤1012:

步骤1011,调用accept函数获取所述客户端的socket(套接字)。

步骤1012,根据所述socket获取所述客户端对应的端口信息。

即本发明通过调用accept函数获取客户端的socket,然后通过socket(如socket类的getport函数)获取到客户端对应的端口信息。

本发明实施例还可提供另一种获取客户端的端口信息的方式:接收到的连接请求中携带有端口信息,对该连接请求进行解析得到所述客户端的端口信息。或者,从系统中用于存储各个应用程序的端口信息的文件(如tcp文件或udp文件中)中获取所述客户端的端口信息。

步骤102,根据所述端口信息获取所述客户端的应用信息。

由于端口信息的唯一性,本发明可以根据端口信息获取到客户端的应用信息。其中,所述应用信息可以包括packagename(应用名)和/或签名信息。

具体的,本发明步骤102可以采用如图3所示的步骤1021-步骤1023实现,如图3所示包括:

步骤1021,获取所述客户端的端口对应的协议文件。

本发明可以通过执行netstat指令来获取socket的协议,一般包括tcp或tcp6,进而确定目标目录下的所有协议文件。

其中,目标目录可以包括/net/proc/tcp或/net/proc/tcp6等协议文件。

步骤1022,根据所述客户端的端口从所述协议文件保存的端口与uid(useridentification,用户标识符)的对应关系中,获取所述客户端的uid。

本发明目标目录下的协议文件中保存有端口与uid的对应关系,根据客户端的端口即可从该端口与uid的对应关系中获取到客户端的uid。

步骤1023,根据所述客户端的uid获取所述客户端的应用信息。

步骤103,判断所述应用信息是否为预先存储的合法应用信息。如果是,执行步骤104。如果否,执行步骤105。

本发明中的本地服务器预先存储了合法应用信息。当本地服务器获取到客户端的应用信息后,将获取到的客户端的应用信息与预先存储的合法应用信息进行比对,当客户端的应用信息为预先存储的合法应用信息时表明当前客户端的应用信息为合法应用信息,即表明当前客户端合法;而如果客户端的应用信息不是本地服务器预先存储的合法应用信息,则表明当前客户端不合法。

步骤104,确定所述客户端合法。

当本地服务器确定当前客户端的应用信息为合法应用信息时,确定客户端合法。此时优选的,本发明可以选择执行本地服务器响应所述客户端发送的连接请求,向所述客户端发送所述连接请求所请求的数据。

步骤105,确定所述客户端不合法。

而如果当前客户端的应用信息不是本地服务器预先存储的合法应用信息,则确定当前客户端不合法,此时本地服务器可以拒绝所述客户端发送的连接请求。

本发明技术方案,在接收到客户端发送的连接请求后,并不是直接与客户端进行信息交互,而是通过获取到客户端的端口信息之后,根据端口信息获取客户端的应用信息,对该客户端的应用信息合法性进行验证,在验证客户端的应用信息合法时确定客户端合法,由于端口信息的唯一性、无法冒仿性,保证了本发明依据端口信息获取到的客户端的应用信息也是唯一确定、无法冒仿,因此确保了根据客户端的应用信息来验证客户端的合法性的准确性,克服了现有技术验证客户端合法性不准确而导致存在安全隐患的问题。

在本发明上述实施例中,为了保证验证客户端合法的安全性、准确性,本发明中客户端的应用信息可以包括客户端的packagename和签名信息。那么本发明提供的验证客户端合法性的方法具体如图4所示,包括:

步骤201,在接收到客户端发送的连接请求时,获取所述客户端的端口信息。

步骤202,获取所述客户端的端口对应的协议文件。

步骤203,根据所述客户端的端口从所述协议文件保存的端口与uid的对应关系中,获取所述客户端的uid。

步骤204,根据所述客户端的uid获取所述客户端的packagename。

步骤205,根据所述客户端的packagename获取所述客户端的签名信息。

步骤206,判断所述客户端的packagename和签名信息是否均为预先存储的合法信息。如果是,执行步骤207,如果不是,执行步骤208。

步骤207,确定所述客户端合法。

步骤208,确定所述客户端不合法。

在本发明实施例中,本地服务器预先存储有合法packagename和合法签名信息。当本发明中的本地服务器在获取到客户端的packagename和签名信息后,判断packagename是否为合法packagename,且签名信息是否为合法签名信息。当判断得知packagename为合法packagename,且签名信息为合法签名信息时,确定客户端合法,此时优选的,再向客户端发送所述连接请求所请求的数据。

基于前文本发明提供的一种验证客户端合法性的方法,本发明还提供一种验证客户端合法性的装置,还验证客户端合法性的装置也可应用于本地服务器中。装置结构如图5所示,包括:接收模块100、第一获取模块200、第二获取模块300、判断模块400和第一确定模块500。其中,

接收模块100,用于接收客户端发送的连接请求。

具体在本发明中,当某个应用程序,例如应用程序a处于运行状态中时,用户通过应用程序a中的相关链接向本地服务器发送连接请求。当接收模块100接收到客户端发送的连接请求后可触发第一获取模块200获取所述客户端的端口信息。

第一获取模块200,用于在所述接收模块100接收到客户端发送的连接请求时,获取所述客户端的端口信息。

其中具体的,第一获取模块200具体包括,如图6所示:

第一获取子模块201,用于调用accept函数获取所述客户端的socket;

第二获取子模块202,用于根据所述socket获取所述客户端对应的端口信息。

第二获取模块300,用于根据所述端口信息获取所述客户端的应用信息。

由于端口信息的唯一性,本发明中第二获取模块300可以根据端口信息获取到客户端的应用信息。其中,所述应用信息可以包括packagename(应用名)和/或签名信息。

其中,所述第二获取模块300具体包括,如图7所示:

第三获取子模块301,用于获取所述客户端的端口对应的协议文件;

第四获取子模块302,用于根据所述客户端的端口从所述协议文件保存的端口与uid的对应关系中,获取所述客户端的uid;

第五获取子模块302,用于根据所述客户端的uid获取所述客户端的应用信息。

判断模块400,用于判断所述应用信息是否为预先存储的合法应用信息。

第一确定模块500,用于当所述判断模块400判断所述应用信息为预先存储的合法应用信息时,确定所述客户端合法。

此外本发明如图5所示的装置还可进一步包括:

第二确定模块600,用于当所述判断模块400判断所述应用信息不为预先存储的合法应用信息时,确定所述客户端不合法。

为了保证验证客户端合法的安全性、准确性,本发明中客户端的应用信息可以包括客户端的packagename和签名信息。

此时所述第五获取子模块302具体用于:根据所述客户端的uid获取所述客户端的应用名packagename;并根据所述客户端的packagename获取所述客户端的签名信息;

此时所述判断模块400具体用于,判断所述客户端的packagename和签名信息是否均为预先存储的合法信息,若是则确定所述客户端的应用信息为预先存储的合法应用信息。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种验证客户端合法性的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1