android 设备加密之后,一种Android设备的log加密方法、系统、设备和介质与流程

7c41046af666f19c4f4218d245b7bee6.gif

本发明涉及信息的加密领域,特别涉及一种android设备信息的加密方法、系统、设备和介质。

背景技术:

现有android设备adb端口容易被打开,而log信息常常含有敏感信息,账号、密码、位置、联系人、短信等等。android设备只要adb端口打开,那么别人将可以通过adblogcat相关指令获取android手机的log信息。如果对于android的pos设备、银行app等对用户信息比较敏感的,很容易将信息通过log泄漏出去。

原因是:

1、首先,androidlog获取常用指令公开为公众所知,即logcat是android设备用于获取androidlog的指令。

adblogcat-b,

如adblogcat–bradio,

则输出radiobuffer相关log。

logcat命令列表:

2、其次log输出实际格式比较固定,且为明文格式:

一般默认输出log格式format_brief:[time][logpriority]/[tag][pid][logmsg]。

如:log:

08-1008:47:12.878d/rild(298):**rildaemonstarted**

则:

[time]:08-1008:47:12.878

[logpriority]:d

[tag]:rild

[pid]:298

[logmsg]:rildaemonstarted*

注:pid:是processid的进程id简称。

3、androidlog框架的接口函数也是直接通过/dev/socket/logdwsocket将明文写入到logbuffer里的。

如图1所示,androidlog系统框架大概分三个部分:

(1)上层接口,例如alogd、log.d等。

(2)liblog库;

(3)logd服务。

在androidframework中有log.java等文件提供了上层应用使用的接口,在native或jni代码中会使用system\core\include\log\log.h中定义的宏接口alogd、aloge等接口,这两部分接口分别调用liblog中logger_write.cpp文件的android_log_buf_write()函数(log.java、slog.java、rlog.java调用)和__android_log_write()函数(alogd调用),但这两个函数都最终调用了write_to_log()函数。然后通过/dev/socket/logdwsocket写入到logbuffer里。

由上三点可知,现有的android设备的log处于明文状态,因此一旦adb端口被打开,别人可以可以通过logcat指令获取到log,导致android设备信息泄露。

技术实现要素:

本发明要解决的技术问题,在于提供一种能对android设备log进行加密的方法、系统、设备和介质,以对android设备的log信息进行加密,有效地保护了log信息中的隐私信息。

第一方面,本发明提供一种android设备的log加密方法,包括:

步骤s1、在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,通过persist.sys.logarithmetic获取加密算法,通过persist.sys.logkey获取加密密钥;

步骤s2、通过所述加密算法和加密密钥明文格式的[logmsg]文本加密成密文;

步骤s3、将加密成密文的[logmsg]文本通过/dev/socket/logdw这个socket写入到logbuffer。

第二方面,本发明提供了一种android设备的log加密系统,包括:

获取模块,在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,用于通过persist.sys.logarithmetic获取加密算法,通过persist.sys.logkey获取加密密钥;

加密模块,用于通过所述加密算法和加密密钥明文格式的[logmsg]文本加密成密文;

socket模块,用于将加密成密文的[logmsg]文本通过/dev/socket/logdw写入到logbuffer。

第三方面,本发明提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。

第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本申请实施例提供的方法、装置、设备和介质,在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,获取加密算法和加密密钥;对明文格式的[logmsg]文本加密成密文;从而使应用或者adb端口通过logcat获取的androidlog将是密文格式,保护了log信息安全。另外本申请实施例还通过定制密文格式增强了密文的便利性、安全性和可靠性;通过加入密文头尾:能更容易区分出密文起始和结束位置,一方面方便解析,另一方面可增强安全性,使得log在他人不知道格式的情况下,不容易被解密;且通过增加校验位,方便鉴别传输过程密文是否丢失,增强文本传输的可靠性。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为传统androidlog系统的框架示意图。

图2为本发明androidlog系统的框架示意图。

图3为本发明实施例一中android设备的log加密方法的流程框图。

图4为本发明实施例二中android设备的log加密系统的结构框图。

图5为本发明实施例三中电子设备的结构示意图;

