#tls #w5500 #wiznet

no-std w5500-tls

Wiznet W5500互联网卸载芯片的TLS客户端

9个不稳定版本 (3个重大变更)

0.4.0 2024年6月9日
0.3.0 2023年10月2日
0.2.0 2023年8月6日
0.1.3 2022年8月7日
0.1.0-alpha.02022年3月20日

#528 in 嵌入式开发


用于 w5500-mqtt

MIT 协议

275KB
4.5K SLoC

w5500-tls

Wiznet W5500 SPI互联网卸载芯片的TLS v1.3客户端。

这需要一个大约19k的闪存空间,用于带有 thumbv7em-none-eabi 目标、启用调试断言和 p256-cm4 功能的 -O3。启用所有日志记录需要额外的 ~40k 闪存空间。

警告

⚠️ 这处于早期alpha状态 ⚠️

所有常规安全免责声明均适用于此处,请阅读许可证,如果使用此软件,您的仓鼠可能会爆炸,请不要在生产环境中使用此代码等。

此外,这无法抵御侧信道攻击。

  • 加密可能直接在套接字缓冲区中发生,任何可以访问物理SPI总线或SPI设备寄存器的实体都可以轻松截获数据。
  • 为了在套接字缓冲区中不恰当地实现加密,有一个简陋的AES实现,几乎没有考虑到恒定时间评估。

限制

目前这仅支持预共享密钥。这不会适用于大多数Web(HTTPS)应用程序。

  • 需要与套接字缓冲区大小相等的本地缓冲区。
    • TLS记录分片使得实现套接字缓冲区流变得不切实际。
  • 加密支持有限
    • 加密方式: TLS_AES_128_GCM_SHA256
    • 密钥交换: secp256r1
  • 不支持证书验证
  • 不支持客户端证书(双向TLS)
  • 不支持早期数据
  • 不支持提供TLS

功能标志

默认情况下禁用所有功能。

  • eh0: 透传到 w5500-hl
  • eh1: 透传到 w5500-hl
  • defmt: 启用 defmt 日志记录。也是 w5500-hl 的透传。
  • log: 启用 log 日志记录。
  • p256-cm4: 使用 p256-cm4,这是一个针对Cortex-M4 CPU优化的P256实现。

依赖关系

~3.5MB
~71K SLoC