好久不见哇……虽然最近也没干什么正事吧
最近在用私密相册存东西的时候突然有点好奇小米的加密方式,正好MT管理器最近更新了MCP工具,所以搭配RikkaHub逆向了一下相册(虽然后面才发现网上早就有相关研究了……不过中文出来的资料确实挺少的,改用英文才发现一大堆,emm古法搜索已经彻底完蛋了)
然后小米的操作就让我有点懵了……不仅使用固定密钥甚至还把文件放在外部存贮目录/storage/emulated/0/MIUI/Gallery/cloud/secretAlbum/,尽管小米将其认定为是“云端私密相册的缓存目录”,但是(w我完全不用云服务)我发现本地加密的私密相册都会存在这里喵,搜了一些互联网资料得知很早就有人发现了这个方法还做出了解密器,但是现在澎湃版本已经全部失效了。
但是……失效的原因并不是因为小米更换了更安全的加密方式,也不是把文件挪了位置,而是……小米给这个文件夹上了特殊的权限保护 ^-^

如图就算是在拥有管理所有文件权限的情况下依然无法直接读取,当然终端sudo后就能正常移动出来。
到这里我觉得小米应该做的不错了,也不想再探查了,觉得需要root才能读取的话没什么意义,然后我被另一个提示吸引了

在私密相册中尝试编辑图片就会弹出提示需要进行SAF授权,然后我突然想到,小米……不会……
然后测试使用MT管理器SAF授权后就能访问了喵
这也告诉我们没事不要乱给权限
然后我就把目光瞄向了小米文件管理的“私密”文件,逆向出来后发现还是可以纯本地离线破解,而且还是使用静态密钥……
加密文件存放在/storage/emulated/0/FileExplorer/.safebox/(FileExplorer是特殊文件,在小米自带的文件管理中根本不会被显示出来)
但是这个文件夹稍微比私密相册保险一些,至少不能简单的saf授权读取,但是可以被shell权限读取喵……
加解密技术文档.txt (10.0 KB)
C老师总结的小米加密方式

多年以后金凡看到这个提示框会笑出来吗吗
所以就让AI写了一个软件,用于解密私密相册和私密文件喵(感谢D老师分析和C老师负责优化写的软件)
已知限制:
1、只能用于恢复自己设备因为忘记了隐私密码的重要内容,不可以拿去干坏事喵
2、原始加密文件名存放在文件管理的某个DB数据库中,加密时写入数据库,暴露在外的文件使用的是原始路径MD5值,无法逆算,所以恢复的加密文件不是文件的原始名称喵
3、保险箱必须要搭配shizuku授权才能读取解密喵,私密相册可以直接使用SAF授权MIUI文件夹即可
只测试了澎湃3和MIUI14,没有其他设备啦 ^-^
不过按照小米的性子“重构”都跨了好多个大版本了都能正常解密,所以合理推测基本没有区别喵
密码:fyop
题外话吐槽:
小米的安全性……无法评价喵
私密相册和保险柜的文件完全依靠静态密钥或者可逆推的算法离线加密,安全完全依靠文件系统对文件夹权限的控制,也就是说一旦被人找到漏洞可以无视授权访问文件那和裸奔无异
至于私密笔记逆向之后发现密文存放在/data/user/0/com.miui.notes/databases/note.db中,IV所有设备固定,密钥是每次随机生成的(除非清空笔记软件数据或者重装了系统),但是密钥明晃晃存放在files/miui_notes_secret_2……
也就是说,小米的所有私密内容的本地加密方式,都和我们设置的隐私密码无关,隐私密码只是用来验证身份的,实际密钥都是被写在代码里或者放在本地的喵
而且在让AI逆向的时候发现小米笔记本来是做了两套加密机制的


所以……小米的重构什么时候结束 ^-^
另外关于前面提到的保险柜原始文件名无法恢复,实际上是因为小米把被加密的文件原始名称写在了/data/user/0/com.android.fileexplorer/databases/private.db中,但是让我疑惑不解的是,明明数据库中存贮了文件在被加密之前的保存路径,但是实际解密的时候却必须让你给你指定恢复路径……而且由于加密文件本身使用的MD5化的名称,所以一旦清除了文件管理这个软件的数据就会导致小米自己也不知道原始文件名了……


不过还是稍微解释一下?……其实小米在最早期保险柜的密钥并不是固定的,而是用了IMEI作为密钥的一部分,但是从Android10+开始系统限制读取IMEI所以小米才开始回退使用默认密钥(就跟微信安卓端差不多吧喵,虽然当时大佬逆向出来的逻辑是存在使用IMEI作为加密密钥的一部分的,但是可能是为了兼容性考虑大部分人的密钥都是用的默认喵)
当然以上的加密方式都只针对本地,如果使用了小米云备份服务的话加密密钥和账户有关,就没那么容易解开了喵,但是云端的安全性和私密性……佬友们自行斟酌吧喵
本来吧,虽然小米的加密方式槽点很多,但至少在没有权限的情况下还是很难被第三方软件无感读取,所以也算相对安全吧……?
然而在伴随着
CVE-2026-0073和CVE-2026-43499这类漏洞出现后,只能说一切都成为了可能,特别是CVE-2026-43499,理论上是所有小米设备都受到影响,尽管该漏洞需要每个内核版本都单独适配,但是所花的也只是时间罢了,特别是针对热门旗舰机型光是酷安就有一堆大佬做出了一键可用的临时root,所以小米的保密也变得很不安全了
所以佬友如果真的有十分重要的文件还是建议使用专门的加密软件而不是依靠小米这种筛子喵