CN106027487A - 一种硬件设备的访问管理方法及系统 - Google Patents

一种硬件设备的访问管理方法及系统 Download PDF

Info

Publication number
CN106027487A
CN106027487A CN201610280293.2A CN201610280293A CN106027487A CN 106027487 A CN106027487 A CN 106027487A CN 201610280293 A CN201610280293 A CN 201610280293A CN 106027487 A CN106027487 A CN 106027487A
Authority
CN
China
Prior art keywords
client
connection request
service end
thread
protocol data
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.)
Granted
Application number
CN201610280293.2A
Other languages
English (en)
Other versions
CN106027487B (zh
Inventor
梁建明
熊飞
陈明宇
张雲瑞
罗忠明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GUANGZHOU GRGBANKING INFORMATION TECHNOLOGY Co Ltd
GRG Banking Equipment Co Ltd
Guangdian Yuntong Financial Electronic Co Ltd
Original Assignee
GUANGZHOU GRGBANKING INFORMATION TECHNOLOGY Co Ltd
Guangdian Yuntong Financial Electronic Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GUANGZHOU GRGBANKING INFORMATION TECHNOLOGY Co Ltd, Guangdian Yuntong Financial Electronic Co Ltd filed Critical GUANGZHOU GRGBANKING INFORMATION TECHNOLOGY Co Ltd
Priority to CN201610280293.2A priority Critical patent/CN106027487B/zh
Publication of CN106027487A publication Critical patent/CN106027487A/zh
Priority to PCT/CN2017/079355 priority patent/WO2017185952A1/zh
Application granted granted Critical
Publication of CN106027487B publication Critical patent/CN106027487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (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 Access Memory,RAM)等。

Claims (10)

1.一种硬件设备的访问管理方法,其特征在于,包括如下步骤:
服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述服务端的服务线程接收来自所述客户端发送的协议数据包,根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,以使所述客户端对所述函数的输出参数进行反序列化后写入函数参数表,并通过驱动返回给对应的上层应用。
2.根据权利要求1所述的硬件设备的访问管理方法,其特征在于,
所述协议数据包由所述客户端在接收到所述上层应用通过调用所述驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并对序列化处理生成的二进制数据流进行打包生成。
3.根据权利要求1所述的硬件设备的访问管理方法,其特征在于,
在Linux系统环境下,所述服务端由Linux系统通过inetd守护进程以root权限启动;
在Android系统环境下,所述服务端以root权限在Android系统启动的时自动启动,其中,通过在Android系统的NDK层建立一个基于TCP/IP通信的客户端的应用库,然后在Android的底层建立基于TCP/IP的一个通信服务来生成所述服务端。
4.根据权利要求1所述的硬件设备的访问管理方法,其特征在于,所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程,具体包括:
监听来自客户端的连接请求;
判断是否有合法的连接请求,若有,则获取所述连接请求中的数据包头的信息定位数据包,读取握手数据包;
检查所述握手数据包是否合法,若合法,则创建服务于所述连接请求的服务线程,并分配连接使用权给所述客户端;若不合法,则拒绝所述客户端的连接请求。
5.根据权利要求1所述的硬件设备的访问管理方法,其特征在于,所述服务端的服务线程接收来自所述客户端发送的协议数据包,根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,具体包括:
接收所述客户端发送的协议数据包;
对接收的所述协议数据包进行解析,将解析得到的协议数据进行反序列化,并创建相应的函数参数表;
识别所述协议数据中的命令ID,调用所述命令ID所对应的函数建立与所述接口的连接,并对所述函数的输出参数进行序列化处理;
将序列化后的输出参数发送给所述客户端。
6.一种硬件设备的访问管理方法,其特征在于,包括如下步骤:
服务端在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述客户端向所述服务端发起连接请求;
所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述客户端将协议数据包发送给所述服务端的服务线程;
所述服务端的服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端;
所述客户端对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用。
7.根据权利要求6所述的硬件设备的访问管理方法,其特征在于,在所述客户端将协议数据包发送给所述服务端的服务线程之前,还包括:
所述客户端在接收到所述上层应用通过调用所述驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并对序列化处理生成的二进制数据流进行打包生成协议数据包。
8.根据权利要求根据权利要求6所述的硬件设备的访问管理方法,其特征在于,所述服务端的监听线程在监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程,具体包括:
监听来自客户端的连接请求;
判断是否有合法的连接请求,若有,则获取所述连接请求中的数据包头的信息定位数据包,读取握手数据包;
检查所述握手数据包是否合法,若合法,则创建服务于所述连接请求的服务线程,并分配连接使用权给所述客户端;若不合法,则拒绝所述客户端的连接请求。
9.根据权利要求根据权利要求6所述的硬件设备的访问管理方法,其特征在于,所述服务端的服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端,具体包括:
解析所述协议数据包,将解析得到的协议数据进行反序列化,并创建相应的函数参数表;
识别所述协议数据中的命令ID,调用所述命令ID所对应的函数建立与所述接口的连接,并对所述函数的输出参数进行序列化处理;
将序列化后的输出参数发送给所述客户端。
10.一种硬件设备的访问管理系统,其特征在于,包括客户端及服务端,其中:
所述服务端,用于在检测到硬件设备接入预定的接口时,建立与所述硬件设备的连接,并创建监听线程,以监听来自客户端的连接请求;其中,所述服务端以root权限启动;
所述客户端,用于向所述服务端发起连接请求;
所述服务端,用于在所述监听线程监听到来自所述客户端的连接请求,且对所述连接请求经过校验后,创建服务于所述连接请求的服务线程;
所述客户端,用于在接收到上层应用通过调用对应的驱动访问自身的通信接口后,对根据访问产生的接口数据进行序列化处理,并将序列化处理生成的二进制数据流打包成协议数据包发送给所述服务端的服务线程;
所述服务端,用于在所述服务线程根据所述协议数据包调用相应的函数建立与所述接口的连接,并将所述函数的输出参数进行序列化处理后返回给所述客户端;
所述客户端,用于对所述函数的输出参数进行反序列化后写入函数参数表后,并通过驱动返回给对应的上层应用。
CN201610280293.2A 2016-04-28 2016-04-28 一种硬件设备的访问管理方法及系统 Active CN106027487B (zh)

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 true CN106027487A (zh) 2016-10-12
CN106027487B 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)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897146A (zh) * 2017-02-09 2017-06-27 青岛海信移动通信技术股份有限公司 一种终端的麦克风的数据处理方法和具有麦克风的终端
WO2017185952A1 (zh) * 2016-04-28 2017-11-02 广州广电运通金融电子股份有限公司 一种硬件设备的访问管理方法及系统
CN107945354A (zh) * 2017-11-20 2018-04-20 浪潮金融信息技术有限公司 排队叫号方法及系统、计算机存储介质和终端
CN108494731A (zh) * 2018-02-08 2018-09-04 中国电子科技网络信息安全有限公司 一种基于双向身份认证的抗网络扫描方法
CN108664799A (zh) * 2017-03-31 2018-10-16 腾讯科技(深圳)有限公司 设备管理应用的权限设置方法及装置
CN109144579A (zh) * 2018-07-17 2019-01-04 广州睿本信息科技有限公司 一种Web系统读取硬件的方法及计算机可读存储介质
CN109408418A (zh) * 2017-08-17 2019-03-01 深圳市中兴微电子技术有限公司 一种usb模式切换装置及方法、usb设备
CN109634878A (zh) * 2018-12-07 2019-04-16 用友网络科技股份有限公司 监控方法、监控装置、服务器、终端和可读存储介质
CN109787997A (zh) * 2019-02-26 2019-05-21 上海易点时空网络有限公司 基于php的tcp服务方法及服务器
CN110266477A (zh) * 2019-05-23 2019-09-20 广州河东科技有限公司 一种udp通信实现动态加密方法
CN110311936A (zh) * 2018-03-27 2019-10-08 香港乐蜜有限公司 客户端之间的通讯方法、装置、电子设备及存储介质
CN110730168A (zh) * 2019-09-29 2020-01-24 佛山市兴颂机器人科技有限公司 一种通信控制方法、装置及服务端设备
CN111143085A (zh) * 2019-11-28 2020-05-12 浪潮金融信息技术有限公司 一种实现多应用并发调用硬件的方法
CN112000949A (zh) * 2020-08-26 2020-11-27 中国联合网络通信集团有限公司 程序包调用方法、系统、终端设备及计算机可读存储介质
CN112035115A (zh) * 2020-06-17 2020-12-04 厦门盈趣科技股份有限公司 一种基于Android系统平台调用的系统API设置及调用方法及系统
CN115344887A (zh) * 2022-08-05 2022-11-15 广州民航信息技术有限公司 Web前端的跨平台适配系统、方法、装置、电子设备及计算机可读存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110166313B (zh) * 2019-03-21 2022-03-18 北京华顺信安科技有限公司 一种模拟协议服务端的方法
CN110633163B (zh) * 2019-09-26 2022-12-09 深圳市七星石科技有限公司 一种基于多进程服务器的预防应用程序崩溃的开发方法
CN111562535A (zh) * 2020-04-07 2020-08-21 国网上海市电力公司 一种用于提高电能表检定速度的协调方法及系统
CN112199666B (zh) * 2020-09-30 2023-02-03 江苏恒宝智能系统技术有限公司 设备通信方法、装置、系统和电子设备
CN113489639B (zh) * 2021-06-16 2022-12-02 杭州深渡科技有限公司 一种网关多接口的数据通信方法和系统
CN114201114B (zh) * 2021-12-14 2024-05-10 上海朝阳永续信息技术股份有限公司 一种基于文件的跨互联网数据传输系统
CN115373767B (zh) * 2022-10-24 2023-01-20 北京智芯微电子科技有限公司 程序执行方法、装置、电子设备和可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101163055A (zh) * 2007-11-21 2008-04-16 浪潮电子信息产业股份有限公司 一种自动探测服务器硬件信息的方法
US20140366023A1 (en) * 2013-06-07 2014-12-11 American Megatrends, Inc. Methods, Devices and Computer Readable Storage Devices for Emulating a Gyroscope in a Guest Operating System from a Host Operating System
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 (4)

