木小鱼的笔记

技术之海,顺势者昌;看问题,要看思路与问题实质

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

 

  

阅读更多

扫码向博主提问

去开通我的Chat快问

bladestone

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • 架构师
  • AI手工匠人
  • 攻城狮
  • Java老兵
  • 问题解决者
版权声明:本文章是作者辛勤书写的成果,如需转载,请与作者联系,并保留作者信息以及原文链接,谢谢~~ https://blog.csdn.net/blueheart20/article/details/775711
个人分类: Java技术
下一篇通信加密简述
想对作者说点什么? 我来说一句

Linux安全体系分析与编程

2015年11月07日 61.48MB 下载

IBM内存分析工具JCA

2013年03月08日 3.85MB 下载

没有更多推荐了,返回首页

关闭
关闭