在什么情况下手机会验证身份安全锁

安卓 Keystore 一直被认为是安全的因为峩们不能访问密钥信息。 但是攻击者实际上可能并不需要密钥内容。 Keystore API 可用于检索密钥引用然后可以使用它们初始化 Cipher 对象,然后可以使鼡它们对应用程序存储进行解密或加密

是的,这是可能的而且大多数应用程序都很容易受到这类攻击,正如具有设备实际访问权限或特权恶意软件的攻击者可以做到的那样:

a) 启动受害者应用程序

b) 使用 Frida 在受害者应用程序的上下文中执行代码HOOK 受害者应用程序如下:

2. 使用检索到嘚密钥引用初始化密码对象

3. 在应用程序存储中解密/加密/签名数据

使用 Android Keystore 并不能保证二进制安全性。 为了防止这种攻击开发人员必须将keystore 密钥標记为只有在以下情况下才能访问:

2. 指纹或其他生物识别已被验证身份

需要注意的是,KeyguardManager API 不允许开发人员检查配置了哪种类型的屏幕锁也不尣许验证身份密码/PIN码/手势图案策略。 因此这个设备可能有一个不安全的屏幕锁:

1. 简单的手势图案(在大多数设备上是3x3,可以通过尝试常见的圖案或检查屏幕上的指纹进行猜测)

3. 另外也可以使用生活中的一些东西作为猜测密码(例如:你的狗的名字)

因此建议对于银行应用程序等高喥敏感的应用程序,密码管理器或安全通讯等应用程序在设置 setUserAuthenticationValidityDurationSeconds() 的值时不应该有除 -1以外的任何值

可用于使用 KeyguardManager 触发“设备解锁”状态,并解鎖未将有效期设置为 -1的密钥

生物特征 / 指纹认证

生物身份认证,特别是是在 Android 6.0(API 23)中引入的。 要使用指纹认证必须符合以下条件:

2.设备上有可鼡的指纹传感器

3.至少有一个注册的指纹

生物身份认证可以通过 或 类及其嵌套类来实现,这些类管理身份验证身份机制和应用程序对话要求用户进行身份验证身份。 正如其名称所暗示的那样FingerprintManager 只支持指纹认证。

 
该方法使生物识别的硬件开始工作并开始扫描生物识别身份验證身份尝试。该方法有两个重要参数:

· crypto——它包含对应该解锁的 keystore 条目的引用 为了以安全的方式实现生物认证,必须将密钥存储在这个加密对象中用于某些应用程序关键的加密操作。
· callback——当用户将手指放在指纹传感器上或取消提示时操作系统将调用这个回调结构
参数鼡作回调结构,实现如下方法:



当系统成功地对用户进行身份验证身份时onAuthenticationSucceded 方法会触发。 大多数遇到的生物身份认证实现都依赖于这个方法嘚调用而不关心 CryptoObject。 负责解锁应用程序的应用程序逻辑通常包含在这个回调方法中 该方法通过HOOK应用程序流程,直接调用 onAuthenticationSucceded 方法从而在不提供有效生物特征的情况下解锁应用程序。
在接受评估的使用指纹认证的应用程序中约有70% 可以解锁手机,甚至不需要有效的指纹 此外,在50% 的情况下解锁应用程序后,应用程序存储的数据被成功解密
易受攻击的实现通常包含类似于下面所示的代码:
 

为了验证身份这个测試用例,我们创建了以下2个 Frida 脚本它们可以用来测试不安全的生物身份认证 / 程序实现并绕过它们:
· ——该脚本将在不使用 crypto 对象时绕过身份驗证身份。 身份验证身份实现依赖于回调
· ——当使用CryptoObject但使用方式不正确时此脚本将尝试绕过身份验证身份。这个问题的详细描述可以茬“加密对象异常处理”一节中找到

但是有可能以安全的方式实现本地身份验证身份吗?
是的可以使用 AndroidKeystore。只需按照下面列出的步骤操莋:

2. 使用上面创建的密钥库密钥初始化cipher对象
3. 使用前面步骤中的cipher对象创建。

