目录
一、引言
在移动应用日益普及的今天,APP 手势密码作为一种便捷的安全保护机制被广泛应用。然而,它真的安全吗?本文将介绍 APP 手势密码的相关概念,从攻击者和防御者的角度探讨其安全性,并分析相关的绕过思路和防御方法。
二、APP 手势密码的概念
APP 手势密码是一种保护机制,类似于手机开机解锁的手势密码,其目的是在手机被他人操控时保护用户的安全利益。与传统的数字密码相比,它具有一些优势,如在 APP 中手势密码的位数一般最低 4 位,最高可 9 位,相比传统密码更具安全性和高效性。
三、攻击者绕过 APP 手势密码的思路
(一)无需 ROOT 环境(普通权限环境)
- 利用 APP 广告绕过
- 如果 APP 在启动页面加载广告时验证不当,当用户点击广告后直接返回,可能绕过手势密码。
- 利用多重启动绕过
- 当 APP 停留在手势密码输入页面时,按 Home 键返回桌面,再从应用市场重新打开该 APP,如果验证不当,可直接绕过手势密码进入 APP。
- 利用退出绕过 & 爆破
- 一般手势密码允许输入错误次数为 5 次,当错误次数达到 5 次后,若不点击相关按钮直接返回桌面,清理后台 APP(或强制停止)后再次打开,如果验证没做好,可能出现多种情况,如直接进入主页面、进入新的手势密码页面或再次跳出手势密码验证界面且又有 5 次输入机会,以此循环可能暴力拆解手势密码。
- 利用清理不当绕过
- 一些 APP 把手势密码储存在本地文本信息里,账户登录状态信息储存在本地数据库里。当清理本地数据时,如果只清理了文本信息而未清理数据库信息,可能导致绕过手势密码,因为登录状态仍保持。卸载再安装 APP 也可能基于此原理绕过。
- 利用显示不当绕过
- 当 APP 启动时,在短时间内可能进入或点击到某些功能页面,如果用户操作够快,可能绕过手势密码到达该功能界面。
- 利用 APP 自带提示绕过
- 一些 APP 会在状态栏推送信息,如果验证不当,直接点击推送信息可能直接绕过手势密码进入主页面。
- 利用界面设计缺陷绕过
- 例如在 IOS 下曾出现过进入手势密码界面后可左右滑动到主页面的问题,虽然现在可能较少软件存在此问题,但也是一种可能的绕过思路。
(二)ROOT 权限环境(高权限环境)
- 利用拒绝服务绕过
- 通过分析 APP 找到与手势密码相关的组件,利用拒绝服务攻击使相关 Activity 停止,从而跳转到主页面绕过手势密码。可以使用 ADB 命令进行测试。例如,在 Python 中可以使用
subprocess
模块来执行 ADB 命令(这里仅为示意):
- 通过分析 APP 找到与手势密码相关的组件,利用拒绝服务攻击使相关 Activity 停止,从而跳转到主页面绕过手势密码。可以使用 ADB 命令进行测试。例如,在 Python 中可以使用
import subprocess
def execute_adb_command(command):
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()
if process.returncode == 0:
return output.decode('utf-8')
else:
return error.decode('utf-8')
adb_command = "adb shell am force-stop <package_name>" # 示例命令,<package_name>为APP包名
execute_adb_command(adb_command)
- 修改 shared_prefs 目录下的文件绕过
- 找到相关文件:通过观察文件时间同步变动来筛选出与手势密码相关的文件。例如,修改手势密码时,等 1 分钟后再修改,观察文件时间变化来确定相关文件。
- 修改文件权限:可以去掉读权限只留写入权限,APP 可能会误以为需要设置手势密码而调用设置界面,从而绕过验证。或者去掉所有权限,不让 APP 加载手势密码直接启动。
- 修改文件内容:如果能找到手势密码且知道加密方式,可以解密得到密码直接输入。如果不知道加密方式,可以测试关闭手势密码时的值,根据不同情况进行处理,如清空参数、复制值到其他账户等。
- 修改 databases 目录下的文件绕过
- 找到相关文件:同样利用观察文件时间同步变动等方法找到存放手势密码的数据库文件。
- 修改数据库文件内容:如果密码是明文,直接修改内容。如果加密,尝试解密或根据关闭手势密码时的值进行处理。
- 修改数据库文件权限:当修改内容不行时,尝试去掉所有权限看能否绕过。
- ** 冰冻 的奖励,你的账号在不同场景下的价值是不同的,比如在某些游戏场景中,你可以通过完成任务获得更多的奖励,而在某些社交场景中,你可以通过与其他用户互动获得更多的关注。
三、不同账号的价值评估
(一)游戏账号
- 资产评估
- 游戏账号中的资产包括虚拟货币、道具、装备等。这些资产的价值取决于游戏的经济系统和市场需求。例如,在一些热门的大型多人在线角色扮演游戏(MMORPG)中,稀有的装备可能价值数千甚至上万元人民币。
- 可以通过查看游戏内的交易市场价格、官方定价以及玩家之间的交易记录来评估资产价值。
- 等级和技能评估
- 账号的等级和技能水平也是影响其价值的重要因素。高等级账号通常拥有更多的技能和能力,能够在游戏中更轻松地完成任务和挑战。例如,在一款竞技游戏中,高等级的账号可能具有更高级的技能树和更强的角色属性,这使得该账号在比赛中更具竞争力。
- 社交影响力评估
- 游戏账号在游戏社区中的社交影响力也会影响其价值。拥有大量好友、粉丝或公会成员的账号通常更有价值。例如,在一些社交游戏中,拥有大量粉丝的账号可以通过发布广告或推广活动获得收入。
(二)社交账号
- 粉丝数量评估
- 对于社交账号来说,粉丝数量是一个重要的价值指标。拥有大量粉丝的账号可以通过发布广告、推广产品或服务来获得收入。例如,在微博上,拥有百万粉丝的账号每次发布广告的价格可能在数千元到上万元不等。
- 互动率评估
- 除了粉丝数量,互动率也是评估社交账号价值的重要因素。互动率包括点赞、评论、转发等指标。一个高互动率的账号通常更有价值,因为它表明账号拥有者能够与粉丝进行有效的互动,从而提高广告的效果。例如,在抖音上,一个点赞数、评论数和转发数都很高的视频通常会获得更多的关注和流量。
- 内容质量评估
- 社交账号发布的内容质量也会影响其价值。高质量的内容能够吸引更多的粉丝和提高互动率。例如,在微信公众号上,一篇有深度、有见解的文章通常会获得更多的读者和分享,从而提高账号的价值。
(三)电商账号
- 信用评级评估
- 电商账号的信用评级是影响其价值的重要因素。高信用评级的账号能够获得更多的优惠政策和服务,例如更低的贷款利率、更长的还款期限等。可以通过查看电商平台的信用评分系统来评估账号的信用评级。
- 购买历史评估
- 电商账号的购买历史也会影响其价值。拥有大量购买历史的账号通常更有价值,因为它表明账号拥有者是一个活跃的消费者,能够为电商平台带来更多的收入。例如,在淘宝上,一个拥有大量购买历史的账号可能会获得更多的优惠券和促销活动。
- 会员等级评估
- 电商账号的会员等级也是影响其价值的重要因素。高会员等级的账号能够获得更多的优惠政策和服务,例如更高的折扣、优先配送等。可以通过查看电商平台的会员等级系统来评估账号的会员等级。
四、账号安全保护措施
(一)设置强密码
- 密码复杂度要求
- 密码应该包含大小写字母、数字和特殊字符,并且长度至少为 8 位。例如,一个强密码可以是 “Abc@123456”。
- 避免使用常见密码
- 应该避免使用常见的密码,如生日、电话号码、简单的单词组合等。这些密码很容易被破解。例如,“123456”、“password” 等都是常见的密码,不应该使用。
- 定期更换密码
- 为了保持账号的安全,应该定期更换密码。建议每隔 3 - 6 个月更换一次密码。
(二)启用多因素认证
- 短信验证码
- 启用短信验证码是一种常见的多因素认证方式。当用户登录账号时,系统会发送一条短信验证码到用户的手机上,用户需要输入正确的验证码才能登录账号。例如,在支付宝中,当用户登录账号时,系统会发送一条短信验证码到用户的手机上,用户需要输入正确的验证码才能登录账号。
- 指纹识别或面部识别
- 指纹识别或面部识别也是一种常见的多因素认证方式。当用户登录账号时,系统会要求用户进行指纹识别或面部识别,如果识别成功,用户可以登录账号。例如,在苹果手机上,当用户登录某些账号时,系统会要求用户进行指纹识别或面部识别,如果识别成功,用户可以登录账号。
(三)注意账号的使用环境
- 避免在公共网络上使用账号
- 应该避免在公共网络上使用账号,因为公共网络的安全性较低,容易被黑客攻击。例如,在咖啡馆、机场等公共场所的无线网络上使用账号是不安全的。
- 注意电脑和手机的安全防护
- 应该注意电脑和手机的安全防护,包括安装杀毒软件、防火墙等。例如,在电脑上安装 360 杀毒软件和防火墙,可以提高电脑的安全性。
五、结论
不同类型的账号在不同场景下具有不同的价值,因此需要根据账号的类型和使用场景来评估其价值。同时,为了保护账号的安全,应该采取一系列的安全保护措施,如设置强密码、启用多因素认证、注意账号的使用环境等。只有这样,才能确保账号的安全和价值。