Java SE 安全性




Java SE 安全性


Java 安全性技术包括大量 API、工具以及常用安全算法、机制和协议的实现。Java 安全 API 涉及领域广泛,包括加密、公共密钥基础架构、安全通信、身份验证和访问控制。Java 安全性技术为开发人员编写应用提供了一个全面的安全框架,同时为用户或管理员安全管理应用提供了一组工具。

Java SE 安全性文档:Java SE 8 | Java SE 7Java SE 6 | J2SE 5.0

 
其他资源:  
 
Java SE 安全性概述


Java SE 平台基于一个动态、可扩展、基于标准、可互操作的安全架构。加密、身份验证和授权、公共密钥基础架构等安全特性是内置的。Java 安全模型基于一个可定制的“沙盒”,Java 软件程序可在其中安全运行,对系统或用户无潜在风险。

下表详细介绍了各个安全特性,并给出了包含更多信息的资源链接。

有关安全特性以及当前版本变化的更多信息,请参见 Java SE 8 安全性文档

高级特性

低级特性

优点

参考资料

平台安全性

Java 编译器和虚拟机强制实施的内置的语言安全特性:

  • 强大的数据类型管理

  • 自动内存管理

  • 字节码验证

  • 安全的类加载

为应用开发和运行提供一个安全平台。编译时数据类型检查和自动内存管理可使代码更健壮,减少内存损坏和漏洞。字节码验证可确保代码符合 JVM 规范并防止恶意代码破坏运行时环境。类加载器可防止不受信任的代码干扰其他 Java 程序的运行。

加密

  • 全面的 API 支持广泛的加密服务,其中包括数字签名、消息摘要、密码(对称、非对称、流和分组)、消息验证码、密钥生成器和密钥工厂

  • 支持广泛的标准算法,其中包括 RSA、DSA、AES、3DES、SHA、PKCS#5、RC2 和 RC4。

  • PKCS#11 加密令牌支持

为构建安全的应用提供一个可扩展的、功能齐全的 API:

  • 独立于算法和实现

  • 基于提供程序的(可插拔)架构

身份验证和访问控制

  • 摘要身份验证 API 可通过一个可插拔架构引入广泛的登录机制。

  • 一个全面的策略和权限 API 使开发人员能够创建并管理需要对安全敏感资源进行细粒度访问的应用。

实现多种身份验证机制的一次性登录和基于用户或代码签名者身份的细粒度资源访问。(JDK 5 中)新增的时间戳签名支持使签名者证书到期时无需重签代码,因此部署签名代码更容易了。

 

安全通信

API 及以下基于标准的安全通信协议的实现:传输层安全性 (TLS)、安全套接字层 (SSL)、Kerberos(可通过 GSS-API 访问)以及简单身份验证和安全层 (SASL)。还包括对基于 SSL/TLS 的 HTTPS 的全面支持。

对不受信任网络上的同类进行身份验证,并保护他们之间所传输数据的完整性和隐私性。

公共密钥基础架构 (PKI)

用于管理密钥和证书的工具以及支持下列特性和算法的广泛、抽象的 API:

  • 证书和证书撤销列表 (CRL):X.509

  • 认证路径验证器和构建器:PKIX (RFC 3280)、在线证书状态协议 (OCSP)

  • 密钥库:PKCS#11、PKCS#12

  • 证书存储(信息库):LDAP、java.util.Collection

简化复杂 PKI 应用的开发和部署。(JDK 5 中)新增的 OCSP 支持为应用检查证书撤销状态提供了一种更可扩展和及时的方法。

Left Curve
Java SDK 和工具
Right Curve
Left Curve
Java 资源
Right Curve