在我的公司,我们正在开发一种由ARM处理器驱动的产品。我们正在使用Buildroot为它制作Linux系统。
出于调试/维护目的,将使用以太网启用SSH访问,并且设备将具有用于串行TTY的UART。该产品将出售给公司,可能只有工人可以物理访问该设备。
我想知道我们必须遵循哪些关于用户密码和私钥存储的策略:
安全性在这个设备中并不重要,因为它不太可能是一个有趣的攻击目标,它的功能根本不重要,它是离线的,并且对它的物理访问将受到合理限制。知道了这一点,我想得到上述各点的答案,这样我们就可以获得合理的安全性而不会使所有事情过于复杂。
我对SSH密钥的一些看法:
我记得在这种情况下安全要求不高,但仍希望有相当好的做法。
答案 0 :(得分:0)
您绝对不应为所有设备设置相同的密码,或使用相同的ssh密钥。在authorized_keys
拥有公司的ssh密钥实际上是供应商的后门。不要这样做。这对您的公司来说也是一个巨大的声誉风险,如果该密钥遭到破坏,您的产品可能已经停业。
根据您设备的实际使用情况,您可以选择一些相对安全的选项:
在通过(或至少 at )客户设置设备时,可以生成或输入新的密钥对或密码。然后,这个秘密将留给客户,您的公司将消除为所有设备存储主密钥的巨大风险。
您可以为每个设备预先生成一个随机密码,将其设置为密码,将其打印在一张纸上并粘贴在设备上。您的公司然后忘记了密码,客户当然应该能够更改密码。这样,所有设备都没有主密钥,攻击者需要物理访问才能读取密码。请注意,虽然像mac地址这样的东西听起来像是一个很好的密码候选者,但事实并非如此,因为它太容易猜到了。它应该是一个具有足够熵的真正随机密码。另请注意,这要求只有经过授权的人才能对设备进行物理访问 - 通常是这种情况,但您尚未指定设备是什么类型的设备。
这两者都要求客户在设备上进行一次性设置阶段。