CN114006738A - 一种基于app实例指纹和设备指纹的手游登录验证方法及系统 - Google Patents
一种基于app实例指纹和设备指纹的手游登录验证方法及系统 Download PDFInfo
- Publication number
- CN114006738A CN114006738A CN202111240997.4A CN202111240997A CN114006738A CN 114006738 A CN114006738 A CN 114006738A CN 202111240997 A CN202111240997 A CN 202111240997A CN 114006738 A CN114006738 A CN 114006738A
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- app
- blacklist
- verification
- mobile
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0861—Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Collating Specific Patterns (AREA)
Abstract
本发明涉及一种基于APP实例指纹和设备指纹的手游登录验证方法及系统,方法包括以下步骤:S1、在手游用户登录时收集移动终端上计算设备指纹需要的设备软硬件信息;S2、在手游用户登录时收集手游移动APP上计算APP实例指纹需要的APP安装信息;S3、设备指纹SDK将收集的设备软硬件信息和APP安装信息加密并随手游用户登录请求上传到验证中心;S4、指纹计算节点根据上传的设备软硬件信息和APP安装信息计算设备指纹和APP实例指纹;S5、验证设备指纹是否与APP实例指纹一一对应,若否终止手游用户登录;S6、进一步验证设备指纹黑名单、APP实例指纹黑名单、手游用户登录账户白名单。有益效果是强化移动端设备指纹技术区分度,防止手游黑产登录。
Description
【技术领域】
本发明涉及互联网技术领域,具体涉及一种基于APP实例指纹和设备指纹的手游登录验证方法及系统。
【背景技术】
移动端设备指纹是指采集移动设备软硬件信息计算得到的哈希值,用以区分不同终端设备。其中设备软硬件信息包括但不限于IMEI、网卡MAC地址、屏幕参数、电池信息、CPU型号、内存大小、操作系统编译时间和文件系统创建时间等。例如可以通过IMEI、设备型号和网卡MAC地址来计算设备指纹区分设备。国际移动设备识别码(International MobileEquipment Identity,IMEI),即通常所说的手机序列号、手机“串号”,用于在移动电话网络中识别每一部独立的手机等移动通信设备,相当于移动电话的身份证。
在移动游戏场景下,设备指纹主要被用来检测黑产养号卖号行为。黑产养号卖号行为是指黑产自动化注册大量账号,然后定期批量登录领取游戏活动福利例如游戏金币等,增加账号价值,最后通过出售账号的方式来获利的行为。黑产养号卖号行为浪费了属于正常玩家的游戏服务器资源,导致正常玩家游戏卡顿,影响玩家游戏体验。并且在游戏活动福利有限的情况下,黑产的批量领福利行为会导致正常玩家领取不到游戏活动福利。同时账号交易也容易滋生诈骗,给玩家带来经济损失。这些负面影响会提高游戏的运营成本,其直接后果就是游戏提供商的经济利益受到巨大损失。因此黑产养号卖号行为需要被检测并制止。
黑产养号卖号行为的一个重要特征是在一台设备上登录多个账号。并且黑产为降本增效考虑,不会每次登录一个新账号就重新安装一次APP。换言之,黑产不仅仅是在一台设备上登录多个账号,更是在同一个APP实例(一个APP安装包被安装在一个设备上后就得到了一个APP实例,一个APP安装包被安装在多个不同设备上得到多个不同的APP实例)上登录了多个账号。因此基于设备指纹检测帐号登录注册频次异常就能够识别出黑产养号卖号行为。类似的,专利CN113191892A基于设备指纹通过检测注册频次过高和非常用设备登录等异常行为降低虚假注册及账户盗用的风险。专利CN108073945A和CN108905210A通过聚类算法得到游戏登录日志中的账号聚集程度,检测聚集程度高于聚集阈值的可疑聚类来识别黑产账号。
APP实例指纹是指采集APP安装信息计算得到的哈希值,用以区分APP的每次安装。其中安装信息是指能够唯一标识安装行为的信息,包括安装时生成的随机数、安装后APP文件在操作系统中的inode号、安装时间、APP版本号和APP文件哈希值等。同一个APP在不同终端设备上安装获得的APP实例指纹不同,同一个APP在同一个终端设备上多次安装获得的APP实例指纹不同,不同版本的APP在同一个终端设备上安装获得的APP实例指纹不同。可以看到APP实例指纹与设备指纹之间存在对应关系,一个设备指纹可以对应多个APP实例指纹,其现实意义在于一个设备上可以多次重新安装同一个APP。一个APP实例指纹只能对应一个设备指纹,其现实意义在于一次安装行为只能发生在一个设备上。设备指纹的作用是区分每个设备,APP实例指纹更细粒度区分每个APP实例。显然,在移动游戏场景下,APP实例指纹也可以被用来构建APP实例指纹黑名单,检测黑产养号卖号行为。
但是目前设备指纹技术面临着两个重要的挑战。其一,移动端操作系统Android和iOS的越来越重视隐私保护,在高版本中通过权限验证和返回值随机化等方式限制读取设备唯一字段。IMEI、网卡MAC地址和序列号都是设备唯一的,每个设备的IMEI、网卡MAC地址和序列号都不同,因此用来计算得到的设备指纹具有很高的区分度。但是Android 10(API级别29)开始对不可重置的设备唯一标识符(包括IMEI、网卡MAC地址和序列号)添加了限制,第三方APP(非系统APP)不能获取IMEI和序列号,而获取网卡MAC地址则会返回一个随机值。因此在Android高版本中,设备唯一标识符无法被获取,导致计算得到的设备指纹区分度降低。值得注意的是,在隐私保护的大趋势下,可以预见将来操作系统会进一步限制读取可以用作构建设备指纹的软硬件信息,给设备指纹技术带来挑战。其二,黑产可以通过伪造计算设备指纹所需的设备软硬件信息,从而计算得到一个新的设备指纹,绕过设备指纹黑名单的检测。显然,基于伪造信息计算得到的设备指纹是不可信的。目前黑产伪造设备软硬件信息大多是通过安装改机软件,刷入自定义操作系统劫持设备软硬件信息获取API的方式来实现,可以伪造包括IMEI、网卡MAC地址、CPU型号和操作系统信息等在内的设备软硬件信息。部分技术水平较高的黑产,在养号的时候就使用改机软件,每次登录账号前都会伪造设备软硬件信息,计算得到不可信的设备指纹,以此避免被判定为黑产设备进入设备指纹黑名单。只要黑产还有利可图,可以预见黑产会持续更新技术栈,对抗设备指纹。
综上所述,目前移动端设备指纹技术面临着区分度下降的问题,本发明利用APP实例指纹技术对移动端设备指纹技术作了改进。
【发明内容】
本发明的目的是,提供一种强化移动端设备指纹技术区分度,防止手游黑产登录的方法。
为实现上述目的,本发明采取的技术方案是一种基于APP实例指纹和设备指纹的手游登录验证方法,运行在一种基于APP实例指纹和设备指纹的手游登录验证系统上,所述手游登录验证系统包括若干移动终端和基于云服务器的验证中心,所述移动终端和验证中心通过通讯链路进行通信;所述移动终端上安装有手游移动APP,所述手游移动APP上运行有设备指纹SDK;所述验证中心包括指纹计算节点,存储有APP实例指纹到设备指纹一对一映射数据库的设备指纹可信验证节点,和存储有设备指纹黑名单数据库、APP实例指纹黑名单数据库及手游用户账户白名单数据库的指纹黑名单验证节点;包括以下步骤:
S1、设备指纹SDK在手游用户登录时收集移动终端上计算设备指纹需要的设备软硬件信息;
S2、设备指纹SDK在手游用户登录时收集手游移动APP上计算APP实例指纹需要的APP安装信息;
S3、设备指纹SDK将收集的设备软硬件信息和APP安装信息加密并随手游用户登录请求上传到验证中心;
S4、指纹计算节点根据上传的设备软硬件信息和APP安装信息计算设备指纹和APP实例指纹;
S5、设备指纹可信验证节点验证设备指纹是否与APP实例指纹一一对应,若否验证不通过、终止手游用户登录,若是执行步骤S6;
S6、指纹黑名单验证节点验证设备指纹在设备指纹黑名单中、APP实例指纹在APP实例指纹黑名单中、以及手游用户账户不在手游用户登录账户白名单中三个条件是否全满足,若否验证通过。
优选地,上述的一种基于APP实例指纹和设备指纹的手游登录验证方法,还包括以下步骤:
S7、若步骤S6三个条件全满足时,指纹黑名单验证节点下发验证码给手游用户进行二次验证,具体的:
S7a、设备指纹SDK上传人机验证码结果给指纹黑名单验证节点;
S7b、如果验证码验证通过,则指纹黑名单验证节点将手游用户账号加入手游用户账号白名单数据库;
S7c、如果验证码验证不通过,指纹黑名单验证节点终止手游用户登录。
优选地,步骤S1设备指纹SDK收集的设备软硬件信息包括设备硬件信息、操作系统信息和设备指纹SDK所在的宿主手游移动APP进程信息;步骤S2设备指纹SDK收集的APP安装信息包括APP安装包信息、APP安装时间、APP首次启动时间、操作系统给安装后的APP实例分配的UID、和APP安装时生成的随机数;步骤S3使用RSA算法加密;步骤S4选取设备软硬件信息中能够区分不同设备的字段组合,拼接成字符串并计算哈希即为设备指纹;步骤S4选取APP安装信息中能够区分不同APP实例的字段组合,拼接成字符串计算哈希即为APP实例指纹。
优选地,上述的一种基于APP实例指纹和设备指纹的手游登录验证方法,还包括以下步骤:
S8、设备指纹可信验证节点维护APP实例指纹到设备指纹一对一映射数据库,当APP安装包安装在移动终端上生成一个新的APP实例,并且安装在移动终端上的APP实例发起首次登录行为,由指纹计算节点将对应的APP实例指纹和设备指纹传给设备指纹可信验证节点后,设备指纹可信验证节点将对应APP实例指纹与设备指纹存入APP实例指纹到设备指纹一对一映射数据库;
S9、指纹黑名单验证节点维护设备指纹黑名单数据库,指纹黑名单验证节点定期统计前一个指纹黑名单验证周期内的手游用户登录数据,计算每个设备指纹对应设备登录过的手游账号数,如果登录过的手游账号数超过设备指纹黑名单阈值,则判定该设备指纹异常,加入设备指纹黑名单数据库;
S10、指纹黑名单验证节点维护APP实例指纹黑名单数据库,指纹黑名单验证节点定期统计前一个指纹黑名单验证周期内的手游用户登录数据,计算每个APP实例指纹对应设备登录过的手游账号数,如果登录过的手游账号数超过APP实例指纹黑名单阈值,则判定该APP实例指纹异常,加入APP实例指纹黑名单数据库;
S11、指纹黑名单验证节点维护手游用户账户白名单数据库,指纹黑名单验证节点通过步骤S7下发验证码给手游用户进行二次验证将误判为黑产的真实可信手游用户账号加入手游用户账户白名单数据库。
优选地,上述APP实例指纹到设备指纹一对一映射数据库是Redis数据库,所述Redis数据库设置TTL用于清理被卸载的APP实例或者长期不打开的APP实例对应的APP实例指纹到设备指纹一对一映射。
优选地,上述TTL根据LRU策略设置,每次新增或者查询某个APP实例指纹到设备指纹一对一映射键值对时,将该APP实例指纹到设备指纹一对一映射的TTL值设置为手游移动APP平均发版间隔。
优选地,所述设备指纹黑名单数据库中的设备指纹黑名单使用布隆过滤器存储;所述APP实例指纹黑名单数据库中的APP实例指纹黑名单使用布隆过滤器存储。
优选地,所述设备指纹黑名单阈值设置为月活跃账号数与月活跃设备数的比值;所述APP实例指纹黑名单阈值设置为月活跃账号数与月活跃APP实例数的比值;所述APP实例指纹黑名单阈值低于所述设备指纹黑名单阈值。
优选地,指纹黑名单验证节点定期更新手游用户账户白名单数据库中的手游用户账户白名单。
本发明的又一目的是,提供一种强化移动端设备指纹技术区分度,防止手游黑产登录的系统。
为实现上述又一目的,本发明采取的技术方案是一种基于APP实例指纹和设备指纹的手游登录验证系统,包括若干移动终端和基于云服务器的验证中心,所述移动终端和验证中心通过通讯链路进行通信;所述移动终端上安装有手游移动APP,所述手游移动APP上运行有设备指纹SDK;所述验证中心包括指纹计算节点,存储有APP实例指纹到设备指纹一对一映射数据库的设备指纹可信验证节点,和存储有设备指纹黑名单数据库、APP实例指纹黑名单数据库及手游用户账户白名单数据库的指纹黑名单验证节点;用于上述的一种基于APP实例指纹和设备指纹的手游登录验证方法。
本发明一种基于APP实例指纹和设备指纹的手游登录验证方法及系统有如下有益效果:针对现有移动游戏场景下,设备指纹技术存在区分度低的问题,其一,APP实例指纹可以验证设备指纹是否可信,也即设备指纹是否是基于黑产伪造的设备软硬件信息计算得到的,通过APP实例指纹和设备指纹之间的一对多关系判定设备指纹不可信;其二,APP实例指纹可以辅助设备指纹提高区分度,降低设备指纹黑名单的误判率,APP实例指纹相比于设备指纹区分粒度更细,设备指纹区分不同设备,APP实例指纹区分不同APP实例,构建APP实例指纹黑名单,当且仅当前登录行为的APP实例指纹和设备指纹都在黑名单中时,才判定为黑产养号卖号行为,这样,即使设备指纹黑名单因为区分度低发生了误判行为,APP实例指纹区分度高可以避免误判;其三,具体实施方式简单易行,在手游登录场景下识别登录行为是否是黑产发起的,如果是则终止当前登录行为。
【附图说明】
图1是一种基于APP实例指纹和设备指纹的手游登录验证系统架构示意图。
图2是一种基于APP实例指纹和设备指纹的手游登录验证方法步骤图。
【具体实施方式】
下面结合实施例并参照附图对本发明作进一步描述。
在本发明中,服务器是在网络上提供、管理网络资源的一个计算机或设备,终端可指各种类型的装置,包括(但不限于)无线电话、蜂窝式电话、膝上型计算机、多媒体无线装置、无线通信个人计算机(PC)卡、个人数字助理(PDA)、外部或内部调制解调器等。客户端设备,即终端可为任何经由无线信道和/或经由有线信道(例如,光纤或同轴电缆)与服务器通信的数据装置。终端可具有多种名称,例如移动台、移动装置、移动单元,移动电话、远程站、远程终端机、远程单元、用户装置、用户设备、手持式装置等。不同终端可并入一个系统中。终端可为移动的或固定的,且可分散遍及一个通信网络。
实施例
本实施例实现一种基于APP实例指纹和设备指纹的手游登录验证方法。
本实施例一种基于APP实例指纹和设备指纹的手游登录验证方法针对现有移动游戏场景下,设备指纹技术存在区分度低的问题。APP实例指纹可从两个方面强化设备指纹。其一,APP实例指纹可以验证设备指纹是否可信,也即设备指纹是否是基于黑产伪造的设备软硬件信息计算得到的。APP实例指纹与设备指纹之间存在一对一的映射关系,即一个APP实例指纹对应唯一一个设备指纹,也就是APP实例安装设备上的设备指纹。其现实意义在于一次安装行为只能发生在一个设备上。黑产如果在同一个APP实例上登录多个账号(背景技术中提到过,黑产为降本增效考虑,会在同一个APP实例上登录多个账号进行养号行为),并且在中途为逃避设备指纹黑名单检测而使用改机软件伪造设备软硬件信息导致计算得到多个不可信的设备指纹,那么一个APP实例指纹就会对应多个设备指纹。因此可以通过APP实例指纹和设备指纹之间的一对多关系判定设备指纹不可信。其二,APP实例指纹可以辅助设备指纹提高区分度,降低设备指纹黑名单的误判率。APP实例指纹相比于设备指纹区分粒度更细,设备指纹区分不同设备,APP实例指纹区分不同APP实例。构建APP实例指纹黑名单,当且仅当前登录行为的APP实例指纹和设备指纹都在黑名单中时,才判定为黑产养号卖号行为。这样,即使设备指纹黑名单因为区分度低发生了误判行为,APP实例指纹区分度高可以避免误判。例如设备指纹66b1132a0173910b01ee3a15ef4e69583bbf2f7f1e4462c99efbe1b9ab5bf808因为区分度低实际对应了10000个设备,通过分析登录频次被判定为黑产设备加入黑名单,显然这其中会有误判。假设这10000个设备近期运行过20000个APP实例,也就是计算得到了20000个APP实例指纹,分析登录频次发现其中只有1000个APP实例指纹被判定为黑产设备,其余19000个APP实例指纹是真实可信的。如果仅仅使用设备指纹黑名单,那么其中19000个APP实例及其登录过的账号就会被误判,而如果同时判断设备指纹和APP实例指纹,则不会出现这种情况。本实施例一种基于APP实例指纹和设备指纹的手游登录验证方法具体实施方式是在登录场景下识别登录行为是否是黑产发起的,如果是则终止当前登录行为。
图1是一种基于APP实例指纹和设备指纹的手游登录验证系统架构示意图。如附图1所示,本实施例一种基于APP实例指纹和设备指纹的手游登录验证方法基于如下系统架构:包括1)移动终端上接入APP的SDK(软件开发包),简称设备指纹SDK,用于收集计算设备指纹和APP实例指纹所需的设备软硬件信息和APP安装信息,并随登录请求上传至验证中心;2)由运行在云服务器上的指纹计算节点、设备指纹可信验证节点和指纹黑名单验证节点组成的验证中心,其中指纹计算节点根据设备指纹SDK上传的信息计算设备指纹和APP实例指纹,设备指纹可信验证节点验证设备指纹是否是基于黑产伪造的设备软硬件信息计算得到的,黑名单验证节点验证当前登录行为的设备指纹和APP实例指纹是否都在黑名单中。验证中心的目的在于验证当前登录行为是否是黑产发起的,如果验证通过则将登录请求转发至业务服务器,继续登录流程,如果验证不通过,则判定当前登录行为为黑产发起的,则终止登录流程。
图2是一种基于APP实例指纹和设备指纹的手游登录验证方法步骤图。如附图2所示,本实施例一种基于APP实例指纹和设备指纹的手游登录验证方法具体包括以下步骤。
S1.设备指纹SDK在登录时收集计算设备指纹需要的设备软硬件信息。
设备指纹SDK收集的设备软硬件信息包括:
S1a.设备硬件信息,包括但不限于设备品牌、设备型号、屏幕尺寸、屏幕亮度、CPU信息(/proc/cpuinfo)、设备ROM(Read Only Memory)大小、设备RAM(Random AccessMemory)大小;
S1b.操作系统信息,包括但不限于安卓系统通过getprop命令获得的系统全局属性键值对(其中包含编译时间、编译指纹、编译用户、系统版本号,补丁版本号等)、app_process文件(Android系统中启动APP的可执行文件)最近修改时间和体积、framework.jar文件最近修改时间和体积;
S1c.设备指纹SDK所在的宿主APP进程信息,包括但不限于APP进程运行时加载的库文件(/proc/<pid>/maps)、进程状态(/proc/<pid>/status)、进程的启动参数(/proc/<pid>/cmdline)、进程的环境变量(/proc/<pid>/environ);
S2.设备指纹SDK在登录时收集计算APP实例指纹需要的APP安装信息。
设备指纹SDK收集的APP安装信息包括:
S2a.APP安装包信息,包括但不限于APP签名(APK文件的x509证书)、APP安装包中的动态链接库列表及其体积、APP安装包在文件系统中的inode号和APP安装包最近修改时间;
S2b.APP安装时间、APP首次启动时间、操作系统给安装后的APP实例分配的UID、安装时生成的随机数;
文件inode(索引节点)号表示文件在文件系统中的位置,只要不删除文件,则其inode号不会发生变化。APP安装后,只要不卸载重新安装,APP安装包在文件系统中的inode号就不会发生变化,即使重新打开APP或者重启系统也不会导致inode号改变。
UID是在APP安装时由操作系统分配的int类型的ID,并且在卸载前都不会改变。操作系统会按照安装顺序给APP实例分配UID,越早安装的APP实例分配的UID越小。同一个操作系统中,多个签名相同的APP实例可以使用sharedUserId方式共享同一个UID,除此之外,不同APP实例的UID不同。
APP安装时间、APP首次启动时间、安装时生成的随机数、APP安装包在文件系统中的inode号和操作系统给安装后的APP实例分配的UID对于同一个APP实例都是不变的,并且在不同APP实例间具有高区分度。考虑基于上述信息计算APP实例指纹,当且仅当两个不同的APP实例同时安装、同时启动、安装时生成的随机数相同、安装在对应文件系统中的相同位置并被分配相同的UID,APP实例指纹才相同。显然,APP实例指纹碰撞的概率太低,具有高区分度。
S3.设备指纹SDK将收集的设备软硬件信息和APP安装信息加密并随登录请求上传到验证中心。
RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。为防止黑产通过抓包等方式获取设备指纹SDK收集的信息种类,并进行针对性数据伪造,设备指纹SDK使用RSA算法加密收集到的信息,并将密文作为登录请求的参数上传到验证中心。APP签名算法也是RSA算法,公钥存储在APP安装包内,私钥由APP开发者存储在打包服务器(一台专门用于编译APP源代码生成安装包的服务器)。设备指纹SDK加密收集到的信息时复用APP签名算法的公钥,在加密时获取存储在APP安装包内的公钥进行加密。验证中心收到密文后访问APP开发者存储在打包服务器的私钥解密。
S4.指纹计算节点根据上传的设备软硬件信息和APP安装信息计算设备指纹和APP实例指纹。
指纹计算节点首先使用私钥解密得到设备软硬件信息和APP安装信息原文,并使用设备指纹算法和APP实例指纹算法计算得到设备指纹和APP实例指纹。设备指纹算法选取设备软硬件信息中能够区分不同设备的字段组合,拼接成字符串并计算哈希即为设备指纹。类似的,APP实例指纹算法选取APP安装信息中能够区分不同APP实例的字段组合,拼接成字符串计算哈希即为APP实例指纹。本实施例旨在利用区分度较高的APP实例指纹强化已有的设备指纹,提高基于设备指纹识别黑产养号卖号行为的准确度,因此不关注设备指纹算法具体实现。
优选地,计算APP实例指纹可以选取APP安装时间、APP首次启动时间、APP最近更新时间、安装时生成的随机数和操作系统给安装后的APP实例分配的UID拼接成字符串并使用SHA-256算法计算得到哈希值即为APP实例指纹。背景技术中论证过这样得到的APP实例指纹具有高区分度。这里给出的只是APP实例指纹的一种实现方式,APP安装信息中其他字段例如APP安装包在文件系统中的inode号等也可以加入算法进一步提高区分度。
S8.设备指纹可信验证节点维护APP实例指纹到设备指纹的一对一映射。
Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。设备指纹可信验证节点使用Redis存储APP实例指纹到设备指纹的一对一映射。APP实例指纹与其APP实例安装设备上的设备指纹一一对应。当APP安装包安装在设备上生成一个新的APP实例,并且APP实例发起首次登录行为,并由指纹计算节点将对应的APP实例指纹和设备指纹传给设备指纹可信验证节点后,设备指纹可信验证节点将对应APP实例指纹与设备指纹存入Redis,并设置TTL(TTL是指Redis数据项的过期时间,当TTL小于0时,Redis会删除对应数据项,释放内存)。
优选地,当设备指纹可信验证节点接收到步骤S4计算的当前登录行为的APP实例指纹和设备指纹时,设备指纹可信验证节点首先在Redis中查询是否存在以当前APP实例指纹为key的数据项,如果存在则说明当前登录行为不是APP实例发起的首次登录行为,当前APP实例指纹已经有了一对一的设备指纹。如果不存在,则说明当前登录行为是APP实例的首次登录行为,则认为当前设备指纹与当前APP实例指纹一一对应,存入Redis。
优选地,TTL的设置是为了清理僵尸APP实例(被卸载的APP实例或者长期不打开的APP实例),释放内存,防止Redis数据库无限增长,占用过多内存,也拖慢查询速度。TTL的设置参考LRU(Last Recent Update)策略,每次新增或者查询某个键值对时,将其TTL值设置为APP平均发版间隔,例如APP每周更新一次版本,TTL就可以设置为一周。
S5.设备指纹可信验证节点验证设备指纹是否与APP实例指纹一一对应。
设备指纹可信验证节点收到待验证的APP实例指纹和设备指纹后,在Redis中查询APP实例指纹一一对应的设备指纹并与待验证的设备指纹比较,如果相同,则说明一一对应,验证通过。
S5a.如果不同,则说明APP实例指纹与设备指纹产生了一对多的对应关系,即待验证设备指纹不可信,验证不通过,终止当前登录流程。
S9.指纹黑名单验证节点维护设备指纹黑名单。
指纹黑名单验证节点维护了设备指纹黑名单,并使用布隆过滤器存储。布隆过滤器是一个长度为m比特的固定大小的比特数组,提供集合的功能,可以插入任意长度的数据并快速查询。使用布隆过滤器存储黑名单的优点在于占用空间小以及插入和查询的时间开销小。验证节点定期构建新的布隆过滤器存储黑名单,统计前一段时间内的用户登录数据,计算每个设备指纹对应设备登录过的账号数,如果登录过的账号数超过一定阈值,则判定该设备指纹异常,加入黑名单。
优选地,指纹黑名单验证节点每天凌晨2点构建新的布隆过滤器并统计最近15天的用户登录数据,计算每个设备指纹对应设备登录过的账号数,如果登录过的账号数超过一定阈值例如1000,则判定该设备指纹异常,插入黑名单。
优选地,阈值可以设置为月活跃账号数与月活跃设备数的比值,并根据检测结果适当调整。考虑到正常用户也可能拥有多个账号,阈值设置过低可能会误杀正常用户。显然,阈值设置越高,识别黑产的精准度越高,误判率越低,但是没有被识别出来的黑产也越多;阈值设置越低,没有被识别出来的黑产越少,但是精准度下降,误判率越高。
S10.指纹黑名单验证节点维护APP实例指纹黑名单。
指纹黑名单验证节点维护了APP实例指纹黑名单,并使用布隆过滤器存储。APP实例指纹黑名单生成过程与设备指纹黑名单类似,统计前一段时间内的用户登录数据,计算每个APP实例指纹对应设备登录过的账号数,如果登录过的账号数超过一定阈值,则判定该APP实例指纹异常,加入黑名单。
优选地,APP实例指纹黑名单基于的数据应与设备指纹黑名单基于的数据相同,例如设备指纹黑名单基于最近15天的登录数据,那么APP实例指纹黑名单也应该基于最近15天的登录数据。
优选地,APP实例指纹被判定为异常的登录账号数阈值需要低于设备指纹的阈值。例如设备指纹15天登录超过1000个账号被判定为异常,APP实例指纹15天内登录超过500个账号就可以被判定为异常。这是因为可能15天内设备可能重新安装了APP,导致APP实例指纹发生改变。
S11.指纹黑名单验证节点维护账号白名单。
指纹黑名单验证节点维护了账号白名单,并使用布隆过滤器存储。账号白名单存储了被误判为黑产的真实可信账号。设备指纹黑名单和APP实例指纹黑名单都可能存在误判的情况,其一,设备指纹区分度低带来的误判。其二,确实有部分用户拥有大量账号,触发阈值。在移动游戏场景下,确实存在部分玩家拥有大量账号,每天在自己的设备上换号打游戏,触发设备指纹黑名单和APP实例指纹黑名单判定条件。因此当S6判定当前登录行为的设备指纹和APP实例指纹都在黑名单中,即当前登录行为是由黑产发起时,直接终止登录有可能会误判真实可信用户,因此需要二次验证。步骤S7会下发人机验证码给客户端二次验证。如果验证通过,则说明当前登陆的用户确实是真实可信用户,将账号加入白名单,下次登录时不需要二次验证,直接通过。
优选地,指纹黑名单验证节点定期更新白名单。换言之,白名单是有时效性的,超过一定时间,指纹黑名单验证节点会将账号从白名单中移除,以防黑产通过作弊手段越过二次验证后就永久避开检测。
S6.指纹黑名单验证节点验证设备指纹和APP实例指纹是否同时在设备指纹黑名单和APP实例指纹黑名单中。
指纹黑名单验证节点分别验证1)设备指纹在设备指纹黑名单中,2)APP实例指纹在APP实例指纹黑名单中,3)当前登录的账号不在S9维护的账号白名单中。当且仅当以上三个条件都满足时,判定当前登录行为大概率为黑产发起的。上述三个条件的判断方式都是计算数据(设备指纹/APP实例指纹/账号)是否在对应的布隆过滤器中,具体方式为对数据计算多次哈希得到数据在布隆过滤器(比特数组)中的位置并判断对应位置的比特是否全为1,如果全为1,则判定比特数组存在于布隆过滤器中。相较于仅仅使用设备指纹黑名单的方式,以上黑产判定方式可以降低误判率。
S7.如果同时在设备指纹黑名单和APP实例指纹黑名单中,则下发验证码二次验证。
当判定当前登录行为的设备指纹和APP实例指纹都在黑名单中且当前登录账号不在账号白名单中,即当前登录行为是由黑产发起时,为防止误判,指纹黑名单验证节点下发人机验证码进行二次验证。
S7a.SDK上传人机验证码结果给指纹黑名单验证节点;
S7b.如果验证码验证通过,则认为当前用户是真实可信用户,将账号加入S9维护的账号白名单;
S7c.如果验证不通过,则进一步证实当前用户不可信,是黑产用户,需要终止登录。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AcessMemory,RAM)等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。
Claims (10)
1.一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于:运行在一种基于APP实例指纹和设备指纹的手游登录验证系统上,所述手游登录验证系统包括若干移动终端和基于云服务器的验证中心,所述移动终端和验证中心通过通讯链路进行通信;所述移动终端上安装有手游移动APP,所述手游移动APP上运行有设备指纹SDK;所述验证中心包括指纹计算节点,存储有APP实例指纹到设备指纹一对一映射数据库的设备指纹可信验证节点,和存储有设备指纹黑名单数据库、APP实例指纹黑名单数据库及手游用户账户白名单数据库的指纹黑名单验证节点;包括以下步骤:
S1、设备指纹SDK在手游用户登录时收集移动终端上计算设备指纹需要的设备软硬件信息;
S2、设备指纹SDK在手游用户登录时收集手游移动APP上计算APP实例指纹需要的APP安装信息;
S3、设备指纹SDK将收集的设备软硬件信息和APP安装信息加密并随手游用户登录请求上传到验证中心;
S4、指纹计算节点根据上传的设备软硬件信息和APP安装信息计算设备指纹和APP实例指纹;
S5、设备指纹可信验证节点验证设备指纹是否与APP实例指纹一一对应,若否验证不通过、终止手游用户登录,若是执行步骤S6;
S6、指纹黑名单验证节点验证设备指纹在设备指纹黑名单中、APP实例指纹在APP实例指纹黑名单中、以及手游用户账户不在手游用户登录账户白名单中三个条件是否全满足,若否验证通过。
2.根据权利要求1所述的一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于还包括以下步骤:
S7、若步骤S6三个条件全满足时,指纹黑名单验证节点下发验证码给手游用户进行二次验证,具体的:
S7a、设备指纹SDK上传人机验证码结果给指纹黑名单验证节点;
S7b、如果验证码验证通过,则指纹黑名单验证节点将手游用户账号加入手游用户账号白名单数据库;
S7c、如果验证码验证不通过,指纹黑名单验证节点终止手游用户登录。
3.根据权利要求2所述的一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于:步骤S1设备指纹SDK收集的设备软硬件信息包括设备硬件信息、操作系统信息和设备指纹SDK所在的宿主手游移动APP进程信息;步骤S2设备指纹SDK收集的APP安装信息包括APP安装包信息、APP安装时间、APP首次启动时间、操作系统给安装后的APP实例分配的UID、和APP安装时生成的随机数;步骤S3使用RSA算法加密;步骤S4选取设备软硬件信息中能够区分不同设备的字段组合,拼接成字符串并计算哈希即为设备指纹;步骤S4选取APP安装信息中能够区分不同APP实例的字段组合,拼接成字符串计算哈希即为APP实例指纹。
4.根据权利要求2所述的一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于还包括以下步骤:
S8、设备指纹可信验证节点维护APP实例指纹到设备指纹一对一映射数据库,当APP安装包安装在移动终端上生成一个新的APP实例,并且安装在移动终端上的APP实例发起首次登录行为,由指纹计算节点将对应的APP实例指纹和设备指纹传给设备指纹可信验证节点后,设备指纹可信验证节点将对应APP实例指纹与设备指纹存入APP实例指纹到设备指纹一对一映射数据库;
S9、指纹黑名单验证节点维护设备指纹黑名单数据库,指纹黑名单验证节点定期统计前一个指纹黑名单验证周期内的手游用户登录数据,计算每个设备指纹对应设备登录过的手游账号数,如果登录过的手游账号数超过设备指纹黑名单阈值,则判定该设备指纹异常,加入设备指纹黑名单数据库;
S10、指纹黑名单验证节点维护APP实例指纹黑名单数据库,指纹黑名单验证节点定期统计前一个指纹黑名单验证周期内的手游用户登录数据,计算每个APP实例指纹对应设备登录过的手游账号数,如果登录过的手游账号数超过APP实例指纹黑名单阈值,则判定该APP实例指纹异常,加入APP实例指纹黑名单数据库;
S11、指纹黑名单验证节点维护手游用户账户白名单数据库,指纹黑名单验证节点通过步骤S7下发验证码给手游用户进行二次验证将误判为黑产的真实可信手游用户账号加入手游用户账户白名单数据库。
5.根据权利要求4所述的一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于:所述APP实例指纹到设备指纹一对一映射数据库是Redis数据库,所述Redis数据库设置TTL用于清理被卸载的APP实例或者长期不打开的APP实例对应的APP实例指纹到设备指纹一对一映射。
6.根据权利要求5所述的一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于:所述TTL根据LRU策略设置,每次新增或者查询某个APP实例指纹到设备指纹一对一映射键值对时,将该APP实例指纹到设备指纹一对一映射的TTL值设置为手游移动APP平均发版间隔。
7.根据权利要求4所述的一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于:所述设备指纹黑名单数据库中的设备指纹黑名单使用布隆过滤器存储;所述APP实例指纹黑名单数据库中的APP实例指纹黑名单使用布隆过滤器存储。
8.根据权利要求7所述的一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于:所述设备指纹黑名单阈值设置为月活跃账号数与月活跃设备数的比值;所述APP实例指纹黑名单阈值设置为月活跃账号数与月活跃APP实例数的比值;所述APP实例指纹黑名单阈值低于所述设备指纹黑名单阈值。
9.根据权利要求4所述的一种基于APP实例指纹和设备指纹的手游登录验证方法,其特征在于:指纹黑名单验证节点定期更新手游用户账户白名单数据库中的手游用户账户白名单。
10.一种基于APP实例指纹和设备指纹的手游登录验证系统,其特征在于:包括若干移动终端和基于云服务器的验证中心,所述移动终端和验证中心通过通讯链路进行通信;所述移动终端上安装有手游移动APP,所述手游移动APP上运行有设备指纹SDK;所述验证中心包括指纹计算节点,存储有APP实例指纹到设备指纹一对一映射数据库的设备指纹可信验证节点,和存储有设备指纹黑名单数据库、APP实例指纹黑名单数据库及手游用户账户白名单数据库的指纹黑名单验证节点;用于执行权利要求1至权利要求9任一权利要求所述的一种基于APP实例指纹和设备指纹的手游登录验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111240997.4A CN114006738B (zh) | 2021-10-25 | 2021-10-25 | 一种基于app实例指纹和设备指纹的手游登录验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111240997.4A CN114006738B (zh) | 2021-10-25 | 2021-10-25 | 一种基于app实例指纹和设备指纹的手游登录验证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114006738A true CN114006738A (zh) | 2022-02-01 |
CN114006738B CN114006738B (zh) | 2023-02-10 |
Family
ID=79923758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111240997.4A Active CN114006738B (zh) | 2021-10-25 | 2021-10-25 | 一种基于app实例指纹和设备指纹的手游登录验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114006738B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114757599A (zh) * | 2022-06-15 | 2022-07-15 | 武汉极意网络科技有限公司 | 一种基于额外成本的流量质量的度量方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517217A (zh) * | 2017-09-13 | 2017-12-26 | 北京理工大学 | 一种基于指纹识别的多因子无线密钥填充系统 |
CN108551443A (zh) * | 2018-03-30 | 2018-09-18 | 平安科技(深圳)有限公司 | 一种应用登录方法、装置、终端设备及存储介质 |
CN109862035A (zh) * | 2019-03-18 | 2019-06-07 | 北京智明星通科技股份有限公司 | 游戏app账号验证方法及设备 |
CN109876451A (zh) * | 2019-03-18 | 2019-06-14 | 北京智明星通科技股份有限公司 | 游戏app的登录方法及设备 |
CN111353138A (zh) * | 2018-12-24 | 2020-06-30 | 中移(杭州)信息技术有限公司 | 一种异常用户识别的方法、装置、电子设备及存储介质 |
CN112988325A (zh) * | 2021-02-01 | 2021-06-18 | 中国科学院信息工程研究所 | 一种基于用户信息的安卓模拟器识别方法及系统 |
-
2021
- 2021-10-25 CN CN202111240997.4A patent/CN114006738B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517217A (zh) * | 2017-09-13 | 2017-12-26 | 北京理工大学 | 一种基于指纹识别的多因子无线密钥填充系统 |
CN108551443A (zh) * | 2018-03-30 | 2018-09-18 | 平安科技(深圳)有限公司 | 一种应用登录方法、装置、终端设备及存储介质 |
WO2019184135A1 (zh) * | 2018-03-30 | 2019-10-03 | 平安科技(深圳)有限公司 | 一种应用登录方法、装置、计算机设备及存储介质 |
CN113452719A (zh) * | 2018-03-30 | 2021-09-28 | 平安科技(深圳)有限公司 | 一种应用登录方法、装置、终端设备及存储介质 |
CN111353138A (zh) * | 2018-12-24 | 2020-06-30 | 中移(杭州)信息技术有限公司 | 一种异常用户识别的方法、装置、电子设备及存储介质 |
CN109862035A (zh) * | 2019-03-18 | 2019-06-07 | 北京智明星通科技股份有限公司 | 游戏app账号验证方法及设备 |
CN109876451A (zh) * | 2019-03-18 | 2019-06-14 | 北京智明星通科技股份有限公司 | 游戏app的登录方法及设备 |
CN112988325A (zh) * | 2021-02-01 | 2021-06-18 | 中国科学院信息工程研究所 | 一种基于用户信息的安卓模拟器识别方法及系统 |
Non-Patent Citations (1)
Title |
---|
李志伟等: "基于硬件设备内部指纹的软件锁功能的实现", 《微电子学与计算机》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114757599A (zh) * | 2022-06-15 | 2022-07-15 | 武汉极意网络科技有限公司 | 一种基于额外成本的流量质量的度量方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114006738B (zh) | 2023-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111082940A (zh) | 物联网设备控制方法、装置及计算设备、存储介质 | |
EP3750275B1 (en) | Method and apparatus for identity authentication, server and computer readable medium | |
CN112182519A (zh) | 一种计算机存储系统安全访问方法及访问系统 | |
CN104184713A (zh) | 终端识别方法、机器识别码注册方法及相应系统、设备 | |
CN105610856A (zh) | 一种基于多重特征识别的应用层DDoS攻击防御系统 | |
CN103368987A (zh) | 云服务器、应用程序的审核认证及管理系统和方法 | |
CN108667828A (zh) | 一种风险控制方法、装置及存储介质 | |
CN111898124B (zh) | 进程访问控制方法和装置、存储介质及电子设备 | |
CN115550069B (zh) | 一种电动汽车智能充电系统及其安全防护方法 | |
KR20160110276A (ko) | 다이나믹 보안모듈 생성방법 및 생성장치 | |
CN111353138A (zh) | 一种异常用户识别的方法、装置、电子设备及存储介质 | |
CN110740140A (zh) | 一种基于云平台的网络信息安全监管系统 | |
CN112512046B (zh) | 一种Android应用程序短信验证码认证过程安全性检测方法 | |
CN114006738B (zh) | 一种基于app实例指纹和设备指纹的手游登录验证方法及系统 | |
CN111797400B (zh) | 一种车联网恶意应用动态检测方法及装置 | |
CN111585995B (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN114785567A (zh) | 一种流量识别方法、装置、设备及介质 | |
KR101334771B1 (ko) | 고유식별자 기반 인증 관제 시스템 및 방법 | |
CN112468446B (zh) | 一种保护用户隐私的移动运行环境安全检测系统 | |
CN117744094A (zh) | 一种可信执行环境的安全验证方法及系统 | |
CN111585978A (zh) | 一种拦截虚假请求的方法、客户端、服务端及系统 | |
US10580004B2 (en) | System and method of identifying new devices during a user's interaction with banking services | |
JP6890559B2 (ja) | アクセス分析システム及びアクセス分析方法 | |
CN112765588B (zh) | 一种身份识别方法、装置、电子设备及存储介质 | |
CN107846391B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |