热点点评 | 由App删除照片事件分析Android存储机制

admin 2022年11月25日10:57:37评论66 views字数 3123阅读10分24秒阅读模式

热点点评 | 由App删除照片事件分析Android存储机制

事件简述:1112日,有网友曝光一段视频,称自己双11在某购物App买了商品,发现有质量问题,就向平台反映并上传视频证据。随后,他的华为手机提示,该App删除了视频。该网友认为,该App调用自己的手机权限,删除了其录下的关于收到货物有问题的视频证据。

热点点评 | 由App删除照片事件分析Android存储机制

到底为什么会产生这种情况,我们需要先对Android存储机制做一个分析。


一、Android存储的分类



App对手机存储空间的操作分成“内部存储”(也叫私有存储)和“外部存储”(也叫公共存储)两个部分。外部存储又分成了“私有目录”和“公有目录”两个部分。如下图:

热点点评 | 由App删除照片事件分析Android存储机制

“内部存储”和“私有目录”的目录结构有点相似,一般包含filescachedatabases等目录,files目录保存的都是App会直接使用到的、比较重要的、需要长期保存的文件数据,比如配置文件,而cache目录保存的一般都是不太重要的临时文件,比如图片缓存等。cache目录下的文件可以被系统的数据清理功能进行删除,从而腾出更多的手机存储空间,files目录下的文件不会被清理。

公有目录”保存的都是可以跨App读取和操作的公有的数据内容,Android操作系统默认包含了DCIM(相册)、Documents(文档)、Download(下载)、Movies(电影)、Music(音乐)、Pictures(图片)等,App也可以将自己认为可以公开或需要长时间保存的数据也存放到公有目录区域。

“内部存储”和“私有目录”的数据,操作系统会在App被卸载的时候自动同步删除对应的数据,“公有目录”的数据只有手动删除,或者在恢复出厂设置的时候,勾选对应删除公共存储区域选项,“公有目录”区域的数据才会被删除。使用恢复出厂设置功能的时候,如果没有勾选删除全部数据的选项,或者勾选了保留数据选项,“公有目录”区域的数据也会得到保留,里面的照片、视频等信息不会被删除。这就是部分用户认为完成了恢复出厂设置动作,但是拍的照片和视频还能被读取的原因。

热点点评 | 由“App删除照片”事件分析Android存储机制


二、存储与权限的关系



存储区域分成了“内部存储”、“私有目录”和“公有目录”三类,这三类存储区域对应需要声明的权限与操作系统的版本不同有着一定的区别。

“内部存储”,这个区域的数据App是不需要申请任何权限,App就能正常地读、写、删等操作自己包名目录下的文件。这部分的数据也只有App自己能够操作,其他App是无法操作的(获取ROOT权限除外)。

“私有目录”,Android4.4以下版本的操作系统,操作“私有目录”中App包名目录下的文件需要申明READ_EXTERNAL_STORAGE(读取)和WRITE_EXTERNAL_STORAGE(写入)两个权限(合并起来为STORAGE(存储)权限组),Android4.4以上(包括现在最新的Android12)App操作“私有目录”App自己包名目录下的文件无需任何权限。由于“私有目录”是从“外部存储”划分出来的一个区域,所以其他App在获取了READ_EXTERNAL_STORAGE(读取)以及WRITE_EXTERNAL_STORAGE(写入)两个权限后,就可以操作其他App“私有目录”下的所有文件了。

