CN112468446B - 一种保护用户隐私的移动运行环境安全检测系统 - Google Patents

一种保护用户隐私的移动运行环境安全检测系统 Download PDF

Info

Publication number
CN112468446B
CN112468446B CN202011201805.4A CN202011201805A CN112468446B CN 112468446 B CN112468446 B CN 112468446B CN 202011201805 A CN202011201805 A CN 202011201805A CN 112468446 B CN112468446 B CN 112468446B
Authority
CN
China
Prior art keywords
mobile
verification
token
bloom filter
node
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.)
Active
Application number
CN202011201805.4A
Other languages
English (en)
Other versions
CN112468446A (zh
Inventor
夏鸣远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Tuotang Mdt Infotech Ltd
Original Assignee
Shanghai Tuotang Mdt Infotech Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Tuotang Mdt Infotech Ltd filed Critical Shanghai Tuotang Mdt Infotech Ltd
Priority to CN202011201805.4A priority Critical patent/CN112468446B/zh
Publication of CN112468446A publication Critical patent/CN112468446A/zh
Application granted granted Critical
Publication of CN112468446B publication Critical patent/CN112468446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及一种保护用户隐私的移动运行环境安全检测系统,上述安全检测系统进行移动运行环境安全检测时执行以下步骤:S1、验证代理SDK收集移动App运行环境数据;S2、验证代理SDK将收集的移动App运行环境数据编码成字符串插入布隆过滤器;S3、验证代理SDK发送插入字符串后的布隆过滤器数据给验证节点;S4、验证节点验证正确的字符串是否存在于布隆过滤器中;S5、如果字符串存在于布隆过滤器中,验证节点回复token给验证代理SDK;S6、移动App发送token给业务节点进行业务请求;S7、业务节点向验证节点查询token是否有效;S8、token有效的情况下,业务节点响应移动App继续完成业务请求。有益效果是保护用户隐私的情况下在服务端进行可靠的客户端App运行环境安全验证。

Description

一种保护用户隐私的移动运行环境安全检测系统
【技术领域】
本发明涉及互联网技术领域,具体涉及一种保护用户隐私的移动运行环境安全检测系统。
【背景技术】
随着手机等移动化设备的普及,广大移动应用软件(App)开发商需要验证App运行环境的安全性,例如检测App是否被篡改、用户设备上是否存在已知的信息盗取软件、游戏外挂、破解软件,设备硬件是否被劫持等,用来保障用户和App的合法权益。验证算法所需要的用户设备信息包含用户隐私,例如用户设备上安装的其他App信息等。
目前,运行环境安全检测的通用流程是首先在App内收集设备的相关数据,然后执行验证逻辑判断是否存在风险。后者验证过程分为客户端方案和服务端方案两种技术方案,客户端方案将验证规则数据库以及验证代码逻辑直接包含在App内部,收集完成后直接在App端执行验证;服务端方案则由App上传用户设备信息到服务端(云端)执行具体逻辑。
现有客户端App运行环境的安全检测方案主要包括App软件加固(CN109960509A、CN107766728A)、客户端用户生物特征验证(CN105205370B)等。对于客户端方案,由于攻击者可以直接逆向工程App代码破解验证逻辑,因此检测的可靠性较差。此外,客户端方案所需要的检测规则数据库需要嵌入App包,会导致App包大小膨胀、规则数据库更新困难、规则数据库容易被攻破等问题。
现有服务端App运行环境的安全检测方案也被部分App软件加固(CN107977553A)采用。然后由于服务端方案需要上传的信息普遍含有用户隐私信息从而有隐私风险,因此目前服务端方案只能上传与用户隐私无关的信息(例如App包的签名等),检测效果不理想。
以下是本发明涉及的相关技术术语。布隆过滤器(Bloom Filter)是1970年由布隆提出的;它实际上是一个很长的二进制向量和一系列随机映射函数;布隆过滤器可以用于检索一个元素是否在一个集合中;它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。Token(计算机术语)在计算机身份认证中是令牌(临时)的意思,一般作为邀请、登录系统使用;Token,令牌,代表执行某些操作的权利的对象;访问令牌(Access token)表示访问控制操作主体的系统对象。Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件;它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。Redis内置了复制(replication),LUA脚本(Lua scripting),LRU驱动事件(LRUeviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)。
本发明利用上述现有技术对移动运行环境安全检测方法和系统作了改进。
【发明内容】
本发明的目的是,提供一种保护用户隐私的情况下在服务端进行可靠的客户端App运行环境安全验证的系统。
为实现上述目的,本发明采取的技术方案是一种保护用户隐私的移动运行环境安全检测系统,上述安全检测系统包括若干移动终端、若干数据中心,上述移动终端和数据中心通过通讯链路进行通讯;上述数据中心包括业务节点和验证结点,上述移动终端上包括若干移动App,上述移动终端上运行接入移动App的验证代理SDK程序模块,上述验证代理SDK程序模块构建有布隆过滤器,上述移动App向业务节点请求业务,上述验证代理SDK程序模块用于收集移动App运行环境信息并与验证结点通讯验证安全性;上述安全检测系统进行移动运行环境安全检测时执行以下步骤:
S1、验证代理SDK收集移动App运行环境数据;
S2、验证代理SDK将收集的移动App运行环境数据编码成字符串插入布
隆过滤器;
S3、验证代理SDK发送插入字符串后的布隆过滤器数据给验证节点;
S4、验证节点验证正确的字符串是否存在于布隆过滤器中;
S5、如果字符串存在于布隆过滤器中,验证节点回复token给验证代理SDK;
S6、移动App发送token给业务节点进行业务请求;
S7、业务节点向验证节点查询token是否有效;
S8、token有效的情况下,业务节点响应移动App继续完成业务请求。
优选地,上述步骤S1收集的移动App运行环境数据包括移动App文件的对应信息,包括但是不限于移动App包自身的包名,移动App包的签名数据,移动App自身数据文件/代码文件的大小,移动App上次修改时间,移动App的SHA1校验值;上述步骤S4验证节点利用官方发布的移动App包文件的对应信息验证正确的字符串是否存在于布隆过滤器中。
优选地,上述的一种保护用户隐私的移动运行环境安全检测系统,上述步骤S1收集的移动App运行环境数据包括移动终端上安装或者运行的其他App文件的对应信息;上述步骤S4验证节点利用黑名单App数据库验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S1收集的移动App运行环境数据包括当前进程的运行文件,包括但是不限于当前进程的运行状态,当前进程的启动参数,当前进程空间中加载的动态链接库地址列表;上述步骤S4验证节点利用大量样本数据统计构造成的移动终端机型真实数据数据库验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S1收集的移动App运行环境数据包括移动终端设备操作系统信息,包括但不限于当前系统的CPU信息,内存信息,系统全局属性键值对;上述步骤S4验证节点利用大量样本数据统计构造成的设备机型的真实CPU和内存硬件信息数据库验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S1收集的移动App运行环境数据包括用户识别信息,包括但不限于用户登录后业务节点传回的用于唯一标识一个用户的用户id;上述步骤S4验证节点利用提取的用户的uid信息验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S1收集的移动App运行环境数据包括随机性数据,包括但不限于系统时间、随机数;上述步骤S4验证节点利用服务器时间验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S5回复包括token有效期,上述验证代理SDK将token、token有效期、token对应的布隆过滤器长度m保存;上述token有效期届满前验证代理SDK向验证节点发起token续期请求,验证代理SDK通过步骤S1以及S2重新产生一个长度为m+dm的布隆过滤器并发送到验证结点进行验证,其中dm为正整数或者负整数;验证节点首先验证该用户的token是否存在,然后验证新的布隆过滤器长度是否与token上次验证时的长度不同,最后按照步骤S4进行常规的移动运行环境安全验证;验证结点在所有验证均通过的情况下为该token增加随机长度的有效期,并返回新的token有效期给验证代理SDK。这样设计保证移动App需要按照验证结点给定的有效期反复进行移动App运行环境的检测,保证了移动App长期的安全;同时要求每次“token续期请求”提交的布隆过滤器长度与之前的不同,可以有效降低客户端的重放攻击的可能性。
优选地,上述验证结点允许一个用户同时拥有若干个有效token,用于支持移动App在多个不同移动终端设备同时登录使用的情况;移动App因移动终端设备上数据清除、移动App重新安装完全丢失存储的token信息时,验证代理SDK通过步骤S1以及S2获取token;验证结点在执行步骤S4时,如果该用户已有的有效token数量超量,则会额外要求验证代理SDK向用户索要强身份验证。优选地,上述强身份验证是索要登录密码,或者手机短信验证码。这样设计机制保证了单个用户可以有多个移动终端设备同时使用移动App,同时防止出现token数量爆炸的非正常攻击情况。
优选地,验证结点用键值对内存存储方案保存所有用户的有效token。优选地,上述键值对是Redis键值对。这样设计保证业务节点服务器能高吞吐地验证token是否合法。
本发明有如下有益效果:客户端App通过特殊方式对含有用户隐私的明文信息进行编码,将编码后的数据结构上传到服务端;服务端获得编码后的数据结构后,可以在不需要明文信息的情况下进行环境安全检测算法,从而整体达到在保护用户隐私的情况下进行可靠的服务端App运行环境安全验证。
【附图说明】
图1是一种保护用户隐私的移动运行环境安全检测系统架构示意图。
图2是一种保护用户隐私的移动运行环境安全检测系统进行移动运行环境安全检测步骤图。
图3是一种保护用户隐私的移动运行环境安全检测系统实施例系统组成与工作流程图。
【具体实施方式】
下面结合实施例并参照附图对本发明作进一步描述。
在本发明中,服务器是在网络上提供、管理网络资源的一个计算机或设备,终端可指各种类型的装置,包括(但不限于)无线电话、蜂窝式电话、膝上型计算机、多媒体无线装置、无线通信个人计算机(PC)卡、个人数字助理(PDA)、外部或内部调制解调器等。客户端设备,即终端可为任何经由无线信道和/或经由有线信道(例如,光纤或同轴电缆)与服务器通信的数据装置。终端可具有多种名称,例如移动台、移动装置、移动单元,移动电话、远程站、远程终端机、远程单元、用户装置、用户设备、手持式装置等。不同终端可并入一个系统中。终端可为移动的或固定的,且可分散遍及一个通信网络。
实施例1
本实施例实现一种保护用户隐私的移动运行环境安全检测系统。
附图1是一种保护用户隐私的移动运行环境安全检测系统架构示意图。如附图1所示,本实施例一种保护用户隐私的移动运行环境安全检测系统,上述安全检测系统包括若干移动终端、若干数据中心,上述移动终端和数据中心通过通讯链路进行通讯;上述数据中心包括业务节点和验证结点,上述移动终端上包括若干移动App,上述移动终端上运行接入移动App的验证代理SDK程序模块,上述验证代理SDK程序模块构建有布隆过滤器,上述移动App向业务节点请求业务,上述验证代理SDK程序模块用于收集移动App运行环境信息并与验证结点通讯验证安全性。
附图2是一种保护用户隐私的移动运行环境安全检测系统进行移动运行环境安全检测步骤图。如附图2所示,本实施例一种保护用户隐私的移动运行环境安全检测系统进行移动运行环境安全检测时执行以下步骤:
S1、验证代理SDK收集移动App运行环境数据;
S2、验证代理SDK将收集的移动App运行环境数据编码成字符串插入布
隆过滤器;
S3、验证代理SDK发送插入字符串后的布隆过滤器数据给验证节点;
S4、验证节点验证正确的字符串是否存在于布隆过滤器中;
S5、如果字符串存在于布隆过滤器中,验证节点回复token给验证代理SDK;
S6、移动App发送token给业务节点进行业务请求;
S7、业务节点向验证节点查询token是否有效;
S8、token有效的情况下,业务节点响应移动App继续完成业务请求。
优选地,上述步骤S1收集的移动App运行环境数据包括移动App文件的对应信息,包括但是不限于移动App包自身的包名,移动App包的签名数据,移动App自身数据文件/代码文件的大小,移动App上次修改时间,移动App的SHA1校验值;上述步骤S4验证节点利用官方发布的移动App包文件的对应信息验证正确的字符串是否存在于布隆过滤器中。
优选地,上述的一种保护用户隐私的移动运行环境安全检测系统,上述步骤S1收集的移动App运行环境数据包括移动终端上安装或者运行的其他App文件的对应信息;上述步骤S4验证节点利用黑名单App数据库验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S1收集的移动App运行环境数据包括当前进程的运行文件,包括但是不限于当前进程的运行状态,当前进程的启动参数,当前进程空间中加载的动态链接库地址列表;上述步骤S4验证节点利用大量样本数据统计构造成的移动终端机型真实数据数据库验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S1收集的移动App运行环境数据包括移动终端设备操作系统信息,包括但不限于当前系统的CPU信息,内存信息,系统全局属性键值对;上述步骤S4验证节点利用大量样本数据统计构造成的设备机型的真实CPU和内存硬件信息数据库验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S1收集的移动App运行环境数据包括用户识别信息,包括但不限于用户登录后业务节点传回的用于唯一标识一个用户的用户id;上述步骤S4验证节点利用提取的用户的uid信息验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S1收集的移动App运行环境数据包括随机性数据,包括但不限于系统时间、随机数;上述步骤S4验证节点利用服务器时间验证正确的字符串是否存在于布隆过滤器中。
优选地,上述步骤S5回复包括token有效期,上述验证代理SDK将token、token有效期、token对应的布隆过滤器长度m保存;上述token有效期届满前验证代理SDK向验证节点发起token续期请求,验证代理SDK通过步骤S1以及S2重新产生一个长度为m+dm的布隆过滤器并发送到验证结点进行验证,其中dm为正整数或者负整数;验证节点首先验证该用户的token是否存在,然后验证新的布隆过滤器长度是否与token上次验证时的长度不同,最后按照步骤S4进行常规的移动运行环境安全验证;验证结点在所有验证均通过的情况下为该token增加随机长度的有效期,并返回新的token有效期给验证代理SDK。这样设计保证移动App需要按照验证结点给定的有效期反复进行移动App运行环境的检测,保证了移动App长期的安全;同时要求每次“token续期请求”提交的布隆过滤器长度与之前的不同,可以有效降低客户端的重放攻击的可能性。
优选地,上述验证结点允许一个用户同时拥有若干个有效token,用于支持移动App在多个不同移动终端设备同时登录使用的情况;移动App因移动终端设备上数据清除、移动App重新安装完全丢失存储的token信息时,验证代理SDK通过步骤S1以及S2获取token;验证结点在执行步骤S4时,如果该用户已有的有效token数量超量,则会额外要求验证代理SDK向用户索要强身份验证。优选地,上述强身份验证是索要登录密码,或者手机短信验证码。这样设计机制保证了单个用户可以有多个移动终端设备同时使用移动App,同时防止出现token数量爆炸的非正常攻击情况。
优选地,验证结点用键值对内存存储方案保存所有用户的有效token。优选地,上述键值对是Redis键值对。这样设计保证业务节点服务器能高吞吐地验证token是否合法。
实施例2
本实施例实现一种保护用户隐私的移动运行环境安全检测系统。本实施例在实施例1的基础上具体实现。
附图3是一种保护用户隐私的移动运行环境安全检测系统实施例系统组成与工作流程图。如附图3所示,本实施例一种保护用户隐私的移动运行环境安全检测系统实施例系统属于App运行环境安全检测的服务端方案,具体为客户端App通过特殊方式对含有用户隐私的明文信息进行编码,将编码后的数据结构上传到服务端。服务端获得编码后的数据结构后,可以在不需要明文信息的情况下进行环境安全检测算法。从而整体达到在保护用户隐私的情况下进行可靠的服务端App运行环境安全验证。
101、本实施例系统包括1)接入App的SDK(软件开发包),简称验证代理SDK,用于收集App运行环境信息并与验证服务器结点通讯验证安全性;2)位于多个数据中心(例如华东2上海,华北1北京)的云服务器的验证结点,每个数据中心可以有多个完全一样的验证结点,App可以向任意一个验证结点上传数据并请求验证;3)位于多个数据中心的云服务器的业务结点,App向业务服务器请求业务并将验证结点返回的验证结果一并上传。
102、验证代理SDK收集的App运行环境信息包括:
102a、App包自身的包名,App包的签名数据(APK文件的x509证书),App自身数据文件/代码文件的大小、上次修改时间、SHA1校验值(可选)。
102b、设备本地正在运行的其他App的包名,设备本地安装的其他App的包名、签名数据。
102c、App进程的Linux proc文件,包括但不仅限于当前进程的运行状态、(`proc/<pid>/status`),当前进程的启动参数(`/proc/<pid>/cmdline`,`/proc/<pid>/environ`),当前进程空间中加载的动态链接库地址列表(`/proc/<pid>/maps`)。
102d、设备操作系统信息,包括但不仅限于当前系统的CPU信息(`/proc/cpuinfo`)以及内存信息(`/proc/meminfo`),安卓系统通过`getprop`获得的系统全局属性键值对。
102e、用户识别信息,例如用户登录后业务服务器传回的用于唯一标识一个用户的用户id(uid)。
102f、随机性数据:当前系统时间、随机数。
103、验证代理SDK构造一个布隆过滤器(Bloom filter),将102收集到的信息编码后存储在该数据结构中。布隆过滤器是一个m比特(bit)的固定大小的比特数组(bitset),提供“集合”(Set)的功能,即可以插入任意长度的数据并查询任意二进制/字符串数据是否存在于集合内。布隆过滤器不保存插入数据的明文信息,而是将数据根据哈希函数(hash)计算出0到m-1范围的若干个位置,将对应位置的比特设置成1来保存信息。验证代理SDK将任意收集到的数据编码成字符串s插入布隆过滤器,之后由验证结点验证s是否在布隆过滤器达到验证目的。验证代理SDK的编码规则需要保证验证结点仅需要判断s是否存在来判断环境是否安全。以下为102收集到的各项数据的具体编码规则:
103a、将App包名编码成字符串”app-package:<App包名>”形式插入布隆过滤器。对于App签名数据,构造字符串“app-signature:<App包名>:<App签名的十六进制字符串>”。对于App文件,编码形式:“app-file:<App包名>:<App文件的相对路径>:<App文件的大小>:<App文件的上次修改时间>”。这些信息用于检测App运行本体是否为正版。
103b、对于系统安装或者运行的其他App,依照103a的形式对其逐一进行编码。由于App的包名是唯一的,所以每个App的信息编码后字符串都不会相同。这些信息用于检测App运行的设备上是否存在已知的恶意软件。
103c、当前进程的运行状态(`proc/<pid>/status`)是一个一行行的文本信息,每行文本是键(key)值(value)对的形式,例如“VmPeak:20000KB”。验证代理SDK逐行解析,筛选出TracerPid,VmPeak,VmSize,Threads,Seccomp键,并将其各自编码成“proc-status:<key>:<value>”的形式插入布隆过滤器。当前进程的启动参数(`/proc/<pid>/cmdline`)是单行文本,验证代理SDK直接插入布隆过滤器。进程的环境变量(`/proc/<pid>/environ`)是冒号分隔的键值对(“<key>=<value>:<key2>=<value2>”),验证代理SDK将其按照冒号隔开,并逐一编码为“proc-environ:<key>=<value>”的形式插入布隆过滤器。进程空间中加载的动态链接库地址列表(`/proc/<pid>/maps`)为“<地区区间><访问权限><偏移量><设备><inode><动态链接库路径>”形式的多行文本,验证代理SDK提取所有动态链接库路径,并逐一编码为“proc-maps:<动态链接库路径>”的形式插入布隆过滤器。这些信息用于检测App运行的进程中是否存在攻击软件(例如Hook软件)、调试器、恶意注入软件等。
103d、系统的CPU信息(`/proc/cpuinfo`)为多行键值对形式文本,验证代理SDK提取键为processor,vendor_id,model name,cpu MHz cache size,fpu,cpuid level,wp,flags,bugs,cache_alignment,address sizes并将其各自编码成“proc-cpu:<key>:<value>”的形式插入布隆过滤器。设备内存信息(`/proc/meminfo`)为多行键值对形式文本,验证代理SDK提取键为MemTotal,Percpu,DirectMap4k,DirectMap2M,DirectMap16并将其各自编码成“proc-memory:<key>:<value>”的形式插入布隆过滤器。这些信息用于检测App运行的设备是否为模拟器。
103e、验证代理SDK将用户登录信息(uid)编码成“userid:<uid>”形式插入布隆过滤器。
103f、102f的随机数据保证了所构造的布隆过滤器具有随机性,因此即使102a-102e的所有数据都相同,每次构造的布隆过滤器内容均不同,防止出现重放攻击。验证代理SDK将系统时间,调整到UTC时区,并去除秒,得到分钟级别的字符串,编码为“systime:<年月日-小时-分钟>”的形式插入布隆过滤器。验证代理SDK会采集若干随机性系统数据来增强布隆过滤器的随机性,优选地,验证代理SDK会采用进程的pid、系统可用内存(/proc/meminfo文件的MemFree字段)、系统文件缓存内存(/proc/meminfo文件的Buffers字段)、App进程收发的网络数据字节数(/proc/<pid>/net/tcp)、App动态库的加载地址(/proc/<pid>/maps内容)。
104、验证结点服务端收到的布隆过滤器数据后,执行检测算法对App环境进行安全检测,具体地:
104a、对于102a提交的数据,验证结点保存官方发布的App包文件的对应信息(官方的包名、签名数据),将这些合法数据通过103a的编码后,逐一校验是否存在于收到的布隆过滤器中,如果有不存在的情况,即表示用户执行的App的对应信息与官方包文件不符,即App遭到篡改(盗版),返回验证失败。
104b、对于102b提交的数据,验证结点保存黑名单App数据库,例如公开的病毒软件包名、需要禁用的手机信息窃取软件、破解软件、外挂软件、以及App执行时需要避免的Root环境下攻击软件等。具体地,验证结点逐一检测黑名单数据库中的每一个包名,经过103b编码,检查是否存在于布隆过滤器中,如果存在,则表示用户设备上安装了对应的恶意软件,返回验证失败;黑名单数据库保存在服务端,且可以随时更新,因此即使攻击者完全破解App代码后也无法获得服务端的黑名单信息。
104c、102c提交的数据对于一个给定的机型(例如华为P30),这些数据是确定的,不同机型可能存在差异。依据此特性,验证结点首先收集所有用户一段时间(两周)的这些字段的数据。由于每种机型会有很多用户使用,对于同一个机型会有重复的大量样本数据,统计出现频率最高的情况作为该机型实际的实际数据(例如P30的/proc/<pid>/cmdline有超过90%的用户上报是“/system/bin/app_process”),构造成“机型真实数据数据库”。当收到验证代理SDK上传的布隆过滤器时,验证节点通过查询该数据库获取用户设备机型对应的实际数据,然后通过103c进行编码并检查是否存在于布隆过滤器中。如果存在,说明上传的数据是真实的,反之表示数据的机型信息是伪造的,运行环境存在篡改。
104d、对于102d的系统CPU和内存数据,验证结点采用类似104c的方式构造出“设备机型的真实CPU和内存硬件信息数据库”。例如华为P30Pro的CPU vendor_id(制造商)和cpu MHz(主频)。当收到验证代理SDK上传的布隆过滤器时,验证节点通过查询该数据库获取用户设备机型对应的实际CPU和内存型号,然后通过103d进行编码并检查是否存在于布隆过滤器中。如果存在,说明上传的数据是真实的,反之表示数据的机型信息是伪造的。
104e、对于102e提交的数据,验证结点提取用户的uid信息,通过103e同样方式进行编码,然后判断该编码字符串是否存在于上传的布隆过滤器。如果不存在,表示该布隆过滤器并非该用户构造,系盗用其他用户上传数据使用。
104f、对于102f提交的随机性数据,验证结点主要验证服务器时间,防止出现重放攻击。验证结点首先获取服务器时间,分别+1分钟、+0分钟、-1分钟,然后按照103f构造成“systime:<年月日-小时-分钟>”形式的三个字符串,分别判断是否存在于上传的布隆过滤器。如果不存在,表示该布隆过滤器创建时间与服务器时间偏差大于1分钟,判定为重放攻击。
如果上述步骤均通过,则验证结点会随机产生一个定长的token(通常为sha256长度),并在一个时间范围内随机产生一个“token有效期限”,然后向验证代理SDK回复token以及有效期限;优选地,token有效期限应当不长于7天。
105、验证代理SDK收到token及其有效期限后,将token、token有效期、token对应的布隆过滤器长度m保存在设备本地存储。App之后向业务服务器请求任意业务接口时,将该token一并发送;业务服务器在收到请求后,首先将token发送给验证结点确认token有效性。token有效即表示该App运行的环境安全。业务服务器仅在token有效的前提下继续完成App的业务请求,在没有合法token或者token已经过期的情况下拒绝提供业务服务。
106、验证代理SDK在App每次使用token的时候检查token的有效期,如果token有效期小于4小时(或已过期)则向验证结点发起“token续期请求”。验证代理SDK首先从本地存储获取token上次验证时提交的布隆过滤器的长度m,然后产生一个非零随机变化量dm(为正整数或者负整数),最后通过102以及103重新产生一个长度为m+dm比特的布隆过滤器并发送到验证结点进行验证。
107、验证结点收到“token续期请求”后,首先验证该用户的token是否存在,然后验证新的布隆过滤器长度是否与token上次验证时的长度不同,最后按照104进行常规的运行环境安全验证。验证结点在所有验证均通过的情况下为该token增加随机长度的有效期,并返回新的有效期。106和107的设计保证App需要按照验证结点给定的有效期反复进行App运行环境的检测,保证了App长期的安全。同时106和107要求每次“token续期请求”提交的布隆过滤器长度与之前的不同,可以有效降低客户端的重放攻击的可能性。
108、验证结点允许一个用户同时拥有若干个有效token,用于支持App有多个不同设备同时登录使用的情况,但是限制所有有效token个数。App因设备数据清除、设备上App重新安装等低频率低概率情况完全丢失了本地存储的token信息时,需要重新通过102以及103获取token。验证结点在执行104时,如果该用户已有的有效token数量超量,则验证结点会额外要求验证代理SDK向用户索要登录密码(或者等效的强身份验证,例如手机短信验证码)。108所设计的机制保证了单个用户可以有多个设备同时使用App,同时防止出现token数量爆炸的非正常(攻击)情况。
109、验证结点用Redis或者类似的键值对(key-value)形式内存存储方案保存所有用户的有效token,保证业务服务器能高吞吐地验证token是否合法。假设有100万用户,每个用户最多可同时有16个有效token;每个token本身长度为256bit(32字节),额外需要一个有效期时间戳(8字节),一个布隆过滤器长度(8字节);因此,验证结点的内存存储开销等于100万*(51+16*(32+8+8))~=820MB(其中51字节为Redis固定开销)。考虑到目前服务器硬件可以支持数十GB的内存,因此当前单服务器可承载相当数量的用户token数据,证明方案可信。在实际使用过程中,应当通过Redis的MEMORY USAGE命令估计验证结点存储token信息所需的内存来调整硬件配置(单服务器或者多服务器组)。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。

