在食品安全方面,辛吉飞可谓是掀起了一阵看食品配料表的风潮。我很震惊,原来我们吃了这么多年的食物,居然有这么多和“我以为”不相符的地方。但是,这一切在他们业内,却早已是习以为常的东西。
于是,我就在想,在我所处的IT界,有没有我习以为常,同时也会让你很震惊的事情。所以,我就选取了新闻和媒体经常提到的,关于手机隐私安全的问题,再做一个更细致的科普。借此也希望大家,在安装软件的时候,可以看一眼权限的“配料表”。
一、权限是什么?
你花了半辈子的钱,买了一套房子,是要结婚用的,肯定不允许别人随便用。于是,你给房门按上了锁,除了你,别人都没有钥匙。
后来,你媳妇搬进来了。你给她一把钥匙,于是她就能进出这套房子了。对于这套房子的操作,除了换房产证,媳妇几乎是可以代替你做决定的。
后来,你媳妇的姑妈来了,姑妈也可以在你家住,但是基本上都是你给开门,因为她住两天就走。
再后来,你妹妹要来你家里住一个暑假,兼职打工。为了方便,你给妹妹一把钥匙,方便她出入。等她开学了,你就会把钥匙收回来。
上面的例子中,不同的人对于房子的使用,体现出了不同的权限。你拥有所有权,媳妇拥有共有权,亲戚拥有临时使用权。
之所以要有这些权限,其实是为了方便管理和降低风险。你需要让送冰箱的工人进入你家,完成安装和调试,但是没有必要给他一把钥匙。
其实,你手里的手机也一样。“微信”、“支付宝”、“今日头条”、“抖音”这些App都住在手机这座大房子里。它们想要干什么,比如往手机里保存个文件,是需要权限的。而你就是手机的主人,负责对权限进行审核,是给它一把钥匙,还是只给它开一次门,这全看你怎么做。
但是,当软件申请权限的时候,或许你根本不看,或者看了也不明白,当时只顾着点击确定了。
下面,我就介绍其中一个权限,相信看完后,你再也不敢随便点击确定了。
二、通知使用权
为了更形象地介绍这个权限的威力,我做了一个小例子。这个例子是完全真实可以用的,也有源码可以运行,此例子可运行在安卓手机中。
我们就模拟3·15晚会的套路,从情景模式代入知识讲解。
2.1 场景还原
假设你安装了一个App软件,这个软件弹出了几个框,请求使用各种权限,其中有一个框提示你:请打开通知使用权的开关。你也照做了,很简单,就是滑一个按钮。
点开这个开关,这就相当于布下渔网了。
下面我们正常使用手机。不需要很长时间,我们来收网,看看都捉到了什么鱼。打开软件,给大家展示一下。
看看捕获到的信息,我给大家列一列:
类型 | 捕获内容 |
---|---|
聊天类 | 微信、QQ、钉钉的聊天信息,包含几点和谁聊,聊的具体内容,甚至整个群聊里每个人的发言 |
电话类 | 已接来电信息、已拨号码信息、未接电话信息 |
短信类 | 收到短信的信息,发件人、时间、短信内容(包含验证码) |
操作类 | 手机插上充电线、断开充电线、解锁屏幕、打开文件传输 |
就问你怕不怕,这些数据都能拿到,这要是上传到云端……
有朋友可能要夸我了,他说,哎呀,不得了,这个ITF男孩的技术真厉害,得到达黑客级别了。
我说,你别闹了,这个操作类比到武术领域,连个劈叉都算不上。
这个功能调用的是安卓系统官方的接口。也就是说,它并不是什么攻击或者入侵,是官方公开的一个正规的插口(业内叫接口)。就像插座一样,安卓系统提供一个凹槽,只要用户授权,任何一个App都可以插入,都可以读取到这些信息。而且提前问过了你,也说得很明白,我帮你回忆一下。
下面,我就介绍一下这个接口。
2.2 原理分析
Android(安卓)是一个系统。它能称为一个系统,说明它起码是一个小的闭环整体。比如消化系统,从吃到拉,都有器官或组织进行管理。
安卓系统也一样,有对各种模块的管理。比如,对通话的管理,对短信的管理,对相机的管理。其中,有一个服务是对通知栏进行管理。
通知栏大家都见过,但是你不一定这么叫。其实就是拿出你的手机,从上面往下划拉,就像卷帘门一样,自上而下垂出的一块幕布。这个界面,专业术语就叫“通知栏”。
通知栏里每一条都是一个通知消息,每当来一条消息,都会发出一声“不冷冷冷~”。
所以,Android系统需要对这个地方进行监听,以此来保证能发出“不冷冷冷”或者“等等等”。
Android系统里有一个类,名字叫NotificationListenerService
。看名字就知道,它的作用就是专门监听通知栏。其实,只需要不到10行代码,就能获取到上面例子中的信息。
我们都知道(现在留意也不晚,立等可验),手机不管是来了短信,还是插上充电器,都会在通知栏上增加一条通知消息,以此达到提醒你的目的。而这些消息,又都会发送给拥有“通知栏使用权”这个权限的App。而这个权限,是你赋予给这个App的。
这就是我上面演示的程序,可以获取到那么多信息的原理分析。这个原理,像苯甲酸钠添加剂一样,并不是什么秘密,是官方允许的,也写在了申请提示框里,很多App都在用,电子市场一搜一大堆。
如果想要查看你的手机哪些应用,具有这个权限,可以去设置里搜素“通知使用权”。列表里有的,是要申请的。开关打开的,是你已经同意的了。
看我的手机里,电子秤也要这个权限。
但是,我只允许了华为官方的App,因为我需要它给我提供便利。
三、利弊分析
技术无罪,核能源既有污染也能提供巨大的能量。工具无罪,菜刀既可以切菜也可以伤人。
通知使用权,也一样。一旦你给一个App授予这个权限,它能让你享受它带来的便利。
最常见的一个正面应用就是智能手环。
你来电话了,手环会响。来微信了,手环也会响,还能看内容。它的实现原理也是使用了通知使用权。你手机里收到的所有通知都会经过手环绑定的App,然后App再做进一步筛选,决定是到此为止,还是发送到手环提醒你。你也因此享受到,不用碰手机,就可以看到手机上的内容。
那么,至于App厂商拿到这些消息,除了发送给手环之外,还有没有做其他操作,以我十多年的IT研发经验来说,无法判断。
对于我来说,因为我是内行,我一般不用外面的App,我都是自己开发App来用,反正成本也不高。比如我做了一个有意思功能:监听到老婆或者老板发来的微信消息,会发出巨响。其他人发的消息就正常响动。自己开发的,用着放心,另外联网权限我都给禁止了。另外,公司领导厌恶钉钉消息已读未回。那我从这个App上一样看消息,我既了解了消息,钉钉依然是未读状态。
这就像是大户人家的管家一样,主人越是少操心,管家入侵的就越多,主人一点也不用操心了,估计这家也该换主人了。齐国的“田氏代齐”就是这样一个例子。齐国原来是姜子牙“姜”家的,后来来了一个姓田的管家,他把齐国打理的井井有条,老姜还很开心,你看这个员工多卖力,加班都不要加班费。后来,齐国就改为田姓了。现在的电脑管家或者手机管家也一样,想要手机安全吗?把家里的钥匙交给我吧,给我,你就安全了。
总之,这都是个人的选择。但是,有个前提,前提就是做选择前,你一定要让别人了解,你的选择意味着什么。一方面App厂商不要故意遮掩风险点,另一方面用户也要为认真勾选条款为自己负责。
下面,我就给大家普及一下手机权限方面的知识(仅限安卓手机,因为我没钱买苹果手机,没有用过)。希望大家了解以后,再去做一次选择,考虑一下是把权限交给别人,还是握在自己手中。
四、排查方法和安全建议
自己当自己的手机管家,其实很累,不但要具备专业知识进行判断(是家人还是临时访客),而且还需要频繁授权和取消授权(给送货工开门和关门)。
刚刚有个读者朋友,给我的另一篇文章《终于,掘金也有人讲傅里叶变换了》发表了一条评论,他说应该“让科学流行起来”。
是的,应该让科学流行起来,应当尽量活得明明白白。我可以把权限交给你管理,但是请先让我明白都有哪些权限,这些权限都会影响什么。不只是手机,我觉得保险、理财、食品等各个行业都应该是这样。如果你不说清楚,还故意隐藏什么,那我只能自己去学习了,只有自己才会关心自己利益。
方法我列在下面了,仅供大家参考。
4.1 权限汇总
安卓手机中记录在案的权限,或者说通过代码可以操纵的权限,大约有100多种。这也得看你手机的配置,比如你手机有NFC(可以代替刷门禁或者银行卡)的模块,那么就有对应管理NFC的权限。
下面是文字版的,你可以快速跳过,看不懂不要紧,后面我会拣重要的讲。贴出来的目的主要是体现它确实多,因为你只有看到了才会相信。
安卓权限名称:获取粗略位置、获取精确位置、访问定位额外命令、获取模拟定位信息、获取网络状态、获取WiFi状态、账户管理、验证账户、电量统计、使用蓝牙、蓝牙管理、收到短信时广播、连续广播、拨打电话、通话权限、拍照权限、改变组件状态、改变配置、改变网络状态、改变WiFi多播状态、改变WiFi状态、清除用户数据、底层访问权限、删除缓存文件、删除应用、电源管理、应用诊断、禁用键盘锁、转存系统信息、状态栏控制、工厂测试模式、使用闪光灯、强制后退、获取应用大小、获取任务信息、允许全局搜索、硬件测试、注射事件、安装定位提供、安装应用程序、内部系统窗口、访问网络、结束后台进程、管理账户、管理程序引用、高级权限、社区权限、软格式化、修改声音设置、修改电话状态、格式化文件系统、挂载文件系统、允许NFC通讯、处理拨出电话、读取日程提醒、读取联系人、屏幕截图、读取收藏夹和历史记录、读取输入状态、读取系统日志、读取电话状态、读取短信内容、读取同步设置、读取同步状态、重启设备、开机自动允许、接收彩信、接收短信、录音、排序系统任务、结束系统任务、发送短信、设置闹铃提醒、设置总是退出、设置动画缩放、设置调试程序、设置屏幕方向、设置应用参数、设置进程限制、设置系统时间、设置系统时区、设置桌面壁纸、设置壁纸建议、发送永久进程信号、状态栏控制、访问订阅内容、写入订阅内容、显示系统窗口、更新设备状态、使用证书、使用SIP视频、使用振动、唤醒锁定、写入GPRS接入点设置、写入日程提醒、写入联系人、写入外部存储、写入收藏夹和历史记录、读写系统敏感设置、读写系统设置、编写短信……
这么多权限,不同的人对它们的敏感程度不同。有的人感觉位置信息很重要,我在哪里不想被别人知道,尤其是我媳妇。有的人觉得位置无所谓,我的联系人很重要,那是我多年积累的客户,别人知道了就能取代我。还有的人,感觉联系人无所谓,手机震动这个权限很重要,我经常把手机放到马桶边上,一震动就掉下去了……
经过我个人统计,结合官方的标准,基本上有这么几类权限,算是敏感权限的红线。
4.1.1 电话短信类
通话和短信,是手机最基础的通信功能。
你自己打开通讯录,拨号打电话,当然没问题。但是,如果别的应用向你申请通讯录权限,你就需要注意了。
一旦你允许了这一类权限,App能做到什么呢?
权限名称 | 一般操作 | 风险 |
---|---|---|
读取通讯录 | 读取电话本里的姓名和号码,传到平台判断有没有朋友也使用这个软件,实现可能认识的人 | 你所有的电话联系人被人家copy了一份 |
写入通讯录 | 很少有App使用,有的话一般就是往通讯录里写入自己家的客服电话,方便用户拨打或逃避推销拦截(联系人不会被拦截) | 通讯录随便删除和修改 |
读写通话记录 | 想象不到如何应用 | 读取所有的通话记录信息,包括通话人员、时间、时长;随便修改、删除已接未接电话记录 |
拨号 | 直接向任意号码打电话 | 在你不知情的情况下随意打电话,挂断电话 |
短信读写 | 平台读取短信验证码帮助用户回填到输入框 | 所有短信内容泄露、私自发送确认短信 |
4.1.2 音视频采集类
手机从通讯设备转变为娱乐设备,其中一个最重要的助力,就是手机加入了一系列的多媒体模块。
我们可以丢掉录音机、收音机、电视机、照相机、录像机、GPS导航仪,仅仅用一个手机就可以实现他们全部的功能。但是,要录音录像,是需要权限的。
权限名称 | 一般操作 | 风险 |
---|---|---|
相机 | 实现拍照、录像,分享创作 | 非正常录制,泄露隐私 |
麦克风 | 录音实现发语音消息或打字 | 非正常采集,泄露隐私 |
位置 | 获取位置实现导航或附近服务 | 非使用期间采集,泄露隐私 |
4.1.3 文件存储类
系统可以运行的基础就是文件。拍了照要存成图片文件,录了抖音也是存成视频文件,同事相互发送的办公文档是办公文件。
基本上,每个复杂一些App都需要文件存储的读写权限。所以,你会发现,就算是选个头像,App也会申请文件的读取权限,因为不允许,它无法拿到相册里的图片。但是,允许了,所有的图片,它都能拿到。
权限名称 | 一般操作 | 风险 |
---|---|---|
读取存储 | 选取文件发送给其他设备 | 非用户操作,未选择文件被窃取 |
写入存储 | 创作作品保存、修改、删除 | 恶意操作,文件被删除或者清空 |
这个权限是最普遍的,看起来是无公害的。但是就怕细琢磨,还是管家的那个例子,需要享受它的便利和承担它的风险。
我使用的手机,有一个功能,可以在相册里搜需求。我搜了一个关键词:“银行卡”。
结果出现2张图片,一张是银行卡,另一张是文档截图,是当初我备忘的一张入职通知书,上面有一句话:入职请携带农商银行卡。
谈隐私,你往哪里跑,聊天截图也会给你分析的妥妥的。
4.1.4 其他权限
除了基础通讯类、多媒体采集类、文件存储类,其他也有一些我认为比较关键的权限,或者称为“设置”。
比如,开发者模式中的USB调试开关。这个调试模式是给我们这些写软件的人用的。一旦打开是很危险的。就相当于外科医生给你开膛破肚了,还没有缝上的那种状态。
我们看到,你打开时,手机也会提示你要谨慎。但是他们没有说到底有多危险。
下面是我亲自实践的一个功能,借助USB调试,利用无线网连接,使用自动化脚本,执行了一段无人操作。不用任何人操作,你的手机会根据我的指令自己动:让手机一直亮屏,不要锁屏。
这个也并非是什么黑客攻防。平台内容审核的朋友不要给我禁止发布了。这个在业内也是基础操作,叫做自动化测试。很多软件会测试性能,不是靠人一次次点击,很多就是靠这种自动化脚本自己去执行。有些鼠标号称可以点击多少万次,就是这么测出来的,结果真实有效。这个操作,在业内,迁移到武术领域可以算是一个后空翻,是基本功。掌握的人不是高手,是实习生水平。
USB调试开关,大家不用太担心。就算你想打开,非发烧友,你也找不到入口。你只需要检查一下,是否被别人打开过就可以了。去设置里搜“USB调试”,如果打开了就关闭它。搜不到,说明没开启过。
另外,还有一个需要注意的是录屏、截屏权限,这个权限加上文件存储写入,如果被别有用心的人使用,可以监控你的手机屏幕。相当于在你手机上,安装了可以录像的摄像头。
下面,我给大家说一下,如何去检查这些权限的开关状态。
4.2 排查方法
权限的管理不是一次性的,并不是一锤子买卖。随时可见,随时可改,随时可以后悔。
基本上,你有两种方式接触到它们。
4.2.1 使用软件时
如果有印象的话,每次安装新软件,或者使用某项权限时,手机会弹出一个弹框,一般像下面这样。
“ITF 男孩”是我自己写的App的名称,这个时候你拿谁家的App都不适合。我想要把一张图片保存到手机上,这时候就需要使用文件存储权限,它要访问我设备上的文件。我允许了之后,这个App就可以读取我手机上的文件,也可以往手机里写入文件。不允许的话,就没法保存图片,这个是合理的。
有时候你还会遇到下面这样,尤其面对录制类,这种敏感权限时。下面是请求使用相机的权限。
这个与第一个的不同点是,它是三个选项,除了“禁止”之外,其他两个分别是“仅使用期间允许”、“允许本次使用”。不同品牌的手机叫法不一样,但是意思都是一样的。“本次允许”就是这一次允许,下一次再进来还会向用户申请,就相当于你每次都去给客人开门。“使用时允许”指的是只要用这个软件时,允许了这一次,下一次再遇到,不用向用户申请,可以直接使用。相当于给了亲戚一把钥匙。有些旧版本的系统也叫“总是允许”。
软件卸载重装,所有权限都会失效,需要重新申请和授权。
你可以通过卸载重装,实现对权限的洗盘。
不重装也没事,可以通过列表查询来了解权限的使用情况,那里也能再次配置。
4.2.2 查询权限列表
我们可以从两个维度来查询权限的配置:应用维度,权限维度。
如果想要定向地了解某一个应用都有哪些权限,可以从设置里找到应用列表,然后选择这个应用查看其详情(下面是一个动态图,里面有步骤,如果不是,那说明此文被改成文档盈利了,请告诉我)。
如果想要定向地了解某一项权限都有哪些应用使用,可以从设置里找到权限管理(每家厂商的手机操作不一致,可以从设置里搜索“权限”,找到权限管理进入),然后查看这个权限的详情。
点击某一项具体的权限,就可以查看哪些应用想用或者正在用此项权限。拿“健身运动”的权限举例。
健身运动就是获取你的运动步数等信息。从上图可以看到,多数我都禁止了,QQ允许了。
因为QQ、微信、支付宝都有步数排行,所以我给了他们权限。虽然美团也有步数相关的应用,但是我不在意,所以就没有必要让它知道我走了多少步。
其实,看到这里,估计你已经知道该怎么管理权限了。
没错,就是按需配置。这就是下面我要说的。
4.3 安全建议
如果你想要管理权限,可以挨个点开权限查看一下。每个权限都有介绍。拿我的手机举例子,看看短信权限的配置。
我们看到,好多应用都想要读取短信的权限,包括反诈中心App。它是想获取你所有短信,然后分析是否收到了诈骗短信,然后提醒你。但是,我没有允许任何一个应用读取我手机上的短信。关于短信验证码,我会自己看完,然后手动输入。一键读取并回填验证码,确实很便利,但是风险也是有的。不好判断它是读了一条,还是所有。
下面是麦克风也就是话筒的权限,列表中我允许了QQ可以使用,因为有时候会同好友发一些语音,会用到话筒。但是,QQ的使用频率也不高了,可以考虑改为每次使用时都需要申请,或者直接禁止掉。而对于其他的应用,一律禁止掉,如果实在没法使用了,我会视情况再来开启。有时候,有些App会搞一些趣味小游戏,比如朝着话筒吹泡泡,这时候你就必须给它开启话筒权限了,不然真的没法用。
有些App对于权限的申请,从我看来根本没有必要。比如一个电子秤App,居然也申请录音权限。如果没有特定的场景,比如语音唤醒体重曲线图。否则,我们是不能给他授予录音权限的,这解释不通。
对于敏感权限,比如录音录像,如果非要给的话,只允许一次就好,毕竟对于短视频,你还是看得多录得少,一天偶尔录几次,临时授权也不麻烦。
我再教大家一个绝招,也算是一个四两拨千斤的招。此招至少值五毛钱,看完了你要备注秦始皇,V我五毛。这招就是,不管啥权限,你把文件存储给它禁止喽。这样,就算是有恶意App,那它录了音没地方存,获取了位置没地方写,拿着数据干着急(一般隐私数据是离线上传,实时上传容易被检测到)。当然,你App也没法用了。
五、总结
也可能有人会说我制造焦虑,在阻碍互联网的发展,尤其是那些互联网大佬们。
但实际上,最为焦虑的正是那些大佬。
上面这幅图是“全球首富”、“比尔盖茨第二”、“科技圈大佬”扎克伯格先生发的一个朋友圈。他晒出了他家的一款照片App,其用户图片数量突破了5亿张。我们都知道,他的Facebook一直以来都是通过收集用户数据进行盈利的。他对这个套路门清,所以他的电脑摄像头和麦克风都用胶带糊上了,不想让别人收集到数据。即便这个电脑不是他的,至少也是他身边人的。这就像是卖肉夹馍的摊主,一般不给自己的家人吃摊上做的肉夹馍。
对于我们,肯定没法和大佬们比。我和媳妇吃饭时在讨论买一个吹风机。吃完饭打开购物App,它就开始给我推送吹风机产品,连品牌都和刚刚对话里说的一样。我看了一眼智能音响、智能空调、智能手机……仿佛听见了它们在笑,就像上面扎克伯格笑的一样开心。
我们无法分辨,我们的隐私数据是不是被窥探了。我们也不知道,手机上的各种App在闲暇时都在做什么。这些App我们都是免费用的,但他们却是花了大钱做的。我们只能做到,不用地图App导航的时候,关掉定位权限。不录视频的App,关掉相机权限。一个天气预报App,无论如何我也不会授予它通讯录权限的。这样……起码能省不少电吧。
我从2009年开始接触智能手机编程,从Android 1.5观察到Android 13。其实从整个趋势来看,安全性是慢慢变好的。不管是行业规范,还是审查政策,乃至用户的自我意识,都是在慢慢地加强。一开始,权限不用申请,随便用。后来,权限需要列出来,那里为什么要用这个权限。再后来,权限需要让用户做一次选择。其实,这是所有用户推动的结果。所以,你我都是共建者,让我们一起维护行业的规范性。
我是TF男孩,一个IT男。欢迎大家提供线索,我将从IT人的视角对问题进行分析并分享,不限于技术问题哦。
本文原作者ITF男孩,在掘金是@TF男孩,禁止转载,侵权必究。
今天的文章手机中的权限安全,你知道吗?分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16307.html