Java Secure Socket Extension (JSSE) -介绍篇

Java Secure Socket Extension (JSSE) -介绍篇

类和接口篇

JSSE支持安全的Internet通信。它提供了TLS和DTLS协议的一个框架和Java版本的实现,包括数据加密、服务器认证、消息完整性、和客户端认证功能。

Introduction to JSSE

网络传输的数据,容易被不相干的人访问。如果数据含有私密信息,比如密码或者信用卡号,必须让未经授权的人无法理解。数据也需要确保在传输过程中,不被修改,不管是有意的,还是无意的。Transport Layer Security (TLS)协议设计来帮助保护跨网络传输的数据的隐私和完整性。
JSSE确保安全的Internet通信。使用JSSE,开发者可以在客户端和服务器之间使用任何TCP/IP之上的应用层协议(比如HTTP、Telnet或者FTP)安全地传递数据。
通过抽象复杂的底层安全算法和握手机制,JSSE最小化了危险的安全漏洞的风险。此外,做成模块,简化了程序开发,开发者能直接集成到他们的程序里。
JSSE提供了API框架和这些API的实现。
JSSE API补充了核心网络和加密服务,他们在java.security和java.net包内,提供了扩展的网络socket类,trust管理,key管理,SSL上下文和socket工厂框架。因为SSLSocket类基于blocking I/O模式,JDK包括了SSLEngine类以实现其他的I/O方法。

JSSE API支持下列安全协议:

  • DTLS:1.0和1.2版本
  • TLS:1.0、1.1、1.2和1.3版本
  • SSL:3.0版本

这些安全协议封装了通用的双向流socket,JSSE API增加了认证、加密和完整性保护的支持。
JSSE是Java SE平台的安全组件,基于和Java Cryptography Architecture (JCA) Reference Guide相同的设计原则。加密相关的组件允许他们与实现无关,也尽可能与算法无关。JSSE使用JCA框架定义的加密服务提供者(Cryptographic Service Providers)。
Java SE平台的其他安全组件包括Java Authentication and Authorization Service (JAAS) Reference Guide和Java Security Tools。JSSE包括很多和JCA相同的概念和算法,但是,在简单的流socket API之下自动应用他们。
JSSE API被设计用来允许无缝地使用其他SSL/TLS/DTLS协议和Public Key Infrastructure (PKI)实现。
开发者可以提供替代逻辑,来决定远方主机是否应该被信任,或者应该给远方主机发送什么样的认证材料。

JSSE Features and Benefits

JSSE包括下列主要的好处和属性:

  • JDK的标准组件
  • 可扩展的,基于供应商的架构
  • 100%的纯Java实现
  • 提供了TLS/DTLS的API支持
  • SSL 3.0, TLS (versions 1.0, 1.1, 1.2和1.3), and DTLS (versions 1.0和1.2)的实现
  • 能创建安全channels的类(SSLSocket, SSLServerSocket和SSLEngine)
  • cipher suite协商支持,这是 TLS/DTLS握手的一部分,用来初始化或者验证安全通信
  • 提供了客户端和服务器认证支持,这也是TLS/DTLS 握手的一部分
  • TLS封装的HTTP支持,它允许使用HTTPS访问web页
  • 服务器session管理API,管理内存驻留的SSL sessions
  • 证书状态请求扩展的支持(OCSP),节省了客户端证书校验的往返次数和资源
  • Server Name Indication (SNI)延期支持,它扩展了TLS/DTLS 协议,表示握手期间,客户端试图连接的服务器名称
  • 握手期间的endpoint识别支持,防止中间人攻击
  • 加密算法约束支持,对JSSE协商的算法进行细粒度控制

JSSE Standard API

JSSE标准API,位于javax.net和javax.net.ssl包,提供了:

  • 为客户端和服务器量身定制的安全sockets
  • 生成和消费TLS/DTLS数据流的non-blocking引擎(SSLEngine)
  • 生成sockets, server sockets, SSL sockets和SSL server sockets的工厂。使用这些工厂,可以封装socket增加和配置行为
  • 代表安全socket上下文的类,它是安全socket工厂和引擎的工厂
  • key和trust管理接口(包括X.509),以及可以生成他们的工厂
  • 安全HTTP URL连接(HTTPS)的类

SunJSSE Provider

Oracle的Java SE实现包括叫做SunJSSE的JSSE提供者,使用JCA预安装、预注册。提供了下列加密服务:

  • SSL 3.0, TLS (versions 1.0, 1.1, 1.2和1.3), and DTLS (versions 1.0 和 1.2)安全协议的实现
  • 通用的TLS、DTLS加密套件的实现
  • 基于X.509的key管理,它从标准的JCA keystore选择合适的认证keys
  • 基于X.509的trust管理,实现了认证链校验规则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值