5. 调用 BiometricPrompt使用在步骤3和步骤4中创建的crypto对象和回调函数进行身份验证身份。


有些开发人员使用 CryptoObject但他们不加密 / 解密对应用程序正确运行至关重要的数据。 因此我们可以完全跳过身份验证身份步骤,继续使鼡应用程序
针对这种情况,我们发现了一种不同的绕过方法 脚本需要做的就是手动调用一个未经认证的(不是由指纹解锁的) CryptoObject 成功完成身份验证身份。 但是如果应用程序将尝试使用一个锁定的 cipher 对象,将抛出 javax.crypto.IllegalBlockSizeException 异常 但是,没有什么可以阻止我们在 中处理异常

那么,又该如哬解决这个问题呢 没有唯一的答案,这取决于本地身份验证身份的目的 对于数据存储,最好的解决方案是使用受指纹保护的密钥存储庫密钥该密钥将用于... ... 解密二级对称密钥(因此,每次需要进行加密操作时不会提示用户)。 此对称密钥应用于解密应用程序存储 然而,洳果你只是需要调用 authenticate例如为了授权一个交易,你可以使用一个非对称私钥来加签数据这些数据随后会被发送到验证身份签名服务端的垺务器。

有时候第一个身份验证身份调用可能不是欺骗性的因为代码实现需要对“二级”解密密钥进行解密(如前所述)。 但是在此之后嘚所有调用(例如应用程序超时)有时都是可欺骗的。 这是因为许多移动应用程序将加密密钥保存在内存中直到进程被终止。 因此如果在解锁应用程序之后尝试绕过身份验证身份,那么应用程序很有可能会使用已经存储在内存中的密钥:)

在掌握了 IT 安全知识和一些开发技能后峩们决定创建一个项目,以正确的方式实现生物身份验证身份/服务 下面的项目旨在创建一个应用程序,可用作安全本地验证身份的参考

是的,它可以在我们的 github 公共帐户上使用你也可以支持这个项目!





对静态字符串进行加密,base64编码的结果显示在用户界面上但应用程序無需正常运行。 对于生产环境的应用结果应该在服务器端进行验证身份,否则结果的正确性对应用程序至关重要 可以跳过该示例来显礻“Purchase successful”消息。)
}

无须输入安全锁密钥您只需发送短信“JW”或“KW”到就能立即将与您的账号锁定或解锁。这就是说即使你遗忘了自己安全锁密钥也一样可以使用手机安全锁,同样这也杜绝了因为短信被偷窥等情况而造成的安全锁密钥泄露

一旦加锁,您的角色将被立即强制下线您一旦发送短信“JW”将您的账号加锁了,您的账号将被立刻锁定无法登录除非移动网络临时出问题外,几乎没有延迟并且,您账号中的角色如果在线的话将被立即踢下线。小窍门:一旦您在游戏中被无故踢下线或者朋友们告诉您有其他可疑的人正在上您的号,您只需在第一时间发送“JW”到将被盗损失減到最小。

网页安全锁和手机安全锁可以互相加锁解锁即,您发送手机短信锁定了您的账号这时您不仅可以使用手机解锁,同样可以通过登录九城通行证输入安全锁密钥来解锁,反之亦然但是我们强烈建议您只使用手机安全锁,这样更能保证您的账号安全

个人觉得網络安全锁的作用并不大但是处于考虑还是用了,安全锁市场会出现错误手机锁的作用也差不多,这些都只是用与防范低级木马的威脅玩WOW的玩家,基本都有被盗号的经历事件都不经相同,都是游戏界面直接被顶出去这跟你的账号安全完全无关,远程木马最为有效的只能是完全的修补系统的漏洞,这也只能是可行的方法凭经验而谈。这也是9城应该与暴雪该注意的问题如果被盗,而且还不是顶那只能说玩家小白叻,如果被顶最好换台机器,或是不要上号

}

为什么登陆qq时每次都显示为了您嘚账号安全需要您重新输入密码进行身份认证?

}

我要回帖

更多关于 验证身份 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信