问题标签 [mbedtls]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
91 浏览

openssl - 当我使用 mbedtls 时 MPPE 密钥不匹配

我在嵌入式平台中运行 Mbed TLS 作为核心安全库。我的应用程序用于使用带有 mschapv2 的 PEAPv0 作为阶段 2 身份验证连接到企业网络。

以下是 Ubuntu 上的设置详细信息服务器设置

客户端设置

我正在使用带有密码套件 MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384 / MBEDTLS_TLS_ECDHE_WITH_AES_256_GCM_SHA384 的 TLSv1.2,并且我在上述密码套件的内置 tls-prf 函数的帮助下使用 tls_prf_sha384 函数,我发现在客户端和服务器端生成的 MPPE 密钥是不匹配。

但是当我使用 MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA256 / MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA 哪个实习生使用 tls_prf_sha256 时,我发现生成的 MPPE 密钥在两端都匹配

然而,根据 TLS v1.2 RFC,已经提供了基于客户端-服务器协商动态选择密码套件的规定。但在低于 TLSv1.2 的情况下,它使用 tls1_prf 函数。

当我查看 openssl 代码、freeradius 和 wpa_supplicant 代码时,它使用函数 SSL_export_keying_material 。然后我也找不到 wrt openssl "SSL_export_keying_material" 函数和 Mbedtls "tls_prf" 的实现差异。

我可以知道我还缺少什么。

0 投票
0 回答
121 浏览

ssl - 将 HAproxy 配置为 TLS 的 Mbed tls 实现

如何将 HAproxy 配置为 TLS 的特定实现,例如“Mbed TLS”,它是专用于嵌入式系统的安全库。

提前致谢

0 投票
1 回答
296 浏览

node.js - 我可以限制 Node.js / express.js 中 TLS 消息的长度吗?

我有一个 Node.js 服务器通过 HTTPS 提供(相当大的)文件。使用“普通”HTTPS 客户端时,一切都按预期工作。但我的主要用例是将这些文件提供给嵌入式系统(大文件是固件映像)。

嵌入式系统使用 mbedTLS 库创建与我的 Node 服务器的安全 SSL/TLS 连接,并发送 HTTPS 请求以下载文件。服务器以八位字节流的形式忠实地回答 HTTP 正文中的文件。

问题:由于嵌入式系统的内存限制,我的客户端的最大消息缓冲区大小为 4096 字节。但是服务器以更大的块发送数据(例如,每条消息 16408 字节)。由于缓冲区较小,mbedTLS 无法处理这些大消息,并拒绝解密数据。

我可以以某种方式告诉 Node 限制它可以在一条 TLS 消息中发送的数据量吗?

0 投票
1 回答
1948 浏览

c - mbedtls:mbedtls_ctr_drbg_seed 上的错误

我正在使用 mbedtls 运行 SSL 服务器。函数mbedtls_ctr_drbg_seed返回 -34。我的代码如下:

0 投票
1 回答
862 浏览

encryption - MbedTLS GCM 解密错误

我有下面的 C 程序,它尝试使用 MbedTLS AES GCM 函数来加密和解密。加密运行良好,但解密异常,mbedtls_cipher_check_tag() 中的 rc = -25344 (-0x6300)。mbedtls_strerror 为该返回码返回“最后一个错误是:-0x6300 - CIPHER - 身份验证失败(对于 AEAD 模式)”。

尽管文档说将其放在 mbedtls_cipher_finish() 之后,但我尝试更改函数的位置(如代码中所示)但没有成功。

我做错了什么,知道吗?任何帮助都是非常有价值的。

提前致谢

这里的代码:

etss.h(由 Gilles 询问)是:

注意这里没有生成十六进制码,只是手动设置。

再次感谢。

0 投票
1 回答
703 浏览

embedded - CMSIS FreeRTOS 动态分配

我正在开发一个嵌入式系统,该系统具有 CMSIS FreeRtos 和 heap4 作为内存管理方案。

现在我正在尝试将 mbedTls 移植到我的系统中,并且我必须提供动态分配功能,例如 alloc 和 free。

mbedTLS 需要两个函数来分配和释放内存。这些是 mbedTLS 所需的函数原型:

正确使用 FreeRTOS 提供的堆的最佳方法是什么?以内存池为例。

Heap4不提供 calloc 和 free 之类的功能。那么,我应该包装哪个函数以允许 mbedTls 分配内存?

在此先感谢您的帮助。

费德里科

0 投票
0 回答
305 浏览

c - mbedtls 熵:init 上的分段错误

我目前正在使用一个mbedtls项目,具体来说,我正在尝试设置一个熵上下文,允许我启动一个随机数生成器。
为了理解机制,我查看了示例程序gen_entropy
尽管预编译的可执行文件确实运行正常,但当我使用 编译同一个gen_entropy.c文件时gcc -o new_gen_entropy gen_entropy.c,我会立即遇到段错误。我自己的程序也是如此。
有没有人遇到过同样的问题?
你能分享一下克服这个困难的方法吗?

gen_entropy.c

0 投票
0 回答
3039 浏览

https - lwIP HTTPD HTTPS 支持(使用 mbed TLS)

我需要为嵌入式设备开发安全的 Web 应用程序。我已经在使用 lwIP,它是设备中的内部 HTTPD 和 mbed TLS,我站在重写 lwIPhttpd.c以支持 HTTPS 或使用已经支持它的不同 HTTP 服务器的问题(我还没有找到)。

我想这里的很多人之前已经处理过这个问题(嵌入式设备中的 HTTPS 服务器),所以我想问一下,是否有人可以提供示例或描述他是如何做到的。我计划重写 TCP I/O 函数httpd.c以使用 mbed TLS 函数,我想知道这是否足够好,因为我对 HTTPS 没有太多经验。

另外,如果 lwIP 团队的任何人读到此,我想问一下,您是否可以添加编译选项,以便我们可以使用自定义函数而不是tcp_write,tcp_poll等;所以我们不必更改httpd.c文件。

0 投票
0 回答
205 浏览

openssl - DTLS:OpenSSL 和 mbedTLS 密钥材料

我有一个使用 mbedTLS 的客户端和一个使用 OpenSSL 库的服务器。执行 DTLS 握手后,我试图通过下一个函数调用获取密钥材料

mbedTLS:

OpenSSL:

但是返回的值不同,因此我无法加密/解密消息。如果我使用 OpenSSL 进行客户端实现,那么一切都会顺利进行,并且加密/解密按预期工作。

有人知道上述行为的原因可能是什么吗?

0 投票
2 回答
85 浏览

c - Could not change the address pointed by char * c

I am receiving a buffer inside this function , I would like to ignore the first character by incrementing the buffer address by one.

I increment the buffer but out side the function the buffer contains the received data but it's not incremented.

It's strange !! could any one help me please !!