安卓重大锁屏密码漏洞,国产手机有几个中招了?
haoteby 2025-05-22 10:30 55 浏览
上周,一条新闻吸引了托尼注意。
只用一张 SIM 卡,1 分钟不到就能解锁你的安卓手机?
一个国外小哥发现,不要刷机,不要电脑连线折腾,也不要 999 的 AK 火麒麟,只需要一张自己准备的 SIM 卡 ,就可以解锁别人的手机。
要知道这就意味着,如果你的手机丢了被人捡到,那陌生人可以用它自己的随便一张 SIM 卡就破解你们锁屏,数据安全形同虚设。
而且这个 BUG 会影响到的设备除了谷歌自家的 Piexl 以外,还包括开源的 LineageOS。
刑啊老哥,这空手套白狼的办法,让我有了一丝丝犯罪的念头。。。
咳咳打住,咱们还是先来看看这哥们是咋操作的吧。
因为手机没电而发现的 BUG
整件事情的起因非常简单,在小哥经过了长途跋涉的旅行之后,他的手机因为缺电而关机了,于是就顺理成章的充电重启。
恰巧他的手机开了 SIM 卡锁,每次重启手机或者插拔 SIM 卡后都需要验证。
需要输入自己设置的 PIN 码解锁,只有三次机会 ▼
更不巧的是,他忘了自己设置的 PIN 码,三次机会都浪费了。
这时候 SIM 卡就进入了一个“安全锁定” 模式,需要输入一个八位的 PUK 码才能解锁。
同时它还要求你重新设置这张 SIM 卡的 PIN 码。
而如果输入错了 10 次 PUK 码,那这张 SIM 卡就会销毁。
所以在小哥找到自己的 SIM 卡包装,输入 PUK 码,重置了新的 PIN 码之后,他终于成功的进入了自己手机的系统。
PUK 码一般写在 SIM 卡的包装卡套上
或者可以打电话或者向营业厅查询 ▼
进入了自己手机的系统。。。
发现问题了嘛,在整个过程中,他不需要输入自己手机锁屏密码,就可以解锁手机。
但是一般来说,手机在插拔 SIM 卡或者重启之后,都是要强制你手动输入一次密码才行的。
一张自己的 SIM 卡,这么简单就可以绕过别人手机的安全防线?托尼也找出了自己柜子底的 pixel 4a 试了试,按照小哥的教程一顿操作,结果真的打开了。。。
安卓的锁屏,就这???
此时已经输入了 PUK 码,重置 PIN 码中 ▼
谷歌的反应
按这 BUG 来说,那岂不是所有人的安卓设备都有安全性风险?
认识到这件事严重性的小哥也是第一时间把漏洞发给了 Google。
照到他自己的说法,这是他迄今为止最简单的一次报告了。。。一共就五个步骤,两分钟不到的时间就可以复现。
于是也顺便去查了一下谷歌的 “赏金榜单”,依据谷歌的说法,这种高危漏洞能拿到最高 10w 美元的奖励。
果然,比起一个大胆的想法。。。还是走正规路子来钱快。
但谷歌就不一样了,虽然收到这个堪称 “十万火急” 的 Bug ,但它的表现还是一如既往的风轻云淡。
开口就是 :“ 你这个 Bug 以前有人已经汇报过了( 虽然我们还没修 ),我们不鼓励重复的 Bug 汇报 ” ( 10W 美元别想了!)
除了态度以外,行动也在摆烂,小哥提交 Bug 三个月后,谷歌依旧没有修好这个问题,一直到 9 月的安全补丁更新,小哥发现自己的问题还是能触发。。。
期间他自己还跑到谷歌办公室去了一趟,当场给员工当场演示此 Bug ,但依旧没说好什么时候可以修复。。。
最后忍无可忍的小哥给谷歌下了 “ 最后通牒 ”。
你再不修,我就准备在 10 月 15 号公布这个问题辣!
从这句话开始,谷歌的态度突然变了,不但改口说可以给小哥 7w 美元的奖励( 虽然你不是第一个发现的人,但是感谢有你我们才开始修理这个 Bug ),也开始积极沟通修 Bug 的时间。
最后,终于在 11 月 5 日的安全更新中这个问题得到了修复,漏洞编号 CVE-2022-20465。
我们的手机,大抵可能应该也许是更加安全了。
BUG 从哪里来?
手机看上去是告一段落了,那这 Bug 到底是个咋回事呢?
托尼自己也不是非常专业的程序员,在看了小哥总结 + 谷歌修改的 AOSP 源码之后,
试着稍微那么理解了一下下,抛砖引玉将给大家看看,感觉讲的不太好的差友,也欢迎在评论区补充。
这次谷歌改动的地方还挺多的 ▼
简单来说就是在安卓上有个叫做 “ 安全屏幕 ” 的概念,它包括了我们的锁屏密码,我们的指纹数据或者是面部数据,也包括今天的 “ 罪魁祸首 ” —— SIM 卡 PIN 码以及 SIM 卡的 PUK 码。
这些安全屏幕呢,是实时更新,覆盖显示,就像下图一样,虽然我的手机锁屏了,但是在插入加了锁的 SIM 卡之后,SIM 卡 PIN 码锁就覆盖了手机的密码锁。
反应有点慢,中间剪了一段加速 ▼
而当一个 “ 安全屏幕 ” 完成了它的历史使命之后就要被销毁,就比如说我们输入密码解锁屏幕,输入 SIM 卡的 PIN 码解锁手机SIM 卡锁。
负责销毁它的函数,叫做
getKeyguardSecurityCallback().dismiss() 函数( 下面简称 dismiss( ) )
但是到这问题出现了,.dismiss() 它虽然负责销毁安全屏幕,可是它不负责消除哪一个安全屏幕。
也就是说不论是锁屏,还是 PUK 锁,碰上哪个就会清理掉哪个。。。
而偏偏这个安全屏幕会处在一个 “ 实时更新 ” 的状态 —— 因为手机会时不时检测 SIM 卡的状态。
所以在我们通过 PUK 锁重置完 SIM 卡 PIN 码之后,本来要销毁 PIN 码锁这个安全屏幕的.dismiss() 函数可能就会先撞上 “指纹锁屏” 或者 “密码锁屏” 这个安全屏幕,然后把它先行销毁。
啪,我们的手机就解锁了。
这就这次漏洞的成因,而安卓后续的 Bug 修改方式呢则是很简单,准备给 .dismiss() 函数增加 “ 认识能力 ”。
让它在销毁安全屏幕之前能认出来销毁的是谁,省的乱杀无辜。
面对 BUG,其它手机表现怎么样?
海外的故事告一段落了,Bug 得到了修改,我们的设备会更加的安全,发现问题的小哥也收获了收入。
不过托尼感觉比起听原生安卓的故事,大家可能更关心我们手上的系统表现的怎么样。
正巧今年新出的这几台手机我在柜子里吃灰,于是呢就给各位差友简单测试了一波。
手机的系统都展示在这里了,基本都是基于 安卓/AOSP 12 开发的。
都是刚拿出来直接测的,没有更新最新补丁 ▼
按照小哥的方法,托尼一顿操作猛如虎的测试下来,结果有点出乎意料。
除了用原生系统的 Pixel,每一台手机都守住了自己的 “ 安全底线 ” ,均在这个问题面前幸存了下来。
可能。。。因为大家都是自己重写了锁屏吧。
所以,这个 Bug 虽然听起来挺离谱和危险,但是其实对咱们应该影响不大。
但还是希望谷歌未来上上心吧,这么简单的漏洞,还能活到 2022 。。。
相关推荐
- 一日一技:用Python程序将十进制转换为二进制
-
用Python程序将十进制转换为二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:...
- 十进制转化成二进制你会吗?#数学思维
-
六年级奥赛起跑线:抽屉原理揭秘。同学们好,我是你们的奥耀老师。今天一起来学习奥赛起跑线第三讲二进制计数法。例一:把十进制五十三化成二进制数是多少?首先十进制就是满十进一,二进制就是满二进一。二进制每个...
- 二进制、十进制、八进制和十六进制,它们之间是如何转换的?
-
在学习进制时总会遇到多种进制转换的时候,学会它们之间的转换方法也是必须的,这里分享一下几种进制之间转换的方法,也分享两个好用的转换工具,使用它们能够大幅度的提升你的办公和学习效率,感兴趣的小伙伴记得点...
- c语言-2进制转10进制_c语言 二进制转十进制
-
#include<stdio.h>intmain(){charch;inta=0;...
- 二进制、八进制、十进制和十六进制数制转换
-
一、数制1、什么是数制数制是计数进位的简称。也就是由低位向高位进位计数的方法。2、常用数制计算机中常用的数制有二进制、八进制、十进制和十六进制。...
- 二进制、十进制、八进制、十六进制间的相互转换函数
-
二进制、十进制、八进制、十六进制间的相互转换函数1、输入任意一个十进制的整数,将其分别转换为二进制、八进制、十六进制。2、程序代码如下:#include<iostream>usingna...
- 二进制、八进制、十进制和十六进制等常用数制及其相互转换
-
从大学开始系统的接触计算机专业,到现在已经过去十几年了,今天整理一下基础的进制转换,希望给还在上高中的表妹一个入门的引导,早日熟悉这个行业。一、二进制、八进制、十进制和十六进制是如何定义的?二进制是B...
- 二进制如何转换成十进制?_二进制如何转换成十进制例子图解
-
随着社会的发展,电器维修由继电器时代逐渐被PLC,变频器,触摸屏等工控时代所替代,特别是plc编程,其数据逻辑往往涉及到数制二进制,那么二进制到底是什么呢?它和十进制又有什么区别和联系呢?下面和朋友们...
- 二进制与十进制的相互转换_二进制和十进制之间转换
-
很多同学在刚开始接触计算机语言的时候,都会了解计算机的世界里面大多都是二进制来表达现实世界的任何事物的。当然现实世界的事务有很多很多,就拿最简单的数字,我们经常看到的数字大多都是十进制的形式,例如:我...
- 十进制如何转换为二进制,二进制如何转换为十进制
-
用十进制除以2,除的断的,商用0表示;除不断的,商用1表示余0时结束假如十进制用X表示,用十进制除以2,即x/2除以2后为整数的(除的断的),商用0表示;除以2除不断的,商用1表示除完后的商0或1...
- 十进制数如何转换为二进制数_十进制数如何转换为二进制数举例说明
-
我们经常听到十进制数和二进制数,电脑中也经常使用二进制数来进行计算,但是很多人却不清楚十进制数和二进制数是怎样进行转换的,下面就来看看,十进制数转换为二进制数的方法。正整数转二进制...
- 二进制转化为十进制,你会做吗?一起来试试吧
-
今天孩子问把二进制表示的110101改写成十进制数怎么做呀?,“二进制”简单来说就是“满二进一”,只用0和1共两个数字表示,同理我们平常接触到的“十进制”是“满十进一”,只用0-9共十个数字表示。如果...
- Mac终于能正常打游戏了!苹果正逐渐淘汰Rosetta转译
-
Mac玩家苦转译久矣!WWDC2025苹果正式宣判Rosetta死刑,原生游戏时代终于杀到。Metal4光追和AI插帧技术直接掀桌,连Steam都连夜扛着ARM架构投诚了。看到《赛博朋克2077》...
- 怎么把视频的声音提出来转为音频?音频提取,11款工具实测搞定
-
想把视频里的声音单独保存为音频文件(MP3/AAC/WAV/FLAC)用于配音、播客、听课或二次剪辑?本文挑出10款常用工具,给出实测可复现的操作步骤、优缺点和场景推荐。1)转换猫mp3转换器(操作门...
- 6个mp4格式转换器测评:转换速度与质量并存!
-
MP4视频格式具有兼容性强、视频画质高清、文件体积较小、支持多种编码等特点,适用于网络媒体传播。如果大家想要将非MP4格式的视频转换成MP4的视频格式的话,可以使用MP4格式转换器更换格式。本文分别从...