chapter24 安全性

20 篇文章 0 订阅
12 篇文章 0 订阅

chapter24 安全性

1、严峻的安全形势

  • JDK的安全类库提供了SSLSocket和SSLServerSocket类库用于支持SSL/TLS安全传输,但对NIO并没有提供现成可用的
  • Netty通过JDK的SSLEngine,以及SSLHandler的方式提供对SSL/TLS安全传输的支持。
  • 对于Netty默认提供的HTTP协议,Netty利用SslHandler,同样支持HTTPS协议。

2、Netty SSL 安全特性

  • Netty通过SslHandler提供对SSL的支持,包括SSL V2、SSL V3和TLS

2.1 SSL单向认证

  • 单向认证即客户端只验证服务端的合法性,服务端不验证客户端。
    1. 单向认证开发参考526
    2. 单向认证原理
      • SSL客户端向服务端传送客户端的SSL协议的版本号、支持的加密算法种类、产生的随机数、以及其他可选信息
      • 服务端返回握手应答消息,向客户端传送确认SSL协议的版本号、加密算法的种类、随机数以及其他信息
      • 服务端向客户端发送自己的公钥
      • 客户端对服务端的证书进行认证,服务端的合法性校验包括:证书是否过期、发行服务器证书的CA是否可靠、发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”、服务器证书上的域名是否和服务器的实际域名相匹配等。
      • 客户端随机产生一个用于后面通讯的“对称密码”,然后用服务端的公钥对其加密,将加密后的“预主密码”传给服务端。
      • 服务端将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主密码
      • 客户端向服务端发出信息,指明后面的数据通讯将使用主密码为对称密钥,同时通知服务器客户端的握手过程结束
      • 服务端向客户端发出信息,指明后面的数据通讯将使用主密码为对称密钥,同时通知客户端服务器的握手过程结束
      • SSL的握手部分结束,SSL安全通道建立,客户端和服务端开始使用相同的对称密钥对数据进行加密,然后通过Socket进行传输

2.2 SSL双向认证

  • 客户度也需要进行安全认证,这意味着客户端产生的证书也要导入服务端的数字证书仓库中
    1. 双向认证开发533
    2. 双向认证原理
      • SSL双向认证相比单向,多了一步服务端发送认证请求消息给客户端,客户端发送自签名证书给服务端进行安全认证的过程。

2.3 第三方CA认证

  • 解决自签名SSL维护和调试工作量大的问题。因为对密钥和证书进行了修改,就需要重新进行签名和证书交换。

3、Netty SSL 源码分析

4、Netty扩展的安全特性

  1. IP地址黑白名单机制
  2. 接入认证
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值