图6为本发明实施例四中介质的结构示意图。

具体实施方式

本申请实施例提供的方法、装置、设备和介质,将明文格式的[logmsg]文本加密成密文;从而使应用或者adb端口通过logcat获取的androidlog将是密文格式,保护了log信息安全。

本申请实施例中的技术方案,总体思路如下:

在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,获取加密算法和加密密钥;对明文格式的[logmsg]文本加密成密文;再通过/dev/socket/logdw这个socket写入到logbuffer里。

在介绍具体实施例之前,先介绍本申请实施例方法所对应的androidlog的框架。由于android设备的各种writelog方法中,log文本最终都通过/dev/socket/logdw这个socket写入到logbuffer。所以对log文本的加密处理需要放在writelogdwsocket前。因此将传统androidlog系统的框架做如下修改,请参阅图2所示,本发明经修改后的androidlog系统的框架具体包括下述几个方面:

(1)在androidframework中有log.java等文件提供了上层应用使用的接口,在native或jni代码中会使用system\core\include\log\log.h中定义的宏接口alogd、aloge等接口,这两部分接口分别调用liblog中logger_write.cpp文件的__android_log_buf_write()函数(log.java、slog.java、rlog.java调用)和__android_log_write()函数(alogd调用),

(2)两个函数都最终调用了write_to_log()函数。

(3)获取加密密钥和加密算法,执行加密,将明文变成密文

(4)然后通过/dev/socket/logdwsocket写入到logbuffer里。

实施例一

本实施例提供一种android设备的log加密方法,可以具体描述为下述过程:

步骤s1、在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,通过persist.sys.logarithmetic获取加密算法,通过persist.sys.logkey获取加密密钥;本发明支持sha1、md5、hmac、aes、rc4、rabbit、base64等多种加密算法。如获取persist.sys.logarithmetic的值:1-7,具体含义如下1:sha1,2:md5,3:hmac,4:aes,5:rc4,6:rabbit,7:base64;而加密密钥一串8位数字;

步骤s2、通过所述加密算法和加密密钥明文格式的[logmsg]文本加密成密文;一般默认输出log格式是format_brief:[time][logpriority]/[tag][pid][logmsg],因此只需加密[logmsg]这串文本,因只有这串信息会含隐私信息。

然后定制密文格式;所述密文格式为:header+length+密文+校验位+end;

其中,

header是起始位0x0a;

length是密文长度;

校验位的算法:采用密文异或和,对数据逐一异或计算;

end是结束位0x0b。

步骤s3、将加密成密文的[logmsg]文本通过/dev/socket/logdw这个socket写入到logbuffer。

基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。

实施例二

在本实施例中提供了一种android设备的log加密系统,包括:

获取模块,在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,用于通过persist.sys.logarithmetic获取加密算法,通过persist.sys.logkey获取加密密钥;

加密模块,用于通过所述加密算法和加密密钥明文格式的[logmsg]文本加密成密文;一般默认输出log格式是format_brief:[time][logpriority]/[tag][pid][logmsg],因此只需加密[logmsg]这串文本,因只有这串信息会含隐私信息。

还用于定制密文格式;所述密文格式为:header+length+密文+校验位+end;

其中,

header是起始位0x0a;

length是密文长度;

校验位的算法:采用密文异或和,对数据逐一异或计算;

end是结束位0x0b。

socket模块,用于将加密成密文的[logmsg]文本通过/dev/socket/logdw写入到logbuffer。

基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。

实施例三

本实施例提供了一种电子设备,具体为android设备,如图5所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。

由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。

实施例四

本实施例提供一种计算机可读存储介质,如图6所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。

综上所述本发明具有如下优点:本发明通过log加密,应用或者adb端口通过logcat获取的androidlog将是密文格式,保护了log信息安全。本发明还通过定制密文格式增强了密文的便利性、安全性和可靠性;通过加入密文头尾:能更容易区分出密文起始和结束位置,一方面方便解析,另一方面可增强安全性,使得log在他人不知道格式的情况下,不容易被解密;且通过增加校验位,方便鉴别传输过程密文是否丢失,增强文本传输的可靠性。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值