保护Android MTP设备数据安全的方法及装置
技术领域
本发明涉及信息安全技术领域,尤其涉及一种保护Android MTP设备数据安全的方法及装置。
背景技术
目前,当ios设备和Android设备插入PC时都会被识别为mtp设备,PC端可以像访问普通文件系统一样读取mtp设备中的文件,虽然给用户带来便利,但同时也引入了安全隐患。
ios设备在连接PC时,还会弹出“是否信任这台计算机”的提示,确定信任后才可以读取设备中的文件或者图片等数据。而Android设备在进行这类操作时不会有任何提示,PC程序可以任意访问Android设备的文件数据。
上述mtp设备的安全性问题根本原因在于现有mtp协议的不完整性,没有考虑安全性。现有技术中尝试针对现有mtp协议提出权限控制方法,虽然可以实现对Android mtp设备的安全访问,但实现成本较高且复杂,需要同时修改PC端和Android设备端的mtp协议,导致现有的大量依赖于原有mtp协议的软件不可用。
发明内容
本发明针对上述技术问题,仅修改Android设备端的 mtp驱动程序,增加简单的本地服务程序和修改Android系统框架层。从而实现当存在PC程序尝试通过mtp协议访问设备文件时,在Android设备端弹出授权对话框供用户选择。该授权只在用户一次读取批量文件时有效,若有其他PC程序再次尝试通过mtp协议访问Android设备端文件时,授权对话框会再次弹出,提示用户进行授权访问,进而提高Android MTP设备数据的安全性。
本发明采用如下方法来实现:一种保护Android MTP设备数据安全的方法,包括:
当Android设备端的mtp驱动程序访问本地文件并尝试发送到PC端时,进行拦截操作,并向本地服务程序发送通知消息;
本地服务程序监听到通知消息时,向Android系统框架层发送触发信号;
Android系统框架层接收到触发信号后,弹出授权对话框供用户选择:
若用户选择允许,则向Android设备端的mtp驱动程序发送解除拦截的信号;
若用户选择阻止,则向Android设备端的mtp驱动程序发送终止发送的信号;
Android设备端的mtp驱动程序将依据信号类型做出解除拦截或者终止发送的操作。
进一步地,所述拦截操作,具体为:利用内核信号量或者锁机制来阻止将本地文件发送到PC端。
进一步地,所述向本地服务程序发送通知消息后,还包括:添加延时任务策略,在预设时间内不会重复发出通知消息。
进一步地,所述向Android系统框架层发送触发信号,具体为:通过local socket方式向Android系统框架层发送触发信号。
本发明可以采用如下装置来实现:一种保护Android MTP设备数据安全的装置,包括:
mtp驱动模块,用于当Android设备端的mtp驱动程序访问本地文件并尝试发送到PC端时,进行拦截操作,并向监控模块发送通知消息;
用于接收Android系统框架模块反馈的信号,并依据信号类型作出解除拦截或者终止发送的操作;
监控模块,用于监听mtp驱动模块的通知消息,当存在通知消息时,向Android系统框架模块发送触发信号;
Android系统框架模块,用于接收来自监控模块的触发信号后,弹出授权对话框供用户选择:
若用户选择允许,则向mtp驱动模块发送解除拦截的信号;
若用户选择阻止,则向mtp驱动模块发送终止发送的信号。
进一步地,所述拦截操作,具体为:利用内核信号量或者锁机制来阻止将本地文件发送到PC端。
进一步地,所述mtp驱动模块向监控模块发送通知消息后,还包括:添加延时任务策略,在预设时间内不会重复发出通知消息。
进一步地,所述监控模块向Android系统框架模块发送触发信号,具体为:通过local socket方式向Android系统框架模块发送触发信号。
综上,本发明给出一种保护Android MTP设备数据安全的方法及装置,通过修改Android设备端mtp驱动程序,当mtp驱动程序访问Android设备端文件并尝试发送到PC端时,及时阻止拦截,并向本地服务程序发送通知消息;本地服务程序将向Android系统框架层发送触发信号,Android系统框架层将弹出授权对话框供用户选择,根据用户的选择,Android设备端mtp驱动程序将决定解除拦截操作或者终止将Android设备端文件发送到PC端。
有益效果为:不用同时修改PC端和Android设备端的mtp协议,只需要修改Android设备端的mtp驱动程序即可。将来自PC端的文件操作进行拦截,并提示用户存在PC端程序访问Android设备端文件,并弹出授权对话框供用户选择。本发明所述技术方案解决了现有mtp协议未考虑权限访问的局限性,提高了Android设备端文件数据的安全性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种保护Android MTP设备数据安全的方法实施例流程图;
图2为本发明提供的一种保护Android MTP设备数据安全的装置实施例结构图。
具体实施方式
本发明给出了一种保护Android MTP设备数据安全的方法及装置实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
本发明首先提供了一种保护Android MTP设备数据安全的方法实施例,如图1所示,包括:
S101当Android设备端的mtp驱动程序访问本地文件并尝试发送到PC端时,进行拦截操作,并向本地服务程序发送通知消息;
S102本地服务程序监听到通知消息时,向Android系统框架层发送触发信号;
S103 Android系统框架层接收到触发信号后,弹出授权对话框供用户选择;
S104根据用户的选择结果向Android设备端的mtp驱动程序发送相应类型的信号;
若用户选择允许,则向Android设备端的mtp驱动程序发送解除拦截的信号;
若用户选择阻止,则向Android设备端的mtp驱动程序发送终止发送的信号;
其中,可直接使用Android系统框架层提供的API,来实现弹出授权对话框的效果。Android系统框架层可使用JNI机制间接调用操作系统调用接口来操作mtp驱动程序的状态。
S105 Android设备端的mtp驱动程序将依据信号类型做出解除拦截或者终止发送的操作。所述终止发送即阻止Android设备端的mtp驱动程序将文件发送到PC端。
优选地,所述拦截操作,具体为:利用内核信号量或者锁机制来阻止将本地文件发送到PC端。上述方法为内核信号量或者锁机制来阻塞发送操作,等待后续用户的授权回馈信号。
优选地,所述向本地服务程序发送通知消息后,还包括:添加延时任务策略,在预设时间内不会重复发出通知消息。上述方法用于防止用户批量读取mtp文件时频繁的弹出授权对话框供用户选择,从而带来不必要的麻烦,并且影响用户体验。
例如:当PC程序一次批量读取或者写入多个Android设备端的文件时,为了避免访问每个文件都弹出授权对话框,可以在首次向本地服务程序发送通知消息后,启动延时任务。
优选地,所述向Android系统框架层发送触发信号,具体为:通过local socket方式向Android系统框架层发送触发信号。
其中,Android本地服务程序一般由C程序编写,而Android系统框架层通常为Java编写,而他们之间可以使用local socket完成通信。
本发明还提供了一种保护Android MTP设备数据安全的装置实施例,如图2所示,包括:
mtp驱动模块201,用于当Android设备端的mtp驱动程序访问本地文件并尝试发送到PC端时,进行拦截操作,并向监控模块202发送通知消息;
用于接收Android系统框架模块203反馈的信号,并依据信号类型作出解除拦截或者终止发送的操作;
监控模块202,用于监听mtp驱动模块201的通知消息,当存在通知消息时,向Android系统框架模块203发送触发信号;
Android系统框架模块203,用于接收来自监控模块202的触发信号后,弹出授权对话框供用户选择:
若用户选择允许,则向mtp驱动模块201发送解除拦截的信号;
若用户选择阻止,则向mtp驱动模块201发送终止发送的信号。
优选地,所述拦截操作,具体为:利用内核信号量或者锁机制来阻止将本地文件发送到PC端。
优选地,所述mtp驱动模块向监控模块发送通知消息后,还包括:添加延时任务策略,在预设时间内不会重复发出通知消息。
优选地,所述监控模块向Android系统框架模块发送触发信号,具体为:通过localsocket方式向Android系统框架模块发送触发信号。
本说明书中方法的实施例采用递进的方式描述,对于系统的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
如上所述,本发明所给出的实施例通过修改现有的Android设备端的mtp驱动程序,在用于访问Android设备端文件并尝试发送到PC端的函数中添加拦截该行为的代码。从而实现拦截操作,并将通知消息发送至本地服务程序,进一步由本地服务程序转发至Android系统框架层,在Android设备端弹出授权对话框供用户选择,进而实现由用户来管理是否允许PC端程序访问或者读取Android设备端文件。同时,一次授权访问只限一次批量读取文件有效,若有其他PC端程序尝试访问Android端文件时,则授权对话框会再次弹出,提示用户进行授权访问。从而进一步提升了Android设备端文件数据的安全性。
以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。