产品资讯

增强 Android 安全性:阻止恶意软件窥探您的应用数据

阅读用时:2 分钟

安全是 Android 的基石。我们与您携手合作,通过提供强大的安全工具和功能(例如 Credential Manager 和 FLAG_SECURE),维护平台安全并保护用户数据。每个 Android 版本都会带来性能和安全方面的增强,而借助 Android 16,您只需采取简单而重要的步骤,即可强化应用的防御能力。请观看我们的视频或继续阅读,详细了解我们针对无障碍功能 API 提供的增强型保护措施。

 

 

只需一行代码,即可保护您的应用免遭窥探

我们发现,不法分子有时会试图利用无障碍功能 API 的特性,直接从屏幕上读取密码和财务详情等敏感信息,并通过注入触摸操作来操纵用户的设备。为了应对这一问题,Android 16 提供了新的强大防御机制,只需一行代码即可实现:accessibilityDataSensitive。

借助 accessibilityDataSensitive 标志,您可以明确将视图或可组合项标记为包含敏感数据。在应用中将此标志设置为 true 后,您基本上可以阻止潜在的恶意应用访问您的敏感视图数据或与其进行交互。其运作方式如下:任何请求无障碍权限的应用,如果未明确声明自己是合法的无障碍工具 (isAccessibilityTool=true),都将被拒绝访问该视图。

这项简单而有效的变更可防止恶意软件窃取信息和执行未经授权的操作,同时不会影响用户使用合法无障碍工具的体验。注意:如果应用不是无障碍工具,但请求无障碍权限并设置了 isAccessibilityTool=true,Google Play 将拒绝该应用,并且 Google Play 保护机制会在用户设备上屏蔽该应用。

自动增强安全性,提供setFilterTouchesWhenObscured保护

我们已将这项新的 accessibilityDataSensitive 安全功能与现有的 setFilterTouchesWhenObscured 方法集成。

如果您已使用 setFilterTouchesWhenObscured(true) 来保护应用免受点按劫持,您的视图将自动被视为无障碍敏感数据。通过使用 accessibilityDataSensitive 保护措施增强 setFilterTouchesWhenObscured 方法,我们立即为每个人提供了一层额外的防御,而无需额外的工作。

image.png

使用入门

我们建议您在包含敏感信息的任何界面上使用 setFilterTouchesWhenObscured 或 accessibilityDataSensitive 标志,包括登录页面、付款流程以及显示个人或财务数据的任何视图。

对于 Jetpack Compose

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

val composeView = LocalView.current DisposableEffect(Unit) { composeView.filterTouchesWhenObscured = true onDispose { composeView.filterTouchesWhenObscured = false } }

 

使用 semantics 修饰符将 sensitiveData 属性应用于可组合项。

BasicText { text = “Your password”,

            modifier = Modifier.semantics {

                sensitiveData = true }}

 

 

对于基于 View 的应用

在 XML 布局中,将相关属性添加到敏感视图。

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

<TextView android:filterTouchesWhenObscured="true" />

 

 

<TextView android:accessibilityDataSensitive="true" />

 

或者,您也可以在 Java 或 Kotlin 中以编程方式设置该属性:

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

myView.filterTouchesWhenObscured = true;

 

 

myView.isAccessibilityDataSensitive = true;

 

 

myView.setFilterTouchesWhenObscured(true)

 

 

myView.setAccessibilityDataSensitive(true);

 

如需详细了解 accessibilityDataSensitive 和 setFilterTouchesWhenObscured 标志,请参阅点击劫持指南。

与开发者携手保障用户安全

我们很早就与开发者合作,确保此功能满足实际需求,并顺利集成到您的工作流程中。

image.png

“我们始终将保护客户的敏感财务数据放在首位,因此我们需要构建自己的防护层,以抵御基于无障碍功能的恶意软件。Revolut 强烈支持引入这一全新的官方 Android API,因为这使我们能够逐步摆脱自定义代码,转而采用强大的单行平台防御机制。” 
- Vladimir Kozhevnikov,Revolut 的 Android 工程师

通过采用这些功能,您可以发挥关键作用,保护用户免受基于无障碍功能的恶意攻击。我们鼓励所有开发者将这些功能集成到其应用中,以帮助保障用户安全。

通过携手合作,我们可以为所有人打造更安全、更值得信赖的体验。

继续阅读