Keys
Keystore 是文件、數據庫還是規範?
密鑰庫到底是什麼?
我知道它們用於儲存諸如私鑰、證書等之類的東西。但是這到底是怎麼做的呢?它只是一個放置所有這些東西的加密數據庫嗎?或者它是一個保存所有這些東西的文件?還是用更抽象的術語來說只是一個規範(可能包括如何建構文件和儲存?)
密鑰庫是如何儲存密鑰和證書等加密材料的概念。因此,所有允許的東西都可以被認為是一個,例如包含文件的目錄(例如,使用 OpenSSL 時)或數據庫或具有特定結構的單個文件。後者有一些標準,例如PKCS#12或由 Java KeyStore 格式JKS等程式語言定義的標準(標準的好處是有很多)。
密鑰庫是儲存密碼密鑰的電腦子系統。您可以安排將密鑰儲存在其中,並在以後以某種方式使用該密鑰。這是您始終可以從稱為密鑰庫的東西中獲得的唯一特徵。
密鑰庫可能具有也可能沒有比系統其餘部分更強的保護,例如防止直接訪問其記憶體或加密靜態數據。
密鑰庫可能會或可能不會對是否可以從中提取密鑰提供一些控制。密鑰庫可能會也可能不會自己生成密鑰。一個只能儲存它自己生成的密鑰的系統有點牽強,但它仍然被稱為密鑰庫。一個密鑰庫在不從中提取密鑰的情況下可能會或可能不會自行執行加密操作,如果是這樣,它可能會或可能不會將某種形式的使用策略與密鑰相關聯。
密鑰庫可能由持久儲存支持,也可能不支持,如果支持,則該儲存可能基於一些更普遍已知的數據庫格式,也可能不支持。
密鑰庫通常將某種形式的名稱與每個密鑰相關聯,但即使這樣也不是通用的(PKCS#11 是一個值得注意的例外:它是密鑰庫介面,其中密鑰不必有名稱,如果有,它們也沒有必須唯一標識一個密鑰。)。
當然,在給定的上下文中,“密鑰庫”一詞的使用可能暗示其中一些屬性。但這將特定於這個特定的上下文。