ESP8266芯片对softAP使用不同的加密

问题描述 投票:0回答:1

我有一个奇怪的案例,我正在尝试理解它。我在我的一个特定项目中使用 ESP8266 板。有较小的板和较大的板,其上装有其他模块,是从不同的供应商购买的。我认为这没有多大作用,但仅供参考。

现在项目本身就涉及到ESP的softAP能力的使用。我的一个 PC 应用程序是为了在 ESP 处于 softAP 模式时与 ESP 连接和交互而构建的。我在两种类型的开发板上都使用了 ESP8266 Arduino 核心,并且我假设使用的底层 Espressif SDK 也是相同的。但是,当我在一种板类型上启动 SoftAP 时,它使用 AES 加密,而另一种板类型使用 TKIP 加密。我之所以知道这一点,是因为我已通过 Windows 连接到这两个设备,然后查看了它们的 Wi-Fi 配置文件。果然,其中一个的 ESP 芯片使用 AES,而另一个使用 TKIP。

我想确定的是:

  1. 什么决定芯片使用什么加密?
  2. 有没有办法切换使用的加密方式? Arduino 核心人员表示,他们的核心并未涵盖这一点(here),并且查阅非操作系统文档并没有真正提供任何操作方法。第 3.5 节提到 softAP 模式支持 AES,并且还指出“对于组密钥,仅支持 TKIP”(文档here)。我不确定后一部分意味着什么,如果有人可以澄清的话,但看到我的一种板类型如何创建 AES 加密连接似乎并不需要担心,没问题。打开softAP时唯一可以提供的是authMode,它只是WEP、WPA、WPA2等之间的选择。查看Arduino Core代码,使用的是WPA2。然而,没有明显的函数/结构参数来操纵所使用的加密......

在设置软 AP 时,有哪些选项可以更改 TKIP 板的行为并强制它们使用 AES?任何建议或指示(不是双关语)将不胜感激!

esp8266 arduino-esp8266 esp8266wifi
1个回答
0
投票

在工作中的一个项目中,我们花费了很多人月的时间将已经运行的 esp8266 项目从非 RTOS SDK 移植到 RTOS SDK,仅仅是因为旧 SDK 不支持最新的加密功能。

我不知道旧的 SDK 中是否提供了您想要的确切功能,但它可能根本不可行。

当我们想要在 RTOS-SDK 中禁用 TKIP 时,Espresif 建议我们编辑 SDK 中的文件:

在文件

components/wpa_supplicant/src/esp_supplicant/esp_hostap.c
的函数
hostap_init
中,更改行:

auth_conf->wpa_group = WPA_CIPHER_TKIP;
auth_conf->wpa_pairwise = WPA_CIPHER_CCMP | WPA_CIPHER_TKIP;
auth_conf->rsn_pairwise = WPA_CIPHER_CCMP | WPA_CIPHER_TKIP;

任何你想要的密码。我们有:

 auth_conf->wpa_group = WPA_CIPHER_CCMP;
 auth_conf->wpa_pairwise = WPA_CIPHER_CCMP;
 auth_conf->rsn_pairwise = WPA_CIPHER_CCMP;

希望您可以在 RTOS-SDK 的源代码中看到足够的内容,以了解各种选项可能是什么,然后您可以查看您正在使用的 SDK 的源代码,找到看起来相同的东西(但遗憾的是它可能不在那里)。

© www.soinside.com 2019 - 2024. All rights reserved.