向物联网设备群发布OTA更新时,应遵循的最佳安全实践是什么?引起关注的主要原因是什么?例如,
防止更新被拦截
遵循既定标准
软件分发
自动更新与可选更新
#1 楼
这个问题太笼统了,但是鉴于您省略了最重要的一件事情,我觉得我需要整理一下。确保您的设备正在运行您的代码,那么您需要身份验证,而不是加密。加密可确保其他人不知道您的代码中的内容,而这很难实现且很少有用。 (您可以加密,但是如果解密密钥在设备上,则除非获得某种保护解密密钥的方法,否则它不会获得任何收益,而该方法不能让您直接保护代码。)真实性是其他人的财产不能产生伪造的更新,并且通常需要该属性。请注意,加密无助于真实性。这是一种错误的信念,即那些不真正了解安全性的人有时会拥有,但事实并非如此。
对于某些设备,如果所有者选择运行任何固件都是可以的。在这种情况下,您仍然需要某种机制来确保只有设备的所有者才能安装固件,而不能确保某些随机的过路者。通常,这意味着设备必须将更新验证为来自注册所有者。
评论
这不是真的正确。加密既不是很难实现,也不是“非常有用”。此外,加密“对真实性没有帮助”只是半正确的。实际上,像GCM这样的大多数现代加密模式实际上就是所谓的“认证加密”方案,该方案结合了真实性和机密性。
–垫
17年4月4日在8:08
@mat我已将该句子更改为正式正确的句子。加密并不难,但是我指的是机密性,这很困难。如果您无法对密钥保密,则加密不会为您提供保密性。加密完全不能帮助提高真实性。如果您使用经过身份验证的加密,则可以同时提供两种身份,但是它包含加密的事实无助于获得真实性。
–吉尔斯'所以-不再是邪恶的'
17年4月4日在10:56
如果您的密钥泄露,则每个加密都会失去其用处,无论是出于保密还是用于身份验证。如果在设备上使用不受保护的密钥使用加密是合理的,则取决于您的威胁模型(设备的可访问性,对手的能力)
–垫
17年4月4日在11:14
@mat号。事实上,我应该在我之前的评论中对GCM的评论做出反应。 GCM并不是广播更新的一种体面的方式,因为它意味着使用类密钥来检查真实性。除非您要构建一个高度加固的平台(例如智能卡),否则类密钥和公共密钥一样好。更新应使用非对称加密。这样,要将虚假更新部署到设备上,就需要破坏该特定设备:要生成一个可以在任何地方使用的虚假更新,攻击者将需要破坏服务器或协议,并且与设备中的设备相比,它们通常受到更好的保护。领域。
–吉尔斯'所以-不再是邪恶的'
17年4月4日在12:19
评论
这个问题范围太广,无法适合问答环节。@SeanHoulihane,我已将重点缩小到OTA安全上。现在看起来如何?
它仍然很广泛,因为每个要点可以是一个完整的独立问题。即使只是测试成功的最后一个要点,您也可以写整本书。
我同意唐。最好采用OTA的一个方面(例如确保可靠的结果)。即使这样,仍然有很多答案。理想情况下,一个问题只需要一个或两个高质量的答案即可让您接受其“已回答”。
也可以编辑标题吗?