WAF-HTTPS [Encrypted Alert]断开连接

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
简介: WAF-HTTPS [Encrypted Alert]断开连接

问题背景

使用阿里云的WAF时, HTTPS访问,
偶尔会出现 SSL 建立连接失败
抓包发现 WAF返回了Encrypted Alert ,然后发了FIN包结束
内容里头序号 182~197的包都有异常
image.png

问题分析

问题方向确定

问题描述为:抓包发现 WAF返回了Encrypted Alert ,然后发了FIN包结束
分析FIN包是TCP链接中断开时使用的;如图:
image.png
确定该问题不是用户描述的SSL建立链接失败;而是断开链接有问题。

分析报文

定位用户描述的报文,如下确实有看到描述的报文,但是该分析方式无法有效的判断问题:
image.png
使用wireshark功能 Follow TCP Stream(追踪TCP流)观察条有问题的流报文
可以看到:
A、其中Encrypted Alert与FIN是同时从服务端发送的
B、Encrypted Alert的报文与上一条报文的间隔时间为119.89S
C、No.193的报文客户端马上发送了ACK
D、No.194过了14.948客户端发送了一个RST,ACK报文,重置链接
E、No.181与No.191直接没有任何报文通信

问题定位

总所周知WAF是一个Web应用层面的防护产品,目前WAF的实现访问是使用Tengine做方向代理。即也会有会话保持时长限制;
而WAF的会话保持时长为120S,与No.181与No.191直接的间隔时间非常相近;建议用户根据链接

附录

关于SSL-Encrypted Alert提示

SSL通信在断开连接时均为发送Encrypted Alert信息给客户端告知要关闭ssl会话了,同步会发生FIN,ACK报文从TCP层面断开链接:

Since we are already in an encrypted connection, the only way to really know what is being sent within packets is to make Wireshark or similar tools aware of the keys used in the transmission. Even though this is possible, I think for the purpose of this analysis it is enough to know that the client sends an alert message when the connection is asked to be closed actively by the client or server. The type of this Alert message should be CloseNotify (type 0), but we won’t be able to see it from the raw data. In this case, the client is the sender of the following Alert message:

Secure Sockets Layer
    TLSv1.2 Record Layer: Encrypted Alert
        Content Type: Alert (21)
        Version: TLS 1.2 (0x0303)
        Length: 26
        Alert Message: Encrypted Alert

关于会话时时间

proxy_read_timeout 60s;
 默认:60s
 配在:http中、server中、location中
  在将请求发送给upstream的server后,后端server就会回传数据,这个时间是两次收取数据的时间差,不是整个的接收时间。比如说负载大、网络卡,在第1次收到请求的数据时断了,然后过了60s后才收到后面的数据,这两个时间差(其实就是两次read的时间差)超过了设置的60s,tengine(nginx)就会超时报错,我当前走的是默认设置60s。
  Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.
目录
相关文章
|
4月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
10天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
54 1
|
2月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
68 11
|
2月前
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
48 8
|
2月前
|
安全 应用服务中间件 Linux
判断一个网站是否使用HTTPS协议
判断一个网站是否使用HTTPS协议
74 4
|
3月前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
258 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
7月前
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
3月前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
156 4
|
4月前
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
文章介绍了如何配置HAProxy以支持HTTPS协议和实现服务器的动态上下线。
172 8
|
4月前
|
安全 网络协议 网络安全
在实现HTTPS时,有哪些常见的安全协议
在实现HTTPS时,有哪些常见的安全协议
227 1