作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell
在网络通信中,保护所交换数据的完整性和机密性是网络安全面临的重要挑战之一。在通信过程中,潜在的威胁是所交换的数据可能会受到恶意攻击者或非预期接收方访问或修改。安全套接字层(SecureSocket Layer, SSL)和传输层安全(Transport Layer Security, TLS)是IETF开发的独立于应用的协议,它们通过保护所交换数据的隐私性和完整性,为端到端应用通信提供重要的安全特性,并在通信方之间建立真实性、可信性和可靠性。SSL/ILS在TCP/IP协议栈之上运行,通过数据加密、服务器认证、消息完整性和可选的客户端认证来保护通信的安全。对于数据加密,SSL支持使用公开密钥加密算法和秘密密钥加密算法,其中密钥加密算法用于对两个应用间交换的大量数据进行加密。
由于JSSE为客户一服务器通信提供标准API框架和机制,从而为基于客户用及务器的网络通信提供了端到端安全。JSSE支持SSL和TLS协议,并提供与数据加密、消息完整性和对等体认证等相关功能。
由JSSE可以开发出使用以下安全传输协议的客户端和服务器应用:
基于jSSE的客户端应用和服务端应用安全通信流程如下图所示:
JSSE同样也是基于提供者体系的架构,可以使用默认的SunJCE来满足其所有的加密算法需求,也可以使用位于JAVA_HOME/jre/lib/security/java.serurity文件中静态注册其他厂商的JCA/JCE提供者,将其置于SunJCE提供者前面,从而使用它们。
默认的SunJCE提供者提供以下功能:
【Java安全技术探索之路系列:Java可扩展安全架构】之十一:JSSE(一):JSSE架构介绍
原文地址:http://blog.csdn.net/allenwells/article/details/46517859