2013-05-29 83 views
2

我正在使用Windows 8應用程序,因爲它在運行時生成,所以無法打包證書。可以使用動態生成的證書嗎?如果可以的話,我可以在Websocket/StreamSocket級別使用它嗎?動態生成的ssl連接證書

任何參考示例代碼將是非常有益的(優選C++)

+1

您是使用它進行客戶端身份驗證還是...? –

+0

是的,我需要它來進行客戶端身份驗證。 – sgowd

+1

在運行時生成PKI證書實際上沒有安全意義。誰會信任他們?他們爲什麼要這樣? PKI證書應該可靠地識別一個獨特的實體。在運行時生成違反。 – EJP

回答

0

RSA等的公開密鑰密碼術方法通常是安全的,但是它們依賴於公共密鑰的有效性。因此,有許多證書頒發機構發佈列表公鑰http://en.wikipedia.org/wiki/Certificate_authority。當他們這樣做時,他們「證明」該關鍵確實屬於自稱是所有者的實體。在運行時發佈密鑰沒什麼意義,因爲無法驗證密鑰來自此人。

+0

證書未由CA簽名。它由客戶簽署以進行客戶端認證。客戶有我們正在運行的軟件來簽署它。 – sgowd

0

我在回答我自己的問題。 Windows 8 metro api不支持csr中的非對稱密鑰。請參考此處:http://msdn.microsoft.com/en-us/library/windows/apps/hh464944.aspx

除非他們進行更改或爲地鐵提供openssl版本,否則我們無法繼續。

更新:也無法在證書交換期間檢索服務器證書的公鑰。根據微軟員工的最新更新(2012年5月)http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/bbffe488-fc74-4c8b-bed1-adf8fe162449/,這不是支持的功能。