安全概念

传统的私有或对称密钥密码技术要求安全通信的双方或多方共享一个单一密钥。该密钥用于加密和解密在各方之间发送的安全消息,应预先安全地为每一方分发密钥。该方法的问题在于很难安全地传输和存储密钥。

通过采用公共/私有密钥对和一种安全的密钥分发方法,公共密钥密码系统解决了该问题。可自由使用的公共密钥用于加密只能由相关的私有密钥持有者解密的消息。私有密钥和其他安全身份证明一起安全地保存在一个经过加密的容器 (称为 Wallet) 中。

公共密钥算法能确保消息的保密性,但不一定能确保安全通信,因为它们不验证通信双方的身份。建立安全通信的要点在于验证用于加密消息的公共密钥确实属于目标接收方。否则,第三方就有可能偷听通信并截取公共密钥请求,用自己的公共密钥替换合法密钥 (中间人攻击)

若要避免此类攻击,验证公共密钥的所有者是很必要的,该过程称为验证。验证可通过认证机构 (CA) 来完成,它是通信双方都信任的第三方。

CA 签发公共密钥证书,其中包含某个实体的名称、公共密钥和某些其他安全身份证明。这些身份证明通常包含 CA 名称、CA 签名和证书有效日期 (开始日期、截止日期)。

CA 使用其私有密钥加密消息,而公共密钥用于解密消息,这样就验证了该消息是由 CA 加密的。CA 公共密钥是公开的,无须每次访问时验证。这样的 CA 公共密钥存储在 Oracle Wallet 中。