Java密钥管理技术全解析
1. 密钥库架构分析
在密钥管理中,数据库存储密钥的架构具有显著优势。它允许将每个私钥的密码存储在数据库本身,这样在检索私钥时,可通过简单的字符串比较轻松验证密码。
然而,基于文件的密钥库实现存在更多问题。若文件可被用户读取,显然不能以简单字符串形式将密码存储在文件中。基于文件的密钥库必须以加密形式存储密码和私钥,或许可以使用特定的加密API来实现。
假定数据库机器是安全的,这种架构通常不需要加密,除非担心有人在网络上窥探私钥。在这种情况下,应将私钥作为加密数据发送给用户。
密钥库的实现方式有无限可能。例如,可以为每个员工创建一个软盘,其中仅包含该员工的条目,并编写一个密钥库类,从软盘上的文件中查找密钥条目,从全局文件中查找证书条目。这种实现方式非常简单,新的密钥库可以包含两个已读取两个文件的Sun KeyStore类实例,并使用对象委托来实现其所有方法。
需要注意的是,这种两层系统是理想的选择。如果私钥通过网络传输,网络内的间谍可能会窥探用于检索密钥的密码或返回的私钥。但如果私钥本地保存,仅从远程密钥库检索公钥,那么实现将更为简洁,因为网络数据无需加密。
2. 安装密钥库类
若要使用替代的密钥库实现,必须将新类安装到安全提供程序中。如有必要,需建立一种约定,用于创建为 load() 方法打开的输入流,除非密钥库根本不需要输入流(例如基于RMI的密钥库)。
Policy 类以可预测的方式使用密钥库。在 java.policy 文件中有如下条目:
超级会员免费看
订阅专栏 解锁全文
3469

被折叠的 条评论
为什么被折叠?



