Java平台安全机制与对象安全实践
1. JSSE认证机制
Java安全套接字扩展(JSSE)在其底层的SSL/TLS协议中包含了对终端实体进行认证的机制。在TLS握手过程中,服务器和客户端都可以向对方请求认证凭证,这些凭证通常是X.509证书或证书链。
JSSE引入了密钥管理器(Key Manager)和信任管理器(Trust Manager)的抽象概念,作为建立信任的接口。密钥管理器负责管理密钥库(Keystore),并在需要时为TLS机制提供公钥和私钥;信任管理器则根据其管理的信任库(Truststore)中的信息,决定对哪些实体给予信任。
1.1 密钥库和信任库
密钥库是存储密钥材料的数据库,用于多种目的,如身份验证和数据完整性保护。常见的密钥库类型包括PKCS12和Sun的JKS。密钥库中的信息通常可分为两类:密钥条目(Key Entries)和受信任证书条目(Trusted Certificate Entries)。
- 密钥条目 :包含实体的身份信息及其私钥,可用于多种加密目的。
- 受信任证书条目 :仅包含实体的身份信息和公钥,不包含私钥,因此在需要私钥的场景下(如 javax.net.ssl.KeyManager )会被忽略。
信任库是一种特殊的密钥库,仅包含受信任实体的证书。只有当用户决定信任某个实体时,才应将该实体的条目添加到信任库中。通过将公钥导入信任库,用户明确做出了信任决策。
为了更好地保护私钥,可以将密钥条目和受信任证书条目分别存储在两个不同的密钥库文件中。前者包
超级会员免费看
订阅专栏 解锁全文

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



