据我了解,Java 密钥库包含证书信息,但此信息是公开的(即您希望本地机器信任的其他机器证书)。
除了这个我还缺少什么吗?使用弱密码保护密钥库会有什么风险?
更新
我刚刚意识到我可能在这个问题中指的是信任库。显然,密钥库还包括私钥。如果您可以确认这一点,那么我可以很容易地看到使用弱密码来保护它的问题。
据我了解,Java 密钥库包含证书信息,但此信息是公开的(即您希望本地机器信任的其他机器证书)。
除了这个我还缺少什么吗?使用弱密码保护密钥库会有什么风险?
更新
我刚刚意识到我可能在这个问题中指的是信任库。显然,密钥库还包括私钥。如果您可以确认这一点,那么我可以很容易地看到使用弱密码来保护它的问题。
如果您谈论的是信任库,则风险不在于有人会看到或窃取信任库中的证书。风险在于有人会将您不想信任的证书添加到存储中。存储应首先受到操作系统权限的保护。密码是额外的保护。
Java 密钥库包含证书信息
更准确地说,它包含公钥或密钥对(公钥和私钥)。密钥库受密码保护,每个私钥也受密码保护。但是,您可以更改或删除密码。由你决定。Java 密钥库就像 Web 浏览器的分离密钥库,即
Mozilla -> Edit -> Preferences -> Advanced -> Certificates,
Chrome -> Settings -> Advanced Settings -> HTTPS/SSL
此类证书管理器管理您的证书、人员公钥、服务器或证书颁发机构证书,这些证书也是公钥。它们存储在浏览器的密钥库中。
但此信息是公开的(即您希望本地机器信任的其他机器证书)
公钥只是不需要任何保护的密钥,它们是公钥。私钥不是公开的,受密码保护。
您决定何时使用密钥以及何时被盗,从中提取信息并不容易。所以密钥库是一种安全增强。
但是您通常谈论信任级别或信任指标。
为此,您需要知道,理论上也可以猜测私钥,因此您的安全性不是 100%。今天的超级计算机以 33,862.7 Tera Flops/s 的速度列在 Top500 超级计算机站点上,可能会暴力破解您的私钥。从理论上讲,您的计算机/笔记本电脑可能被盗,或者您的密钥库可能被盗,并且您的密码可以被木马读取。
你最终会问,如果我的密钥库被盗和解密的风险有多大,我可以做些什么来防止它。这通常也是一个努力和价格的问题。
如果您的风险很高,那么您需要将您的密钥库存储在分离的磁盘(即笔式驱动器)上,使用长而复杂的密码并使用受特殊保护的机器进行连接。
我认为当您在密钥库中保留一系列证书以执行客户端身份验证时,拥有一个强密码很重要。一些服务器,即:银行服务器需要客户端身份验证来建立信任连接:“证明你是我认为你是的客户”。您需要将这些证书放在密钥库中,这样其他应用程序就无法获取它们。例如,我正在考虑像 Android 这样的移动平台。但如果我错了,请纠正我。
根据我的经验,公共证书通常不存储在密钥库中。
希望对您有所帮助。