Java安全体系(JCA)分析

原创 2006年06月06日 11:00:00

  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

 

  

相关文章推荐

【Java安全技术探索之路系列:Java可扩展安全架构】之二:JCA(一):JCA架构介绍

作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWel...

文件操作工具类FileUtils

-文件,文件夹的创建、删除、缓存处理、base64加密、文件大小格式化、读取文件内容、压缩文件… --FileUtils...

Linux安全体系学习笔记之四:OpenSSL源代码分析(3)

BIO是对IO操作的封装,OpenSSL的BIO抽象接口不仅可以对SSL连接的I/O使用,也可以对非加密的网络连接和文件的I/O使用。BIO的相关源代码在crypto/bio文件夹下。 BIO的相关...

Linux安全体系学习笔记之二:OpenSSL源代码分析(1)

OpenSSL的源代码包括三部分:加密算法库、SSL库和应用程序。 加密算法库的源代码主要在crypto文件夹里,包括ASN.1编码与解码接口(crypto/asn1/asn1.h),伪随机数产生器...

实例分析JVM安全体系:双亲委派、命名空间、保护域、策略

在了解双亲委派模型之前,先了解一下类加载器的概念: 类加载器的作用就是将真实的class文件根据位置将该Java类的字节码装入内存,并生成对应的Class对象。用户可以通过继承ClassLoad...

SKYPE 安全体系分析

  • 2008年03月13日 15:33
  • 611KB
  • 下载

物联网安全体系

概述1. 感知层安全威胁2. 网络层安全威胁3. 应用层安全威胁物联网安全体系结构 一、 设备安全 运行时解密、执行后清内存,实现动态保护 代码混淆,源码保护 代码多样性,每次保护后的代码都不一样 ...
  • xundh
  • xundh
  • 2017年07月09日 11:15
  • 176
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java安全体系(JCA)分析
举报原因:
原因补充:

(最多只允许输入30个字)