2012-08-09 75 views
0

我編寫的應用程序需要將非常機密的數據發送到HTTP服務器。由於這些數據的機密性,我需要儘可能保證連接的安全。我決定通過HTTP POST使用SSL。我的問題是我真的是SSL保護的新手,我對在Android上創建SSL應用程序的過程有些疑問。任何人都可以告訴我,我做得好嗎?關於Android的幾個關於Android的問題

要創建我的應用程序執行以下步驟:

  1. 我生成SSL密鑰和證書使用OpenSSL並且在這之後tutorial 我需要給.key文件到我的隊友誰寫的HTTP服務器,以便他可以配置Apache並使用.key文件來驗證發件人的身份是否正確?

  2. 我在此之後創建.bks密鑰庫tutorial 然後我使用相同的教程閱讀此密鑰庫,然後我可以連接到服務器。那麼服務器可以使用.key文件驗證我的身份嗎?

這就是我需要在我的應用程序和HTTP服務器之間創建安全連接的所有東西嗎?這樣做是否會正常工作和安全?

回答

1
  1. 錯了。您需要生成一個密鑰對:保持私鑰私密,給你的伴侶公衆密鑰。

  2. 你似乎沒有讀過你引用的教程。它正確地說,你可以用keytool完成整個過程。沒有必要將OpenSSL加入其中。

然而,本教程中有關Apache事情更快的聲明是A級廢話。它和HttpsURLConnection類都使用JSSE,它使用引擎蓋下的java.net.Socket,其速度首先是網絡綁定的。如果速度更快,那將是真正的奇蹟。或更慢。可能有其他原因使用它(我從來沒有),但這不是其中之一。恕我直言,更快的是設置一些系統屬性,並使用內置的東西,而不是寫幾碼的代碼。

+1

我猜測OP的朋友正在和他一起在這個項目上工作,所以在這種情況下他*會*需要私鑰放到服務器上。 – you786 2012-08-09 22:43:03

+0

@ you786當然不是。他可能需要將他的*證書,*包含他的* public *密鑰,輸出到服務器,所以它會接受它,但他的私鑰不應該離開他的手。否則它不是私人的,無辜的? – EJP 2012-08-10 10:16:01