2015-05-18 16 views
1

我在寫一個CMP服務器,但遇到問題。 它在集中式PKI中使用,其中RA將帶有關聯證書的私鑰發送到服務器,我們必須將其中繼到CMP客戶端。使用bouncycastle對集中式PKI中的私鑰進行加密

問題是,我無法找到我們應該如何加密私鑰以將其發送到客戶端,並且他能夠解密它。 我們是否僅僅依靠https的安全性,因爲它聽起來不對? 我錯過了CRMF RFC中的一些東西嗎?

我猜,解決方案是從客戶端生成一個臨時密鑰對,並將其用於加密/解密,但聽起來更像是一種黑客攻擊,而不是正確的方式。

當客戶端是生成密鑰對的客戶端時很容易,但在這種特定情況下,所有事情都是由我們的OpenTrust RA生成的。

+1

您是否真的確信RA會生成私鑰?例如,CRMF消息特別是沒有字段來存儲私鑰。 –

+1

您不必將私鑰發送給客戶端。這裏有嚴重的問題。要麼它是你的私鑰,你應該保密,或者它是客戶的私鑰,他*應該保密。如果雙方擁有相同的私鑰,則整個PKI點都被銷燬。 – EJP

+0

它的工作方式是服務器會向CMP提供一個CN和一個密碼,它將檢查LDAP是否有權請求註冊。 完成後,OpenTrust將爲客戶端生成一個私鑰和一個證書。這是由OT完成的,因爲我們必須在法律上檢查私鑰的副本。 –

回答

3

PKCS#12可用於將RA中的私鑰分發給各種客戶端。我們爲此使用了硬件USB令牌。 USB令牌上的數據只能由客戶端軟件解密(使用預共享密鑰)。 如果您不想使用硬件令牌,則您唯一的選擇是使用預共享密鑰(通過某些帶外/通道方式進行通信)並使用該對稱密鑰來分發私鑰並傳輸它通過HTTPS。同時確保您的HTTPS配置爲至少使用AES-256。

相關問題