特性和用途
JSSE 包括以下重要的特性:
- 作为一个标准的 JDK 组件
- 可扩展的,基于供应商的架构
- 100% 纯 Java 实现
- 提供了支持SSL版本 2.0 和 3.0,TLS 1.0 和以后版本的API,以及SSL 3.0 、TLS 3.0的实现和
- 包含可以实例化创建安全通道(SSLSocket、SSLServerSocket SSLEngine)的类
- 支持作为 SSL 握手的一部分的密码套件协商,用来启动或验证安全通信
- 支持客户端和服务器身份验证,这是正常的 SSL 握手的一部分
- 支持 HTTP 封装 SSL 协议,它允许使用 HTTPS 访问如 web 页面数据
- 提供服务器会话管理 api 来管理驻留内存的 SSL 会话
- 支持几种加密算法中常用密码套件,其中包括下表中列出的:
Table 1: Cryptographic Functionality Available in JSSE
密码算法[^注1] | 加密过程 | 密钥长度(字节) | ||
---|---|---|---|---|
Rivest Shamir Adleman (RSA) | 认证和密钥交换 | 512 以及更大Rivest Cipher 4 (RC4) | 批量加密 | 128,128 (40 effective) |
Data Encryption Standard (DES) | 批量加密 | 64 (56 effective),64 (40 effective) | ||
Triple DES (3DES) | 批量加密 | 192 (112 effective) | ||
Advanced Encryption Standard (AES) | 批量加密 | 256[^注2] ,128 | ||
Diffie-Hellman (DH) | 密钥协议 | 1024,512 | ||
Digital Signature Algorithm (DSA) | 身份验证 | 1024 |
- [^注1]: SunJSSE 的实现是使用 JCA 用于所有的加密算法
- [^注2]: 密码套件使用 AES_256 需要安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files。 详见 Java SE下载页面。