Java安全(JCA/JSSE):SSL/TLS

Posted 恒奇恒毅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java安全(JCA/JSSE):SSL/TLS相关的知识,希望对你有一定的参考价值。

基本概念

SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议。这种协议在WEB上获得了广泛的应用。 IETF(www.ietf.org)将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS 1.0与SSL 3.0的差别非常微小。

基本原理

先非对称加密传递对称加密所要用的钥匙,然后双方用该钥匙对称加密和解密往来的数据。

工作过程

浏览器向服务器发出请求,询问对方支持的对称加密算法和非对称加密算法;服务器回应自己支持的算法。

浏览器选择双方都支持的加密算法,并请求服务器出示自己的证书;服务器回应自己的证书。

浏览器随机产生一个用于本次会话的对称加密的钥匙,并使用服务器证书中附带的公钥对该钥匙进行加密后传递给服务器;服务器为本次会话保持该对称加密的钥匙。

第三方不知道服务器的私钥,即使截获了数据也无法解密。非对称加密让任何浏览器都可以与服务器进行加密会话。 浏览器使用对称加密的钥匙对请求消息加密后传送给服务器,服务器使用该对称加密的钥匙进行解密;服务器使用对称加密的钥匙对响应消息加密后传送给浏览器,浏览器使用该对称加密的钥匙进行解密。第三方不知道对称加密的钥匙,即使截获了数据也无法解密。对称加密提高了加密速度。 要求 服务器端需安装数字证书,用户可能需要确认证书。 会话过程中的加密与解密过程由浏览器与服务器自动完成,对用户完全透明。

使用keytool创建证书时,刚开始设置的用户名一定要是服务器的域名,否则,浏览器进行访问时也将提示证书有问题:

1.一种情况是发证

以上是关于Java安全(JCA/JSSE):SSL/TLS的主要内容,如果未能解决你的问题,请参考以下文章

Java安全(JCA/JSSE):SSL/TLS

Java线程安全和非线程安全

如何确保Java线程安全?

如何解除java安全警告

java priorityblockingqueue 线程安全吗

java被安全设置阻止,安全级别只有高和非常高 怎么办