“公有目录”区域的操作是需要申请READ_EXTERNAL_STORAGE(读取)和WRITE_EXTERNAL_STORAGE(写入)两个权限的。在Android10以下的操作系统中,只要App获取了READ_EXTERNAL_STORAGE(读取)以及WRITE_EXTERNAL_STORAGE(写入)两个权限,就能对“外部存储”中的所有文件进行操作,包含其他App的“私有目录”里面的文件。比如:一款天气类App获取存储权限以后,就可以读取你手机中的照片、视频、聊天App中发送的图片、文件等。随着个人隐私保护的加强,Android10版本及以上的操作系统,加强对“外部存储”中文件的操作限制,简单地说就是App就算获取到了READ_EXTERNAL_STORAGE(读取)和WRITE_EXTERNAL_STORAGE(写入)两个权限,也无法对其他App的文件进行静默操作了,比如:App在获取存储权限以后删除手机里的照片,操作系统会再次弹窗提醒,明确App的名称以及删除照片的数量及内容,用户明确允许以后,App才能删除对应的照片,用户拒绝后App删除照片的行为将被操作系统禁止。

除此以外,从Android10版本及以上操作系统,Android引入了在“公共目录”下“分区存储”的机制,这个机制核心是实现两点:一、App读写自身创建的文件不需要权限了;二、读取其他App创建的文件需要READ_EXTERNAL_STORAGE(读取)权限,写入、删除其他应用创建的文件需要用户的干预,比如二次确认和用户自主选择。

Android操作系统作为开放系统,还提供了一种机制,就是允许App开发者自行配置参数,决定是不是要用到最新版Android操作系统的保护机制。这就会导致,即使用户升级了手机操作系统版本,App还有可能沿用旧版本操作系统的机制,存储空间的保护并没有增强,这也就增加了很多不确定因素。


三、总结与建议



总之,Android操作系统在版本的迭代升级过程中,越来越注重保护个人隐私,所以Google在原生Android系统开发时逐步在加强对存储的管控,但带来一个问题就是规则越来越复杂,不断发布了相关的开发人员权限开发的规范,但并不是所有App开发者都能及时按照最新的机制来使用存储空间。下表是一个对存储使用方式的简单整理,供大家参考。

存储
路径
版本
权限
其他App是否可以操作
内部存储
所有
不需要
不可以
外部存储
私有目录
Android4.4
有权限可以
<Android4.4
READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
公用目录
<Android10
Android10
有权限并且二次授权或更高授权后可以

上述所有的分析均是基于Android原生操作系统的基础上进行的。国内的手机厂家还会在原生操作系统的基础上做一些修改、优化,以增强用户隐私保护。比如:上述事件中的华为手机,提供了删除照片视频提醒功能。安装最新操作系统的小米手机也将存储权限划分成为了访问相册以及访问社交应用文件两个范围。

所以,要保护好Android操作系统的存储空间,因开发人员水平不一,开发工作量巨大、兼容性考虑等等,确实还存在一定客观上的难度,有时候不好分辨是“刻意为之”还是“无心之失”。但是,有一点是确定的,如果在Android操作系统的存储空间使用方面不自律,将对用户的信任产生严重影响,“祸及自身”且“累及行业”,应当被全行业共斥之。

最后,为了更好地保护个人隐私,建议App开发者能将targetSdkVersion设置为大于等于30,这样就能使用Android10及以上版本的保护机制,让广大用户对存储空间的使用更放心、安心。

有误之处还请批评指正。

(本文作者:北京汉华飞天信安科技有限公司 彭根)


CCIA数据安全工作委员会单位介绍

热点点评 | 由App删除照片事件分析Android存储机制


北京汉华飞天信安科技有限公司是一个创业初期的技术驱动型公司,主要从事网络安全业务板块,包括网络安全产品的研发及服务。本公司着眼于移动互联网安全技术领域最前沿,凭借强劲的技术研发实力,以先进的、稳定的手机APP个人信息保护产品及服务为特色,向移动互联网安全提供了解决方案和领先的产品。公司推出的棱眼系列产品矛、甲、镜、云、智、盾及解决方案,全方位的解决App合规问题。

热点点评 | 由App删除照片事件分析Android存储机制

原文始发于微信公众号(CCIA数据安全工作委员会):热点点评 | 由“App删除照片”事件分析Android存储机制

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月25日10:57:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   热点点评 | 由App删除照片事件分析Android存储机制https://cn-sec.com/archives/1422708.html

发表评论

匿名网友 填写信息