摘要:本文主要针对POS金融支付设备在安全防护认证中需要禁止截屏与录屏的需求进行方案设计。通过framework层的定制修改达到禁止截屏的功能。此方案可能不是最优解,因为仍然有文件会产生,只是没有数据而已,但是可以基本满足功能。
移动支付与android系统相倚为强,公司也因为POS设备分得一杯羹,但是在认证方面必须满足银联等的认证,UPTS就是其中之一。UPTS是目前已从《银联卡受理终端安全规范》(简称“UPTS 2.0”)正式升级,更新为《中国银联支付终端安全技术规范》(简称“UPTS 3.0”),规范已于2019年12月底发布实施。UPTS 3.0与2.0相比,新增了安全卷和体验卷,另外辅助卷修改为管理卷,全文分为基础卷、安全卷、管理卷、产品卷、体验卷、检测卷共六卷。
截屏保护是其中一个测试项,内容描述如下:
可以通过DDMS对终端进行录屏,可通过ADB指令可以截屏以及录制屏幕内容,也可通过功能组合键截取终端屏幕显示内容。
以上功能描述不符合支付安全,所以需要整改。
android系统本身已经提供了标志位WindowManager.LayoutParams.FLAG_SECURE来保护安全隐私内容,系统会阻止这些内容被截屏或者在不安全可靠的场景中显示出来:
- 阻止屏幕截图
- 在Recent apps中只显示应用名字和图标,不显示内容
- Google App的Now on tap功能不会区分析你的页面内容
当然这只是针对app的开发,无法对整个系统进行防护。
方案:
Index: frameworks/base/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java
===================================================================
--- frameworks/base/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java (版本 4792)
+++ frameworks/base/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java (版本 4823)
@@ -35,6 +35,7 @@
import android.os