MASWE-0008:缺少设备安全锁验证实现
占位符漏洞
此缺陷尚未创建,目前为占位符。但您可以检查其状态或自行开始处理。如果此问题尚未分配,您可以请求将其分配给您,并按照我们的指南提交包含该缺陷新内容的 PR。
查看我们在 GitHub 上关于 MASWE-0008 的 Issues
初始描述或提示¶
应用程序可能未检查设备安全锁(例如设备密码),并可能允许未经授权访问敏感数据。在 iOS 上,强制执行设备锁安全(即确保设置了密码)还有一个额外的好处,那就是它与数据加密紧密结合,前提是应用程序利用了正确的数据保护 API。
相关主题¶
- 在 Android 上,通过 `isDeviceSecure()` 检查用户是否设置了设备密码,比仅通过 `KeyguardManager.isKeyguardSecure()` 确保设置了安全屏幕锁更好
- 在尝试认证之前,请通过调用 iOS 上的 `LAContext.canEvaluatePolicy(_:error:)` 方法来测试以确保您实际上有能力执行此操作
- 为确保可以使用生物识别技术,请在调用 `SecAccessControlCreateWithFlags` 方法时,验证是否设置了 `kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly` 或 `kSecAttrAccessibleWhenPasscodeSet` 保护类
参考资料¶
- https://developer.apple.com/documentation/localauthentication/logging_a_user_into_your_app_with_face_id_or_touch_id
- https://grep.app/search?q=isdevicesecure%28&filter[repo][0]=threema-ch/threema-android
- https://developer.android.com.cn/reference/android/hardware/biometrics/BiometricManager#canAuthenticate(int)
MASTG v1 覆盖范围¶
测试¶
MASTG-TEST-0249:安全屏幕锁检测 API 的运行时使用 MASTG-TEST-0247:安全屏幕锁检测 API 的引用 MASTG-TEST-0248:安全屏幕锁检测 API 的引用 MASTG-TEST-0246:安全屏幕锁检测 API 的运行时使用