CN112733091A - 一种应用程序访问外接设备的控制方法及装置 - Google Patents
一种应用程序访问外接设备的控制方法及装置 Download PDFInfo
- Publication number
- CN112733091A CN112733091A CN202011622740.0A CN202011622740A CN112733091A CN 112733091 A CN112733091 A CN 112733091A CN 202011622740 A CN202011622740 A CN 202011622740A CN 112733091 A CN112733091 A CN 112733091A
- Authority
- CN
- China
- Prior art keywords
- application program
- external device
- information
- application
- external
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 230000002093 peripheral effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 239000007858 starting material Substances 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000001824 photoionisation detection Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序访问外接设备的控制方法及装置,方法包括:当第一应用程序调用第一函数时,拦截第一应用程序的进程;其中,第一函数为访问第一外接设备所需调用的任一个函数;如果第一外接设备与第二外接设备的设备信息匹配,并且,第一应用程序与第二应用程序的标识信息匹配,则放行或者拒绝被拦截的第一应用程序的进程,其中,第二外接设备的设备信息与第二应用程序的标识信息对应。本申请通过先拦截访问外接设备的应用程序的进程,然后在该外接设备为特定的外接设备,且该应用程序为满足预设要求的应用程序时,放行或者拒绝被拦截的应用程序的进程,实现应用程序访问外接设备的准确控制,提高访问的准确性、安全性和访问效率。
Description
技术领域
本申请涉及计算机软件技术领域,特别涉及一种应用程序访问外接设备的控制方法及装置。
背景技术
市面上很多加密锁在PC机器,尤其是安装有Windows系统的PC上,采用无驱动方式或有驱动方式,被加密锁保护的软件通过API访问加密锁。其中,免驱动模式由于使用windows自带的人体工程学设备驱动,从而免于安装驱动,减少了驱动安装包的带来软件安装包的大小,并且用户可以立即插入立即使用,减少了软件安装难度,深受广大软件开发商喜欢。但是,随着最终用户的PC机器上安装越来越多的软件,不同的软件之间对USB设备(例如加密锁)进行不合规的扫描和设备端口操作,发生了一些冲突,导致正常软件(例如需要由加密锁解密才能启动或正常使用的软件)无法访问加密锁,客户软件无法启动,但是最终客户(即软件用户)并不知到是哪些软件造成冲突,遇到这种问题最终客户束手无策,只能联系软件开发商和加密锁供应商。
现有技术中,软件每次启动找不到特定的USB设备(例如加密锁),需要软件用户自己手工启动,并判断是否有进程干扰,并且手工关闭,造成广大软件用户学习和操作困难。
发明内容
本申请实施例的目的在于提供一种应用程序访问外接设备控制方法及装置,本申请的实施例使用了如下技术方案:
一种应用程序访问外接设备的控制方法,所述方法包括:
当第一应用程序调用第一函数时,拦截所述第一应用程序的进程;其中,所述第一函数为访问第一外接设备所需调用的任一个函数;
如果所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配,则放行或者拒绝被拦截的所述第一应用程序的进程,其中,所述第二外接设备的设备信息与所述第二应用程序的标识信息对应。
在一些实施例中,所述第二外接设备的设备信息包括以下信息中的一种或多种:所述第二外接设备的供应商识别码、所述第二外接设备的产品识别码,以及所述第二外接设备的唯一标识。
在一些实施例中,所述第二应用程序的标识信息包括以下信息中的一种或多种:所述第二应用程序的名称、所述第二应用程序的数字签名,以及所述第二应用程序对应的哈希值。
在一些实施例中,所述第二外接设备的设备信息和所述第二应用程序的标识信息被存储于数据库文件中,所述数据库文件包括至少一条规则,每一条所述规则包括:第二外接设备的设备信息以及对应的第二应用程序的标识信息。
在一些实施例中,所述方法还包括更新所述数据库文件,包括:
获取第三应用程序的标识信息;
获取第三外接设备的设备信息;
将所述第三应用程序的标识信息和所述第三外接设备的设备信息作为一条新增规则的内容,对应存储到所述数据库文件中。
在一些实施例中,所述数据库文件被第一密钥加密;其中,所述第一密钥为所述第二外接设备的供应商、所述第二应用程序的开发者或者所述第二外接设备的持有者的密钥;或者,
所述数据库文件被所述第一密钥加密,并被第二密钥签名;其中,所述第二密钥为所述第二外接设备的供应商、所述第二应用程序的开发者或者所述第二外接设备的持有者的私钥。
在一些实施例中,拦截所述第一应用程序的进程,包括:利用系统钩子拦截所述第一应用程序的进程;其中,
所述系统钩子为全局钩子;或者,
所述系统钩子包括全局钩子和钩子启动器;或者,
所述系统钩子为局部钩子。
在一些实施例中,所述第一外接设备为普通的外接设备;或者,所述第一外接设备为符合指定的供应商识别码的外接设备。
本申请实施例还提供一种应用程序访问外接设备的控制装置,包括:
拦截模块,配置为当第一应用程序调用第一函数时,拦截所述第一应用程序的进程;其中,所述第一函数为访问第一外接设备所需调用的任一个函数;
控制模块,配置为如果所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配,则放行或者拒绝被拦截的所述第一应用程序的进程,其中,所述第二外接设备的设备信息与所述第二应用程序的标识信息对应。
本申请实施例还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令;所述计算机程序指令被处理器执行时实现上述的控制方法。
本申请实施例提供的应用程序访问外接设备的控制方法及装置在检测到应用程序访问外接设备时,先对应用程序的进程进行拦截,然后在该外接设备为特定的外接设备,且该应用程序为满足预设要求的应用程序时,放行或者拒绝被拦截的所述应用程序的进程,可以实现应用程序访问外接设备的准确控制,提高访问的准确性、安全性和访问效率。同时,无需应用程序用户自己手工检测和判断是否有进程干扰,无需用户学习,操作方便。
附图说明
图1为本申请实施例的应用程序访问外接设备的控制方法的流程图;
图2本申请实施例的控制方法的部分步骤的其中一种实现方式的流程图;
图3为本申请实施例的应用程序访问外接设备装置的结构示意图;
图4为本申请实施例的终端的结构示意图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可使用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
图1为本申请实施例的应用程序访问外接设备的控制方法的流程图。该方法可以由终端或者服务器执行,以下实施例中以终端为例对本申请的方法作说明。终端可以为计算机(PC)、笔记本电脑、平板电脑、手机等终端设备。终端为PC时,操作系统可以为Windows、Linux等操作系统;终端为手机时,操作系统可以为Android系统或IOS系统等。本实施例中,以终端为PC、操作系统为Windows系统为例进行说明。
如图1所示,本申请实施例提供一种应用程序访问外接设备的控制方法,包括:
步骤S1:当第一应用程序调用第一函数时,拦截所述第一应用程序的进程;其中,所述第一函数为访问第一外接设备所需调用的任一个函数。
第一外接设备可以为任意连接至终端的外接设备。具体地,第一外接设备可以为普通的外接设备,例如普通USB设备;第一外接设备也可以为符合指定的供应商识别码(PID)的外接设备,例如加密锁等USB-HID设备,加密锁可以对软件开发商开发的应用程序进行加密保护。
连接至终端的外接设备可以为一个也可以为多个,第一外接设备可以是其中的任一个。终端的主控制器(主控芯片)可以遍历硬件设备管理器,以检测连接至终端的外接设备。
在终端上可以安装有一个或者多个应用程序,第一应用程序可以为运行在终端上的任一个应用程序。终端上设有用于连接外接设备的外设接口,第一外接设备通过外设接口连接至终端后,第一应用程序可以访问该第一外接设备,以进行数据通信。
第一应用程序可以通过调用访问第一外接设备所需的一个或者多个函数来访问该第一外接设备。第一函数可以是这一个或者多个函数中的任一个。
示例性地,第一应用程序访问第一外接设备时,需要调用操作系统中的第一函数打开第一外接设备的设备路径。在Windows操作系统中,第一函数可以为creatfile函数,即第一应用程序可以调用Windows操作系统中的createfile函数打开第一外接设备的设备路径,并返回相应的可访问句柄,以使第一应用程序访问第一外接设备。第一函数也可以是能够访问第一外接设备所需调用的其他可能的函数,例如无驱动加密锁访问方式中的SetupDiGetDeviceInterFaceDetail函数等,无驱动加密锁连接至终端时,第一应用程序通过调用SetupDiGetDeviceInterFaceDetail函数便可以访问该无驱动加密锁。
第一外接设备连接至外设接口时,其设备路径唯一确定。只有通过调用第一函数打开该设备路径的应用程序才能够顺利访问该外接设备。特别地,当访问第一外接设备的第一应用程序为多个时,其中一个第一应用程序调用第一函数打开第一外接设备的设备路径访问该第一外接设备时,其他应用程序便无法访问该第一外接设备。
本实施例中,第一应用程序可以为运行在操作系统上的任意应用程序。第一应用程序可以为与第一外接设备相对应的应用程序,例如,具有访问权限的能够合法访问第一外接设备的应用程序,在一具体实施例中,第一外接设备可以为某银行的加密锁(比如U盾),第一应用程序为与该加密锁相匹配的银行客户端应用程序,通过加密锁可以对应用程序进行加密保护;第一应用程序也可以为与第一外接设备无关的应用程序,例如恶意应用程序等非法应用程序,该恶意应用程序也可能通过调用第一函数访问第一外接设备。
为准确确定出访问第一外接设备的第一应用程序,本步骤中,当第一应用程序调用第一函数时,拦截所述第一应用程序的进程,即拦截所有访问第一外接设备的第一应用程序的进程。本实施例中,拦截所述第一应用程序的进程可以为关闭第一外接设备的设备路径。
具体地,计算机可以运行检测程序,检测是否有第一外接设备连接至终端,并在第一外接设备连接至终端时,检测第一应用程序对第一外接设备的访问请求,在检测到相应的访问请求之后,拦截所述第一应用程序的进程;若没有检测到,则继续检测。
步骤S1中,拦截所述第一应用程序的进程,包括:利用系统钩子拦截所述第一应用程序的进程;其中,
所述系统钩子为全局钩子;或者,
所述系统钩子包括全局钩子和钩子启动器;或者,
所述系统钩子为局部钩子。
钩子可以对应一个指定的函数,当该指定的函数被调用的时候,钩子就会依据相应的过滤关键词来判断是否要拦截调用该函数的进程。示例性地,钩子可以以外接设备的VID信息作为过滤关键词。通过这样的方式,只有指定供应商生产的外接设备在被第一应用程序访问的时候才会被拦截。即,此时第一外接设备为符合指定的供应商识别码的外接设备。
全局钩子是用于拦截应用程序的钩子函数,当指定的一些消息被系统中任何应用程序所处理时,这个钩子就被调用,其中,全局钩子包括一个DLL(Dynamic Link Library,动态链接库)文件和一个回调函数。在具体应用中,全局钩子可以是用于应用程序访问外接设备消息的钩子函数,将全局钩子函数注入(inject)系统进程中,系统在启动时加载这个全局钩子,以监测第一应用程序对第一函数的调用情况,进而拦截所述第一应用程序访问第一外接设备的进程。
系统钩子只包括全局钩子时,调用方便,但是容易与安全软件冲突,且效率相对较低。因此,为提高拦截所述第一应用程序访问第一外接设备的进程的效率,在全局钩子的基础上引入钩子启动器,即将钩子注入到第一应用程序的进程中。钩子程序生效之后,可以只关注第一应用程序的进程,无需关注所有应用程序的进程,拦截效率高,也无需卸载安全软件,且对最终用户无感,用户无需学习操作。
在一些实施例中,系统钩子也可以为局部钩子,此时,用户可以手动操作将局部钩子注入到第一应用程序的进程中。
步骤S2:如果所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配,则放行或者拒绝被拦截的所述第一应用程序的进程,其中,所述第二外接设备的设备信息与所述第二应用程序的标识信息对应。
本步骤中,可以将当前连接至终端的第一外接设备与第二外接设备的设备信息进行比较,并将第一应用程序与第二应用程序的标识信息进行比较,在所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配时,则放行或者拒绝被拦截的所述第一应用程序的进程,以确定最终能够顺利访问第一外接设备的第一应用程序或者确定禁止访问第一外接设备的第一应用程序,并将该第一应用程序拦截,保证第一外接设备的连接至终端后,与第一外接设备相对应的应用程序能够顺利访问该第一外接设备。
其中,第二外接设备为预先确定的外接设备,相应地,第二应用程序为与第二外接设备相对应的应用程序。第二应用程序可以是用户允许访问第二外接设备的应用程序,也可以是用户不期望占用第二外接设备的应用程序。第二外接设备的设备信息为第一外接设备的判断标准,第二应用程序的标识信息为第一应用程序的判断标准。
如图2所示,步骤S2具体包括如下步骤:
步骤S21:判断所述第一外接设备与第二外接设备的设备信息是否匹配;其中,所述第二外接设备的设备信息包括以下信息中的一种或多种:所述第二外接设备的供应商识别码(VID)、所述第二外接设备的产品识别码(PID)以及所述第二外接设备的唯一标识。
第二外接设备为具有某一或某些特定特征的外接设备,第二外接设备可以为USB-HID设备,例如加密锁。第二外接设备的设备信息可以表征某一个特定的设备,也可以表征某一类具有共同特点的设备。
根据USB规范的规定,所有的USB设备都有供应商识别码(Vendor ID,简称VID)和产品识别码(Product ID,简称PID),通过不同的VID和PID来区分不同的设备。其中,VID由供应商向USB执行论坛申请,每个供应商的VID是唯一的,PID由供应商自行决定。
Windows操作系统中一个典型的USB-HID设备的设备信息应该具有如下格式:HID\\Vid_XXXX&Pid_YYYY。本步骤中,第一外接设备连接至终端后,终端可以读取该第一外接设备的VID和/或PID等设备信息。然后将第一外接设备的VID和/或PID与第二外接设备的设备信息VID和/或PID进行比较,判断第一外接设备是否为某一特定供应商提供的外接设备,和/或,判断第一外接设备的产品型号是否满足要求。
理论上来说,不同的设备类型、同一类型设备的不同型号、相同型号的不同设备最好采用不同的PID,以便区别相同厂家的不同设备。但是,具体实施中,由于VID和PID重复并不会对外接设备的使用带来严重影响,一些设备供应商例如USB设备生产商为了方便,可能会随便向外接设备写入VID和PID作为外接设备的设备信息。同时,设备供应商只需要申请VID,PID由设备供应商自行确定,所以存在相同型号的外接设备,即设备的PID相同,基于上述原因通过VID和PID就不能准确判断第一外接设备的设备信息。由于存在不同的第一外接设备的PID相同的情况,为保证第一外接设备判断的准确性,可以使用第二外接设备的唯一标识,例如USB-HID设备的序列号,作为所述第二外接设备的设备信息。USB-HID设备为加密锁时,序列号可以为加密锁锁号。USB-HID设备的设备信息可以为HID\\Vid_XXXX&Pid_YYYY&idZZZZ。
本步骤中,通过对第一外接设备的供应商识别码(VID)、产品识别码(PID)以及唯一标识中的至少一种信息进行识别判断,可以快速判断第一外接设备是否为具有特定特征的外接设备。
步骤S22:判断所述第一应用程序与第二应用程序的标识信息是否匹配;其中,所述第二应用程序的标识信息包括以下信息中的一种或多种:所述第二应用程序的名称、所述第二应用程序的数字签名以及所述第二应用程序对应的哈希值。
第二应用程序的名称为第二应用程序访问第二外接设备的进程对应的可执行文件的名称,通过第二应用程序的名称可以快速判断出第一应用程序是否满足要求。
在一些实施例中,由于应用程序的名称可能出现重复,例如,非法的应用程序可能冒用合法的应用程序的名称访问外接设备,如此,多个应用程序的名称便出现重复。此时,可以使用第二应用程序的数字签名作为第二应用程序的标识信息,以防止应用程序的名称重复,从而准确判断第一应用程序与第二应用程序的标识信息是否匹配。
数字签名可以附在应用程序等文件上,以证明其真实性。第二应用程序的数字签名可以为第二应用程序对应的哈希值的签名。
对于某些应用程序而言,不同版本的应用程序对应的数字签名可能是不同的。由于操作系统的版本不同,不同版本操作系统中的第二应用程序的版本以及对应的数字签名也可能不同。如果这样的应用程序被作为第二应用程序,使用第二应用程序的数字签名作为第二应用程序的标识信息时,需要将不同版本的第二应用程序的数字签名都收集起来,以保证对第一应用程序判断的准确性,如此,便存在处理量大、效率较低的问题。随着应用程序的新版本的不断发布,新版本对应的数字签名也需要被同步更新进来,否则同样也会导致终端无法准确判断是否该允许或禁止第一应用程序访问第一外接设备。因此,在一些实施例中,使用第二应用程序对应的哈希值作为第二应用程序的标识信息,由于不同版本的第二应用程序对应的哈希值相同,且哈希值的唯一性,可以准确判断第一应用程序是否满足要求。第二应用程序对应的哈希值可以为第二应用程序访问第二外接设备的进程对应的哈希值,相较于数字签名成本更低。另外,使用哈希值可以对不同版本的第二应用程序进行判断,或者在任意版本的操作系统下进行判断,可以有效提高判断效率,进而提高控制方法的整体执行效率。
步骤S21和步骤S22的执行顺序本申请实施例不具体限定,可以按顺序执行,也可以同时执行。按顺序执行时,可以在步骤S21判断出第一外接设备为预先确定的第二外接设备的情况下,通过步骤S22判断访问第一外接设备的第一应用程序是否为与该第二外接设备相对应的应用程序;也可以在步骤S22判断出第一应用程序为与预先确定的第二外接设备对应的第二应用程序的情况下,通过步骤S21判断连接至终端的外接设备是否为第二外接设备。步骤S21和步骤S22同时执行时,可以分别通过步骤S21和步骤S22判断第一外接设备以及访问第一外接设备的第一应用程序是否满足要求,进而将二者结合,放行或者拒绝被拦截的所述第一应用程序的进程。
步骤S23:在所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配时,放行或者拒绝被拦截的所述第一应用程序的进程。
其中,第二外接设备的设备信息和第二应用程序的标识信息用于表征允许或者禁止满足所述第二应用程序的标识信息的应用程序访问满足所述第二外接设备的设备信息的外接设备。
具体地,第二应用程序可以包括与第二外接设备的对应的黑名单或者白名单应用程序。黑名单为禁止访问第二外接设备的应用程序名单,白名单为允许访问第二外接设备的应用程序名单。
当第一外接设备与第二外接设备的设备信息匹配,且第一应用程序为黑名单中的应用程序时,拒绝被拦截的所述第一应用程序的进程,即禁止第一应用程序访问第一外接设备,如此,可以防止非法的第一应用程序访问第一外接设备造成合法的第一应用程序无法访问第一外接设备的情况。
在一些实施例中,步骤S23中,拒绝被拦截的所述第一应用程序的进程,包括:
关闭所述第一应用程序的进程;或者
杀掉所述第一应用程序的进程。
其中,关闭所述第一应用程序的进程时,关闭前系统会是否需要保存数据。可选地,终端可以将该第一应用程序访问第一外接设备的进程存储,可以在该第一应用程序下次访问该第一外接设备时,直接关闭所述第一应用程序的进程,无需进行判断,提高系统运行效率。杀掉所述第一应用程序的进程是指直接关闭第一应用程序访问第一外接设备的进程,无需保存数据。直接杀掉所述第一应用程序的进程,可以防止冗余数据在系统中存储。
当第一外接设备与第二外接设备的设备信息匹配,且第一应用程序为白名单中的应用程序时,放行被拦截的所述第一应用程序的进程,即允许第一应用程序访问第一外接设备,可以保证合法应用程序对第一外接设备的顺利访问。
在一些实施例中,步骤S23还包括:
在所述第一外接设备与第二外接设备的设备信息不匹配时,放行被拦截的所述第一应用程序的进程。
在一具体实施例中,第二外接设备为加密锁等用于对应用程序进行加密保护的USB-HID设备。第一外接设备为无需加密的普通USB设备,此时,第一外接设备与第二外接设备的设备信息不匹配,可以直接放行被拦截的所述第一应用程序的进程,使得任意能够调用第一函数的第一应用程序均可访问该USB设备,以进行数据通信。即对于一些无需加密保护的第一应用程序和第一外接设备,可以直接打开第一外接设备的设备路径,使第一应用程序均访问该第一外接设备,从而提高应用程序访问外接设备的效率,进而提高数据通信效率。
本申请实施例提供的应用程序访问外接设备的控制方法在检测到应用程序访问外接设备时,先对应用程序的进程进行拦截,然后在该外接设备为特定的外接设备,且该应用程序为满足预设要求的应用程序时,放行或者拒绝被拦截的所述应用程序的进程,可以实现应用程序访问外接设备的准确控制,提高访问的准确性、安全性和访问效率。同时,无需应用程序用户自己手工检测和判断是否有进程干扰,无需用户学习,操作方便。
在一些实施例中,所述第二外接设备的设备信息和所述第二应用程序的标识信息被存储于数据库文件中,所述数据库文件包括至少一条规则,每一条所述规则包括:第二外接设备的设备信息以及对应的第二应用程序的标识信息。
数据库文件可以为包括第二外接设备的设备信息和所述第二应用程序的标识信息的数据映射表,以usbhidlock.db的格式存储于终端。数据库文件可以由设备供应商和/或软件开发商创建。创建数据库文件时,建立可编辑的统一的数据库文件,涵盖满足第二应用程序的标识信息的应用程序以及满足第二外接设备的设备信息的外接设备。数据库文件也可以存储于软件开发商的云端服务器中,终端可以与云端服务器进行通信以获得第二外接设备的设备信息和所述第二应用程序的标识信息。
终端在检测到第一应用程序访问第一外接设备时,可以及时调用数据库文件中的第二外接设备的设备信息以及对应的第二应用程序的标识信息对第一外接设备和第一应用程序进行检测判断,在得到判断结果后,允许或者禁止满足所述第二应用程序的标识信息的应用程序访问满足所述第二外接设备的设备信息的外接设备。
在一些实施例中,所述方法还包括:
步骤S3:更新所述数据库文件。步骤S3具体包括入下步骤:
步骤S31:获取第三应用程序的标识信息;
步骤S32:获取第三外接设备的设备信息;
步骤S33:将所述第三应用程序的标识信息和所述第三外接设备的设备信息作为一条新增规则的内容,对应存储到所述数据库文件中。
具体地,终端可以获取运行在操作系统的第三应用程序的标识信息和连接至终端的第三外接设备的设备信息,将其作为新增规则的内容添加至数据库文件,及时更新数据库文件,以提高第一应用程序访问第一外接设备识别判断的准确性。本步骤中,数据库文件可以由终端用户手动更新,也可以通过终端操作系统自动更新。示例性地,终端用户可以基于对外接设备和应用程序的测试更新所述数据库文件。
在另一些实施例中,对数据库文件进行更新,可以由设备供应商和软件开发商基于新生产的外接设备和新开发的应用程序进行更新,不断完善作为判断标准的数据库文件,从而提高应用程序访问外接设备的检测准确性,保证合法的应用程序顺利访问外接设备,禁止非法的应用程序访问外接设备。
在一些实施例中,为保证数据库文件的安全性,数据库文件以加密文件的形式存储于终端或云端服务器。
在一具体实施例中,所述数据库文件被第一密钥加密;其中,所述第一密钥为所述第二外接设备的供应商、所述第二应用程序的开发者或者所述第二外接设备的持有者的密钥。
其中,第一密钥可以为公钥也可以为私钥,加密数据库文件使用的算法可以为对称加密也可以为非对称加密。第二外接设备的供应商为软件开发商开发的第二应用程序提供相应的第二外接设备,以保护该第二应用程序。即应用程序开发者是指使用设备供应商提供的第二外接设备保护自己的第二应用程序的开发者。用户购买应用程序后,同时拥有与应用程序相对应的外接设备。用户在终端使用应用程序时,将持有的外接设备连接至终端,系统通过调用函数使应用程序访问外接设备,从而实现应用程序的安全使用。
本申请实施例中,只有第二外接设备的供应商、所述第二应用程序的开发者或者第二外接设备的持有者等拥有访问权限的使用者才能够对数据库文件中的信息进行修改,可以有效防止所述第二外接设备的设备信息和所述第二应用程序的标识信息被篡改。
在另一具体实施例中,所述数据库文件被第一密钥加密,并被第二密钥签名;其中,所述第一密钥为所述第二外接设备的供应商、所述第二应用程序的开发者或者所述第二外接设备的持有者的密钥;所述第二密钥为所述第二外接设备的供应商、所述第二应用程序的开发者或者所述第二外接设备的持有者的私钥。
仅仅采用第一密钥对数据库文件进行加密,第一密钥可能存在泄漏的风险,为保证数据库文件的安全性,本步骤中,不仅利用第一密钥对数据库文件进行加密,还利用第二密钥对加密后的所述数据库文件签名,以防止信息被篡改,进一步提高数据库文件的安全性。
图3为本申请实施例的应用程序访问外接设备的控制装置的结构示意图。如图3所示,本申请实施例提供一种应用程序访问外接设备的控制装置,所述控制装置包括:
拦截模块301,配置为当第一应用程序调用第一函数时,拦截所述第一应用程序的进程;其中,所述第一函数为访问第一外接设备所需调用的任一个函数;
控制模块302,配置为如果所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配,则放行或者拒绝被拦截的所述第一应用程序的进程,其中,所述第二外接设备的设备信息与所述第二应用程序的标识信息对应。
在一些实施例中,控制模块302包括:
第一判断单元,配置为判断所述第一外接设备与第二外接设备的设备信息是否匹配;其中,所述第二外接设备的设备信息包括以下信息中的一种或多种:所述第二外接设备的供应商识别码(VID)、所述第二外接设备的产品识别码(PID)以及所述第二外接设备的唯一标识;
第二判断单元,判断所述第一应用程序与第二应用程序的标识信息是否匹配;其中,所述第二应用程序的标识信息包括以下信息中的一种或多种:所述第二应用程序的名称、所述第二应用程序的数字签名以及所述第二应用程序对应的哈希值;
控制单元,在所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配时,放行或者拒绝被拦截的所述第一应用程序的进程。
该应用程序访问外接设备的控制装置对应于上述实施例的应用程序访问外接设备的控制方法,应用程序访问外接设备的控制方法实施例中的任何可选项也适用于本实施例,这里不再详述。
图4为本申请实施例的终端的结构示意图。如图4所示,本申请实施例的终端包括存储器401与处理器402,存储器401用于存储至少一条计算机程序指令,处理器402用于通过加载并执行所述至少一条计算机程序指令以实现如上实施例所述的应用程序访问外接设备的控制方法。具体实际实现时,终端包括存储器401、处理器402、外设接口403。
存储器401可用于存储软件程序以及模块,如本申请实施例中的应用程序访问外接设备的控制方法对应的程序指令/模块,又如上述实施例所述的第一应用程序。处理器402通过运行存储在存储器401内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序访问外接设备的控制方法。
存储器401可以包括随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器401可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
外设接口403将各种外接设备耦合至处理器402以及存储器401。外设接口403耦合至处理器402时,处理器402即运行存储器401内的各种软件、指令以执行终端的各种功能以及进行数据处理,实现上述的应用程序访问外接设备的控制方法。
在一些实施例中,存储器401还包括数据库文件存储器4011,数据库文件存储器4011可以为专用的非易失性存储器,以存储上述的数据库文件。该数据库文件存储器4011可以为本地存储器,也可以为远程存储器(云端存储器)。通过专用的数据库文件存储器4011对数据库文件进行存储,方便及时调用,且能够保证数据库文件存储的安全性。
可以理解,图4所示的结构仅为示意,终端还可以包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令;所述计算机程序指令被处理器执行时实现如上实施例所述的应用程序访问外接设备的控制方法。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
Claims (10)
1.一种应用程序访问外接设备的控制方法,其特征在于,包括:
当第一应用程序调用第一函数时,拦截所述第一应用程序的进程;其中,所述第一函数为访问第一外接设备所需调用的任一个函数;
如果所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配,则放行或者拒绝被拦截的所述第一应用程序的进程,其中,所述第二外接设备的设备信息与所述第二应用程序的标识信息对应。
2.如权利要求1所述的方法,其特征在于,所述第二外接设备的设备信息包括以下信息中的一种或多种:所述第二外接设备的供应商识别码、所述第二外接设备的产品识别码,以及所述第二外接设备的唯一标识。
3.如权利要求1-2任一项所述的方法,其特征在于,所述第二应用程序的标识信息包括以下信息中的一种或多种:所述第二应用程序的名称、所述第二应用程序的数字签名,以及所述第二应用程序对应的哈希值。
4.如权利要求1-3任一项所述的方法,其特征在于,所述第二外接设备的设备信息和所述第二应用程序的标识信息被存储于数据库文件中,所述数据库文件包括至少一条规则,每一条所述规则包括:第二外接设备的设备信息以及对应的第二应用程序的标识信息。
5.如权利要求4所述的方法,其特征在于,所述方法还包括更新所述数据库文件,包括:
获取第三应用程序的标识信息;
获取第三外接设备的设备信息;
将所述第三应用程序的标识信息和所述第三外接设备的设备信息作为一条新增规则的内容,对应存储到所述数据库文件中。
6.如权利要求4所述的方法,其特征在于,
所述数据库文件被第一密钥加密;其中,所述第一密钥为所述第二外接设备的供应商、所述第二应用程序的开发者或者所述第二外接设备的持有者的密钥;或者,
所述数据库文件被所述第一密钥加密,并被第二密钥签名;其中,所述第二密钥为所述第二外接设备的供应商、所述第二应用程序的开发者或者所述第二外接设备的持有者的私钥。
7.如权利要求1-6任一项所述的方法,其特征在于,拦截所述第一应用程序的进程,包括:利用系统钩子拦截所述第一应用程序的进程;其中,
所述系统钩子为全局钩子;或者,
所述系统钩子包括全局钩子和钩子启动器;或者,
所述系统钩子为局部钩子。
8.如权利要求1-7任一项所述的方法,其特征在于,所述第一外接设备为普通的外接设备;或者,所述第一外接设备为符合指定的供应商识别码的外接设备。
9.一种应用程序访问外接设备的控制装置,包括:
拦截模块,配置为当第一应用程序调用第一函数时,拦截所述第一应用程序的进程;其中,所述第一函数为访问第一外接设备所需调用的任一个函数;
控制模块,配置为如果所述第一外接设备与第二外接设备的设备信息匹配,并且,所述第一应用程序与第二应用程序的标识信息匹配,则放行或者拒绝被拦截的所述第一应用程序的进程,其中,所述第二外接设备的设备信息与所述第二应用程序的标识信息对应。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令;所述计算机程序指令被处理器执行时实现如权利要求1-8任一项所述的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011622740.0A CN112733091A (zh) | 2020-12-31 | 2020-12-31 | 一种应用程序访问外接设备的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011622740.0A CN112733091A (zh) | 2020-12-31 | 2020-12-31 | 一种应用程序访问外接设备的控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112733091A true CN112733091A (zh) | 2021-04-30 |
Family
ID=75608515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011622740.0A Pending CN112733091A (zh) | 2020-12-31 | 2020-12-31 | 一种应用程序访问外接设备的控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733091A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115568036A (zh) * | 2022-10-14 | 2023-01-03 | 荣耀终端有限公司 | 一种应用连接方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842073A (zh) * | 2005-03-31 | 2006-10-04 | 联想(北京)有限公司 | 一种实现网络计算机的外部设备映射的方法 |
CN109271792A (zh) * | 2018-08-15 | 2019-01-25 | 中国人民解放军陆军工程大学 | 一种基于Android本地层挂钩的终端外设控制方法及装置 |
CN109344605A (zh) * | 2018-09-10 | 2019-02-15 | 惠尔丰电子(北京)有限公司 | 一种智能pos机的权限控制方法及其控制系统 |
CN109783318A (zh) * | 2019-01-07 | 2019-05-21 | 中国工商银行股份有限公司 | 智能终端金融外设安全监控方法、装置、服务器及系统 |
CN111274620A (zh) * | 2020-01-16 | 2020-06-12 | 四川效率源科技有限责任公司 | 一种基于Windows操作系统的USB设备的管控方法 |
-
2020
- 2020-12-31 CN CN202011622740.0A patent/CN112733091A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842073A (zh) * | 2005-03-31 | 2006-10-04 | 联想(北京)有限公司 | 一种实现网络计算机的外部设备映射的方法 |
CN109271792A (zh) * | 2018-08-15 | 2019-01-25 | 中国人民解放军陆军工程大学 | 一种基于Android本地层挂钩的终端外设控制方法及装置 |
CN109344605A (zh) * | 2018-09-10 | 2019-02-15 | 惠尔丰电子(北京)有限公司 | 一种智能pos机的权限控制方法及其控制系统 |
CN109783318A (zh) * | 2019-01-07 | 2019-05-21 | 中国工商银行股份有限公司 | 智能终端金融外设安全监控方法、装置、服务器及系统 |
CN111274620A (zh) * | 2020-01-16 | 2020-06-12 | 四川效率源科技有限责任公司 | 一种基于Windows操作系统的USB设备的管控方法 |
Non-Patent Citations (1)
Title |
---|
高发桂: "一种基于 Windows 的通用外设管控系统", 《湖北民族学院学报(自然科学版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115568036A (zh) * | 2022-10-14 | 2023-01-03 | 荣耀终端有限公司 | 一种应用连接方法及电子设备 |
CN115568036B (zh) * | 2022-10-14 | 2023-10-20 | 荣耀终端有限公司 | 一种应用连接方法、电子设备、芯片及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514159B2 (en) | Method and system for preventing and detecting security threats | |
US11093625B2 (en) | Adaptive file access authorization using process access patterns | |
US8474032B2 (en) | Firewall+ storage apparatus, method and system | |
EP2302549B1 (en) | Platform security apparatus and method thereof | |
EP3671508A1 (en) | Customizing operating system kernels with secure kernel modules | |
US8566949B2 (en) | Software component, software component management method, and software component management system | |
WO2015124018A1 (zh) | 基于智能终端设备的应用程序访问方法与装置 | |
US20090193211A1 (en) | Software authentication for computer systems | |
EP3259697B1 (en) | Mining sandboxes | |
US20060053492A1 (en) | Software tracking protection system | |
CN108763951B (zh) | 一种数据的保护方法及装置 | |
WO2016070623A1 (zh) | 敏感信息安全保护方法和装置 | |
KR20150106937A (ko) | 보안 운영 체제 환경으로의 콘텍스트 기반 전환 | |
US9262631B2 (en) | Embedded device and control method thereof | |
US9015826B2 (en) | Mobile platform security apparatus and method | |
US10339307B2 (en) | Intrusion detection system in a device comprising a first operating system and a second operating system | |
WO2020019971A1 (zh) | 一种操作系统的主动安全防护方法、系统及终端设备 | |
CN112733091A (zh) | 一种应用程序访问外接设备的控制方法及装置 | |
CN110348180B (zh) | 一种应用程序启动控制方法和装置 | |
WO2018049977A1 (zh) | 保障系统安全的方法及装置 | |
US20200244461A1 (en) | Data Processing Method and Apparatus | |
CN113836529A (zh) | 进程检测方法、装置、存储介质以及计算机设备 | |
KR101956725B1 (ko) | 인가된 실행 파일 및 동적 라이브러리 파일 기반 서버 접근 통제 시스템 | |
KR20220097037A (ko) | 데이터 유출 방지 시스템 | |
CN111814137A (zh) | 终端的运维方法、运维系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing Applicant after: Beijing Shendun Technology Co.,Ltd. Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing Applicant before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information |