Java 安全性编程概念 1. Java 平台是如何使安全编程更方便的
2. 什么是安全编程技术?
3. JDK 1.4 中集成了安全性
4. 第三方库充实了安全性
5. 展望
Java 平台是如何使安全编程更方便的 |
Java 编程语言和环境有许多特性使安全编程更方便:
什么是安全编程技术? |
简单地说,有多种编程风格和技术可以帮助确保应用程序更安全。考虑下列两个一般示例:
当在本教程中需要用到这些技术以及其它技术时,我们将更详细地讨论它们。
JDK 1.4 中集成了安全性 |
在 JDK 1.4 之前,许多安全性功能必须作为扩展添加到基本 Java 代码分发版中。严格的美国出口限制要求这种功能的分离。
现在,新的宽松法规使安全性特性和基本语言更紧密的集成成为可能。下列软件包(在 1.4 发行版之前作为扩展使用)现在集成到了 JDK 1.4 中:
JDK 1.4 还引入了两种新功能:
第三方库充实了安全性 |
· 我们可以用第三方库(也称为提供程序)来增强当前 Java 语言中已经很丰富的功能集。提供程序添加了额外的安全性算法。
· 作为库示例,我们将使用 Bouncy Castle 提供程序。Bouncy Castle 库提供了其它密码算法,包括本教程什么是公钥密码术?和什么是数字签名?中讨论的流行的 RSA 算法。
· 尽管您的目录名和 java.security 文件可能有一点不同,但仍可用以下模板安装 Bouncy Castle 提供程序。要安装这个库,请下载 bcprov-jdk14-112.jar 文件并将它放到 j2sdk1.4.0\jre\lib\ext 和 Program Files\Java\J2re1.4.0\lib\ext 目录中。在两个 java.security 文件(他们位于上述相同的目录下,但位于“security”子目录而不是“ext”)中,将下面的行:
·
· security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider
·
· 添加至这些行的末尾:
·
· security.provider.1=sun.security.provider.Sun
· security.provider.2=com.sun.net.ssl.internal.ssl.Provider
· security.provider.3=com.sun.rsajca.Provider
· security.provider.4=com.sun.crypto.provider.SunJCE
· security.provider.5=sun.security.jgss.SunProvider
· security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider
展望 |
在本章中,我们已经介绍了 Java 语言提供的有助于确保编程保持安全的特性(无论是完全集成的还是基于扩展的)。我们提供了一些安全编程技术的通用示例以帮助您熟悉这个概念。我们介绍了过去是作为扩展的但现在集成到版本 1.4 发行版中的安全性技术;我们也注意到两种新的安全性技术。我们还说明了了第三方库通过提供新技术能够增强安全性程序。
在本教程余下的部分,我们将让您熟悉这些旨在提供安全的消息传递的概念(因为它们应用于 Java 编程):
当我们讨论上述每个主题时,都将提供示例和样本代码。