2013-05-20 46 views
-1

我有SSL連接。如果我使用feddler或Charles應用程序,並且可以看到解密的SSL數據。我怎樣才能防止這個錯誤?如何阻止不受信任的證書?

更新: 我沒有導入查爾斯的證書,我的android設備已經紮根,我使用代理Droid應用程序並允許不受信任的應用程序。在這些操作之後,我可以看到解密的數據。我想阻止這個錯誤......

UPDATE2: 我使用的類EasyX509TrustManager.java(Apache)的檢查證書。你可以看到void checkServerTrusted。如果我使用「證書[0] .checkValidity();」 - 證書始終有效,但是如果我使用「standardTrustManager.checkServerTrusted(certificates,authType);」 - 證書可以有效(查爾斯關閉)或無效(查爾斯)。沒有「證書[0] .checkValidity();」它工作正常,但我不確定這是否正確。

+0

你能否更清楚一下你試圖阻止什麼(可能原因)。您提到的兩個應用程序是Web調試代理,不能用於破解用戶的數據,因爲您必須直接將應用程序指向它們。 –

+0

它是你的應用程序嗎?您是否首先繞過證書驗證? – Bruno

+0

是的,它是我的應用程序。我想阻止這個「黑客」,但不允許所有證書。 – monyag

回答

0

如果您尚未導入Charles'或Fiddler的證書,但您仍然看到設備的流量,這意味着您沒有正確使用HTTPS。您需要配置您的代碼,以便它對用於保護HTTPS連接的證書執行正確的鏈檢查。在大多數語言/框架堆棧中,這是自動發生的,您必須避免重寫它。

您使用什麼語言/框架,以及您使用什麼對象發送請求?

如果你有將調試器的證書導入設備,那麼默認情況下,大多數語言/框架會認爲它是可信的。爲了防止這種情況發生,您的代碼在允許通信繼續前最爲手動評估來自服務器的證書鏈。這種技術被稱爲「證書鎖定」。

+0

我使用類EasyX509TrustManager.java(apache)來檢查證書。你可以看到void checkServerTrusted。如果我使用「證書[0] .checkValidity();」 - 證書始終有效,但是如果我使用「standardTrustManager.checkServerTrusted(certificates,authType);」 - 證書可以有效(查爾斯關閉)或無效(查爾斯)。但我認爲,這不能解決我的問題? – monyag

+0

without「certificates [0] .checkValidity();」它工作正常,但我不確定這是否正確。 – monyag

相關問題