Encryption
安全的私鑰儲存
我正在用 Java 開發應用程序,該應用程序必須在可預見的未來(即至少 10 年)將 RSA 密鑰儲存在軟體中。
儲存私鑰的兩個最常見的標準是 PKCS12 和 JKS(Java Key Store)。雖然 PKCS12 支持許多不同的算法,但即使是最安全的算法也是基於 SHA1 的 3DES。JKS 更糟糕,因為預設值基於 MD5 和 3DES。
JKS 的 Bouncy Castle Java 庫版本要好一些,因為它
PBEWithSHAAndTwofish-CBC
用於“UBER”版本的密鑰儲存格式。是否有任何標準格式的私鑰儲存支持使用 AES 和 SHA-2 加密密鑰對?
RFC 5958和RFC5959 似乎是儲存加密私鑰的最新標準。它廢棄了 RFC 5208,也稱為 PKCS#8。我的理解是 AES 是 RFC 5958 支持的眾多加密算法之一。
GNU Keyring File Format是另一種使用 AES-128 儲存私鑰的文件格式標準。
Gnome Keyring 實現使用(除其他外)AES-128 加密來儲存私鑰。唉,它似乎沒有遵循任何已發布的標準,但也許可以將其視為事實上的標準。Gnome Keyring FAQ簡要提到,在未來的某個時候(2010 年之後),它將過渡到“加密密鑰環的標準方法”(PBKDF2),這顯然需要“一種新的文件格式”(可能是上述格式之一?)。