我正在開發一個Android應用程序,它需要通過SSL使用.Net Web服務,我沒有經驗。現在我正在尋找一些關於SSL握手和證書的指導和解釋。瞭解用於從Android使用.Net webservice的SSL
注意:服務器正在使用IP地址和NOT域名。它是一個Intranet應用程序。
到目前爲止,我已經創造了Web服務器證書(?所謂的自簽發)從IIS 7 從Android應用程序使用它,我發現這樣做的方法有兩種:
1)。在證書中嵌入證書(哪個證書?我如何得到它?)
2)。相信所有證書(PPL說有安全問題,通過這種方法,你可以闡述多個是否仍然這樣做握手?)
證書:
如何證書的許多類型是有在握手中,他們是什麼?
自簽名證書是否具有根證書?如果是的話,我怎樣才能得到它們?
是否可以移動/從一臺服務器複製自簽名證書到另一個?
握手:
首先,是這個過程是否正確?通過發送一個URL 開始與下列
客戶機啓動SSL握手過程:https://開頭到服務器
的SSL握手過程(從網站複製)進行說明。
客戶端最初向Web服務器發送它支持的每種加密算法列表。 SSL支持的算法包括RC4 和數據加密標準(DES)。客戶端還向服務器 發送隨機挑戰字符串,該字符串稍後將在 進程中使用。
嵌入式證書是否會在這裏發送?
Web服務器接下來將執行以下任務:
從加密算法 所支持的列表中選擇加密算法,並從客戶端接收。
向客戶端發送其服務器證書的副本。
向客戶端發送的隨機挑戰字符串
客戶端利用從 收到的服務器進行身份驗證服務器的身份的服務器證書的複印件。
客戶端從服務器 證書中獲取服務器的公鑰。
客戶端接下來生成預主密鑰。這是一個不同的 隨機字符串,該字符串隨後將被用於生成SSL會話的會話密鑰 。然後,客戶端使用服務器的公鑰對名爲premaster secret的不同值 進行加密, 將此加密值返回給服務器。這伴隨着 握手消息的密鑰散列和主密鑰。散列 用於保護握手過程中交換的消息。 散列是從服務器和客戶端之間傳輸的前兩個隨機字符串 生成的。
什麼是主密鑰?
服務器發送客戶端到目前爲止在雙方之間交換的所有握手信息的密鑰散列。
這是由什麼做的密鑰散列?
的服務器,然後在客戶端生成從 不同的隨機值和鍵的會話密鑰,並通過應用一個數學計算 。
會話密鑰用作共享密鑰來加密和解密在服務器和客戶端之間交換的數據。
會話密鑰在SSL會話超時或終止時被丟棄。
通信不幸的是wour問題的方式過於大的好,所以回答。首先你應該閱讀[RFC 2246](http://tools.ietf.org/html/rfc2246)。此外,這是一個協議問題,而不是編程問題。根據我對SO規則的理解,它是無關緊要的。 –