通過代理記錄 HTTPS 流量
如何配置 squid(或任何其他)代理伺服器以記錄通過 HTTPS 訪問的 URL 和下載的文件?是否可以?
您只能在非常具體和專門的情況下執行此操作。
問題在於,在 HTTPS 連接中訪問的 URL 以及其中發生的事情都受到 SSL 的保護。為了向內看,你必須突破這種保護。
做到這一點的唯一方法(沒有通過破壞一兩個加密算法而廣為人知)是對您的使用者執行中間人攻擊。您必須使用 SSL 證書為世界上的每個域設置代理伺服器 - 全域萬用字元證書(具有 AltNames
*
、*.*
、*.*.*
等的證書)或可以動態生成 SSL 證書的證書(使用您自己的本地 CA)。您不會從已建立的“全球信任”CA(好吧,也許是Comodo …)那裡獲得這樣的證書,因此您必須做所有自簽名的事情,然後配置將使用此代理的所有設備信任該本地 CA。這個信任問題就是為什麼你只能在“非常具體和專門的情況下”這樣做。完成該設置後,您可以解密所有通過的 HTTPS 流量,記錄它,然後使用終端站點自己的 SSL 證書重新加密它。
在你跳起來之前,點擊你的腳後跟並大喊“yippee!”,有一些事情需要注意。這個過程中的危險和警告是相當大的。
您需要一個代理伺服器(或伺服器場),它有足夠的能力為使用代理的任何人建立的每個連接終止 SSL。對於小型辦公室來說,這並不太難,但如果您在任何一家規模較大的公司工作,您將面臨一個重大的擴展問題。
安全風險也不是微不足道的。對於任何想要獲得一些多汁憑證的人來說,你的這個代理農場現在是一個非常高價值的目標。請注意“不要把所有的雞蛋都放在一個籃子裡”這句話——或者在這種情況下更有用的是,“把所有的雞蛋都放在一個籃子裡,只要確保它真的是強大的籃子”。不要以為人們不會發現它;如果你知道你在尋找什麼,那麼辨識這些東西並不難,因為你無法將它部署在一個沒有人發現(以某種方式或另一種方式)的組織,任何可能懷有頑皮想法的內部人員都可能非常非常受誘惑。可能不值得闖入十幾個台式機來獲取憑據,但它更有價值-和更少的工作和風險——彈出一個中央 HTTPS 代理並觀察一切。
至於究竟如何在 Squid 或任何其他可用的代理解決方案中執行此操作,而不是手動輸入所有內容,我將向您推薦 Squid 文件以了解SSL 碰撞和動態 SSL 證書生成,它們將一起為您提供訪問權限到加密的流量,而不會產生過度的瀏覽器安全警告。一旦你明白了,記錄連接是微不足道的。