CN106027487B - 一种硬件设备的访问管理方法及系统 - Google Patents
一种硬件设备的访问管理方法及系统 Download PDFInfo
- Publication number
- CN106027487B CN106027487B CN201610280293.2A CN201610280293A CN106027487B CN 106027487 B CN106027487 B CN 106027487B CN 201610280293 A CN201610280293 A CN 201610280293A CN 106027487 B CN106027487 B CN 106027487B
- Authority
- CN
- China
- Prior art keywords
- client
- server
- connection request
- data packet
- function
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2129—Authenticate client device independently of the user
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Technology Law (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种硬件设备的访问管理方法,包括:服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程;监听线程在监听到来自所述客户端的连接请求,创建服务于所述连接请求的服务线程;服务线程接收来自客户端发送的协议数据包,根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,以使所述客户端对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用;本发明还公开了一种硬件设备的访问管理系统,可使得上层应用可在非root权限的情况下,安全的与所述硬件设备建立连接。
Description
技术领域
本发明涉及自助终端技术领域,尤其涉及一种硬件设备的访问管理方法及系统。
背景技术
在Linux系统中,访问硬件设备(主要有串口的设备和USB接口的设备)需要root权限,但上层应用的操作不需要root权限也可以进行正常业务流程,并且在Linux系统中不提倡使用root权限直接运行程序,更不提倡使用root登陆到桌面,这样就会存在安全风险,导致系统不稳定现象。在Android的环境(Android也是基于Linux内核的嵌入式小型系统)中是不允许直接访问硬件设备(主要有串口的设备和USB接口的设备),原因是因为Android系统会在启动应用程序时会自动创建一个临时用户运行程序,并在经过裁剪后的C++环境下运行的,但与硬件设备建立通信必须要使用root权限,并且需要比较全面的Linux环境的函数集。
由上述可知,在Linux系统或Android系统中,若需要直接访问硬件设备,则需要使用root权限,但是使用root权限又可能存在安全风险和隐患,因而开发一套能够对硬件设备的连接进行管理和授权的设备管理系统对Linux系统显得尤为重要。
发明内容
针对上述问题,本发明的目的在于提供一种硬件设备的访问管理方法及系统,可使得所述上层应用可在非root权限的情况下,安全的与所述硬件设备建立连接。
本发明提供了一种硬件设备的访问管理方法,包括如下步骤:
服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述服务端的服务线程接收来自所述客户端发送的协议数据包,根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,以使所述客户端对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用。
优选地,所述协议数据包由所述客户端在接收到所述上层应用通过调用所述驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并对序列化处理生成的二进制数据流进行打包生成。
优选地,在Linux系统环境下,所述服务端由Linux系统通过inetd守护进程以root权限启动;
在Android系统环境下,所述服务端以root权限在Android系统启动的时自动启动,其中,通过在Android系统的NDK层建立一个基于TCP/IP通信的客户端的应用库,然后在Android的底层建立基于TCP/IP的一个通信服务来生成所述服务端。
优选地,所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程,具体包括:
监听来自客户端的连接请求;
判断是否有合法的连接请求,若有,则获取所述连接请求中的数据包头的信息定位数据包,读取握手数据包;
检查所述握手数据包是否合法,若合法,则创建服务于所述连接请求的服务线程,并分配连接使用权给所述客户端;若不合法,则拒绝所述客户端的连接请求。
优选地,所述服务端的服务线程接收来自所述客户端发送的协议数据包,根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,具体包括:
接收所述客户端发送的协议数据包;
对接收的所述协议数据包进行解析,将解析得到的协议数据进行反序列化,并创建相应的函数参数表;
识别所述协议数据中的命令ID,调用所述命令ID所对应的函数建立与所述接口的连接,并对所述函数的输出参数进行序列化处理;
将序列化后的输出参数发送给所述客户端。
本发明还提供一种硬件设备的访问管理方法,包括如下步骤:
服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述客户端向所述服务端发起连接请求;
所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述客户端将协议数据包发送给所述服务端的服务线程;
所述服务端的服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端;
所述客户端对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用。
优选地,在所述客户端将协议数据包发送给所述服务端的服务线程之前,还包括:
所述客户端在接收到所述上层应用通过调用所述驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并对序列化处理生成的二进制数据流进行打包生成协议数据包。。
优选地,所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程,具体包括:
监听来自客户端的连接请求;
判断是否有合法的连接请求,若有,则获取所述连接请求中的数据包头的信息定位数据包,读取握手数据包;
检查所述握手数据包是否合法,若合法,则创建服务于所述连接请求的服务线程,并分配连接使用权给所述客户端;若不合法,则拒绝所述客户端的连接请求。
优选地,所述服务端的服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,具体包括:
解析所述协议数据包,将解析得到的协议数据进行反序列化,并创建相应的函数参数表;
识别所述协议数据中的命令ID,调用所述命令ID所对应的函数建立与所述接口的连接,并对所述函数的输出参数进行序列化处理;
将序列化后的输出参数发送给所述客户端。
本发明还提供一种硬件设备的访问管理系统,包括客户端及服务端,其中:
所述服务端,用于在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述客户端,用于向所述服务端发起连接请求;
所述服务端,用于在所述监听线程监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述客户端,用于在接收到上层应用通过调用对应的驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并将序列化处理生成的二进制数据流打包成协议数据包发送给所述服务端的服务线程;
所述服务端,用于在所述服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端;
所述客户端,用于对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用。
本发明实施例提供的硬件设备的访问管理方法及系统,通过在Linux系统环境或Android系统环境下建立能够以root权限启动的服务端,并实现对所连接的硬件设备进行连接和访问管理,使得所述上层应用可在非root权限的情况下,通过所述服务端安全的与所述硬件设备建立连接。此外,由于所述服务端可为每个上层应用配置一个服务线程,使得多个上层应用能够共享一个硬件设备。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的硬件设备的访问管理系统与上层应用和硬件设备的交互示意图。
图2是本发明实施例提供的硬件设备的访问管理系统的工作示意图。
图3是本发明实施例提供的协议数据包的数据结构图。
图4是本发明实施例提供的硬件设备的访问管理方法的流程示意图。
图5是本发明实施例提供的服务端的具体执行步骤示意图。
图6是本发明实施例提供的服务端的服务线程的具体执行步骤示意图。
图7是本发明实施例提供的硬件设备的访问管理方法的流程示意图。
图8是本发明实施例提供的硬件设备的访问管理方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1及图2,本发明实施例提供一种硬件设备访问管理系统100,用于在Linux系统环境或Android系统环境下,对硬件设备的访问及连接进行授权管理。其中,所述硬件设备访问管理系统100包括客户端10及服务端20。
所述服务端20,用于在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端10的连接请求;其中,所述服务端以root权限启动。
在本发明实施例中,所述服务端20在启动后将主动读取通信配置,当检测到有外部的硬件设备通过接口(所述接口可为串口或USB接口,如图1中的串口301、串口302、USB303、USB304等)接入到终端(特别地,安装有Linux系统或Android系统的终端)上时,所述服务端20可与所述硬件设备建立连接,将成功与所述硬件设备建立连接的连接数据保存到连接池中,并创建一个监听线程,以监听来自所述客户端10的连接请求。
在本发明实施例中,所述服务端20以root权限启动,具体地,在Linux系统环境下,所述服务端20可由Linux系统通过inetd守护进程以root权限进行启动;而在Android系统环境下,所述服务端20以root权限在Android系统启动的时自动启动,其中,所述服务端20可通过在Android系统的NDK层建立一个基于TCP/IP通信的客户端的应用库,然后在Android的底层建立基于TCP/IP的一个通信服务来生成。
所述客户端10,用于向所述服务端20发起连接请求。
在本发明实施例中,上层应用200通过调用相应的驱动(如图1所示的驱动201,当然也可为是驱动202,驱动203…,为便于描述,以下均定义为驱动201)以间接调用所述客户端10的通信接口,此时触发所述客户端10向所述服务端20发起连接请求。其中,所述客户端10可通过TCP/IP发起与服务端20的监听线程的连接请求。
所述服务端20,用于在所述监听线程监听到来自所述客户端10的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程。
在本发明实施例中,所述服务端20的监听线程在接收到每次连接请求时,都会进行握手校验,校验成功后,所述监听线程会建立一个通信服务,所述通信服务此时主动创建用于服务当前连接请求的服务线程,并将所述连接请求中的连接描述字交予所述服务线程进行管理,所述服务线程建立后,所述客户端10就能与所述服务端20的数据通道进行数据的交互。
所述客户端10,用于在接收到上层应用200通过调用对应的驱动201访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并将序列化处理生成的二进制数据流打包成协议数据包发送给所述服务端20的服务线程。
具体地,所述客户端10等待所述上层应用200调用自身的相应的通信接口,也就是等待上层应用200主动调用驱动201,从而发出调用所述客户端10的通信接口,在调用通信接口时,将产生对应的接口数据,所述客户端10对所述接口数据进行序列化处理,也就是将所述接口数据处理成二进制数据流,并将所述二进制数据流打包成协议数据包后发给服务端20的服务线程。
请一并参阅图3,图3是所述协议数据包的数据结构示意图。所述协议数据包包括以下字段:
同步头字段(GRGB)D11,用于准确定位数据包头位置;
校验码字段(CRC)D12,用于对每次包头数据的正确性校对,以提高数据包的准确性,用于生成校验码的数据为CMD字段、ID字段、ERROR字段和LEN字段;
命令字段(CMD)D13,用于描述当前数据包的命令描述,例如初始化命令,初始化应答、调用函数命令,调用函数应答和关闭连接等;
会话字段(ID)D14,用于描述当前命令CMD的会话ID,也就是保证每次数据交互的上下文的完整性;
错误码字段(ERROR)D15,用于描述调用过程中的错误信息序号,如果是调用成功时,此处置为0,否则设置为一个非0的数值;
数据长度字段(LEN)D16,用于描述DATA字段实际的数据长度,如果没有DATA字段时会设置为0,否则设置为实际的数据长度;
数据体字段(DATA)D17,交互过程中的实际数据(二进制的数据段),长度由LEN指定。
所述服务端20,用于在所述服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端10。
在本发明实施例中,所述服务线程启动时进行必要的初始化操作,然后等待接收客户端10的协议数据包,在接收到所述协议数据包后,所述服务线程对所述协议数据包进行解析,对解析得到的协议数据进行反序列化操作,并创建相应的参数表。此后,所述服务线程读取所述协议数据中的命令ID(包含于CMD字段D13中),并调用与所述命令ID对应的函数,然后将所述函数的输出参数数据进行序列化处理后,发送给所述客户端10。
所述客户端10,用于对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动201返回给对应的上层应用200。
在本发明实施例中,所述客户端10对所述函数的输出参数进行反序列化,将反序列化后的输出参数写入函数参数表后,通过驱动201返回给对应的上层应用200,如此,所述上层应用200即可在非root权限的情况下,安全的与所述硬件设备建立连接,并实现对所述硬件设备的访问。
综上所述,本发明实施例提供的硬件设备的访问管理系统100,在Linux系统环境下,建立能够以root权限启动的服务端20,并实现对所连接的硬件设备进行连接和访问管理,使得所述上层应用200可在非root权限的情况下,通过所述硬件设备的访问管理系统100安全的与所述硬件设备建立连接。此外,由于所述服务端20可为每个上层应用200配置一个服务线程,使得多个上层应用能够共享一个硬件设备。
请一并参阅图4,图4是本发明实施例提供的硬件设备的访问管理方法,所述硬件设备的访问管理方法是从服务端一侧进行描述的,其包括如下步骤:
S101,服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动。
S102,所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程。
S103,所述服务端的服务线程接收来自所述客户端发送的协议数据包,根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,以使所述客户端对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用。
其中,所述协议数据包由所述客户端在接收到所述上层应用通过调用所述驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并对序列化处理生成的二进制数据流进行打包生成。
本发明实施例提供的硬件设备的访问管理方法,在Linux系统环境下,建立能够以root权限启动的服务端,并实现对所连接的硬件设备进行连接和访问管理,使得所述上层应用可在非root权限的情况下,通过所述服务端安全的与所述硬件设备建立连接。此外,由于所述服务端可为每个上层应用配置一个服务线程,使得多个上层应用能够共享一个硬件设备。
下面将分别对所述服务端和服务端的服务线程的具体执行步骤做进一步的描述。
请一并参阅图5,图5是所述服务端的具体执行步骤示意图,包括:
S201:服务端启动时主动读取通信配置,并与硬件设备建立连接。
S202:服务端将成功与硬件设备建立连接的连接数据保存到连接池,并创建监听线程。
S203:服务端监听客户端的连接请求。
S204:服务端判断是否有合法的连接请求,如果有合法的连接时继续执行S205,否则跳转到S203。
S205:服务端通过所述连接请求中的数据包头的信息定位数据包读取握手数据包。
S206:服务端检查所述握手数据包是否合法,如果所述握手数据包合法则执行S208,否则执行S207。
S207:断开与所述客户端的连接请求,释放连接时所创建的资源,跳转到S203。
S208:创建服务于所述连接请求的服务线程以及所需要的资源,并分配连接使用权给客户端,跳转到S203继续等待下一个连接请求。
请一并参阅图6,图6是所述服务端的服务线程的具体执行步骤示意图,包括:
S301:服务线程启动时进行必要的初始化操作;
S302:等待接收所述客户端的协议数据包;
S303:判断是否接收到协议数据包,如果执行S304,否则跳转到S302继续等待接收协议数据包;
S304:解析所接收的协议数据包,如果解析成功执行S305,否则跳转到S302继续等待接收数据;
S305:对解析所述协议数据包得到的协议数据进行反序列化操作,并创建相应的参数表;
S306:识别所述协议数据中的命令ID,如果命令ID能够识别则执行S308,否则执行S307;
S307:返回命令错误的通信协议包文给客户端,然后跳转到S302继续等待接收协议数据包;
S308:调用命令ID所对应的函数,然后将函数的输出参数进行序列化处理;
S309:将序列化后的输出参数回复给客户端。
请一并参阅图7,图7是本发明实施例提供的硬件设备的访问管理方法的流程示意图,其是从客户端一侧进行描述的,其包括如下步骤:
S401:客户端通过通信接口以TCP/IP的方式连接服务端。
S402:客户端判断连接状态,如果已经建立合法的连接执行S403,否则跳转到S410。
S403:客户端在成功连接后主动发送握手数据包给服务端。
S404:客户端验证握手是否成功,如果验证成功继续执行S405,否则跳转到S410;
S405:客户端等待上层应用调用相应的通信接口,即等待上层应用主动调用驱动,从而对其通信接口进行访问;
S406:客户端对访问产生的接口数据进行序列化处理,也就是将接口数据处理成二进制数据流;
S407:客户端将序列化后的二进制数据流打包成协议数据包发给服务端的服务线程;
S408:客户端等待服务端的服务线程的应答,或者等待应答超时;
S409:客户端对服务端返回的序列化后的输出参数进行反序列化,并回填到函数参数表后,返回给上层应用,跳转到S405;
S410:客户端关闭与服务端的连接。
请一并参阅图8,图8是本发明实施例提供的硬件设备的访问管理方法的流程示意图,其是从客户端与服务端两侧交互进行描述的,其包括如下步骤:
S501:服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动。
S502:所述客户端向所述服务端发起连接请求。
S503:所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程。
S504:所述客户端协议数据包发送给所述服务端的服务线程。
其中,所述协议数据包由所述客户端在接收到上层应用通过调用对应的驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并将序列化处理生成的二进制数据流打包生成。
S505:所述服务端的服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端。
S506:所述客户端对所述函数的输出参数进行反序列化,将反序列化后的输出参数写入函数参数表后,通过驱动返回给对应的上层应用。
本发明实施例提供的硬件设备的访问管理方法,在Linux系统环境下,建立能够以root权限启动的服务端,并实现对所连接的硬件设备进行连接和访问管理,使得所述上层应用可在非root权限的情况下,通过所述服务端安全的与所述硬件设备建立连接。此外,由于所述服务端可为每个上层应用配置一个服务线程,使得多个上层应用能够共享一个硬件设备。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (8)
1.一种硬件设备的访问管理方法,其特征在于,包括如下步骤:
服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述服务端的服务线程接收来自所述客户端发送的协议数据包,根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,以使所述客户端对所述函数的输出参数进行反序列化后写入函数参数表,并通过驱动返回给对应的上层应用;其中,所述协议数据包由所述客户端在接收到所述上层应用通过调用所述驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并对序列化处理生成的二进制数据流进行打包生成。
2.根据权利要求1所述的硬件设备的访问管理方法,其特征在于,
在Linux系统环境下,所述服务端由Linux系统通过inetd守护进程以root权限启动;
在Android系统环境下,所述服务端以root权限在Android系统启动的时自动启动,其中,通过在Android系统的NDK层建立一个基于TCP/IP通信的客户端的应用库,然后在Android的底层建立基于TCP/IP的一个通信服务来生成所述服务端。
3.根据权利要求1所述的硬件设备的访问管理方法,其特征在于,所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程,
具体包括:
监听来自客户端的连接请求;
判断是否有合法的连接请求,若有,则获取所述连接请求中的数据包头的信息定位数据包,读取握手数据包;
检查所述握手数据包是否合法,若合法,则创建服务于所述连接请求的服务线程,并分配连接使用权给所述客户端;若不合法,则拒绝所述客户端的连接请求。
4.根据权利要求1所述的硬件设备的访问管理方法,其特征在于,所述服务端的服务线程接收来自所述客户端发送的协议数据包,根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,具体包括:
接收所述客户端发送的协议数据包;
对接收的所述协议数据包进行解析,将解析得到的协议数据进行反序列化,并创建相应的函数参数表;
识别所述协议数据中的命令ID,调用所述命令ID所对应的函数建立与所述接口的连接,并对所述函数的输出参数进行序列化处理;
将序列化后的输出参数发送给所述客户端。
5.一种硬件设备的访问管理方法,其特征在于,包括如下步骤:服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述客户端向所述服务端发起连接请求;
所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述客户端将协议数据包发送给所述服务端的服务线程;其中,所述协议数据包由所述客户端在接收到上层应用通过调用驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并对序列化处理生成的二进制数据流进行打包生成;
所述服务端的服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端;
所述客户端对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用。
6.根据权利要求根据权利要求5所述的硬件设备的访问管理方法,其特征在于,所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程,具体包括:
监听来自客户端的连接请求;
判断是否有合法的连接请求,若有,则获取所述连接请求中的数据包头的信息定位数据包,读取握手数据包;
检查所述握手数据包是否合法,若合法,则创建服务于所述连接请求的服务线程,并分配连接使用权给所述客户端;若不合法,则拒绝所述客户端的连接请求。
7.根据权利要求根据权利要求5所述的硬件设备的访问管理方法,其特征在于,所述服务端的服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,具体包括:
解析所述协议数据包,将解析得到的协议数据进行反序列化,并创建相应的函数参数表;
识别所述协议数据中的命令ID,调用所述命令ID所对应的函数建立与所述接口的连接,并对所述函数的输出参数进行序列化处理;
将序列化后的输出参数发送给所述客户端。
8.一种硬件设备的访问管理系统,其特征在于,包括客户端及服务端,其中:
所述服务端,用于在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述客户端,用于向所述服务端发起连接请求;
所述服务端,用于在所述监听线程监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述客户端,用于在接收到上层应用通过调用对应的驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并将序列化处理生成的二进制数据流打包成协议数据包发送给所述服务端的服务线程;
所述服务端,用于在所述服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端;
所述客户端,用于对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610280293.2A CN106027487B (zh) | 2016-04-28 | 2016-04-28 | 一种硬件设备的访问管理方法及系统 |
PCT/CN2017/079355 WO2017185952A1 (zh) | 2016-04-28 | 2017-04-01 | 一种硬件设备的访问管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610280293.2A CN106027487B (zh) | 2016-04-28 | 2016-04-28 | 一种硬件设备的访问管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106027487A CN106027487A (zh) | 2016-10-12 |
CN106027487B true CN106027487B (zh) | 2019-07-23 |
Family
ID=57081269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610280293.2A Active CN106027487B (zh) | 2016-04-28 | 2016-04-28 | 一种硬件设备的访问管理方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106027487B (zh) |
WO (1) | WO2017185952A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027487B (zh) * | 2016-04-28 | 2019-07-23 | 广州广电运通金融电子股份有限公司 | 一种硬件设备的访问管理方法及系统 |
CN106897146A (zh) * | 2017-02-09 | 2017-06-27 | 青岛海信移动通信技术股份有限公司 | 一种终端的麦克风的数据处理方法和具有麦克风的终端 |
CN108664799B (zh) * | 2017-03-31 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 设备管理应用的权限设置方法及装置 |
CN109408418B (zh) * | 2017-08-17 | 2022-03-25 | 深圳市中兴微电子技术有限公司 | 一种usb模式切换装置及方法、usb设备 |
CN107945354A (zh) * | 2017-11-20 | 2018-04-20 | 浪潮金融信息技术有限公司 | 排队叫号方法及系统、计算机存储介质和终端 |
CN108494731B (zh) * | 2018-02-08 | 2021-04-02 | 中国电子科技网络信息安全有限公司 | 一种基于双向身份认证的抗网络扫描方法 |
CN110311936B (zh) * | 2018-03-27 | 2022-01-07 | 卓米私人有限公司 | 客户端之间的通讯方法、装置、电子设备及存储介质 |
CN109144579B (zh) * | 2018-07-17 | 2023-09-29 | 广州睿本信息科技有限公司 | 一种Web系统读取硬件的方法及计算机可读存储介质 |
CN109634878A (zh) * | 2018-12-07 | 2019-04-16 | 用友网络科技股份有限公司 | 监控方法、监控装置、服务器、终端和可读存储介质 |
CN109787997B (zh) * | 2019-02-26 | 2021-06-11 | 上海易点时空网络有限公司 | 基于php的tcp服务方法及服务器 |
CN110166313B (zh) * | 2019-03-21 | 2022-03-18 | 北京华顺信安科技有限公司 | 一种模拟协议服务端的方法 |
CN110266477B (zh) * | 2019-05-23 | 2023-03-24 | 广州河东科技有限公司 | 一种udp通信实现动态加密方法 |
CN110633163B (zh) * | 2019-09-26 | 2022-12-09 | 深圳市七星石科技有限公司 | 一种基于多进程服务器的预防应用程序崩溃的开发方法 |
CN110730168B (zh) * | 2019-09-29 | 2022-06-14 | 佛山市兴颂机器人科技有限公司 | 一种通信控制方法、装置及服务端设备 |
CN111143085B (zh) * | 2019-11-28 | 2022-08-09 | 浪潮金融信息技术有限公司 | 一种实现多应用并发调用硬件的方法 |
CN111562535A (zh) * | 2020-04-07 | 2020-08-21 | 国网上海市电力公司 | 一种用于提高电能表检定速度的协调方法及系统 |
CN112035115B (zh) * | 2020-06-17 | 2022-09-13 | 厦门盈趣科技股份有限公司 | 一种基于Android系统平台调用的系统API设置及调用方法及系统 |
CN112000949B (zh) * | 2020-08-26 | 2023-06-16 | 中国联合网络通信集团有限公司 | 程序包调用方法、系统、终端设备及计算机可读存储介质 |
CN112199666B (zh) * | 2020-09-30 | 2023-02-03 | 江苏恒宝智能系统技术有限公司 | 设备通信方法、装置、系统和电子设备 |
CN113489639B (zh) * | 2021-06-16 | 2022-12-02 | 杭州深渡科技有限公司 | 一种网关多接口的数据通信方法和系统 |
CN114201114B (zh) * | 2021-12-14 | 2024-05-10 | 上海朝阳永续信息技术股份有限公司 | 一种基于文件的跨互联网数据传输系统 |
CN115344887A (zh) * | 2022-08-05 | 2022-11-15 | 广州民航信息技术有限公司 | Web前端的跨平台适配系统、方法、装置、电子设备及计算机可读存储介质 |
CN115373767B (zh) * | 2022-10-24 | 2023-01-20 | 北京智芯微电子科技有限公司 | 程序执行方法、装置、电子设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163055A (zh) * | 2007-11-21 | 2008-04-16 | 浪潮电子信息产业股份有限公司 | 一种自动探测服务器硬件信息的方法 |
CN104714760A (zh) * | 2015-03-05 | 2015-06-17 | 青岛海信宽带多媒体技术有限公司 | 一种读写存储设备的方法及装置 |
CN104866778A (zh) * | 2015-01-30 | 2015-08-26 | 武汉华工安鼎信息技术有限责任公司 | 一种基于Linux内核的文档安全访问控制方法和装置 |
CN105159696A (zh) * | 2015-07-09 | 2015-12-16 | 北京君正集成电路股份有限公司 | 一种独立于Linux内核的硬件驱动实现方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100512271C (zh) * | 2004-08-31 | 2009-07-08 | 中国科学院计算技术研究所 | 一种终端网络环境中的分布式设备重定向系统及其方法 |
CN103034811B (zh) * | 2011-09-29 | 2016-08-03 | 北大方正集团有限公司 | 一种文件处理的方法、系统及装置 |
CN103885763A (zh) * | 2012-12-21 | 2014-06-25 | 腾讯科技(深圳)有限公司 | 操作系统资源访问方法和系统 |
US9378038B2 (en) * | 2013-06-07 | 2016-06-28 | American Megatrends, Inc. | Methods, devices and computer readable storage devices for emulating a gyroscope in a guest operating system from a host operating system |
CN106027487B (zh) * | 2016-04-28 | 2019-07-23 | 广州广电运通金融电子股份有限公司 | 一种硬件设备的访问管理方法及系统 |
-
2016
- 2016-04-28 CN CN201610280293.2A patent/CN106027487B/zh active Active
-
2017
- 2017-04-01 WO PCT/CN2017/079355 patent/WO2017185952A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163055A (zh) * | 2007-11-21 | 2008-04-16 | 浪潮电子信息产业股份有限公司 | 一种自动探测服务器硬件信息的方法 |
CN104866778A (zh) * | 2015-01-30 | 2015-08-26 | 武汉华工安鼎信息技术有限责任公司 | 一种基于Linux内核的文档安全访问控制方法和装置 |
CN104714760A (zh) * | 2015-03-05 | 2015-06-17 | 青岛海信宽带多媒体技术有限公司 | 一种读写存储设备的方法及装置 |
CN105159696A (zh) * | 2015-07-09 | 2015-12-16 | 北京君正集成电路股份有限公司 | 一种独立于Linux内核的硬件驱动实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017185952A1 (zh) | 2017-11-02 |
CN106027487A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106027487B (zh) | 一种硬件设备的访问管理方法及系统 | |
CN111726399B (zh) | Docker容器安全访问方法及装置 | |
EP2852913B1 (en) | Method and apparatus for determining malicious program | |
WO2016070689A1 (zh) | 分享应用的方法和系统以及应用服务平台 | |
CN104113549A (zh) | 一种平台授权方法、平台服务端及应用客户端和系统 | |
CN104869052B (zh) | 一种具备监督功能的社交平台实现方法、客户端、服务器及系统 | |
US10594840B1 (en) | Bot framework for channel agnostic applications | |
KR101871876B1 (ko) | 채팅 정보 전송 방법 및 장치, 및 채팅 정보 푸시 방법 및 서버 | |
JP7412594B2 (ja) | データ処理方法、データ処理装置、コンピュータ機器、及びコンピュータプログラム | |
CN104869135B (zh) | 数据交互的方法和终端 | |
WO2021220226A1 (en) | Systems and methods for decentralization of blockchain-based processes employing a blockchain-associated front end or blockchain-associated user interface | |
JP2020501239A (ja) | 不正なクライアント・アプリケーションからのウェブ・サーバの保護 | |
CN112073923A (zh) | 兼容多运营商的通信方法、装置、网关及可读存储介质 | |
CN111191200B (zh) | 一种三方联动鉴权页面展示方法、装置和电子设备 | |
CN104636923B (zh) | 一种信息传输方法、装置和系统 | |
CN111314355B (zh) | 一种vpn服务器的认证方法、装置、设备及介质 | |
CN110427310B (zh) | 一种脚本日志处理方法、装置和计算机可读存储介质 | |
CN110515700B (zh) | 一种虚拟机迁移方法、系统、装置及可读存储介质 | |
CN104052602A (zh) | 利用单点登录结合命令行接口防止密码泄漏 | |
CN111158938A (zh) | 一种基于qkd的服务器与浏览器客户端之间的通信方法 | |
CN107769909A (zh) | 一种Egret引擎的前端数据发送处理的方法 | |
CN105119801B (zh) | 一种社交消息管理方法、系统、用户终端及服务器 | |
CN111614676B (zh) | 一种登录方法、装置、设备、介质 | |
CN111404997A (zh) | 一种双控服务器的心跳通信方法、系统及相关装置 | |
US10243788B1 (en) | Automated configuration of distributed computing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |