任何连接物联网 (IoT) 的设备都需要首先连接互联网。这一连接可以通过手机、Wi-Fi 或以太网实现。本文讲述了在设计运用 802.11 进行连接的设备时所面临的挑战。其中的一些挑战包括设置 Wi-Fi 连接细节、连接多个 Wi-Fi 网络、设备固件升级和安全性限制。还重点介绍了可以缓解这些挑战并促进快速部署 Wi-Fi 解决方案的 Lantronix 解决方案。
设置 Wi-Fi 连接
连接设备的第一步就是在网络上交谈。在以太网上,这一点十分简单。插上网线,动态主机配置协议 (DHCP) 服务器就会自动分配地址,设备就准备好进行通信了。通过手机连接,SIM 卡便已经包含了安全标识信息并且可以由移动网络运营商进行无线设置,这样设备就能访问网络了。
借助 Wi-Fi,必须使用其将连接的网络详情对每个设备进行设置。最基本地说,这就包括服务集标识符 (SSID)、安全套件以及需要连接的通行短语或身份验证凭据。
如果 802.11 模块没有软件启用接入点 (SoftAP) 功能,那么就需要通过串行或以太网界面完成配置。这意味着主机处理器必须具备用户界面并管理设备的配置,这会大幅增加设计的成本和复杂性,尤其是在需要为设备添加显示器时。通过使用具备 SoftAP 功能的设备,可以避免上述成本和复杂性。这一功能允许 802.11 模块将自己公布为一个接入点,从而允许 Wi-Fi 客户端连接该模块,而不需要依赖旧的和获支持较少的临时模式。
使用 SoftAP
设计者需要考虑的第一个事宜就是:实验室里能运行的是否也能在部署中运行。
由技能水平各不相同的用户使用的数以千计的设备。大部分具备 SoftAP 的模块都允许他人连接一些有限的网络配置管理器、扫描可用结构网络并选择要连接哪一个网络。对于最终用户的通常指令就是:
-
将您手机的 Wi-Fi 连接网络:ACMEWidget
-
输入密码 ACME_Designs
-
立即打开您的手机浏览器,轻触 URL 栏(希望您知道这是什么!)再输入 10.10.0.1
再按“输入”
-
在屏幕上,找到显示“扫描”的链接
-
数秒过后,请选择您的结构 Wi-Fi 网络
-
在显示的方框中输入结构 Wi-Fi 网络的密码,再按一下“输入”
-
重新启动,希望 LED 会显示连接!(如果您选择的 802.11 模块没有同时具备
SoftAP 和“工作站”模式的话)
这在实验室中或许运行良好,但部署这样的设备会导致维护和技术支持成本增加。它还会限制将设备设置纳入公司现有配置实用程序(如果存在的话)的能力。
解决这一问题的方法便是选择一个允许可轻松以编程方式设备 Wi-Fi 详情的模块。例如,Lantronix 为其网络服务器设计了一项称为 WebAPI 的功能,可使用 HTTP POST 消息直接访问 xPico Wi-Fi 模块的配置。
Lantronix 还发布了 xPico Wi-Fi 实用程序 Android App,仅要求用户选择自己想要 xPico Wi-Fi 连接哪个网络以及密码。免除了上述的所有其他步骤。对于要求最少用户交互的终端设备而言,这一功能使得将配置集成到 802.11 模块变得简单。
在多个 Wi-Fi 网络之间进行连接
当设备移动到不同位置,它就有可能移动到拥有不同 Wi-FI 网络的位置。当仓库可能有一个 SSID 和密码时,前端办公室就可能有其他 SSID 和密码。您设备的用户会期望您的设备能够像他们自己的智能手机或平板电脑一样运作:每次设置一个 Wi-Fi,然后再使用会在每个网络处于范围内时自动连接的设备在多个网络间移动。
大部分 802.11 模块只能存储一个 Wi-Fi 网络的连接详情。当在实验室中运行良好时,如果部署的通风设备需要 IT 部门在其每次移到不同医院大楼时都进行重新配置,这是不可接受的。这意味着附加到 802.11 模块的处理器如今需要执行 Wi-Fi 配置管理器。处理器和模块之间的数据流也需要被定期中断,以便处理器能要求模块对无线网络进行扫描,然后再决定通过串行端口重新配置 802.11 模块。
在附加的处理器上执行 Wi-Fi 配置管理器意味着 802.11 模块的网络服务器可能不能用于设备,因为来自用户界面的数据需要进入处理器,而不是进入模块本身。附加的处理器如今需要执行整个新的网络服务器,这会大幅增加设计的复杂性。
要避免这些问题,还要同时保持客户所期望的易用性,Lantronix xPico Wi-Fi 在 Lantronix 设备服务器软件套件中包含了一个高级配置管理器。这一配置管理器包括 WLAN 配置文件给你,可以将多个 Wi-Fi 的设置详情自动存储在 xPico Wi-Fi 的闪存中。这意味着终端设备可以在 Wi-Fi 网络之间漫游,而不需要最终用户或附加的微控制器进行任何交互。
设备服务和维护
同步 SoftAP
.在很多使用案例中,设备会进入配备安全网络的最终用户设施中,当中的最终用户不会希望来自服务公司的技师访问自己的网络。传统型号会将设备从网络中移走,在将其联系电脑,以便维修技师将其带至对设备进行任何维修或重新编程的地点。如果有集中管理系统对设备进行监控,这就会导致问题,因为设备脱机时警报也会被关闭。此外,如果设备会对进出(例如门)进行控制,那么在维修设备时,门就无法使用。
针对这一点的解决方案就是使用不仅具备 SoftAP、还可同时将 SoftAP 运行到客户端界面的 802.11 模块。理想情况下,该模块还允许同时访问模块资源以及附加的微控制器。这样,技师就可访问设备,而不需要获得进入最终客户网络的凭据。
Lantronix xPico Wi-Fi 是一个既具备即时 SoftAP 又可连接企业 Wi- Fi 网络的模块。这就允许终端设备和云应用程序之间形成数据通道,并同时从两个界面支持 Wifi 模块的配置。这是 Lantronix 设备服务器应用程序的一项独特功能。
无线固件升级
802.11 模块有时需要升级固件,无论是部署新功能还是修复在部署设备之后所发现的固件问题。软件工程师必须从一开始就制定好计划,确定该如何完成固件升级。大部分模块会允许使用串行或 JTAG 电缆进行升级。这就要求终端设备能连接标头,还能对进行升级的设备进行物理访问。
一些模块提供的另一个选择就是使用设备的 Wi-Fi 连接进行无线 (OTA) 升级。理想上说,升级会以安全的方式完成,也就是说如果 Wi-Fi 连接或电源中断,设备会保持在工作状态。
Lantronix xPico Wi-Fi 会包括一个 OTA 升级应用程序,位于和主要固件应用程序不同的闪存部分中。这意味着如果升级由于任何原因失败,xPico Wi-Fi 会重新启动到 OTA 升级应用程序中,才能收到新的主要固件映像。
OTA 升级应用程序还会存储自己所连接的客户端的 WLAN 配置文件,就像配置管理器一样,PTA 升级应用程序可以通过 WebAPI 管理。这意味着 xPico Wi-Fi 能够突破传统地进行使用 HTTP POST 请求编写脚本的安全升级,并且既可在 SoftAP 界面上本地完成,也可通过客户端阶段远程完成。
安全性
在选择 802.11 模块时需要考虑到许多方面的安全性。其中就包括无线连接的安全性以及数据安全性。
无线安全性
无线安全性会通过要求密码限制对无线网络的访问,还会对802.11 模块和接入点之间的数据进行加密。务必了解不同连接方法的实施以及之间的实际差异。
首先需要决定的一点就是设备是支持企业安全性还是个人安全性。个人安全性是带有预共享密钥的网络的常用名称。这是最常见的网络部署类型,这对于管理和最终用户都是最简单的。有了个人安全性,所有人都能使用相同的通行短语连接网络。漏洞在于任何人都知道连接的通行短语,如果通行短语更改,所有最终用户都需要获得通知并重新配置所部署的设备。
企业安全性,或称 802.1x 通过为每个用户使用独立用户名和密码、并使用后端 RADIUS 服务器验证用户并在验证完成后交换加密密钥来应对上述漏洞。这个安全性类型对于管理员要棘手很多,因为它要求服务器进行身份验证。在许多案例中,终端设备需要配置允许身份验证生效的证书。
无论是企业还是个人,连接都会为数据使用加密密钥。密钥可以在连接时生成,如同在 Wi-Fi 安全访问 (WPA) 或 WAP2 中一样,或者是如同有线等效保密 (WEP) 中一样的实际连接密码。
WPA2 是最安全的,因为它会使用基于高级加密标准 (AES) 的加密方式。WPA 和 WEP 都存在可以利用的漏洞。请注意:WEP 已被 Wi-Fi 联盟弃用,所有部署的任何接入点都很可能没有 WEP 支持。
需要考虑的重要一点就是:在部署终端设备时,现有网络可能会使用三种方式中的任何一种,所以所选择的 802.11 模块必须支持全部这三种方式。WEP 代表了一项特别挑战,其中 WEP 要求 10 (WEP64) 或 26 (WEP128) 个十六进位数字的密钥。
因为最终用户很难记住这个密钥,接入点制造商会允许使用者输入通行短语。由于通行短语转换为十六进位密钥不属于 WEP 规范的组成部分,不同的接入点制造商会选择不同的转换算法。Lantronix 确定了接入点所使用的 32 种不同算法。
Lantronix SmartConnect EasyWEP 功能会负责管理不同的转换算法,以便用户可以输入自己的通行短语并且不需要使用十六进位密钥就能连接自己的 WEP 网络。SmartConnect EasyWEP 功能使用 xPico Wi-Fi 的 WebAPI 来接受通行短语,然后尝试每个已知的转换算法,从而尽量与接入点建立连接。当其找到可以完成连接的转换算法时,会以正确的十六进位密钥将 WLAN 配置文件保存到闪存中,供将来使用。
选择只允许输入十六进位密钥的模块而不是选择同时允许通行短语的模块,可能会导致不必要的技术支持电话或返回,因为只知道自己网络通行短语的用户不知道如何将终端设备连接网络。
数据安全性
无线安全性部分仅会加密在终端设备和最近接入点之间往来的数据。可以在两个点截获未加密数据有效负载:第一个是无线接入点的上游,因为不会再使用无线安全密钥对数据加密;第二个是由无线网络上(如果使用不安全密钥)或不使用无线安全性的网络上的其他设备。
加密数据的两个常见方式就是高级加密标准 (AES) 和安全套接字层/传输层安全性 (SSL/TLS)。AES 是 NIST 认可的对称密钥加密方式。连接的每一端都拥有相同密钥来加密和解密数据。这使得部署变得很简单,因为可以在配置设备时完成。加密和解密步骤都属于 CPU密集型活动,所以最好选择能处理这个部分的 802.11 模块,以免在所附加的微控制器中执行它。
而这个加密方式的缺点就在于:设计者必须同时控制彼此交谈的两个设备,因为需要同时为终端设备和服务器配置密钥。为了允许客户端连接不属于自己的服务器,可以使用安全 HTTP 或 HTTPS 中所使用的 SSL/TLS 方式。这个方式使用不对称加密来建立连接,再逐个连接交换临时对称密钥。
SSL/TLS 的漏洞存在于最初的证书交换。由于不存在预先配置的密钥,很容易被用户通过将 DNS 重定向到自己服务器、再发送伪装成终端服务器的证书而遭受到中间人 (MITM) 攻击。发证结构的 (CA) 的引入解决了这一问题。有一些在默认情况下可信的实体,而且任何服务器证书都需要由 CA 的证书或者能够验证关系(也称为证书链)的中介签字。
这一方式会体现出终端设备更为复杂的配置。CA 的证书配置设备,这样它才能验证自己所连接服务器的证书链。此外,由于证书拥有到期日期,必须配备一个可以在到期之前检索和安装新证书的系统,才能保持信任链完好无损并预防 MITM 攻击。
许多数据加密和设备配置任何可被卸载到 802.11 模块。Lantronix xPico Wi-Fi 包括 Lantronix 设备服务器软件套件,其中包含加密功能,包括简单配置在内,这样加密对于终端设备来说就是完全透明的。