首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为所有浏览器上信任的IoT设备制作SSL证书?

如何为所有浏览器上信任的IoT设备制作SSL证书?
EN

Security用户
提问于 2022-02-08 17:09:00
回答 2查看 1.2K关注 0票数 4

我有一个在IoT设备上运行的web服务器,更具体地说,运行在ESP32上。

这个web服务器服务于管理设备的网站,可以包含一些敏感信息,因此我需要使用HTTPS为网站服务。问题是,使用我们设备的客户端必须在他们喜欢的浏览器上接受通常的错误,因为我的SSL证书不是由可信的权威机构签名的--它是自签名的。

据我所知,我无法为web服务器的IP地址签名我的证书,因为它们只接受域名。

  • 那么,解决这一问题的最佳方法是什么?

任何建议都会受到极大的赞赏,因为我碰壁了。

EN

回答 2

Security用户

发布于 2022-02-09 17:28:38

不要在多个设备上重用相同的证书和私钥。可以并将从设备中提取私钥。即使您成功地安装了一个有效的& CA签名证书,任何人都可以模仿您的服务器。与使用普通HTTP或无需手动验证指纹的自签名证书相比,中间人的情况同样不安全。

正确的方式

每一个具有足够计算能力的IoT设备都应该这样做:

  1. 在初始设置期间(以及之后的任何时间点),允许用户决定设备的主机名。它可以默认为设备的IP地址,如果客户端选择使用自签名证书,则可以使用该地址。
  2. 为单个设备创建一个随机密钥,该密钥不仅来自可预测的变量,如设备的序列号或MAC地址。不要在设备的整个生命周期内使用静态键,每次生成一个新的键。
  3. 使用随机密钥,为主机名创建一个自签名证书。
  4. 允许用户下载证书签名请求(CSR)。
  5. 用户现在可以使用他们拥有的(子)域的FQDN,以适合他们的基础设施的方式签署证书,无论是本地PKI还是公共CA。
  6. 允许上传此证书。验证它仍然是一对私钥,并用它替换自签名证书。
票数 4
EN

Security用户

发布于 2022-02-09 11:11:37

你不能.

你本质上是在问“我希望全世界都相信我控制着192.168.1.100”。如果你能要求,那么任何人都可以。显然,我们不希望随机的人和组织在本地网络中获得任意的“可信IP”。

您的选择

“我希望人们能够在他们的本地网络中连接到我的服务器”这个问题并不新鲜,所以有很多解决方案:

只需使用HTTP

在内部网络上,攻击者不太可能使用中间人攻击。毕竟,如果攻击者能够嗅探和解密您的本地无线通信,他们需要物理上接近,并已破解您的Wi加密密钥。

使用自签名证书

这稍微好一点,并将一个浏览器警告换另一个浏览器。有安全意识的用户会手动确认这个自签名的证书是可信的,这实际上提供了很好的安全性。或者相反,常规用户只需在警告上单击“Or”,然后忽略它,这基本上就是HTTP场景。

本质上,您最好只使用普通的旧HTTP,并允许用户在运行中创建一个新的自签名证书。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/259437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档