怎么mbedtls_config.h 中定义 MBEDTLS_SSL_RENEGOTIATION 为 MBEDTLS_SSL_RENEGOTIATION_DISABLED
时间: 2023-08-07 12:06:12 浏览: 73
要在 mbedtls_config.h 中将 `MBEDTLS_SSL_RENEGOTIATION` 定义为 `MBEDTLS_SSL_RENEGOTIATION_DISABLED`,请按照以下步骤操作:
1. 打开 mbedtls_config.h 文件,该文件通常位于 mbedtls 库的 include/mbedtls 目录下。
2. 在文件中搜索 `MBEDTLS_SSL_RENEGOTIATION`。
3. 将找到的相关定义行的值更改为 `MBEDTLS_SSL_RENEGOTIATION_DISABLED`。
4. 保存文件并重新编译你的应用程序。
这样做将禁用 mbedtls 库中的重新协商功能。请注意,根据你使用的 mbedtls 版本,该选项的定义可能会略有不同,但通常以 `MBEDTLS_SSL_RENEGOTIATION` 开头。
请确保在修改 mbedtls_config.h 文件之前,仔细阅读相关文档并充分了解对系统的影响。同时,进行修改时要注意备份原始文件以便恢复。
相关问题
boringssl如何禁用TLS重新协商功能
BoringSSL 是 Google 开源的一个用于 SSL/TLS 加密通信的库。如果您想禁用 TLS 重新协商功能,可以通过以下步骤实现:
1. 打开 BoringSSL 源代码,找到文件 `ssl/internal.h`。
2. 在该文件中找到以下代码:
```c
#define SSL_OP_NO_RENEGOTIATION 0x400000
```
这是一个 SSL 选项常量,它表示禁用 TLS 重新协商功能。
3. 找到使用该常量的代码,通常是在创建 SSL 上下文对象时设置 SSL 选项:
```c
SSL_CTX_set_options(ctx, SSL_OP_NO_RENEGOTIATION);
```
如果您想禁用客户端和服务器端的 TLS 重新协商功能,需要在两个地方都进行修改。
4. 重新编译 BoringSSL 库并更新您的应用程序使用的库版本。
通过这些步骤,您就可以禁用 BoringSSL 中的 TLS 重新协商功能。请注意,这可能会对某些应用程序的功能产生影响,因此在进行更改之前请仔细考虑。
renegotiation
renegotiation是指在SSL/TLS通信中,当客户端和服务器建立连接后,在通信过程中重新协商加密参数的过程。在理想情况下,服务器只会在第一次和客户端握手时要求其提供证书。但在现实中,出于种种原因,客户端证书仅在必要时才会被请求,这就导致服务器在此时发起renegotiation。然而,HTTP协议无法通知客户端在renegotiation后重新提交请求,所以服务器会自动回复上一次的请求。这就存在了安全隐患,攻击者可以利用renegotiation中的协调不一致性,插入任意的明文,从而发起中间人攻击。为了修复这个漏洞,研究人员已经提交了一个修复方案,即在发起renegotiation时,在HELLO消息中加入上次FINISHED消息中的验证数据,以连接两次会话。然而,这个修复方案会修改TLS协议本身,部署成本较高。因此,需要注意的是,这个攻击针对的是SSL/TLS协议本身,而不是具体的实现,其危害程度可以与去年发现的DNS和BGP漏洞相媲美。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [SSL renegotiation攻击详解](https://blog.csdn.net/zhu_xz/article/details/4783142)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]