一种不依赖索权的Android设备唯一标识码的生成方法与流程

文档序号:33362712发布日期:2023-03-07 21:25阅读:63来源:国知局
一种不依赖索权的Android设备唯一标识码的生成方法与流程
一种不依赖索权的android设备唯一标识码的生成方法
技术领域
1.本发明涉及移动开发安全控制技术领域,特别涉及一种不依赖索权的 android设备唯一标识码的生成方法。


背景技术:

2.随着《网安法》、《移动互联网应用程序个人信息保护管理暂行规定(征求意见稿)》等法律法规的进一步明确,我国对用户隐私保护的意识和要去也越来越重视,禁止app非法获取、超范围收集、过度索权等侵害个人信息现象,明确“知情同意”“最小必要”两项重要原则。譬如国际移动设备识别码(imei)、sim卡国际移动用户识别码(imsi)等已被认定为用户隐私的一部分。
3.传统的设备唯一码获取方式不适用于现有的监管合规要求。识别唯一码的获取,目前通用做法是强制索取手机权限(read_phone_state等权限),依赖于获取国际移动设备识别码(imei)、sim卡国际移动用户识别码(imsi) 等设备属性信息。随着《网安法》、《移动互联网应用程序个人信息保护管理暂行规定(征求意见稿)》等法律法规的进一步明确,禁止app非法获取、超范围收集、过度索权等侵害个人信息现象,明确“知情同意”“最小必要”两项重要原则。譬如imei、imsi等已被认定为用户隐私的一部分。


技术实现要素:

