Java信息安全加密系统环境搭建

来源:互联网 发布:苹果cms h站 编辑:程序博客网 时间:2024/06/02 01:16

       这是我参加信息安全大赛时,服务器的环境搭建,主要是加密系统的完善。

开发环境搭建一:服务器端开发环境搭建

开发软件的运用工具Eclipse软件包:

1、测试工具Junit软件包

       以白盒测试的方式演示如何使用Java完成相应的加密盒解密。

JUnit安装:

1). 获取JUnit

         到https://github.com/junit-team/junit/wiki/Download-and-Install网站下载。如下图4-1所示:


图4-1 JUnit模块下载

2).将下载的junit.jar包引进本系统的J2EE工程中,如下图4-2所示和图4-3所示:

             

        图4-2 拷贝junit.jar包到工程下       

    

图4-3 引进junit.jar包到工程下

2、加固你的系统

        鉴于出口限制问题,我们得到的JDK安全强度不够高,主要是密钥长度不够长,对于这一点,Sun公司在其网站上提供了无政策限制权限文件(UnlimitedStrength Jurisdiction Policy Files)。


图 附-1  权限文件下载页面

        因此本系统需要重新部署JRE环境中的如下图附-2的local_policy.jar和US_export_policy.jar文件。即复制这两个文件,切换到%JDK_HOME%\jre\lib\securerity目录下,覆盖local_policy.jar和US_export_policy.jar文件。同时也要覆盖%JRE_HOME%\lib\securerity文件下的者两个文件。


图 附-2  jec_policy-6.zip文件中jce目录列表


3、第三方开源组件包

        Java7提供了多种算法支持,但是并不完善。许多加密强度较高的算法(如MD4和IDEA),Java 7中没有提供。

1) Bouncy  Castle (http://www.bouncycastle.org/)是一个开源加密组件。它提供了多种Java不支持的算法,如消息摘要算法MD4和SHA-224、对称加密算法IDEA、数字签字算法ECDSA等,目前BouncyCastle最新的版本是1.48。我们可以通过http://www.bouncycastle.org/latest_releases.html下载(如下下图附-3)。


图 附-3  Bouncy Castle 可执行二进制文件下载页面

为了引入Bouncy Castle我们需要在%JDK_HOME%\jre\lib\security\java.security文件中添加如下文字:security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider。如下图附-4:


       图 附-4配置Bouncy Castle加密组件的java.security文件修改

然后我们需要将bcprov-jdk15on-148.jar文件导入即可。即将bcprov-jdk15on-148.jar文件拷贝到 %JDK_HOME%\jre\lib\ext\目录下。同样对%JDK_HOME%\jre\lib\security\java.security和%JDK_HOME%\jre\lib\ext\进行同样的操作。

本系统运用到的BouncyCastle的API有:

  •   JCE工具及其拓展包

            仅包括org.bouncycastle.jce包。这是对JCE框架的支持。其中定义了一些拓展算法的接口与实现。

  •  JCE支持者和测试包

           包括org.bouncycastle.jce.provider包。

  •   轻量级的加密包

           包括org.bouncycastle.crypto包及其子包。

  •   OCSP和OpenSSL PEM支持包

           包括org.bouncycastle.crypto包及其子包和org.bouncycastle.openssl包及其子包。这两个包都是和数字证书相关的支持包。                  OCSP(Online Certificate StatusProtocol,在线证书状态协议)用于鉴定所需证书(撤销)状态。

  •   ASN.1编码包

           包括org.bouncycastle.sanl包及其子包。标准的ASN.1编码规则有基本的编码规则(BasicEncoding Rules,BER)、规范编码              规则(CanonicalEncoding Rules,CER)等。本系统导出数字证书的时候,会使用到DER编码。

  •   工具包

           包括org.bouncycastle.until包及其子包。提供了很多与编码转换有关的工具类,如Base64编码和十六进制编码。

  •   其他包

           包括org.bouncycastle.mozilla包及其子包和org.bouncycastle.x509包及其子包。org.bouncycastle.x509可以用于支持X.509格式             的数字证书。

2)  Commons Codec (http://commons.apache.org/proper/commons-codec/)同样是一款开源组件,它位于国际开源组织Apache(http://www.apache.org/)旗下。它同样对Java的API做出了进一步的封装,加强了易用性。我们可以在CommonsCodec的官方网站上下载,如下图附-5所示:


图 附-5  Commons Codec下载页面

         目前CommonsCodec最新的版本是1.8。对于CommonsCodec的两个包只要将它们拷贝到工程的lib目录下,并导入工程的引用包里面即可。

        Commons Codec在本系统运用主要是如下几方面:

  •  org.apache.commons.codec:该包内主要完成了编码转换实现,如Base64、二进制、十六进制和字符编码。
  •  org.apache.commons.codec.binary:该包内仅有一个实现类DigestUtils,它是对Java原生消息摘要实现的改进。
  •  org.apache.commons.codec.language:该包内主要完成了语言和语音编码器实现。
  •  org.apache.commons.codec.net:该包内主要完成了网络相关的编码和解码,如Utr编码,解码。

4、网络监听工具WireShark(http://www.woreshark.org)

          本项目通过网络监听工具WireShark完成对网络数据的监控。


图 附-6  WireShark


原创粉丝点击