首页 | Blogs | 项目合集 | Bilibili↗
←返回 |
创建:2023-01-23 | 最后更新:2023-01-30
最近呢,注意到一个视频:
](https://b23.tv/BV1vP411T7Wc)
视频主要对Chrome系浏览器的密码储存机制提出质疑。
视频作者认为,明文存储加密的密码库的密钥是不安全的行为。
这事本身没啥问题,但是却没有人实践是否已修复?
说难听点,视频没问题,但是底下一堆带节奏的人,不实践就在BB说开发人员不负责任,不修bug,不照顾用户体验。
实践为主
本blog主要实践edge在主密码启用时的情况,所用版本:
Microsoft Edge
版本 109.0.1518.61 (正式版本) (64 位)
Windows 11 专业工作站版 22H2 22623.746
2023-01-23
按视频所述,访问下方的文件:
系统盘:\Users\用户名\AppData\Local\Microsoft\Edge\User Data\Default\Login Data
该文件是一个SQL Lite
文件(建议用SQLlite Studio打开),加密保存全部密码。
实际中,Edge同等目录下确实有此文件,且密码部分(logins
的password_value
列,图中选中部分)全部加密:
再按视频所述,系统盘:\Users\用户名\AppData\Local\Microsoft\Edge\User Data\Local State
是一个明文配置文件,其中密码的AES密钥就在里面。
用最好的文本编辑器&IDE——Notepad.exe
打开搜索文本串encrypted
:
取出所在json就是(由于隐私问题,对应键值已做处理):
{
"os_crypt": {
"encrypted_key": "RFBBU********************************PgPU="
}
}
那么这个AES密钥是不是数据库文件的密钥呢?
随便取一行的二进制,用WinHEX写到文件里面,再用EPL和模块快速搞个AES解密:
查看三种AES解密方法输出的文件,全部空白。
为了严谨性,调整程序结构后重试仍然空白。
考虑到base64的可能再试:
也就是说,在启用主密码的情况下,暂时无法直接解密密码数据库