我有一个在IoT设备上运行的web服务器,更具体地说,运行在ESP32上。
这个web服务器服务于管理设备的网站,可以包含一些敏感信息,因此我需要使用HTTPS为网站服务。问题是,使用我们设备的客户端必须在他们喜欢的浏览器上接受通常的错误,因为我的SSL证书不是由可信的权威机构签名的--它是自签名的。
据我所知,我无法为web服务器的IP地址签名我的证书,因为它们只接受域名。
任何建议都会受到极大的赞赏,因为我碰壁了。
发布于 2022-02-09 17:28:38
不要在多个设备上重用相同的证书和私钥。可以并将从设备中提取私钥。即使您成功地安装了一个有效的& CA签名证书,任何人都可以模仿您的服务器。与使用普通HTTP或无需手动验证指纹的自签名证书相比,中间人的情况同样不安全。
每一个具有足够计算能力的IoT设备都应该这样做:
发布于 2022-02-09 11:11:37
你本质上是在问“我希望全世界都相信我控制着192.168.1.100”。如果你能要求,那么任何人都可以。显然,我们不希望随机的人和组织在本地网络中获得任意的“可信IP”。
“我希望人们能够在他们的本地网络中连接到我的服务器”这个问题并不新鲜,所以有很多解决方案:
在内部网络上,攻击者不太可能使用中间人攻击。毕竟,如果攻击者能够嗅探和解密您的本地无线通信,他们需要物理上接近,并已破解您的Wi加密密钥。
这稍微好一点,并将一个浏览器警告换另一个浏览器。有安全意识的用户会手动确认这个自签名的证书是可信的,这实际上提供了很好的安全性。或者相反,常规用户只需在警告上单击“Or”,然后忽略它,这基本上就是HTTP场景。
本质上,您最好只使用普通的旧HTTP,并允许用户在运行中创建一个新的自签名证书。
https://security.stackexchange.com/questions/259437
复制相似问题