我想在Windows中打開瀏覽器,轉到HTTPS站點,並在使用Wireshark捕獲數據包時執行一系列操作。然後,我想使用加密的數據包捕獲來查看解密的HTTP流量。如果您放棄瀏覽器,訪問服務器或添加MITM,我知道有很多方法可以執行此操作(如下所示),但當您僅限於上述方案時,這些方法都不起作用。這裏是我的典型方法:如何從瀏覽器SSL/TLS會話導出主密鑰?
服務器:對於我有服務器私鑰的站點,請使用Wireshark的內置SSL解密。
MITM:SSL代理(例如Burp套件)將允許查看解密的流量,但這需要使用與服務器使用的不同的證書和密鑰對。
瀏覽器:openssl的s_client可以連接,發出請求並導出主密鑰,但這不會顯示關聯的網頁或運行javascript來計算後續請求參數。
有沒有辦法將主密鑰從「普通」瀏覽器導出,以便以後可以使用它來解密瀏覽器會話的數據包捕獲?
例如,當瀏覽器關閉時SSL/TLS狀態存儲在磁盤上?如果是這樣,我將如何訪問它?它在瀏覽器運行時是否可以在內存中訪問(如果有的話,我怎樣才能找到它)?
或者,是否所有由操作系統(Windows)存儲的SSL狀態數據都無法直接訪問?
另外,是否有辦法強制瀏覽器使用特定的主密鑰(以及任何其他關聯的SSL狀態數據,如會話ID等)用於特定的HTTPS連接?如果是這樣,我可以使用s_client設置SSL會話,然後將密鑰數據傳輸到瀏覽器並在同一會話中打開一個新連接。這將通過不同的方式實現相同的目標。