Security

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> JCA/JCE
安全的核心是数据加密,我们本章主要讨论Java中的加密算法。
Java平台为安全和加密服务提供了两组API:JCA和JCE。 JCA (Java Cryptography Architecture)提供基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器; JCE(Java Cryptography Extension) 在JCA的基础上作了扩展,包括加密算法、密钥交换、密钥产生和消息鉴别服务等接口。


JCA/JCE并不执行各种算法,它们只是连接应用和实际算法实现程序的一组接口。软件开发商根据JCE接口,将各种算法实现后,打包成一个Provider,可以动态地加到Java运行环境中。由于美国出口控制规定,JCA 是可出口的(JCA和一个 Sun的默认实现包括在Java2中),但是JCE是限制出口的。因此,要实现一个完整的安全结构,就需要一个或多个第三方厂商提供的JCE产品,称为JCE Provider。


Apusic JCE Provider
Apusic Application Server中包含一个完整的JCE Provider: Apusic Security Provider。它完全基于JCE 1.2实现,提供了数字签名、消息摘要、消息鉴别码、RSA 非对称加密、序列密码加密、DES等分组密钥密码加密、密钥生成、密钥交换等常用的算法。


利用 Apusic Apusic Security Provider,可以实现各种安全框架,如 SSL 传输、基于证书的身份认证,基于口令的加密,等等。 Apusic Apusic Security Provider,使您的电子交易系统更加安全可靠。


JCE Provider的安装
我们以 Apusic JCE Provider为例说明如何加载第三方的JCE Provider。


第三方提供的JCE Provider一般是一个jar包文件,如 Apusic提供的JCE Provider是apusic_jce.jar。


首先将apusic_jce.jar加入到classpath中。


然后在.../jre/lib/security/java.security 文件中的security.provider.1=sun.security.provider. Sun 下增加一行:security.provider.2=com.apusic.security.provider.Provider


如果不在java.security中作如上配置,则必须在调用时用以下程序动态加载:


Security.addProvider(new com.apusic.security.provider.Provider());


调用加密算法
在正确加载JCE Provider后,你就可以通过JCE的标准接口调用各种加密算法。如调用DES加密算法的程序如下:




byte[] DESEncryption(Key desKey, byte[] b){
Cipher cipher = null;
byte[] r = null;
try{
cipher = Cipher.getInstance("DES" "/ECB/PKCS#5");
cipher.init(Cipher.ENCRYPT_MODE, desKey);
r = cipher.doFinal(b);
}catch(Exception e){
System.out.println(getMessage());
}
return r;
}


Java中的密钥管理
在JDK中,提供了密钥和证书管理工具 keytool。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。


Java通过keystore来存储密钥和证书。keystore有多种实现方式,JDK缺省使用一个名为“JKS”的专用密钥仓库类型(格式),将keystore实现为一个文件。


SSL
SSL依靠证书来验证通讯双方的身份。当发送方Alice和接收方Bob开始SSL会话时,Alice生成一个随机的DES密钥,将这个密钥用Bob证书中包含的RSA公钥加密,这样这个DES密钥就只能有拥有对应私钥的Bob可以解开了。Alice将加密过的DES密钥传给Bob,Bob收到后返回响应信息。


在SSL传输中,利用在握手过程中得到的DES密钥对通讯数据进行数据加密。可能还需要对加密过的数据外再传输消息鉴别码。


Apusic JCE Provider包含实现SSL传输的所有算法,如RSA,DES,你可以利用 Apusic JCE Provider迅速实现自己的SSL加密传输
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值