如果您正在构建一个东西的互联网(consumer-edition -即。CIoT),那么,即使你可能你沉重的云计算工作,你还是需要一些东西来让你的行动更聪明比组装的金属和塑料。
也许你需要管理,也许传感器融合;这不可能是一个困难的计算挑战,但是你需要的东西。解决这种需求,芯片最近扔一个新的图片设备冲突:他们PIC24F“GB2”家庭。符合物联网集成趋势增长,让事情简单,这个包含两个关键元素的计算:安全性和低功率。
为了安全,他们已经建立了一个加密引擎装置,与one-time-programmable (OTP)密钥存储。至关重要的是,关键是除了加密引擎无法访问,如下图所示。事实上,这个版本的图纸是我Microchip-approved编辑原有的图,显示(为简单起见)键和随机数生成器(RNG——请注意,这是真正的随机,不是伪随机)作为外围总线也挂了,这将是一个很大的安全漏洞。
(点击放大)
图片由微芯片
编程的关键是…以编程方式完成的。(咄!),这不是一些单独的端口,你一个程序员或插入;CPU。
有一个例子在他们的文档显示代码,这样做。我猜这是为了说明的目的,因为,在代码中,所需的关键是有效地定义为一个常数。如果你实际使用该代码,存储在Flash,那么无担保Flash可以愉快地菜任何人希望探索记忆的关键。,但引起了我的思考:到底你怎么计划这OTP没有暴露的关键过程?
我问微芯片,他们提供了大量的场景。消化,在我看来,有三个方面的考虑:
- 每单位得到相同的密钥,或者每单元都有自己独特的钥匙吗?
- 关键是从哪里来的?
- 编程的代码发生了什么呢?
让我们把这些订单。
微芯片建议,最佳安全,每个单位有自己的关键。这样任何黑客(破坏性)的结果只有在现在破坏的关键部分。仅供你的菜鸟黑客。
场景中每个单元有相同的一个关键发生对人们想要安全的引导代码。最简单的方法就是加密.hex文件曾经用一个密钥,然后使用,图像在所有单位。更复杂的方法可以让独特的钥匙,但是,例如,工厂需要与键/序列号对保持一个数据库,这样,如果客户要求更新版本,它可以发送与单位的个人密钥加密。
当然,如果你是一个客户,必须更新几个单位,然后你会收到一个更新图像单位(与一个总如果他们都有相同的键)。和你必须使党确定正确的形象去正确的单位!
将故障点,当然,这个数据库——有多安全?另一种选择是生成的图像加密密钥加密序列号(这是独一无二的每个设备)与一个秘密工厂关键,只有开发人员知道。可以动态地计算在工厂,消除数据库。但是,当然,它也不承担任何不满的员工将透露的关键。不是无懈可击。
回到三考虑,关键是重要的来源。如果你在Flash存储代码,在这个例子中,它可以看清楚。如果你提供通过一些沟通从主机电脑或类似的东西,这是旅行的清晰,因此脆弱。
你当然可以这样操作,但是微芯片推荐不同的东西:使用RNG。这样每个单元产生自己独特的钥匙,也没有人知道,关键是什么。它只是工作。这是密封(菜鸟黑客和他得不偿失的除外)。
最后,编程代码。场景是这样的:当你计划OTP键,它还设置有点说OTP编程。一旦设置,无法清除。装置启动后的第一次,它可能还没有一个关键,你想做的第一件事就是快速程序的关键。通过检查的国旗,你知道你是否需要程序之前的关键应用程序的其余部分。
很简单,但这是一个一次性的应用程序。至少,你会分配稀缺的代码空间函数(几百字节),只运行一次执行时在Flash和RAM。
如果这是一个问题,另一个选择是有两个应用程序:一个用于编程的关键,另外一个是主应用程序。Flash存储在单独的页面,分别执行(所以他们不是同时在RAM中)。初升高,运行的关键编程代码,然后擦除,Flash页面,摧毁,页面的代码,并使其他用途。然后加载主应用程序,然后就可以出发了。
所以,正如你所看到的,有许多的方法来处理这个,一些比其他人更密封,与任何与安全,你可以让它你想那么复杂。
其他重要的物联网功能,低功率,芯片使用他们的“XLP”(字母x低功率)技术,闲置,瞌睡,睡觉,和深度睡眠模式,猴子的打开或关闭和时钟频率。在深度睡眠模式下,它可以吸引40 nA。
你可以得到更多的信息在他们的公告。
再见,与此同时,他们还发布了一个新的蓝牙模块,RN4020。虽然他们已经为各种其他蓝牙模块口味,这个支持蓝牙低能量(祝福)。你可以找到更多关于它的其他公告。