Claims (9)

1.一种保护用户隐私的移动运行环境安全检测系统,所述安全检测系统包括若干移动终端、若干数据中心,所述移动终端和数据中心通过通讯链路进行通讯;其特征在于:所述数据中心包括业务节点和验证结点,所述移动终端上包括若干移动App,所述移动终端上运行接入移动App的验证代理SDK程序模块,所述验证代理SDK程序模块构建有布隆过滤器,所述移动App向业务节点请求业务,所述验证代理SDK程序模块用于收集移动App运行环境信息并与验证结点通讯验证安全性;所述安全检测系统进行移动运行环境安全检测时执行以下步骤:
S1、验证代理SDK收集移动App运行环境数据;
S2、验证代理SDK将收集的移动App运行环境数据编码成字符串插入布隆过滤器;
S3、验证代理SDK发送插入字符串后的布隆过滤器数据给验证节点;
S4、验证节点验证正确的字符串是否存在于布隆过滤器中;
S5、如果字符串存在于布隆过滤器中,验证节点回复token给验证代理SDK,所述回复包括token有效期,所述验证代理SDK将token、token有效期、token对应的布隆过滤器长度m保存;所述token有效期届满前验证代理SDK向验证节点发起token续期请求,验证代理SDK通过步骤S1以及S2重新产生一个长度为m+dm的布隆过滤器并发送到验证结点进行验证,其中dm为正整数或者负整数;验证节点首先验证该用户的token是否存在,然后验证新的布隆过滤器长度是否与token上次验证时的长度不同,最后按照步骤S4进行常规的移动运行环境安全验证;验证结点在所有验证均通过的情况下为该token增加随机长度的有效期,并返回新的token有效期给验证代理SDK;
S6、移动App发送token给业务节点进行业务请求;
S7、业务节点向验证节点查询token是否有效;
S8、token有效的情况下,业务节点响应移动App继续完成业务请求。
2.根据权利要求1所述的一种保护用户隐私的移动运行环境安全检测系统,其特征在于:所述步骤S1收集的移动App运行环境数据包括移动App文件的对应信息,包括但是不限于移动App包自身的包名,移动App包的签名数据,移动App自身数据文件/代码文件的大小,移动App上次修改时间,移动App的SHA1校验值;所述步骤S4验证节点利用官方发布的移动App包文件的对应信息验证正确的字符串是否存在于布隆过滤器中。
3.根据权利要求2所述的一种保护用户隐私的移动运行环境安全检测系统,其特征在于:所述步骤S1收集的移动App运行环境数据包括移动终端上安装或者运行的其他App文件的对应信息;所述步骤S4验证节点利用黑名单App数据库验证正确的字符串是否存在于布隆过滤器中。
4.根据权利要求3所述的一种保护用户隐私的移动运行环境安全检测系统,其特征在于:所述步骤S1收集的移动App运行环境数据包括当前进程的运行文件,包括但是不限于当前进程的运行状态,当前进程的启动参数,当前进程空间中加载的动态链接库地址列表;所述步骤S4验证节点利用大量样本数据统计构造成的移动终端机型真实数据数据库验证正确的字符串是否存在于布隆过滤器中。
5.根据权利要求4所述的一种保护用户隐私的移动运行环境安全检测系统,其特征在于:所述步骤S1收集的移动App运行环境数据包括移动终端设备操作系统信息,包括但不限于当前系统的CPU信息,内存信息,系统全局属性键值对;所述步骤S4验证节点利用大量样本数据统计构造成的设备机型的真实CPU和内存硬件信息数据库验证正确的字符串是否存在于布隆过滤器中。
6.根据权利要求5所述的一种保护用户隐私的移动运行环境安全检测系统,其特征在于:所述步骤S1收集的移动App运行环境数据包括用户识别信息,包括但不限于用户登录后业务节点传回的用于唯一标识一个用户的用户id;所述步骤S4验证节点利用提取的用户的uid信息验证正确的字符串是否存在于布隆过滤器中。
7.根据权利要求6所述的一种保护用户隐私的移动运行环境安全检测系统,其特征在于:所述步骤S1收集的移动App运行环境数据包括随机性数据,包括但不限于系统时间、随机数;所述步骤S4验证节点利用服务器时间验证正确的字符串是否存在于布隆过滤器中。
8.根据权利要求1所述的一种保护用户隐私的移动运行环境安全检测系统,其特征在于:所述验证结点允许一个用户同时拥有若干个有效token,用于支持移动App在多个不同移动终端设备同时登录使用的情况;移动App因移动终端设备上数据清除、移动App重新安装完全丢失存储的token信息时,验证代理SDK通过步骤S1以及S2获取token;验证结点在执行步骤S4时,如果该用户已有的有效token数量超量,则会额外要求验证代理SDK向用户索要强身份验证。
9.根据权利要求1所述的一种保护用户隐私的移动运行环境安全检测系统,其特征在于:验证结点用键值对内存存储方案保存所有用户的有效token。
CN202011201805.4A 2020-11-02 2020-11-02 一种保护用户隐私的移动运行环境安全检测系统 Active CN112468446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011201805.4A CN112468446B (zh) 2020-11-02 2020-11-02 一种保护用户隐私的移动运行环境安全检测系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011201805.4A CN112468446B (zh) 2020-11-02 2020-11-02 一种保护用户隐私的移动运行环境安全检测系统

