2012-12-05 62 views
0

我正在爲我的電子郵件客戶端應用程序使用k9mail(Android)開放源代碼。目標是,用戶只能通過SSL安全訪問我的電子郵件服務器。所以我需要在我的電子郵件客戶端中安裝SSL證書。我想在客戶端安裝SSL證書的最佳方式是什麼?Android - 使用k9mail的OpenSSL安全證書

(即)當客戶端與服務器通信時(或)將其安裝在我的客戶端當我開發應用程序時,從我的服務器安裝它。 你能提出你的建議嗎?

+0

AFAIK k9mail詢問用戶是否接受證書,如果它碰到不可信的證書。這不能解決你的問題嗎?還是你想通過只允許你的服務器證書來限制用戶? – Akdeniz

回答

4

簡短回答: 當你開發它時,在客戶端應用程序中安裝/包含它。當客戶端與它通信時,不應該從服務器安裝它 - 這不是一種正確的方法(安全方面)。

長答案: 服務器證書必須以安全的方式傳輸到客戶端。這是爲了避免攻擊者用自己的證書替換它,以便稍後它會假裝他是攻擊者,是郵件服務器(中間人攻擊)。 如果您只是在客戶端與服務器通信時將證書下載到客戶端上,我們無法證明您認爲是您的服務器的實體實際上是您的服務器,除非您已經建立了安全(加密/認證)通道(其中如果您已經擁有該安全連接,則無論如何您都不需要您的證書)。

因此您必須事先生成您的服務器證書並將其包含在應用程序中。另一種方法是通過物理介質或其他安全通道傳輸它(這並沒有什麼意義..)