Signature

儲存我的應用程序節點用來相互通信的 ed25519 私鑰的最佳實踐是什麼?

  • April 21, 2021

我正在開發某種 P2P 網路,其中節點通過 TCP 相互通信,每條消息都由 Ed25519 私鑰簽名。我使用 libsodium 進行簽名和簽名驗證。

我目前正在開發節點配置,我有這個問題:

如何在磁碟上儲存公鑰/私鑰?是否有任何常見的文件格式和最佳實踐?

如果您將文件儲存在磁碟上,那麼 PKCS#12個人資訊交換語法格式是最佳實踐。它通常被稱為密鑰庫。但請注意,PKCS#12 依賴於密鑰加密來加密密鑰儲存條目。這通常意味著此類儲存中的條目使用基於密碼的加密進行加密。這當然意味著必須向執行加密的庫傳遞密碼。

條目本身通常使用 PKCS#8: Private-Key Information Syntax Specification**包裝,也可以單獨使用。PKCS#8 是一種儲存單個加密密鑰的格式。它由定義加密方法的外層和用於描述加密的密鑰類型的內部格式組成。有時內部格式本身用於描述以明文形式儲存的密鑰(或以其他方式包裝)。

最後還有描述密鑰本身的格式。這些在 PKCS#8 條目中再次使用(很像俄羅斯套娃)。通常這些使用 X9.63 格式的 EC 密鑰來描述使用 ASN.1 的密鑰(這也是編碼 PKCS#12 和 PKCS#8 的方法)。然而,ed25519 曲線相當新,因此它似乎缺乏官方的 ASN.1 規範。然而,有一個描述(一種可能的)標準格式的網際網路草案。

引用自:https://crypto.stackexchange.com/questions/39343