Publications (2)

Publication Number Publication Date
CN112468446A CN112468446A (zh) 2021-03-09
CN112468446B true CN112468446B (zh) 2023-04-07

Family

ID=74835698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011201805.4A Active CN112468446B (zh) 2020-11-02 2020-11-02 一种保护用户隐私的移动运行环境安全检测系统

Country Status (1)

Country Link
CN (1) CN112468446B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116094748A (zh) * 2022-11-23 2023-05-09 紫光云技术有限公司 一种基于布隆过滤器的报文验签拦截系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722672A (zh) * 2012-06-04 2012-10-10 奇智软件(北京)有限公司 一种检测运行环境真实性的方法及装置
CN103902882A (zh) * 2014-03-18 2014-07-02 宇龙计算机通信科技(深圳)有限公司 一种防止用户信息泄漏的终端及方法
CN105205370A (zh) * 2015-08-24 2015-12-30 北京恒信安科技有限公司 移动终端安全防护方法及移动终端、安全系统和应用方法
CN107077410A (zh) * 2014-09-15 2017-08-18 佩里梅特雷克斯公司 分析客户端应用行为以检测异常并且阻止访问
CN107766728A (zh) * 2017-08-28 2018-03-06 国家电网公司 移动应用安全管理装置、方法及移动作业安全防护系统
CN107977553A (zh) * 2017-12-25 2018-05-01 中国电子产品可靠性与环境试验研究所 移动应用程序的安全加固的方法及装置
US10051001B1 (en) * 2015-07-31 2018-08-14 Palo Alto Networks, Inc. Efficient and secure user credential store for credentials enforcement using a firewall
CN109525583A (zh) * 2018-11-26 2019-03-26 中国科学院数据与通信保护研究教育中心 一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统
CN109960509A (zh) * 2019-03-06 2019-07-02 江苏通付盾信息安全技术有限公司 应用加固的方法、装置、计算设备及计算机存储介质
CN110619210A (zh) * 2019-08-27 2019-12-27 苏宁云计算有限公司 一种模拟器检测方法及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722672A (zh) * 2012-06-04 2012-10-10 奇智软件(北京)有限公司 一种检测运行环境真实性的方法及装置
CN103902882A (zh) * 2014-03-18 2014-07-02 宇龙计算机通信科技(深圳)有限公司 一种防止用户信息泄漏的终端及方法
CN107077410A (zh) * 2014-09-15 2017-08-18 佩里梅特雷克斯公司 分析客户端应用行为以检测异常并且阻止访问
US10051001B1 (en) * 2015-07-31 2018-08-14 Palo Alto Networks, Inc. Efficient and secure user credential store for credentials enforcement using a firewall
CN105205370A (zh) * 2015-08-24 2015-12-30 北京恒信安科技有限公司 移动终端安全防护方法及移动终端、安全系统和应用方法
CN107766728A (zh) * 2017-08-28 2018-03-06 国家电网公司 移动应用安全管理装置、方法及移动作业安全防护系统
CN107977553A (zh) * 2017-12-25 2018-05-01 中国电子产品可靠性与环境试验研究所 移动应用程序的安全加固的方法及装置
CN109525583A (zh) * 2018-11-26 2019-03-26 中国科学院数据与通信保护研究教育中心 一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统
CN109960509A (zh) * 2019-03-06 2019-07-02 江苏通付盾信息安全技术有限公司 应用加固的方法、装置、计算设备及计算机存储介质
CN110619210A (zh) * 2019-08-27 2019-12-27 苏宁云计算有限公司 一种模拟器检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
云计算环境下隐私与数据保护关键技术研究;彭凝多;《CNKI》;20160315;全文 *

