物联网安全解决方案(第 1 部分)- 拒绝通用默认密码

网络安全对大公司来说不再是一大特色。网络安全现在是基本要求,对于嵌入式和物联网产品来说是尤其如此。ETSI 刚刚发布了关于物联网和相关产品安全设计的新规定CEPD 非常赞同及时发布这一规定。

(图片来源:CEPD)

随着物联网产品在市场上越来越流行、普及,现在是了解一些常见的物联网安全问题的最好时机。本文是关注物联网和嵌入式安全的系列文章之一。我们将讨论一些常见问题,并提供可能的解决途径。最后,我们希望在使用和设计物联网设备时,我们能更多地了解安全方面的问题。

默认密码

大多数物联网设备都使用通用默认密码,例如“admin”、“1234”、“user”等。不过,这样会带来严重的后果,因为许多用户一会直使用默认密码,从不更新。这样,任何熟悉这些密码的人都能轻而易举地访问物联网设备。潜在的“黑客”人群是同样购买了这类产品或了解过这类产品的任何人。很明显这是一个相当大的潜在黑客群体,他们现在十分清楚你的设备密码。

可能的解决方案

作为一个开发者,将密码以硬编码方式写入产品代码库中是一个非常不错的选择。然而,这种做法的风险大大超过了它带来的好处。幸运的是,有一些设计选择可以用来更好地保护物联网设备。

生成随机数

在初次上电时,物联网设备可以生成一个随机数作为其密码。然后,通过安全的方式与最终用户共用这个密码。因为这个密码是随机的,所以与另一个设备使用相同密码的概率很低。

随机数的生成可以通过硬件和软件手段来实现。诸如 MikroElektronika MIKROE-4090 等设备会生成一个真正的随机数序列。此外,许多现代处理器和微控制器都提供了真正的或伪随机数发生器外设。最后,C 和 C++ 通过使用预编译库 (https://www.geeksforgeeks.org/generating-random-number-range-c/) 来提供伪随机功能。

重点是,现在有很多方法用来生成随机数。在物联网设备上添加这一功能,可以避免大众化默认密码的困境,并展现你的产品确实比其他产品高出一筹。

要求更改密码

如果随机数太过复杂,那么首先让用户改变密码。在物联网设备投入使用前,需要提醒的是用户需要使用自己自定义的密码。这对用户来说有点麻烦,但为了保护用户的安全和你自己的产品声誉而去花费 30 到 60 秒的时间来完成这一步骤是非常值得的。

限制错误尝试的次数

诸如在 3 分钟的时间范围内只允许输错密码 5 次等类似规则,可以使你的物联网产品对自动攻击更有弹性。请注意,大多数的“黑客攻击”是通过快速猜测密码的机器进行的。如果你的物联网延迟了密码输入,那么黑客就不会得逞并使其的感到受挫,进而放弃对你的设备攻击。现在,光凭这种方法是不够的,还需要与前面的建议之一相结合才能实现坚不可摧。

这些问题和建议由 ETSI 提供。所有这些观点都参考了他们出版的 ETSI EN 303 645 v2.1.1 (2020 - 06)。

更多关于物联网安全的文章、博客即将发表,请继续关注

关于此作者

Image of Noah Madinger

Noah Madinger 是 Colorado Electronic Product Design (CEPD) 的高级工程师,自 2000 年初以来一直从事新型产品推广工作。在他的工作现职是负责开发技术解决方案,同时涵盖硬件和软件设计大量学科。另外还包括管理项目和技术团队,以及参与业务开发活动。Noah 积极参与各种文章和出版物的撰写,因为这些文章和出版物提供了深入探讨有趣话题和吸引更多受众的机会。

Noah 的专业兴趣包括反馈控制系统、基于 FPGA 和 MCU 的嵌入式设计以及航空航天应用。他是流程驱动和测试驱动开发范式的倡导者,并致力于将工程流程落实到团队日常工作中。每当看到一个新产品走向成熟并且没辜负大家期望时,Noah 总是由衷地感到高兴。

More posts by Noah Madinger, Colorado Electronic Product Design (CEPD)
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum