网站首页 > 技术教程 正文
在android手机中最常见的设备保护方式就是锁屏密码,从最早的手势密码到键盘密码再现在流行的指纹密码。
这些锁屏密码在手机遗失后能有效保护手机隐私不被泄漏但也对执法人员提取手机证据造成了很大的困扰,在这里我们详细的说明下安卓手机手势密码和键盘密码的工作原理和破解方式。
手势密码原理和破解方式
安卓手机设置锁屏手势密码图案需满足三个要求:至少四个点;最多九个点;无重复点。
这种看似复杂的解锁方式在手机内部存储时使用的是明文转换后采用hash方式存储。Android设备图案锁定的加密存储过程:
下面设置一个图形加密锁测试一下:
第一步:图形输入。
输入上图一样的图案(看上去是个闪电图案,使用了四个点)
第二步:明文加密。
这一步是系统自动完成的,首先是九个点的数据含义,含义是这样的:从左上角起编号为 00,至右下角止编号为 08。那么上图中“闪电”的编码应该是01030406。使用SHA1算法对上述十六进制编码进行计算后得到密文“F2A5B79ECD8B5428F474355287BE6ED857E73208”。这一步系统会自动将图案转换成编码,再将编码算出密文的。因此我们是看不到的。
第三步:密文存储。
计算好密文后,系统会将密文存储在/data/system/gesture.key文件中,我们可以使用“adb pull /data/system/gesture.key”将这个密码文件下载到本地,得到密码文件后,用记事本打开是乱码的,要用十六进制编辑器打开才可以看到密文。
可以看到密文和上一步我们计算出来的是一样的。
对上面算法总结一下规律。从密码明文的编码来看,各单数位数字为零,双数位数字不重复地排列,并将这个排列进行单次SHA1运算。那么也就是说,通过数学计算可知,由于单数位确定,双数位不重复,则根据 Android 图案锁定规则可以设置的锁定图案总数是固定的,4个数的密码个数为9*8*7*6=3024。5个数的密码个数为15120个。6个数的密码个数为60480个。7个数的密码个数为181440个。8个数和9个数的密码个数都是36288个。也就是说一共密码的可能个数为985824个。由于密码复杂程度不高,破解相对容易。只要做一个字典进行暴力猜解就可以将正确密码解出来且速度很快。生成的字典50多m,暴力破解速度基本是秒破的。
另外现在有提供gesture.key在线解密的网站,只需要上传gesture.key或者提供里面记录的加密后的数据就可以破解出原始手势密码,当然破解出来的手势步骤还是从00开始的,对应到我们真实的手机屏幕上需要增加一位。
当然如果只是为了搞定这个密码,还有更简单的方法,就是直接adb shell到设备上,然后执行“rm /data/system/gesture.key”命令将密码文件删掉就可以了,删除后相当于没有设备图案锁,输入任意手势就可以进入到系统。
键盘密码破解
上面我们分析了对于手势加密的密码逆向和破解操作,那么对于键盘密码加密由于可以输入的密码范围相对于手势密码的最多9个点来说扩大了很多,在默认情况下允许用户设置4-16位字符密码,每一位密码范围为94个字符,包括52个大小写英文字母+10个数字+30个除空格外的标点符号。在这种要求下输入的字符,加入salt后进行SHA1和MD5散列值计算。这样提前先准备好密码字典采用暴力破解的方式已经不可行了,对于这种键盘型密码我们只能采取删除密码文件的形式去去掉密码而不能破解出原始密码了。
键盘型密码的加密文件和手势文件存放路径相同,文件名称为“password.key”,执行“rm /data/system/ password.key”进行删除。
- 上一篇: 新版H5视频播放器「支持加密/水印/广告...」
- 下一篇: 视频课件加密工具软件 视频教程加密
猜你喜欢
- 2024-10-23 点盾云视频加密软件如何实现防录屏?
- 2024-10-23 安卓勒索病毒来袭!加密文件、篡改密码、按下Home键系统锁死
- 2024-10-23 Android 的全盘加密容易破解 安卓系统强制开启全盘加密
- 2024-10-23 安卓手机5个隐藏功能,实用且强大,真是太爱了
- 2024-10-23 Android 14 QPR2 Beta 2新功能:Wi-Fi密码分享更便捷
- 2024-10-23 信号试加密的视频和语音电话 信号加密原理
- 2024-10-23 资深开发者教你如何破解 Android 手机锁屏密码
- 2024-10-23 使用 Security 在 Android 上进行数据加密
- 2024-10-23 您在 Android 上保存的密码可能会被泄露?
- 2024-10-23 Android密码仅用一张SIM卡就能攻破!?
你 发表评论:
欢迎- 05-05从virsh当中学习QEMU/KVM启动命令
- 05-05Win10 BCD文件损坏怎么修复?(bcd文件损坏win7)
- 05-05亚马逊春节假期期间的店铺管理设置
- 05-051分钟总结常用k8s常用诊断教程(k8s常见故障)
- 05-05VisiPics重复图片查找软件中文汉化教程
- 05-05微服务的发布实现方式1灰度实现(微服务实现原理)
- 05-05轻松掌握Java多线程 - 第二章:线程的生命周期
- 05-05德拉诺之王邪DK报告:PVE向小测试及分析
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)