首页 > 代码库 > 设备防伪设计

设备防伪设计

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、简述

使用RSA算法产生公、私钥对,使用私钥对和设备关联的原始数据(比如设备的SN)进行加密,并将原始数据和加密数据存储到设备的flash中,当设备和YS进行对接时将这两组数据上传到YS平台,平台使用RSA的公钥进行解密,将解密后的数据和当前上传的SN做对比来确认机器的真伪。

注:为降低密钥泄密风险,考虑使用公、私钥分离的非对称密钥,而不是对称加密密钥。

3.2.2、基本流程:

技术分享

3.2.3、私钥保护流程

该方案牵涉到一个非常关键的因素àRSA私钥,一旦私钥泄漏出去,整套流程将毫无保护作用,因此必须考虑如何降低风险私钥泄漏的风险,此处主要考虑以下几点:

3.2.3.1、将私钥拆分成几份给不同的人进行保管,并且互相之间并知道其他的掌管人是谁。

3.2.3.2、不在产生密钥的机器和加密服务器的文件系统上保存私钥,私钥只在加密服务器的内存中存在,当加密服务器因某种原因重启时需要这些文件重新组合到加密服务器构建私钥。

3.2.3.3、产生密钥的程序需要经过不同的人review确认无安全风险。

技术分享

4、方案优缺点对比:

技术分享

设备防伪设计