Skip to the content.

首页 | 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同等目录下确实有此文件,且密码部分(loginspassword_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的可能再试:

也就是说,在启用主密码的情况下,暂时无法直接解密密码数据库