安卓手机加密_从安卓1.0到现在的安卓10.0,开机密码都存放在了哪里?

防止疫情蔓延,请大家坚守在家,努力涨“姿势”

    小编于2009年毕业(注意是毕业不是肄业,本编经过了4年的大学深造,是有正规学历证明的!虽然之后从未拿出来向任何人证明过。),毕业后开始创业--卖手机(就是倒腾二手的)。

    虽然我们有着极其强烈的创业欲望与激情,然而,理想总是丰满的,现实是残酷的,赔的店租都交不起。。。。往事历历在目,不堪回首。当年正是经历了诺基亚巨头的轰然倒塌,安卓和苹果的迅速崛起,NOKIA N95,NOKIA N97, NOKIA E71,NOKIA E66,当时的明星机型,仿佛一夜之间再也无人问津,HTC G1;HTC G3;HTC 侧滑G2(G2分两款,一款直板一款侧滑); 三星I9000;HTC G7;摩托罗拉里程碑2;三星I9100,索尼爱立信LT15I(索尼和爱立信的合资公司,现在已经拆分);这些机型被疯狂抢购,不论是新机还是二手,大家痴迷的主要原因就是--有着丰富app资源并且开源的安卓系统(开源就意味着,可以可劲的折腾)。

98e1b8e0326ae39c107af1b92fe54dbf.png

    此时此刻,我们要插一个手机品牌-魅族。魅族在2009年推出了一款手机--M8,系统采用的并不是此时疯狂的安卓,而是-windows mobile。魅族团队对windows mobile的UI进行了疯狂的魔改,是当时唯一一款能够和当时的安卓以及IOS(苹果IOS系统的发展史小编在以后跟家详聊)进行PK的第三系统,运行流畅,交互完美,界面华丽,可玩性极高,被玩家称为“神机”,M8的出世颠覆的当时人们对于手机的认识,满足了手机用户当时对于一款智能手机的各种幻想,好的事情总是存在缺憾美,M8采用的触摸屏幕品控并不如意,导致了触摸故障返修率颇高(魅族公司当时的售后绝对算得上是金牌,免费换新在当时来说还没有任何一家手机企业施行,后来的苹果公司的换新政策也是学自魅族,而且在若干年后,魅族公司还施行了以旧换新,M8被魅友们称为最保值的手机。魅族公司从一个MP3,MP4设计生产企业一举进军智能手机行业,颠覆手机行业,作为实验品的M8一直没有被魅族公司所放弃,魅族公司的企业担当直接影响了几年后魅族手机销量,2015年出货2000W台,2016年出货2200万台,年销量超过很多国内元老级手机生产企业。),至今很多品牌的安卓手机UI设计上都还有当年魅族M8 UI的影子,所以小编认为,魅族M8对于安卓系统的设计和人机交互产生了深远的影响。

dd493920d36e8587a9933ce066cda755.png

    继续说安卓,当年基本上都是安卓1.5和安卓2.3的天下,这个时代的安卓界面相对简陋,安全漏洞也比较多,关键是安卓系统调试模式默认是打开的,adb默认直接就能连到电脑,删除开机密码仅仅需要进行ROOT即可,360root,root大师,刷机精灵,kingroot等等等等,针对安卓ROOT的软件比比皆是,开机密码这道“用户数据防火墙”形同虚设。

f6a902de0a26c4ea6ad0eaee39327a88.png

    data/system/password.key 这个文件就是数字密码/混合密码的存储文件,data/system/gesture.key这个文件就是图形锁密码存储文件。我么只需要把这两个文件删除,安卓手机的开机密码即被清除,除了开机密码文件之外,还有三个文件:

    data/system/locksettings.db

    data/system/locksettings.db-shm

    data/system/locksettings.db-wal

    这三个文件是基于sqlite数据库存储,里面有对开机密码的配置,如果仅删除key文件,没有删除locksettings文件,会导致手机重启后依然提示输入开机密码,而随便输入任何一个错误的开机密码都会顺利的进入系统,也有可能不论输入的密码是否正确都会提示密码错误。此后安卓4.X-5.1版本的更新中,对于开机密码文件的存储几乎没有发生变化,因为源码开源,开机密码文件的生成原理的作用原理被扒拉的裤头都不剩:

