2017-03-09 30 views
0

可以說我有一個由Device A(在這種情況下爲CryptoCard)創建的關鍵部分,關鍵部分應該存儲在設備B(在這種情況下是一個智能卡)並按需返回。我想到用RSA的私鑰對密鑰部分進行加密,並將公鑰發送給設備B.然後,設備B可以對其進行解密並使用它自己的私鑰對其進行加密並在需要時將其加密發回。兩臺設備之間的安全RSA交換

現在我想知道如何在不失去安全性的情況下交換公鑰來解密keypart。因爲將密鑰和密鑰並排發送將是愚蠢的,因爲它是一樣的,那麼發送密鑰解密,不是嗎?

回答

2

正常的程序將是:

  1. 設備B將其公鑰發送給設備A
  2. 設備A加密與B的公開密鑰的祕密並將結果發送到B
  3. 設備B用私鑰解密祕密。

唯一棘手的部分是第1步,您必須確保公鑰真的來自設備B,但沒有必要保密。

+1

「您必須確保公鑰真正來自設備B「 - 如果您沒有驗證該密鑰屬於聲稱它的設備,則確實存在一個微不足道的中間人攻擊。爲了防止這種情況發生,常見的解決方案是使用root權限密鑰對公鑰進行簽名。根公鑰需要位於所有設備中,以便設備可以驗證其他設備的公鑰。 – TheGreatContini

+0

@ TheGreatContini使用認證中心實際上只是將密鑰驗證的負擔移交給它。它並沒有改變主要問題。這真的取決於整個系統的設置,哪種方式更簡單,更安全。 – Henry

+0

@Henrry你對我的評論太多了。證書頒發機構的完整PKI設計是過量的。相反,只需要在每個製造的設備中嵌入公鑰的單根密鑰。這是嵌入式安全中非常常見的解決方案。該設備不需要進一步驗證,因爲公鑰已作爲其固件的一部分嵌入。 – TheGreatContini

-1

您可以使用它的私鑰令B加密密鑰,並將其發送給A,使得A可以用B的公鑰它解密,這確保不可否認性和重點肯定是從B.

+0

一個自簽名密鑰可以由中間人生成。這不能確保任何東西。 – erickson

+0

啊,簽名的密鑰可以被捕獲並重播,是的,我同意。我同意上述接受的解決方案,它建議使用根權威(CA)。 –

相關問題