2012-07-08 62 views
3

在Chrome 20(或chrome 19)中有一個功能(或錯誤 - 請參閱Chrome doesn't delete session cookies問題 - 可能是issue 128513)。有一個選項「關閉瀏覽器時清除Cookie和其他網站和插件數據」 - 禁用;和「繼續我離開的地方」 - 啓用。通過這種設置,即使在關閉瀏覽器之後,Chrome瀏覽器也會保存會話Cookie(在瀏覽器關閉時標記爲被刪除)。即使https(安全)cookie也會被保存。從Chrome chrome userdir(> = 20)恢復會話cookie

(我反覆檢查瀏覽器被關閉,也沒有任何運行Chrome這裏)

所以,問題:

如何鉻中的UserDir節省這樣的階段Cookie(在豬病的所有用戶設置,它就像firefox的配置文件)?假設chrome已關閉,我們可以完全訪問UserDir和註冊表。

cookie的存儲位置?他們在SQLite或其他ondisk格式?他們是否被加密?

回答

1

嗯,似乎有 「餅乾」 文件中的Chrome瀏覽器的UserDir:

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等/)。有(「2015年4月,M42版穩定版)」表格「cookies」:

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的「value」文本字段爲空; cookie值存儲在encrypted_value BLOB(我認爲,前段時間切換到加密的cookie存儲 - commited in February 2014,issue 313323 - 舊的cookie存儲未加密,甚至是安全的)。會話cookie也在文件中。

加密對於(MAC)OS X和Windows中啓用:

加密所有存儲在選定操作系統上的cookies。

作爲保護私人用戶信息的目標的一部分,這將使用用戶特定的加密API對操作系統上的cookie值進行加密,否則不會保護此數據。性能測試表明,在Mac上,每個cookie(無論大小)約爲1毫秒,Windows下爲0.1毫秒至0.7毫秒(取決於大小)。這在較舊的硬件上會更高,但仍然不明顯。

加密數據是二進制數據(Windows上的開銷爲128字節),二進制數據必須存儲在BLOB中,因此只有兩個字段中的一個(「value」或「encrypted_value」)將數據與另一個爲空。但是,這兩個值都需要在讀取cookie時寫入&,因爲它們被標記爲「非空」)。

有溢出幾個解密工具: *對於Windows:Encrypted cookies in Chrome *對於Linux和OS X:Decrypt Chrome Linux BLOB encrypted cookies in Python; Decrypting Chromium cookies

還有一個「當前會話」文件,當Chrome運行0x534e5353 0x01(SNSS \ 0x01)魔術時會受到保護。關於格式的一些信息在這裏:https://github.com/JRBANCEL/Chromagnon/wiki/Reverse-Engineering-SNSS-Format(source - chrome/browser/sessions/session_command.h)