d24852a8bf204b662f0a5af35374b615.png

  简言而说呢,这个key文件即是:原文密码+设备的salt值,然后分别MD5和SHA-1操作,转化成hex值再次拼接就是最终保存到本地的加密密码了,所以针对key文件的破解也很明朗,只要找到salt值即可,而这个salt值就在locksettings.db里,然后只需要不断的修改原文密码进行运算,运算结果和key文件的hex值进行比对,如果比对一致,那么当前的原文密码即为手机的真实密码(各家算法稍有不同,以上为大致原理。)

9c810d1b1ab01875635a80ae8ef019c2.png

Rx-unlocker9000针对password.key文件的暴力破解

    直到安卓6.0的发布,开机密码文件突然变了画风:

    /data/system/gatekeeper.password.key 这个文件是数字密码/混合密码文件

     /data/system/gatekeeper.pattern.key  这个是图形密码文件。

    感觉文件名变的老长了,当然,密码文件生成方式和破解方式也随之发生了变化,更复杂也更难以破解,其中,google还定义了一个硬件密码方式用来生成key文件(目前还未能破解),但是由软件方式产生的key文件,我们是可以继续破解的:

49de5861771e4a350f7379bb77ba1415.png

Rx-unlocker9000对安卓6.0的开机密码文件进行破解

    这时候,有一个烧脑的问题出现了,如果一部安卓5.0系统的手机升级到安卓6.0系统,那么开机密码文件会发生什么变化呢?由于安卓5.0/6.0系统原理不同,所利用的开机密码文件也不同,安卓6.0并不会解析安卓5.0系统下生成的密码文件,安卓6.0将会生成新的密码文件,那么问题来了,如果安卓5.0在重启后没有输入密码的前提下进行升级,这时候系统是不能判定password.key的原始明文密码的,那么新生成的gatekeeper.password.key是根据哪个密码进行生成的呢?由于安卓5.0升级至安卓6.0的机器比较少,而且系统外升级的情况少之又少,我们并没有进行深入的研究,可以得出以下结论:

    1.安卓5.0和之前的系统,开机密码不仅仅以加密方式存储在key文件里,系统内部还存在一份以明文保存的开机密码(究竟保存在哪里不得而知),当手机从系统外部由安卓5.0升级至安卓6.0的时候,新的安卓6.0并没有直接访问password.key文件进行运算出真实密码进而用真实密码生成gatekeeper.password.key,而是直接访问手机存储的明文密码生成新的key文件。

    2.上述前提条件满足的情况下,升级将会出错,升级不成功或者升级之后会造成开机密码不正确,需要重置手机才能进入系统。实际情况是,没有一部手机能够完成上述前提条件进行试验,所以也仅仅是猜测。

    3.大部分手机在跨版本升级的时候都是系统下升级的,也就是说已经输入过密码进到系统内,系统会记录输入的密码,新的key文件是由此时记录的密码内容生成。

    在上述情况下安卓5.0升级至安卓6.0后,开机密码还能不能被破解呢?如果从安卓5.0升级至安卓6.0,此时新的key文件是采用的硬件生成方式,那么这个新的key文件目前是不能被破解的,如果新的key文件是采用的软件生成方式,那么破解木有问题啊,升级前后的密码是不变的,所以升级后会有一个情况就是:

/data/system/gatekeeper.password.key

/data/system/gatekeeper.pattern.key

data/system/password.key

data/system/gesture.key

    这几个密码文件共存,当然了,破解安卓5.0系统生成的key文件会更快呦!

    这种开机密码文件一直持续到安卓8.0未发生大的变化,直到google发布安卓8.1版本,情况又发生的变化,gatekeeper.password.key,gatekeeper.pattern.key被弃之不用了,那么安卓8.1的开机密码文件存储在里哪里呢?如下图:

a2ae9f43bfe8fde0ca1a04e8d510fef5.png

美图T9安卓8.1系统开机密码存储位置

    安卓8.1的开机密码存储位置:

   data/system_de/0/spblob/   该目录下有四个文件,此时的文件已经不区分数字和图形了。删除这个spblob目使录即删除了开机密码(仅针对用户区无加密和FDE加密方式的机型有效,FBE加密的需要进行在线暴力破解)。

    至此安卓8.1一直到安卓10.0一直在用上述的开机密码文件方式,那么以后安卓10.1和安卓11会不会继续改变其开机密码文件名称;目录;生成方式呢?我们耐心等待和继续研究。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值