Java安全体系(JCA)分析,java体系jca分析
Java安全体系(JCA)分析,java体系jca分析
Java 密码体系结构(JCA)包括:Java 密码扩展(Java Cryptography Extension (JCE))、Java 安全套接字扩展(Java Secure Socket Extension (JSSE))以及 Java 认证和授权服务(Java Authentication and Authorization Service (JAAS))。其中后两个部分提供了用于认证、授权和通信的安全保障。
Whitfield Diffie 和 Martin 通过公钥系统实现了:每个通信方都拥有一对密钥 ― 一个公钥和一个私钥。私钥只有通信方才知道,而公钥可以提供给任何人。使用其中一个密钥加密的数据只能使用另一个密钥解密。这样可以实现非共享密码的加密,即如果想创建只能由特殊的一方读取的消息,则您使用他们的公钥进行加密,然后他们使用其私钥来解密该消息。同样,如果您使用私钥加密消息,则拥有您公钥副本的任何人都可以使用它来解密该消息。这使接收端的人员确信消息来自于您而不是别人,因为只有您拥有自己的私钥。用这种方法加密的消息具有您的数字签名,即不可抵赖性。
一般而言公钥密码对的获取需要来自于CA(certificate Authentication)认证中心。密钥存储在一个称为密钥库(keystore)的特别格式文件中,包括公钥、私钥。
密钥库文件 | 所含内容 | 发送目的地 |
---|---|---|
client.private | 客户机的公钥/私钥对 | 客户机端 |
server.public | 服务器的公钥证书 | 客户机端 |
server.private | 服务器的公钥/私钥对 | 服务器端 |
client.public | 客户机公钥证书 | 服务器端 |
在JDK1.4中附带的keytool可以生成公钥和私钥对。基本使用方法如下:
keytool -genkey -alias clientprivate -keystore client.private
-storetype JKS -keyalg rsa -dname "CN=Your Name, OU=Your
Organizational Unit, O=Your Organization, L=Your City, S=Your State,
C=Your Country" -storepass clientpw -keypass clientpw
选项 | 含义 |
---|---|
-genkey | 告诉 keytool 生成密钥对。 |
-alias clientprivate | 标识密钥库中的新密钥对。 |
-keystore client.private | 将文件 client.private 用作密钥库。 |
-storetype JKS | 声明密钥库的类型。JKS 是缺省值。 |
-keyalg rsa | 声明要使用的算法;我们正在使用 RSA 公钥算法,它是缺省值。 |
-dname "CN=Your Name..." | 提供有关拥有密钥对的实体的信息。 |
-storepass clientpw | 指定整个密钥库的密码。 |
-keypass clientpw | 指定新密钥对的密码。 |
公钥中public key的导入方式:
提取公钥中的public-key:
keytool -export -alias clientprivate -keystore client.private -file
temp.key -storepass clientpw
还有将客户机私钥插入其自身密钥库的命令:
keytool -import -noprompt -alias clientpublic -keystore client.public
-file temp.key -storepass public
相关文章
- 暂无相关文章
用户点评