本文档提供对AIX上Java 安全组件(component)及其实现的一个简单介绍。适用于AIX版本4.3及更高版本。主要内容包括:
- Java安全选项
- 实施安全组件
- 参考文档
1. Java安全选项
在AIX以及其它的操作系统中,是由一些 Java 安全组件负责提供安全服务的。这些组件都是基于一组一致的、设计精良的原理开发的,使其在实现方面具有独立性和互操作性,在算法上具有独立性和可扩展性。这里介绍这些组件中两个最基本的选项,用于在AIX中实现两种不同类型的安全防护:连接防护和应用防护。
因为这些组件是在一个统一的框架下设计的,配置这些选项的过程是相似的,重要的是知道每种安全类型的适用场景。连接防护主要用于确保多个进程/应用之间的通讯无论在本地还是远程都是安全的,而应用防护主要在需要服务器认证的场合,为那些高风险的应用的下载和运行提供保障!
连接防护是通过SSL提供的。Java利用JSSE(Java Secure Sockets Extensions)组件提供对SSL的支持。JSSE为封装 Secure Socket Layer(安全套接层,SSL)和 Transport Layer Security(传输层安全,TLS)协议提供了一个标准的Java API,其中包含用于数据加密、服务器身份验证、消息完整性和可选的客户机身份验证的功能。JSSE 用户可以编写标准API,而不用担心底层的SSL/TLS 实现。
应用程序的安全则主要由JCE(Java Cryptography Extensions)组件来完成,它包含用于各种加密功能的API,这些功能包括加密、密钥交换和 Message Authentication Code(消息身份验证代码,MAC)等。
JDK1.3.0,1.3.1,以及1.4都提供了JSSE和JCE支持。JDK 1.3饬礁龉δ茏榧堑ザ赖目砂沧暗模贘DK 1.4这些功能已经变成了核心代码的一部分。JDK 1.1.8或更早的版本不提供对这些功能的支持。但是,在JDK1.2.2,通过使用WebSphere 有可能实现这些功能。
2. 实施安全组件
按下述步骤下载必要的软件,然后实现安全功能:
(1)访问以下连接,并找到JSSE 和JCE组件或者直接选择JDK1.4 (直接包含这两个组件)
www.ibm.com/developerworks/java/jdk/
(2)在下载站点,选择AIX平台下载软件到本地。
这些组件的文档在安装目录的docs子目录下。例如JDK 1.3.1 的文档缺省情况下在下列目录:
/usr/java131/docs/jce
/usr/java131/docs/jsse
/usr/java131/docs/pkcs
(3)实现JSSE,编辑 $JAVA_HOME/jre/lib/security/java.security 文件使其包含以下两行:
security.provider.1=sun.security.provider.Sun
security.provider.2=com.ibm.jsse.JSSEProvider
(4)按JSSE文档指示修改Java 应用程序使用JSSE功能。
(5)实现JCE,编辑JAVA_HOME/jre/lib/security/java.security文件使其包含以下两行:
security.provider.1=sun.security.provider.Sun
security.provider.2=com.ibm.crypto.provider.IBMJCE
(6)下一步,通过一些命令删除(不是重命名)所有JAVA_HOME/jre/
lib/ext 下的JCA文件:
# cd JAVA_HOME/jre/lib/ext
# mkdir JAVA_HOME/jca
# mv *jca* JAVA_HOME/jca
(7)使用jarsigner 工具给JAVA应用程序(例如,jar文件)签名:
# export JAVA_HOME=/usr/java131
# export PATH=${JAVA_HOME}/jre/bin:${JAVA_HOME}/bin:${PATH}
# export CLASSPATH=${JAVA_HOME}/lib:${CLASSPATH}
# export LIBPATH=${JAVA_HOME}/jre/bin:${JAVA_HOME}/
jre/bin/classic:${LIBPATH}
(使用javac命令编译应用)
(然后再用jar命令打包)
# jarsigner -keystore {your_keystore} -storepass {your_password} \
-certs -storetype pkcs12jarsigner {your_jar_file} {your_alias}
这些组件的文档建议使用pkcs12存储类型(storetype)。但是,如果以上命令运行失败,先试一下其他类型,如果使用其它存储类型也失败,可能需要JCE 1.2.1。这个版本的JCE修复了一个SUN在jarsigner上的一个缺陷,使其能和IBM的JCE 共同工作。最后,测试这个应用程序,可以创建一个引用Jar文件的HTML文档,然后使用浏览器经由服务器访问这个文档。
3. 参考文档
JSSE 参考指南:
http://www-128.ibm.com/developerworks/java/jdk/security/
142/secguides/jssedocs/JSSERefGuide.html
JSSE 应用举例:
http://www-128.ibm.com/developerworks/java/jdk/security/142/
secguides/jsse2docs/jsse2docs_samples.zip
JCE 规范
>www-128.ibm.com/developerworks/java/jdk/security/
142/secguides/jceDocs/CryptoSpec.html
原文链接:http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2811995D25000
