3

Chrome 20(或 chrome 19)中有一个功能(或错误 - 请参阅Chrome 不删除会话 cookie问题 - 可能是问题 128513)。有一个选项“当我关闭浏览器时清除 cookie 和其他网站和插件数据” - 禁用;和“继续我离开的地方” - 启用。使用此类设置,即使在关闭浏览器后,Chrome 也会保存会话 cookie(在浏览器关闭时标记为删除)。甚至 https(安全)cookie 也会被保存。

(我仔细检查了 Chrome 是否已关闭,并且这里没有任何正在运行的 Chrome)

所以,问题:

Chrome 如何在 UserDir 中保存此类仅限会话的 cookie(在所有用户设置的目录中,就像 firefox 的配置文件一样)?假设 chrome 已关闭,我们可以完全访问 UserDir 和注册表。

cookie 存储在哪里?它们是 SQLite 还是其他磁盘格式?它们是否加密?

4

1 回答 1

1

嗯,Chrome的UserDir中似乎有“Cookies”文件:

Documents and Settings\USERNAME\Local Settings\Application Data\Google\Chrome\User Data\Default

Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default

该文件位于 SQLite 数据库中(可以通过许多工具打开,例如 sqlitebrowser.org/)。有表“cookies”(2015 年 4 月,M42 稳定版):

INTEGER creation_utc
TEXT host_key
TEXT name
TEXT value
TEXT path
INTEGER expires_utc
INTEGER secure
INTEGER httponly
INTEGER last_access_utc
INTEGER has_expires
INTEGER persistent
INTEGER priority
BLOB encrypted_value

许多最近 cookie 的“值”文本字段为空;cookie 值存储在encrypted_valueBLOB 中(我认为,前段时间曾切换到 cookie 的加密存储 -于 2014 年 2 月提交,问题 313323 - 较旧的 cookie 存储未加密,甚至是安全的)。会话 cookie 也在文件中。

为 (MAC) OS X 和 Windows 启用了加密:

在选定的操作系统上加密所有存储的 cookie。

作为保护私人用户信息目标的一部分,这会使用特定于用户的加密 API 对操作系统上的 cookie 值进行加密,并且不会以其他方式保护这些数据。

性能测试表明,在 Mac 上每个 cookie 的损失约为 1 毫秒(无论大小),在 Windows 下为 0.1 毫秒到 0.7 毫秒(取决于大小)。这在旧硬件上会更高,但仍然微不足道。

加密数据是二进制的(在 Windows 上具有 128 字节的开销)并且二进制数据必须存储在 BLOB 中,因此只有两个字段(“value”或“encrypted_value”)中的一个具有数据,而另一个为空。但是,在访问 cookie 时需要读取和写入这两个值,因为它们被标记为“非空”)。

溢出时有几种解密工具: * 对于 Windows:Chrome 中的加密 cookie * 对于 Linux 和 OS X:在 Python 中解密 Chrome Linux BLOB 加密的 cookie解密 Chromium cookie

还有一个“当前会话”文件,当 Chrome 使用 0x534e5353 0x01 (SNSS\0x01) 魔法运行时受到保护。有关格式的一些信息在这里:https ://github.com/JRBANCEL/Chromagnon/wiki/Reverse-Engineering-SNSS-Format (来源 - chrome/browser/sessions/session_command.h)

于 2015-04-23T03:35:40.527 回答