SSL Web启用的嵌入式设备

13

我们正在开发一款嵌入式设备,需要在不明文发送用户凭据的情况下登录到其Web界面。

登录表单的外观应该是可定制的,因此无法使用摘要认证。据我们所知,唯一剩下的选择是使用HTTPS与SSL。

该设备通常通过其IP地址从本地网络访问,但也可以从互联网访问。

我的问题是:当本地访问设备未分配DNS名称时,是否有可能防止“无法验证”浏览器警告?据我所知,SSL证书必须绑定到DNS名称并在证书颁发机构进行认证,才能使浏览器完全接受证书。

我完全意识到,没有经过认证的证书,浏览器无法对Web服务器进行身份验证,这可能会导致“中间人攻击”。

设备配置完成后,它很少被访问,但应该易于访问。


如果您事先拥有证书的指纹(这仅适用于少数设备),则可以在呈现自签名证书时进行检查。如果它们匹配,则是您的设备没问题。 - Piskvor left the building
@Piskvor 从管理角度来看,拥有CA证书并发行自定义设备证书会更容易 - 客户端只需要安装/信任一个CA证书。 - Eugene Mayevski 'Callback
1
@Eugene Mayevski 'EldoS Corp:我非常犹豫是否要安装网络硬件制造商的CA证书,这只会引起巨大的警示并呼喊“中间人攻击”(正如您所知,任何受信任的CA都可以为任何网站颁发证书,并且它们将被浏览器信任)。 - Piskvor left the building
1
@Piskvor 相信一堆自签名证书(这些证书在设备中具有私钥且无法撤销泄漏的证书)会更加危险。 - Eugene Mayevski 'Callback
3
@Eugene Mayevski 'EldoS Corp: 不完全是。如果被攻击,自签名证书只会给你在那个设备上的中间人攻击能力。而如果CA机构被攻击(甚至是被恶意代理人收买),它将给你HTTPS流量的全部中间人攻击能力,而不仅仅限于那一个设备上的流量。即使是一家最擅长成为CA的公司也无法做到正确(例如Comodo,DigiNotar),这是因为成为CA只是一个避免使用自签名证书的必要恶,你认为在一个公司里,成为CA只是一种必要的恶,它会比这更好吗? - Piskvor left the building
@Piskvor 不完全是这样的 :). 如果IP地址是局域网内的,则破解证书将使其可在具有相同IP地址的任何设备上使用。设备自签名证书被破解的可能性比受保护的CA证书高一个数量级,后者留在设备供应商站点上。 - Eugene Mayevski 'Callback
1个回答

7

HTTPS允许针对IP地址而非主机名颁发证书。事实上,HTTPS规范(RFC 2818)指出:“在某些情况下,URI是以IP地址而非主机名指定的。这种情况下,证书中必须包含iPAddress subjectAltName,并且该名称必须与URI中的IP完全匹配。”

因此,如果您可以从绑定到设备IP地址的CA获得SSL/TLS证书,则连接到该设备的客户端应将其视为有效,因为(1)用于访问设备的URI是与证书中包含的IP地址相匹配的,且(2)证书由客户端设备信任的CA链颁发。

如果您只需要使用自己控制的客户端访问该设备,则可以使用自己生成并绑定到IP地址的自签名证书,但您需要配置每个要访问它的客户端以显式信任该证书,因为它不是由受信任的CA颁发的。


好的。我们将会发货大量设备,主要是在本地网络上使用本地IP地址进行访问。因此,我认为除了在浏览器中手动将证书设置为可信之外,无法防止浏览器警告,因为浏览器无法对自签名证书进行身份验证。 - Munk
1
当启用SSL时,具有Web界面的路由器和其他网络设备是否也使用自签名证书? - Munk
7
(1) 我同意。 (2) 通常的做法是在网络界面使用自签名证书(这会导致浏览器连接时产生警告),并允许设备管理员上传不同的证书。因此,负责设备的人可以选择接受警告或上传他们自己信任的证书。 - user121356
好的,“证书上传”可能是一个解决方案。非常感谢您的帮助! - Munk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接