$ssl_early_data 来自 nginx:应用程序应该以某种方式使用它吗?
$ssl_early_data from nginx: should the application use it somehow?
我正准备打开 nginx ssl_early_data 以使用 TLS 1.3 启用 RTT-0。
我明白,如果我做得不对,重放攻击就成为可能。我知道,为了防止这种情况,您还需要使用 $ssl_early_data
Requests sent within early data are subject to replay attacks. To
protect against such attacks at the application layer, the
$ssl_early_data variable should be used.
我不明白的是,如果将此指令放入 nginx 配置中是否足够,或者 if/how 我服务器上的 PHP 应用程序是否应该以某种方式使用此 $ssl_early_data 变量并做一些额外的检查。
我不明白传递变量如何神奇地安全。
您可以阅读更多关于 0-RTT 以及应用程序实际管理它的必要性 here。
这绝对不容易,我认为 0-RTT 应该仅限于具有专门安全工程师的性能关键型应用程序。
你是对的,这个 header 本身没有做任何事情,你需要在你的 PHP 应用程序中添加额外的逻辑。
在我的例子中,我使用的是 fastcgi 变量而不是 header:
fastcgi_param TLS_EARLY_DATA $ssl_early_data;
然后在 PHP 中,您需要对任何存在重放攻击风险的请求执行检查:
if ($_SERVER['TLS_EARLY_DATA'] === '1') {
http_response_code(425);
exit;
}
您需要对所有需要重放保护的内容进行这种检查(例如 POST /transfer_money
)。
虽然您可以将它与没有副作用的东西分开(例如 GET /account_balance
)。
由于攻击者无法解码重放中的有效负载,GET 没有牙齿,您可以允许这些请求使用 TLS 早期数据。
最后,大多数浏览器尚不支持 HTTP 425 为时过早,因此我强烈建议返回一个错误页面,告诉他们“刷新并重新提交”表单。
随着浏览器支持的改进,越来越少的人会看到错误页面,浏览器会透明地处理 425 错误,但我们还没有做到这一点。
“425 太早”目前支持:
- 火狐 58+
您可以在此处跟踪其他浏览器:
- Chrome & friends
- 尚无 Safari 错误
我正准备打开 nginx ssl_early_data 以使用 TLS 1.3 启用 RTT-0。
我明白,如果我做得不对,重放攻击就成为可能。我知道,为了防止这种情况,您还需要使用 $ssl_early_data
Requests sent within early data are subject to replay attacks. To protect against such attacks at the application layer, the $ssl_early_data variable should be used.
我不明白的是,如果将此指令放入 nginx 配置中是否足够,或者 if/how 我服务器上的 PHP 应用程序是否应该以某种方式使用此 $ssl_early_data 变量并做一些额外的检查。
我不明白传递变量如何神奇地安全。
您可以阅读更多关于 0-RTT 以及应用程序实际管理它的必要性 here。
这绝对不容易,我认为 0-RTT 应该仅限于具有专门安全工程师的性能关键型应用程序。
你是对的,这个 header 本身没有做任何事情,你需要在你的 PHP 应用程序中添加额外的逻辑。
在我的例子中,我使用的是 fastcgi 变量而不是 header:
fastcgi_param TLS_EARLY_DATA $ssl_early_data;
然后在 PHP 中,您需要对任何存在重放攻击风险的请求执行检查:
if ($_SERVER['TLS_EARLY_DATA'] === '1') {
http_response_code(425);
exit;
}
您需要对所有需要重放保护的内容进行这种检查(例如 POST /transfer_money
)。
虽然您可以将它与没有副作用的东西分开(例如 GET /account_balance
)。
由于攻击者无法解码重放中的有效负载,GET 没有牙齿,您可以允许这些请求使用 TLS 早期数据。
最后,大多数浏览器尚不支持 HTTP 425 为时过早,因此我强烈建议返回一个错误页面,告诉他们“刷新并重新提交”表单。
随着浏览器支持的改进,越来越少的人会看到错误页面,浏览器会透明地处理 425 错误,但我们还没有做到这一点。
“425 太早”目前支持:
- 火狐 58+
您可以在此处跟踪其他浏览器:
- Chrome & friends
- 尚无 Safari 错误