把Java Secure Socket Extension (JSSE) Reference Guide把翻译了一下,留着自己看,也分享给大家,略有删减,不保证翻译的正确性。
一、简介
通过网络传输数据很容易被别人窃取。当数据包含个人私密信息,例如:密码,信用卡号等时必须把这些数据加密,对未经授权的用户不可见。这些数据不能在网络传输过程中被修改,无论是有意还是无意的。Secure Sockets Layer (SSL) and Transport Layer Security (TLS)协议就是来帮助我们在网络传输数据时保护隐私和数据的完整性。
The Java Secure Socket Extension (JSSE) 确保网络通讯安全。它提供一个框架和一个JAVA版本SSL和TLS协议的实现,包括数据加密、服务器认证、消息完整性,以及可选的客户端认证。使用JSSE,开发人员可以提供安全的客户端和服务器上运行任何应用协议之间的数据通道,如超文本传输协议(HTTP),Telnet或FTP。
通过抽象复杂的底层安全算法和“握手”机制,JSSE minimizes the risk of creating subtle, but dangerous security vulnerabilities. 。此外,它简化了应用程序开发(通过像模块化服务),开发人员可以直接集成到他们的应用程序。
JSSE提供应用程序编程接口(API)框架和API的实现。JSSE API补充“核心”网络和加密服务,分别在java.security和java.net包内,以提供扩展的网络套接字类,信任管理,key(秘钥)管理,SSLContexts,以及套接字工厂框架及创建类行为。因为套接字API是基于阻塞I/O模型,在JDK 5中,一个非阻塞的SSLEngineAPI引入允许实现自己选择I/O的方法。
JSSE API能够支持SSL2.0和3.0版本及Transport Layer Security (TLS) 1.0。这些安全协议封装一个正常的双向流套接字流,JSSE的API增加了传输的认证 、加密和完整性保护。JSSE实现支持SSL 3.0和TLS 1.0。它没有实现SSL 2.0。
如上所述,JSSE是一个Java SE 6平台的安全组件,是基于相同的设计原则在其他地方找到Java Cryptography Architecture (JCA)框架。这个框架的加密相关的安全组件,使他们有实现独立性,并尽可能,算法独立。
在Java SE 6平台还包括其他安全组件: Java Authentication, Authorization Service (JAAS)和Java Security Tools。
JSSE API被设计可以使用其他基于SSL / TLS或Public Key Infrastructure (PKI)的协议实现程序,替换JSSE内部程序。开发人员还可以提供替代逻辑,以确定是否应信任远程主机或应向远程主机发送什么身份验证密钥材料。
二、特点和优点
JSSE 包括以下重要特点:
- 包含在1.4及以后版本
- 可扩展
- 100% Java
- 实现了 SSL 3.0 and TLS 1.0
- 包括类(SSLSocket, SSLServerSocket, and SSLEngine)可以被实例化创建安全通道
- 支持 cipher suite 谈判, 这是用来启动或验证的安全通信的SSL握手的一部分
- 客户端和服务的的身份认证,它是SSL handshaking的一部分
- 支持 Hypertext Transfer Protocol (HTTP) 封装到SSL 协议 (HTTPS), 可以通过HTTPS访问网页数据
- 提供服务器的会话管理API来管理常驻内存的SSL会话
- 支持常用的加密算法,包括下列表中所列的加密算法:
加密算法 * | Cryptographic Process | Key Lengths (Bits) |
---|---|---|
RSA | Authentication and key exchange | 512 and larger |
RC4 | Bulk encryption | 128 |
DES | Bulk encryption | 64 (56 effective) |
Triple DES | Bulk encryption | 192 (112 effective) |
AES | Bulk encryption | 256 |
Diffie-Hellman | Key agreement | 1024 |
DSA | Authentication | 1024 |
* Note: The SunJSSE implementation uses the Java Cryptography Extension (JCE) for all of its cryptographic algorithms.