我想閱讀一個在firefox中的java應用程序通過SSL連接發送到網站的信息。閱讀我的電腦在SSL連接上發送的信息
我正在使用WireShark,我相信如果我能以某種方式告訴wireshark firefox正在使用什麼加密密鑰,那麼wireshark將能夠解密ssl消息。
然後我會準確地知道這個網站是關於我的電腦。
我很抱歉,如果問題是模糊的...任何指針開始尋找線索將不勝感激。
我想閱讀一個在firefox中的java應用程序通過SSL連接發送到網站的信息。閱讀我的電腦在SSL連接上發送的信息
我正在使用WireShark,我相信如果我能以某種方式告訴wireshark firefox正在使用什麼加密密鑰,那麼wireshark將能夠解密ssl消息。
然後我會準確地知道這個網站是關於我的電腦。
我很抱歉,如果問題是模糊的...任何指針開始尋找線索將不勝感激。
沒有真正的編程相關。
但是爲了做到這一點,您需要爲您的應用程序連接到的網站(公鑰和私鑰部分)提供證書 - 因此,如果它不是您擁有的網站,那麼您將不會能夠做到。如果您控制接收網站,那麼只需在wireshark wiki上按照instructions。
Java應用程序將使用服務器的公共(SSL)證書加密所有信息(至少就您而言)。出於所有實際的目的,解密此後的唯一方法是知道您顯然沒有的服務器的私鑰,因此您無法解密它。
要獲得關於是否使用您的計算機的私鑰評論:
如果這是一個「正常」的SSL連接,客戶端(Java應用程序),將聯繫服務器並接收其公鑰,驗證它是有效的(由受信任的CA簽名),然後用它來協商用於加密的對稱密鑰。它從來沒有離開 - 即所有的Java應用程序加密使用服務器的公鑰,只能使用私鑰解密 -
公鑰/私鑰的方式,一切由一個密鑰加密只能由另一個密鑰解密工作服務器。
SSL/TLS支持客戶端證書,其中Java應用程序可以擁有自己的密鑰對並使用其私鑰對內容進行簽名以驗證其自身的真實性。然而,即使Java應用程序這樣做(可疑),它也無濟於事,因爲數據仍將被加密,因此只有服務器才能對其進行解密。
背景閱讀:http://en.wikipedia.org/wiki/Transport_Layer_Security和http://en.wikipedia.org/wiki/Public-key_cryptography
好的。你是說這是不足以知道我自己的電腦使用的私鑰? – bboyle1234 2010-01-24 12:34:38
假設你並不想以編程方式做到這一點,而只是想查看的同時調試頭,你可以使用查爾斯:
這裏有一些關於如何設置它來解密SSL流量的信息:
http://www.charlesproxy.com/documentation/using-charles/ssl-proxying/
謝謝喬!我會花更多時間檢查查爾斯。從初看起來,它看起來很棒。我非常感激。 – bboyle1234 2010-01-26 13:43:49
不,我不擁有該網站。非常感謝:) – bboyle1234 2010-01-24 12:10:34