2011-11-17 85 views
1

我想對我在Android應用中製作的SSL連接執行額外驗證。 基本上我需要能夠:Android和證書的額外驗證

  • 查看遠程主機的證書我連接到了擴展驗證(EV)狀態
  • 找出對端的證書的根證書頒發機構。例如。我想知道它是否是VeriSign證書。

爲了詳細闡述一下,我正在編寫一個需要高級別安全性的客戶端,並且我們的組織正在所有服務器上使用來自VeriSign的EV證書。我想要阻止任何受到威脅的證書頒發機構,或者任何能夠欺騙證書頒發機構僞造我們域的證書的人員能夠劫持應用程序。

這是可行的,如果是這樣,如何?有沒有辦法從URLConnection對象或HTTPClient對象等獲得有關遠程端證書的更多信息?

回答

0

首先:您不可能「阻止任何受損的證書頒發機構」爲您的域頒發證書。如果它被破壞,他們可以發佈任何他們想要的東西。你可以做的是創建一個有限數量的可信CA證書的信任存儲庫,比如只有VeriSign。這樣,即使相關的CA受到攻擊併爲您的域頒發證書,也無所謂,因爲您首先不信任它。這也會照顧第二顆子彈。要進行額外的檢查,您需要實施並安裝您自己的X509TrustManager。詳情請查閱JSSE reference guide