* Cited by examiner, † Cited by third party
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 腾讯科技(深圳)有限公司 操作系统资源访问方法和系统
CN106027487B (zh) * 2016-04-28 2019-07-23 广州广电运通金融电子股份有限公司 一种硬件设备的访问管理方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101163055A (zh) * 2007-11-21 2008-04-16 浪潮电子信息产业股份有限公司 一种自动探测服务器硬件信息的方法
US20140366023A1 (en) * 2013-06-07 2014-12-11 American Megatrends, Inc. Methods, Devices and Computer Readable Storage Devices for Emulating a Gyroscope in a Guest Operating System from a Host Operating System
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内核的硬件驱动实现方法及装置

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017185952A1 (zh) * 2016-04-28 2017-11-02 广州广电运通金融电子股份有限公司 一种硬件设备的访问管理方法及系统
CN106897146A (zh) * 2017-02-09 2017-06-27 青岛海信移动通信技术股份有限公司 一种终端的麦克风的数据处理方法和具有麦克风的终端
CN108664799A (zh) * 2017-03-31 2018-10-16 腾讯科技(深圳)有限公司 设备管理应用的权限设置方法及装置
CN108664799B (zh) * 2017-03-31 2023-03-14 腾讯科技(深圳)有限公司 设备管理应用的权限设置方法及装置
CN109408418A (zh) * 2017-08-17 2019-03-01 深圳市中兴微电子技术有限公司 一种usb模式切换装置及方法、usb设备
CN109408418B (zh) * 2017-08-17 2022-03-25 深圳市中兴微电子技术有限公司 一种usb模式切换装置及方法、usb设备
CN107945354A (zh) * 2017-11-20 2018-04-20 浪潮金融信息技术有限公司 排队叫号方法及系统、计算机存储介质和终端
CN108494731A (zh) * 2018-02-08 2018-09-04 中国电子科技网络信息安全有限公司 一种基于双向身份认证的抗网络扫描方法
CN108494731B (zh) * 2018-02-08 2021-04-02 中国电子科技网络信息安全有限公司 一种基于双向身份认证的抗网络扫描方法
CN110311936A (zh) * 2018-03-27 2019-10-08 香港乐蜜有限公司 客户端之间的通讯方法、装置、电子设备及存储介质
CN109144579B (zh) * 2018-07-17 2023-09-29 广州睿本信息科技有限公司 一种Web系统读取硬件的方法及计算机可读存储介质
CN109144579A (zh) * 2018-07-17 2019-01-04 广州睿本信息科技有限公司 一种Web系统读取硬件的方法及计算机可读存储介质
CN109634878A (zh) * 2018-12-07 2019-04-16 用友网络科技股份有限公司 监控方法、监控装置、服务器、终端和可读存储介质
CN109787997A (zh) * 2019-02-26 2019-05-21 上海易点时空网络有限公司 基于php的tcp服务方法及服务器
CN109787997B (zh) * 2019-02-26 2021-06-11 上海易点时空网络有限公司 基于php的tcp服务方法及服务器
CN110266477A (zh) * 2019-05-23 2019-09-20 广州河东科技有限公司 一种udp通信实现动态加密方法
CN110730168A (zh) * 2019-09-29 2020-01-24 佛山市兴颂机器人科技有限公司 一种通信控制方法、装置及服务端设备
CN111143085A (zh) * 2019-11-28 2020-05-12 浪潮金融信息技术有限公司 一种实现多应用并发调用硬件的方法
CN111143085B (zh) * 2019-11-28 2022-08-09 浪潮金融信息技术有限公司 一种实现多应用并发调用硬件的方法
CN112035115B (zh) * 2020-06-17 2022-09-13 厦门盈趣科技股份有限公司 一种基于Android系统平台调用的系统API设置及调用方法及系统
CN112035115A (zh) * 2020-06-17 2020-12-04 厦门盈趣科技股份有限公司 一种基于Android系统平台调用的系统API设置及调用方法及系统
CN112000949B (zh) * 2020-08-26 2023-06-16 中国联合网络通信集团有限公司 程序包调用方法、系统、终端设备及计算机可读存储介质
CN112000949A (zh) * 2020-08-26 2020-11-27 中国联合网络通信集团有限公司 程序包调用方法、系统、终端设备及计算机可读存储介质
CN115344887A (zh) * 2022-08-05 2022-11-15 广州民航信息技术有限公司 Web前端的跨平台适配系统、方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
WO2017185952A1 (zh) 2017-11-02
CN106027487B (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
CN106027487A (zh) 一种硬件设备的访问管理方法及系统
CN109639740B (zh) 一种基于设备id的登录态共享方法及装置
US7320068B2 (en) Systems and methods to migrate a user profile when joining a client to a server and/or domain
EP2852913B1 (en) Method and apparatus for determining malicious program
RU2571726C2 (ru) Система и способ проверки целесообразности установки обновлений
US11113126B2 (en) Verifying transfer of detected sensitive data
EP4161012A1 (en) Authentication method and apparatus, electronic device, server, program, and storage medium
CN108900354A (zh) 网络配置方法、配置文件集生成方法、装置及网络设备
CN107786551B (zh) 访问内网服务器的方法及控制访问内网服务器的装置
CN106453266A (zh) 一种异常网络请求检测方法与装置
CN106462423A (zh) 用于通过基于web的场境集成web和本地应用的系统和方法
CN109583199A (zh) 一种存储管理系统的访问审计方法、系统、设备和介质
JP6518297B2 (ja) ウェブページのアンチウィルススキャンを実行するためのシステム及び方法
CN103310139A (zh) 一种输入验证方法和输入验证装置
CN104869135B (zh) 数据交互的方法和终端
JP5141360B2 (ja) 情報処理装置に対する作業支援装置
CN104780042A (zh) 一种即时通信的双层认证方法、装置及系统
EP2294868B1 (en) Seamless location aware network connectivity
CN108092946A (zh) 一种安全访问网络的方法及系统
CN115391277A (zh) 一种目录容量配额检测方法、装置、设备及介质
CN107526961B (zh) 一种服务器网络参数和用户口令变更方法及装置
US20140325605A1 (en) System for storage security of cloud server in cloud computing environment and method thereof
CN111800286A (zh) 内网资产的探测方法、装置和电子设备
CN112150137A (zh) 控制网络支付的方法和装置、电子设备和介质
CN115996150B (zh) 虚拟演练室创建方法、系统、存储介质及数据验证方法

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