SSL/TLS加密基本原理

SSL/TLS是传输层协议,也就是说,这两个协议与TCP/UDP是同级的。但是在底层实现上,SSL/TLS都是基于TCP协议的。‘’

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

普通级别的保护,是服务器需要向用户证明自己的身份,而客户端无需向服务器证明自己的身份,这个过程是通过数字证书完成的,每个提供服务的服务器需要申请一张由系统内置的证书颁发机构颁发的证书证明自己的身份,来保证连接时数据传输到了合理合法的服务器上。对于银行这种,需要验证客户端是否合法的情景,需要客户端插入一张保存了银行派发的证明客户端的U盘来完成这个任务。

SSL/TLS握手的时候使用的是非对称加密,速度相对比较慢,为了减少计算耗时,在握手完成之后,就会切换到对称加密状态。对称加密的秘钥叫做“对话秘钥”(session key),每个session生成一次,通过握手的时候生成的三次随机数完成的。

握手的四次过程如下

  • 客户端发出请求(ClientHello)。这一过程客户端需要发送自己的这些信息:

包含协议和加密方式的密码套件,类似这样:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 的组合集合

支持的压缩方式

一个用于稍后生成对话秘钥的随机数

  • 服务器回应(ServerHello)。这一过程服务器需要发送自己的这些信息:

从密码套件中选出一个自己和客户端都支持的,作为确定信息发回

一个用于稍后生成对话秘钥的随机数

服务器证书

  • 客户端回应

客户端用操作系统内置的证书来检验服务器发送的证书是否有效,如果有效,则信任这是合法的服务器。

客户端再次产生一个随机数,用服务器的证书中的公钥加密,发送给服务器

客户端发送握手结束通知,表示握手结束

  • 服务器最后回应

服务器用私钥解密客户端发送过来的随机数,生成pre-master key,用于接下来的对称加密。

服务器发送编码改变通知,表明下面使用协商的加密和秘钥传送信息

服务器发送握手结束通知,表示SSL/TLS握手结束。

接下来客户端和服务器进入加密通信,其内部是普通的应用层协议。由于SSL/TLS是传输层协议,因此完全兼容。HTTPS,POP3,SMTP都可以在上边跑。

参考链接:

http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

https://www.jianshu.com/p/c93612b3abac

https://xz.aliyun.com/t/2531

 

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加密功能来保护数据的安全性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值