IoT安全:为什么X.509并不总是最好的选择

文章:Wilfred Nilsen

X.509证书使解决方案更安全,但如果需要客户端证书,使用它会非常复杂化设计。

前段时间,一份战备文件在互联网上发现了大量未受保护的MQTT经纪人。不受保护的MQTT代理——再加上MQTT协议的开放性,人们可以使用通配符订阅和订阅通过代理发布的所有消息——使这个问题成为一个主要的安全问题。

有关Defcon纸的Internet上有讨论,其中一些物联网服务提供商在该QTT中表达了必须与X.509证书身份验证组合使用的一点。此外,一些物联网服务提供商推广甚至使用客户端X.509证书身份验证。但是,客户端X.509证书身份验证可能并不总是是最佳选择。在本文中,我们将探讨与使用客户端X.509证书身份验证相关的一些问题,并考虑当其他身份验证类型(例如用户名/密码)可能是一个更好的选择。

什么是X.509证书认证?

在密码学中,X.509是公钥基础设施(PKI)的一个重要标准,用于管理数字证书及其相关的非对称加密公钥(公钥加密)。X.509是传输层安全(TLS/SSL)协议中的关键组件,该协议是用于保护许多物联网协议的安全层。

TLS协议要求服务器具有X.509证书;但是,X.509证书对于客户来说是可选的。服务器证书使客户端能够对服务器进行身份验证,并使TLS协议能够与服务器设置安全(加密的)通信信道。另外,客户端证书还启用服务器对客户端进行身份验证。这称为相互认证,客户端验证服务器(必填),服务器对客户端进行身份验证(可选)。

实用X.509证书考虑

从身份验证的角度来看,X.509证书无疑使解决方案更加安全,但是,如果需要客户端证书,则使用X.509证书身份验证会使设计变得非常复杂。

如上所述,客户端证书使服务器能够对客户端进行身份验证,并且可以由服务器使用,以唯一地标识连接到IOT解决方案的每个客户端。创建唯一的X.509证书和每个设备的相应私钥大大提高了制造过程中的复杂性。创建这些证书时,必须由证书颁发机构(CA)签名。为了自动化制造过程,在制造过程中必须提供CA证书和相应的CA证书的私钥。将CA证书的私钥暴露给您组织以外的任何人是一个主要的安全问题。因此,CA证书的私钥应在Vault中锁定,只有只有指定的个人访问它。

服务器必须实现所谓的证书撤销列表,因为HACKER可以从设备中提取证书/私钥对并使用此键损害物联网解决方案。撤销列表包括证书的所有证书的序列号已被剥离。为此工作,您必须首先找到一种方法来检测连接到IOT解决方案的不合格设备,然后将证书的序列号添加到撤销列表。不合格的设备可以是已管理X.509证书和来自设备的相应私钥的黑客的一个,然后使用此证书来获得对IOT解决方案的访问。这种检测非常困难。

此外,X.509证书包括有效期,使IOT解决方案必须不时更新证书。

如您所见,从管理的角度使用客户端X.509证书身份验证可能很难部署。这可能是大多数现有解决方案基于在所有设备中使用相同的X.509证书/私钥的原因。信息安全顾问美国证券交易委员会(SEC)发布了两份报告:第一个报告显示了行业范围内HTTPS证书和SSH密钥重用如何危及全球数百万台设备,而仅在9个月后的一份更新报告显示,此类重用增加了40%,进一步说明了不正确的X.509证书认证使用的增长。


下一步:从设备中提取X.509证书»

发表评论