[0034] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0035] 本发明的目的在于提供一种长连接应用接入的安全管控方法及系统,用于解决现有技术中长连接应用接入管控占用大量的时间和内存的问题。以下将详细阐述本发明的一种长连接应用接入的安全管控方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种长连接应用接入的安全管控方法及系统。
[0036] 本实施例提供一种长连接应用接入的安全管控方法,要解决的是基于TCP协议(Transmission Control Protocol,TCP)的长连接服务应用客户端接入的安全性问题。
[0037] 本实施例提供一种长连接应用接入的安全管控方法,采用在TCP协议规定的字段中加入应用ID(App ID),该应用ID由长连接服务提供方统一定义,维护和颁发,用于标识其所认可的各应用方。长连接服务器在收到应用客户端发起的连接请求时,其TCP协议栈提取该应用ID并进行检查是否为合法应用,如未通过检查,服务器将拒绝该连接请求。同时,应用ID由长连接服务提供方定期更换和维护,以增强该机制的安全性和可靠性。
[0038] 具体地,如图1所示,本实施例提供一种长连接应用接入的安全管控方法,应用于应用客户端和长连接服务器在基于TCP协议进行长连接通讯的过程中,所述长连接应用接入的安全管控方法包括以下步骤。
[0039] 步骤S11,应用客户端在发起的TCP连接请求中添加预先定义的应用ID;其中,所述应用ID由长连接服务方进行预先定义和更新维护,以保证其安全性和可靠性。也就是说,长连接服务方为其允许接入(或认证)的各种应用定义相应的应用ID(App ID)。
[0040] 预先定义所述应用ID为8个字节的64位无符号整型数。
[0041] 具体地,在本实施例中,所述应用客户端在TCP协议的Options字段添加所述应用ID。也就是,使用TCP协议的Options字段存储应用相关的应用ID。
[0042] 依据RFC 793,TCP协议定义了TCP Header内的Options字段,该字段用于携带辅助性信息。本发明采用该Options字段携带应用ID信息。Options字段定义如表1所示。
[0043] 表1
[0044]
[0045] 如图2所示,添加预先定义的应用ID的具体过程包括:所述长连接服务方向所述应用客户端提供包含应用开发包和对应应用的应用ID的许可证书;在所述应用客户端使用所述应用开发包时,自动读取所述许可证书中的应用ID并存入TCP协议的Options字段。
[0046] 长连接服务提供方负责定期更新和维护应用ID,以保证其安全性和可靠性,定义如下应用ID的颁发和更新方式:
[0047] 1)长连接服务方向应用方提供许可证书,该证书中含有有效的应用ID。
[0048] 2)长连接服务方提供应用开发包(App SDK),在应用客户端使用SDK时,自动读取许可证书中的应用ID,存入TCP连接的Options字段。
[0049] 3)长连接服务方通过定期更新许可证书达到更新应用ID的目的。
[0050] 由上可见,本实施例提供的一种长连接应用接入的安全管控方法使用应用ID(App ID)对应用进行标识,该标示由长连接服务提供方统一定义,通过特定方式颁发和维护。
[0051] 步骤S12,长连接服务器的TCP协议栈提取所述TCP连接请求中的所述应用ID;具体地,在本实施例中,长连接服务器检查TCP连接Options字段中的应用ID,以判断应用的合法性,以及是否提供长连接服务。
[0052] 步骤S13,所述长连接服务器判断所述应用ID是否在所述长连接服务器内预存的关系表中,若是,则接着步骤S14,若否,则接着步骤S15。其中,长连接服务器内定义和维护应用ID和应用之间的关系表格,如表2所示。
[0053] 表2
[0054]应用ID 应用名
0x02FF 应用1
0x045A 应用2
0x03AC 应用3
… …
[0055] 步骤S14,处理所述TCP连接请求,与所述应用客户端建立长连接。
[0056] 步骤S15,拒绝所述TCP连接请求。
[0057] 为使本领域技术人员进一步理解本实施例中的长连接应用接入的安全管控方法,以下将进一步说明本实施例中长连接应用接入的安全管控方法的实施过程。
[0058] 在应用客户端使用SDK时,自动读取许可证书中的应用ID,存入TCP连接的Options字段,应用客户端在发起的TCP连接请求中按如上规则定义Options字段,长连接服务器的TCP协议栈提取连接请求中Options字段的应用ID值,长连接服务器检查提取的应用ID值是否在服务器内的关系表格中,如存在,则继续处理连接请求,直至连接建立,如不存在,则拒绝连接请求。长连接服务提供方负责定期更新和维护应用ID,以保证其安全性和可靠性。本实施例中的长连接应用接入的安全管控方法在TCP协议层面中加入对请求接入的应用方进行检测,在连接建立之前进行应用接入管控,避免了现有技术所采用的先建立连接,再断开的方法,节省了连接建立和断开的资源开销。
[0059] 为实现上述目的,本实施例提供一种长连接应用接入的安全管控系统,要解决的是基于TCP协议(Transmission Control Protocol,TCP)的长连接服务应用客户端接入的安全性问题。本实施例提供一种长连接应用接入的安全管控系统,应用于应用客户端和长连接服务器在基于TCP协议进行长连接通讯的过程中,采用在TCP协议规定的字段中加入应用ID(App ID),该应用ID由长连接服务提供方统一定义,维护和颁发,用于标识其所认可的各应用方。长连接服务器在收到应用客户端发起的连接请求时,其TCP协议栈提取该应用ID并进行检查是否为合法应用,如未通过检查,服务器将拒绝该连接请求。同时,应用ID由长连接服务提供方定期更换和维护,以增强该机制的安全性和可靠性。
[0060] 具体地,在本实施例中,如图3所示,长连接应用接入的安全管控系统1包括:应用ID添加模块11、关系表存储模块12、应用ID提取模块13、判断模块14、控制模块15以及定义维护模块16。
[0061] 应用ID添加模块11配置于所述应用客户端内,关系表存储模块12、应用ID提取模块13、判断模块14、控制模块15配置于所述长连接服务器内,定义维护模块16配置于长连接服务方处。
[0062] 如图4所示,显示为应用客户端、长连接服务器和长连接服务方之间的连接示意图。其中长连接服务方向应用客户端颁发包含应用ID的证书,应用客户端使用所述应用开发包时,自动读取所述许可证书中的应用ID。应用客户端向长连接服务器发起携带应用ID的TCP连接,长连接服务器通过检测应用ID与应用客户端建立长连接通讯。
[0063] 应用ID添加模块11配置于所述应用客户端内,用于所述应用客户端在发起的TCP连接请求中添加预先定义的应用ID。具体地,在本实施例中,所述应用ID添加模块11在TCP协议的Options字段添加所述应用ID。
[0064] 其中,所述应用ID由长连接服务方进行预先定义和更新维护,以保证其安全性和可靠性。定义维护模块16配置于长连接服务方处并与所述应用ID添加模块11相连,用于对所述应用ID进行预先定义和更新维护。
[0065] 具体地,在本实施例中,所述定义维护模块16包括:向所述应用客户端提供包含应用开发包和对应应用的应用ID的许可证书的许可证书单元;在所述应用客户端使用所述应用开发包时,所述应用ID添加模块11自动读取所述许可证书中的应用ID并存入TCP协议的Options字段。
[0066] 也就是说,长连接服务方为其允许接入(或认证)的各种应用定义相应的应用ID(App ID)。
[0067] 预先定义所述应用ID为8个字节的64位无符号整型数。
[0068] 具体地,在本实施例中,所述应用客户端在TCP协议的Options字段添加所述应用ID。也就是,使用TCP协议的Options字段存储应用相关的应用ID。
[0069] 依据RFC 793,TCP协议定义了TCP Header内的Options字段,该字段用于携带辅助性信息。本发明采用该Options字段携带应用ID信息。Options字段定义如上述表1所示。
[0070] 所述长连接服务方向所述应用客户端提供包含应用开发包和对应应用的应用ID的许可证书;在所述应用客户端使用所述应用开发包时,自动读取所述许可证书中的应用ID并存入TCP协议的Options字段。
[0071] 应用ID提取模块13配置于所述长连接服务器内,用于所述长连接服务器的TCP协议栈提取所述TCP连接请求中的所述应用ID。
[0072] 长连接服务提供方负责定期更新和维护应用ID,以保证其安全性和可靠性,定义如下应用ID的颁发和更新方式:
[0073] 1)长连接服务方向应用方提供许可证书,该证书中含有有效的应用ID。
[0074] 2)长连接服务方提供应用开发包(App SDK),在应用客户端使用SDK时,自动读取许可证书中的应用ID,存入TCP连接的Options字段。
[0075] 3)长连接服务方通过定期更新许可证书达到更新应用ID的目的。
[0076] 由上可见,本实施例提供的一种长连接应用接入的安全管控系统1使用应用ID(App ID)对应用进行标识,该标示由长连接服务提供方统一定义,通过特定方式颁发和维护。
[0077] 关系表存储模块12配置于所述长连接服务器内,用于存储包含所述应用ID和对应的应用名称的关系表。其中,关系表存储模块12内定义和维护应用ID和应用之间的关系表格,如上所述的表2所示。
[0078] 判断模块14配置于所述长连接服务器内并与所述关系表存储模块12相连,用于判断所述应用ID是否在所述长连接服务器内预存的关系表中,并将判断结果发送至控制模块15内。
[0079] 控制模块15配置于所述长连接服务器内并与所述判断模块14相连,用于在所述关系表中存在所述应用ID时处理所述TCP连接请求,与所述应用客户端建立长连接,在所述关系表中不存在所述应用ID时拒绝所述TCP连接请求。
[0080] 为使本领域技术人员进一步理解本实施例中的长连接应用接入的安全管控系统1,以下将进一步说明本实施例中长连接应用接入的安全管控系统1的工作过程。
[0081] 在应用客户端使用SDK时,应用ID添加模块11自动读取许可证书中的应用ID,存入TCP连接的Options字段,应用客户端在发起的TCP连接请求中按如上规则定义Options字段,长连接服务器的应用ID提取模块13通过TCP协议栈提取连接请求中Options字段的应用ID值,长连接服务器通过判断模块14判断提取的应用ID值是否在关系表存储模块12内的关系表中,如存在,则控制模块15控制继续处理连接请求,直至连接建立,如不存在,则控制模块15控制拒绝连接请求。长连接服务方通过定义维护模块16定期更新和维护应用ID,以保证其安全性和可靠性。
[0082] 综上所述,本发明通过在TCP协议层面中加入对请求接入的应用方进行检测,在连接建立之前进行应用接入管控,避免了现有技术所采用的先建立连接,再断开的方法,节省了连接建立和断开的资源开销。本发明简单高效,具有较强的通用性和实用性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0083] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。