Also Published As

Publication number Publication date
CN112468446A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
US10680812B2 (en) Event attestation for an electronic device
CN110855676B (zh) 网络攻击的处理方法、装置及存储介质
CN104717192B (zh) 合法性验证方法及中间服务器
US7707409B2 (en) Method and system for authenticating software
Kitagawa et al. Aspfuzz: A state-aware protocol fuzzer based on application-layer protocols
CN111353151B (zh) 一种网络应用的漏洞检测方法和装置
CN112512046B (zh) 一种Android应用程序短信验证码认证过程安全性检测方法
CN113726726B (zh) 一种基于边缘计算的电力物联网可信免疫体系及度量方法
CN111694743A (zh) 业务系统的检测方法及装置
CN107948235A (zh) 基于jar的云数据安全管理与审计装置
CN112468446B (zh) 一种保护用户隐私的移动运行环境安全检测系统
CN109254893B (zh) 一种业务数据稽核方法、装置、服务器和存储介质
CN111224826B (zh) 基于分布式系统的配置更新方法、设备、系统及介质
CN115021995B (zh) 多渠道登录方法、装置、设备及存储介质
CN111585978A (zh) 一种拦截虚假请求的方法、客户端、服务端及系统
Qin et al. RIPTE: runtime integrity protection based on trusted execution for IoT device
WO2003107201A1 (en) Method and system for authenticating a software
CN114006738A (zh) 一种基于app实例指纹和设备指纹的手游登录验证方法及系统
CN112765588B (zh) 一种身份识别方法、装置、电子设备及存储介质
CN111698227B (zh) 信息同步管理方法、装置、计算机系统及可读存储介质
CN111460436B (zh) 一种基于区块链的非结构化数据操作方法和系统
CN110572371B (zh) 基于html5本地存储机制的身份唯一性校验控制方法
CN116070191A (zh) 信息处理方法及其装置、存储介质、程序产品
KR20130125245A (ko) 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템
KR20200080776A (ko) 데이터 보안 장치

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