Java安全体系(JCA)分析

标签: javaauthenticationcryptographyextensionauthorization
1239人阅读 评论(0) 收藏 举报
分类:

  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

 

  

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1539325次
    • 积分:13076
    • 等级:
    • 排名:第1015名
    • 原创:346篇
    • 转载:48篇
    • 译文:0篇
    • 评论:4175条
    最新评论
    SearchEngin