4.本发明要解决的技术问题是克服现有技术的缺陷,提供一种不依赖索权的android设备唯一标识码的生成方法。
5.本发明提供了如下的技术方案:
6.本发明提供一种不依赖索权的android设备唯一标识码的生成方法,主要包括客户端sdk模块和服务端模块,其中客户端sdk模块,主要功能包括以下6大项:
7.1.1:设备唯一码预生成pre-sid;根据androidid、设备型号manufacture、设备厂商model等非用户隐私设备属性,进行摘要运算后得到的hash值,结合自定义的版本标识字符串,预生成为pre-sdk;计算方式为: pre-sid=str_version+sm3(androidid+manufacture+model);
8.1.2:采集非隐私设备属性数据,组合成json串,通过接口,上送到服务端;
9.1.2.1:若用户知悉并同意授权设备状态读写权限(read_phone_state),则读取imsi、imei、wifi_mac、蓝牙mac、序列号等核心信息;(不授权则不索取此隐私数据)
10.1.2.2:采集非隐私数据,包括硬件分辨率、应用安装时间戳hash值、内存存储大小、内核编译信息、系统预编译时间、设备必装应用时间戳hash值、 sdcard目录下创建时间的时间戳,无线电固定版本号等设备属性数据;
11.1.3:将生成和采集的数据,组成json字符串,通过app的加密通道,上送到服务端,同步等待响应结果;
12.1.4:根据服务端响应报文,决定是否是采用本地预生成pre-sid,还是重置为服务
端响应的server-sid,最终确认为设备唯一码(sid);
13.1.5:将设备唯一码(sid)存储到android设备;
14.1.5.1:若有存储权限,则通过自定义的加密算法,sid加密密文写入到应用当前文件夹和系统文件夹目录;
15.1.5.2:若无存储权限,则通过自定义的加密算法,sid加密密文写入到应用当前文件夹;
16.1.6:应用app再次打开或在某个场景下获取时,读取系统文件夹目录和应用当前文件夹目录,若存在读取客户端本地结果;若不存在则重新预生成 pre-sid,发起以上各项操作;
17.服务端模块,主要功能包括以下功能点:
18.2.1:接收客户端sdk模块上送的字符串数据;数据包括了pre-sid、手机设备属性信息(phone_data)和通信账户信息(acct_data)三大类数据集;
19.2.2:匹配现有数据库表是否包含此pre-id;若包含则认为设备已在历史中存在,返回设备唯一码sid=pre-sid,返回给客户端;
20.2.3:若现有数据库表不存在此pre-id,则进行设备稳定性模型计算,模型结合已有表信息和上送的phone_data和acct_data,计算出模型分score; score决定最终sid的值;
21.2.4:模型计算规则核心细则如下:
22.2.4.1:将上送的手机设备属性信息(phone_data)和通信账户信息 (acct_data)数据集的各个参数值,切分为6个等级;等级越高,系数越高;基本细则如下:
23.2.4.1.1:等级系数划分依据如下:
24.·
等级e(e):唯一确定同设备对应关系,系数100;包括 androidid、vaid等环境属性参数;
25.·
等级dd):通过2-3个属性组合关联,结合实际情况,可对应不大于3条的设备信息,系数40;包括通信账户手机号、蓝牙mac、 wifimac、系统文件时间戳hash、imei、序列号等参数;
26.·
等级c(c):具备一定的参考依据,保持有相对较高的准确性 (暂无针对性的模拟器篡改);大部分情况下,每台手机属性不相同;系数10;
27.·
等级b(b):具备一定的参考依据,准确性相对较弱;大部分情况下,每台手机属性不相同;系数5;
28.·
等级a(a):同设备机型,同厂商,正常情况下,属性信息一致;可作为存在多条记录时,选择最优同设备的依据,系数2;
29.·
特殊等级(x):特殊等级位,不同厂商设备,属性的唯一可靠性有较大差异;分值需根据厂商和设备型号,制定特殊的系数x;
30.2:4.1.2:模型分计算公式
[0031][0032]
其中,采集的数据集,按照自定义的定级划分,归类的各自的系数,x标识特殊等
级,标记特殊设备或特殊账户对应的不同权重分,x可为负数;
[0033]
2.5:根据上送的设备主要属性信息(等级de分类),去数据库检索匹配,得到疑似设备唯一码(mayid1、mayid2)等;譬如通过上送的android_id值,作为数据库检索条件,若找到,则拉取库表中的疑似设备唯一码(mayid)和对应的属性字段值;库表数据和上送数据做匹配,若匹配成功,则加入模型分计算,不匹配不加入;从而计算最终score分数;(目前参数数量支持动态配置)
[0034]
2.6:得出的score分数若不小于配置的阈值(阈值可动态设置,根据稳定情况而定),则认为本次上送的预生成pre-sid无效,历史已存在其他唯一码标记,直接忽略上送的pre-id,采用匹配到的mayid数值,作为本设备的唯一识别码,返回的sid=mayid;客户端收到后,存储此sid;本模型分的计算意义,在于应对恶意篡改imsi、卸载重载应用等场景下,仍能稳定定位原在库表的识别码,确保相同设备唯一码保持不变,持高稳定性;
[0035]
2.7:若得出的score分数若小于配置的阈值(阈值可动态设置,根据稳定情况而定),则认为上送的pre-id可信任,认可本设备唯一码,设置 server-id=pre-id,返回给客户端,并做表落库存储。
[0036]
与现有技术相比,本发明的有益效果如下:
[0037]
1.现有技术依赖以android系统关键信息imei、serialnumber、androidid 为基础生成设备标识,涉及用户隐私权限,不满足现有国内监管要求。本专利发明无需强制索取敏感权限。符合监管要求,保护个人用户隐私安全;
[0038]
2.创造性使用客户端加服务端协同模型计算评分,确保在应对用户卸载重载应用、恶意篡改imei等行为下,仍能保持唯一码的稳定性。
附图说明
[0039]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0040]
图1是本发明的流程框架图。
具体实施方式
[0041]
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。其中附图中相同的标号全部指的是相同的部件。
[0042]
实施例1
[0043]
如图1,本发明提供一种不依赖索权的android设备唯一标识码的生成方法,主要包括客户端sdk模块和服务端模块,其中客户端sdk模块,主要功能包括以下6大项:
[0044]
1.1:设备唯一码预生成pre-sid;根据androidid、设备型号manufacture、设备厂商model等非用户隐私设备属性,进行摘要运算后得到的hash值,结合自定义的版本标识字符串,预生成为pre-sdk;计算方式为: pre-sid=str_version+sm3(androidid+manufacture+model);
[0045]
1.2:采集非隐私设备属性数据,组合成json串,通过接口,上送到服务端;
[0046]
1.2.1:若用户知悉并同意授权设备状态读写权限(read_phone_state),则读取
imsi、imei、wifi_mac、蓝牙mac、序列号等核心信息;(不授权则不索取此隐私数据)
[0047]
1.2.2:采集非隐私数据,包括硬件分辨率、应用安装时间戳hash值、内存存储大小、内核编译信息、系统预编译时间、设备必装应用时间戳hash值、 sdcard目录下创建时间的时间戳,无线电固定版本号等设备属性数据;
[0048]
1.3:将生成和采集的数据,组成json字符串,通过app的加密通道,上送到服务端,同步等待响应结果;
[0049]
1.4:根据服务端响应报文,决定是否是采用本地预生成pre-sid,还是重置为服务端响应的server-sid,最终确认为设备唯一码(sid);
[0050]
1.5:将设备唯一码(sid)存储到android设备;
[0051]
1.5.1:若有存储权限,则通过自定义的加密算法,sid加密密文写入到应用当前文件夹和系统文件夹目录;
[0052]
1.5.2:若无存储权限,则通过自定义的加密算法,sid加密密文写入到应用当前文件夹;
[0053]
1.6:应用app再次打开或在某个场景下获取时,读取系统文件夹目录和应用当前文件夹目录,若存在读取客户端本地结果;若不存在则重新预生成 pre-sid,发起以上各项操作;
[0054]
服务端模块,主要功能包括以下功能点:
[0055]
2.1:接收客户端sdk模块上送的字符串数据;数据包括了pre-sid、手机设备属性信息(phone_data)和通信账户信息(acct_data)三大类数据集;
[0056]
2.2:匹配现有数据库表是否包含此pre-id;若包含则认为设备已在历史中存在,返回设备唯一码sid=pre-sid,返回给客户端;
[0057]
2.3:若现有数据库表不存在此pre-id,则进行设备稳定性模型计算,模型结合已有表信息和上送的phone_data和acct_data,计算出模型分score; score决定最终sid的值;
[0058]
2.4:模型计算规则核心细则如下:
[0059]
2.4.1:将上送的手机设备属性信息(phone_data)和通信账户信息 (acct_data)数据集的各个参数值,切分为6个等级;等级越高,系数越高;基本细则如下:
[0060]
2.4.1.1:等级系数划分依据如下:
[0061]
·
等级e(e):唯一确定同设备对应关系,系数100;包括 androidid、vaid等环境属性参数;
[0062]
·
等级dd):通过2-3个属性组合关联,结合实际情况,可对应不大于3条的设备信息,系数40;包括通信账户手机号、蓝牙mac、 wifimac、系统文件时间戳hash、imei、序列号等参数;
[0063]
·
等级c(c):具备一定的参考依据,保持有相对较高的准确性 (暂无针对性的模拟器篡改);大部分情况下,每台手机属性不相同;系数10;
[0064]
·
等级b(b):具备一定的参考依据,准确性相对较弱;大部分情况下,每台手机属性不相同;系数5;
[0065]
·
等级a(a):同设备机型,同厂商,正常情况下,属性信息一致;可作为存在多条记录时,选择最优同设备的依据,系数2;
[0066]
·
特殊等级(x):特殊等级位,不同厂商设备,属性的唯一可靠性有较大差异;分值需根据厂商和设备型号,制定特殊的系数x;
[0067]
2:4.1.2:模型分计算公式
[0068][0069]
其中,采集的数据集,按照自定义的定级划分,归类的各自的系数,x标识特殊等级,标记特殊设备或特殊账户对应的不同权重分,x可为负数;
[0070]
2.5:根据上送的设备主要属性信息(等级de分类),去数据库检索匹配,得到疑似设备唯一码(mayid1、mayid2)等;譬如通过上送的android_id值,作为数据库检索条件,若找到,则拉取库表中的疑似设备唯一码(mayid)和对应的属性字段值;库表数据和上送数据做匹配,若匹配成功,则加入模型分计算,不匹配不加入;从而计算最终score分数;(目前参数数量支持动态配置)
[0071]
2.6:得出的score分数若不小于配置的阈值(阈值可动态设置,根据稳定情况而定),则认为本次上送的预生成pre-sid无效,历史已存在其他唯一码标记,直接忽略上送的pre-id,采用匹配到的mayid数值,作为本设备的唯一识别码,返回的sid=mayid;客户端收到后,存储此sid;本模型分的计算意义,在于应对恶意篡改imsi、卸载重载应用等场景下,仍能稳定定位原在库表的识别码,确保相同设备唯一码保持不变,持高稳定性;
[0072]
2.7:若得出的score分数若小于配置的阈值(阈值可动态设置,根据稳定情况而定),则认为上送的pre-id可信任,认可本设备唯一码,设置 server-id=pre-id,返回给客户端,并做表落库存储。
[0073]
进一步的,在翼支付app亿级用户体量下,无需强制android设备用户授权,已成功稳定运行超过1年,辅助风控,检测出超过100万欺诈账户及设备,保护了个人隐私数据安全。
[0074]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1