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

 

  

开发一个JCE的Provider

1、开发环境ubuntu+eclipse+openJDK 本来想在xp下开发,但是JDK1.6中有层层限制:JCA对外出口但是JCE对外不出口,当你实现后调用Cipher会报如下错误: E...
  • tianlang519241
  • tianlang519241
  • 2017年04月07日 10:40
  • 658

Java加密体系结构(JCA)参考指南

介绍 Java平台强调安全性,包括语言安全,密码学,公钥基础设施,认证,安全通信和访问控制。 JCA是平台的一个主要部分,包含一个“Provider”体系结构和一组用于数字签名,消息摘要(哈希),...
  • u012741741
  • u012741741
  • 2018年02月01日 11:28
  • 35

jca分析java dump日志

可以使用jca分析java  dump的日志 jca:https://www.ibm.com/developerworks/community/groups/service/html/commu...
  • unix21
  • unix21
  • 2015年01月28日 19:47
  • 1059

采用jca分析javacore文件示例

采用jca分析javacore文件示例 博客分类: java jcajavacore  今天帮助项目组分析websphere 7下的线程挂起问题,现象如下:   后台日...
  • jiafu1115
  • jiafu1115
  • 2012年07月20日 09:48
  • 1718

java安全机制和数字证书管理

实验一 java安全机制和数字证书的管理 一、实验名称 java安全机制和数字证书的管理   二、实验目的 2.1、了解java的安全机制的架构和相关的知识; 2.2、利用java环境掌握...
  • ssrrxx111
  • ssrrxx111
  • 2013年03月13日 12:48
  • 2600

应用安全开发之浅谈加密算法的坑

转载自:http://www.cnblogs.com/alisecurity/p/5312083.html 1、需要了解的基本概念   密码学的三大作用:...
  • laofan_1123
  • laofan_1123
  • 2016年04月06日 11:28
  • 1287

分析java线程(analyze java thread)

看见一篇比较不错的关于java线程的文章,决定翻译一下,顺便体会一下翻译外文是啥感觉。 原文链接如下呵呵。         http://www.cubrid.org/blog/dev-platf...
  • guomei
  • guomei
  • 2013年12月17日 23:44
  • 1113

linux安全体系分析与编程(第二章2.4.2)

用于文件系统监视的数据结构:     各个数据机构之间的关系:     1、首先是inode结构,文件系统的每个节点inode中有一个指针,指向watch链表(如下); 2、watch链表中的成...
  • u010154760
  • u010154760
  • 2015年05月08日 12:10
  • 311

数字证书及其认证过程

众所周知,公钥密码学通过使用公钥和私钥这一密钥对,使数字签名和加密通讯等密钥服务变得容易起来。公钥技术之所以能得到广泛的应用,原因就在于对那些使用密钥对中的公钥来获得安全服务的实体,他们能很方便地取得...
  • cyy089074316
  • cyy089074316
  • 2013年06月10日 17:18
  • 20101

【技术分享】Android应用安全开发之浅谈加密算法的坑

Android开发中,并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击。此文让你了解更多Android加密算法的安全问题。...
  • AliMobileSecurity
  • AliMobileSecurity
  • 2016年03月23日 15:52
  • 1223
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java安全体系(JCA)分析
举报原因:
原因补充:

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