1、简介:
YS业务系统是属于物联网体系的一个具体应用,和互联网不一样的是,广泛存在于物联网中的设备是存在于感知层的,其存在如下风险:
(1)、设备固件可能被dump并大量“山寨”,除了设备本身之外,设备还可以免费使用云平台的服务,最终会造成公司的巨大损失。
(2)、攻击者可以仿冒设备并大量注册到平台,可能会对平台造成巨大压力而拒绝服务。
因此,验证登录平台的设备的身份显得十分重要,本问旨在设计解决此方面风险。
2、分析和设计
2.1、需要考虑的基本点:
2.1.1、在服务端做控制
理论上讲,不管流程多么复杂,所有在前端的控制都是可以逆向和破解的,因此控制应考虑做在服务端。
2.1.2、不可预测性
如果在服务器端做控制,那么通过逆向设备上的信息不能够预测出服务器端的所有控制流程和细节,进而阻止设备被批量生产。
2.1.3、控制流程产生的影响
控制流程的实现或多或少会对业务的流程、综合性能等方面产生一定的影响,因此有必须要尽可能设计不同的方案,并在方案间做权衡。
3、参考方案
3.1、基于数据库查询的方式进行防伪
3.1.1、简述:
将设备和一个具有不可预测性的独立唯一序列号进行绑定(比如UUID或硬件特征码等),在供应链生产测试流程中,将该序列号上传到数据库,用户将设备连接到YS时,在YS平台上再次对比序列号来确认机器的真伪。
3.1.2、基本流程
3.2、基于数字签名的方式进行防伪
3.2.1、简述
使用硬件加密级别的设备(比如:加密机)对设备关联的原始数据(比如设备的序列号和MAC等)进行签名,并将原始数据和签名存储到设备的flash中,当设备和YS进行对接时将这两组数据上传到YS平台,使用相应的公钥进行验签来识别真伪。
注:使用加密机可以除了提升性能以外,能够更好的保护密钥。
3.2.2、基本流程:
4、方案优缺点对比: