SSL/TLS、对称加密和非对称加密和TLSv1.3

本文主要对对称加密和非对称加密的原理以及过程进行分析,同时还会简单介绍一下TLS/SSL的一些相关内容,并且对比TLSv1.2和TLSv1.3的不同。

1、SSL和TLS的历史

其实早期的互联网协议基本都是不加密进行传输的,如HTTP、FTP、telnet.等协议的

传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)的历史进程如下表所示:

协议 发布时间 状态
SSL 1.0 未公布 未公布
SSL 2.0 1995年 已于2011年弃用
SSL 3.0 1996年 已于2015年弃用
TLS 1.0 1999年 已于2020年弃用
TLS 1.1 2006年 已于2020年弃用
TLS 1.2 2008年
TLS 1.3 2018年
  • TLS 1.0 于1999年发布为RFC 2246
  • TLS 1.1 于2006年作为RFC 4346发布
  • TLS 1.2 于2008年发布为RFC 5246
  • TLS 1.3 于2018年8月作为建议标准在RFC 8446发布

SSL(Secure Sockets Layer)是网景公司(Netscape)设计的主要用于Web的安全传输协议,这种协议在Web上获得了广泛的应用。SSL1.0没有被公开发布过,1995 网景公司发布SSL2.0,但是由于SSL2.0有严重的安全漏洞,因此1996年又发布了SSL3.0。

但是在2014年10月,Google发布在SSL 3.0中发现设计缺陷,建议禁用此一协议。攻击者可以向TLS发送虚假错误提示,然后将安全连接强行降级到过时且不安全的SSL 3.0,然后就可以利用其中的设计漏洞窃取敏感信息。Google在自己公司相关产品中陆续禁止回溯兼容,强制使用TLS协议。Mozilla也在11月25日发布的Firefox 34中彻底禁用了SSL 3.0。微软同样发出了安全通告。**这就是SSL3.0在2015年被弃用的原因。**但是由于SSL存在的时间太长了,人们以及习惯用SSL这个名词来指代加密的安全传输协议,因此我们要知道现在说的SSL绝大多数都是说的TLS加密。

众所周知当年的浏览器大战微软战胜了网景,而后网景将SSL协议的管理权交给了标准化组织IETF(Internet Engineering Task Force)。1999年,IETF在SSL3.0的基础上进行发布了TLS协议的1.0版本,需要注意的是TLS1.0版本和SSL3.0版本的区别很小,并且TLS1.0是可以降级到SSL3.0来使用的,之所以换名字主要是为了避免一些版权和法律的问题。这也就导致了后来谷歌禁止TLS回溯兼容SSL协议从而避免安全事故的发送。注意其实所有TLS版本在2011年3月发布的RFC 6176中删除了对SSL2.0的兼容,这样TLS会话将永远无法协商使用的SSL 2.0以避免安全问题。但是还是可以降级协商到SSL3.0的。

RFC 6176的原文摘要如下:
   This document requires that when Transport Layer Security (TLS)
   clients and servers establish connections, they never negotiate the
   use of Secure Sockets Layer (SSL) version 2.0.  This document updates
   the backward compatibility sections found in the Transport Layer
   Security (TLS).

TLS 1.1在

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Netty是一款高性能的网络应用框架,支持SSL/TLS加密来保护网络通信的安全性。SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是网络通信中广泛使用的加密协议,用于在客户端和服务器之间建立安全的通信信道。 Netty提供了一些组件和类来实现SSL/TLS加密。首先,我们需要使用javax.net.ssl包中的类来创建SSLContext对象。SSLContext是SSL/TLS协议的入口点,它包含用于加密和解密数据的加密算法和密钥。我们需要为SSLContext对象配置密钥库和信任库,密钥库用于存储证书和私钥,而信任库用于存储可信的证书。 接下来,我们需要创建SslHandler对象,将其添加到Netty的ChannelPipeline中。SslHandler作为一个ChannelHandler,负责处理SSL/TLS握手过程和数据的加密解密。当建立连接时,SslHandler会自动执行握手过程,包括协商加密算法、验证证书以及生成会话密钥等。 一旦握手完成,SslHandler会将数据加密后发送到网络,并将接收到的密文解密成明文。这样可以确保在网络传输过程中的数据保密性和完整性。此外,SslHandler还提供了一些方法来获取会话信息,如远程主机的证书和协商的加密算法。 使用Netty的SSL/TLS加密功能能够有效地提高网络通信的安全性。通过配置SSLContext和添加SslHandler,我们可以方便地实现对网络通信的加密和解密。无论是在客户端还是服务器端,都可以使用Netty的SSL/TLS加密功能来保护数据的安全性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值