当前位置:主页 > 查看内容

【Java学习】什么是SSL、TLS、HTTPS

发布时间:2021-05-12 00:00| 位朋友查看

简介:SSL提供了一套安全加密方法相当于网络的加密层。 TLS是SSL的升级版遵循X.509协议。 支持TLS协议的有很多厂商如OpenSSL主要用于生成证书OpenSSL是TLS协议的一种免费实现方案。 颁发者CA颁发证书颁发者需要有权威性、有公信力。颁发证书过程中需要技术手段保证……

SSL提供了一套安全加密方法,相当于网络的加密层。

TLS是SSL的升级版,遵循X.509协议。
支持TLS协议的有很多厂商,如OpenSSL,主要用于生成证书,OpenSSL是TLS协议的一种免费实现方案

颁发者(CA)颁发证书,颁发者需要有权威性、有公信力。颁发证书过程中需要技术手段保证其可信性,即用OpenSSL在颁发者和证书之间建立安全、可信、有权威性的关系。

证书是网站所申请的,由浏览器代替访客查看证书,有证书意味网站是可信任的。

HTTP:用于浏览器和服务器端交换纯文本数据。

对称加密:客户端和服务器都有密码或密钥。
离线加密狗:将密码写在硬件上,服务器对每个用户发放密码,客户端通过插件的形式得到密码,保证了网络上没有密码传输。要求所有用户离线操作。

HTTPS需要第三方下发证书保证安全。

如何实现在对称加密时使用互联网传输密码且密码不外泄? 无法实现,所以有了非对称加密。

非对称加密:加密方和使用方使用的密钥不同(公私钥匙)。私钥上锁,公钥能解,公钥加密,私钥也能解开。当公钥加密数据时,不能用公钥解。

TCP三次握手目的是建立稳定链接。HTTP协议基于TCP协议,HTTPS协议基于TCP+HTTP+SSL协议,SSL协议要求进行第四次握手。

第四次握手的过程中,客户端发送请求(传输加密的方式,没有密码),服务器返回是否支持该加密算法,若服务器支持,返回接受请求的回应和服务器的公钥(用于密码加密)。

客户端用第四次握手中被接受的对称加密算法对数据加密,随机生成生成对称加密的密钥(解开加密数据的密码)后,使用公钥对对称加密的密钥进行加密,生成公钥密文(对称加密的密钥),然后发给服务器。

服务器收到公钥密文后用私钥进行解密,得到对称加密的密钥(即对称加密需要的密码)和加密算法。

这时在传输过程中拦截到的信息只有服务器的公钥和公钥密文,公钥不可以解开公钥加密的数据。

公私钥怎么来:先有私钥,由私钥生成的公钥,生成的过程是由OpenSSL这个工具做的。私钥是纯文本,相当于一个可读的纯文本密码。由私钥作为参数,用OpenSSL生成公钥,使用的典型算法是RSA算法,这个算法保证了公钥加密的数据私钥能解,私钥加密的公钥能解,但公钥加密的公钥不能解。公私钥都是文本,是一对。

客户端到服务器端的传输过程:
客户端------>代理服务器------->服务器
(1)客户端到代理服务器需要交互;(2)代理服务器和服务器交互。

在(2)的情景下,此时代理服务器代替客户端发送和接收信息,代理服务器是真正的客户端。这时代理服务器能拿到 服务器的公钥,客户端拿到代理服务器的公钥。

在(1)的情景下,代理服务器是服务器端。

也就是说这个代理服务器可以两面冒充。
这时需要第三方认证来保证安全。

server端需要申请认证,需要提供域名、邓白氏编码、营业许可。网站+域名,需要证明服务器有网站的持有权。第三方提供证书,内容包含公钥、域名、公司名、签发人。第三方有自己的私钥,用自己的私钥加密以上信息,同时提供了公钥内置在客户端,浏览器内置有CA机构内置的公钥。

这时server向客户端发送的是证书,客户端解密得到证书的明文,从而得到了服务器的公钥。避免中间的代理商替换掉server的公钥,因此需要第三方。

非对称加密效率低于对称加密。

;原文链接:https://blog.csdn.net/weixin_44358763/article/details/115407411
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