一种防止信标设备被伪造或复制的方法转让专利

申请号 : CN201611030693.4

文献号 : CN106407794B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金海龙

申请人 : 杭州微飞胜科技有限公司

摘要 :

本发明涉及无线互联网技术领域,特别是涉及一种防止信标设备被伪造或复制的方法,信标设备选取主信号ID并保持不变,N个副信号ID以伪随机的方式选取并随时间变化,主信号ID和副信号ID组成信标信号;信标设备记录主信号ID、设备的开始工作时间T0、和一组用以产生副信号的密钥K1,...,KN,服务器记录所有信标设备的主信号ID和对应的副信号密钥,同时信标设备和服务器在计算副信号ID的伪随机函数SLAVE_ID和时间步长ΔT上达成一致;信标设备广播信标信号,开放平台过滤服务范围内的信标信号,由服务器验证信标信号真伪。本发明的有益效果在于:在开放平台没有防伪和防复制机制的情况下,仍然能够识别被伪造和复制的第三方设备,从而保证第三方设备在开放平台下的安全。

权利要求 :

1.一种防止信标设备被伪造或复制的方法,其特征在于包括以下步骤:

A.开放平台定义信号ID集合为A,集合A分拆成N+1个互斥的集合并用M和S1,...,SN表示,信标设备从M中选取主信号ID并保持不变,N个副信号ID以伪随机的方式从S1,...,SN中选取并随时间变化,主信号ID和副信号ID组成信标信号;

B.信标设备记录主信号ID、设备的开始工作时间T0、和一组用以产生副信号的密钥K1,...,KN,服务器记录所有信标设备的主信号ID和对应的副信号密钥,同时信标设备和服务器在计算副信号ID的伪随机函数SLAVE_ID和时间步长ΔT上达成一致;

C.信标设备广播信标信号,开放平台过滤服务范围内的信标信号,由服务器验证信标信号真伪;所述服务器验证信标信号真伪的步骤包括:服务器将开放平台提交的信标信号与集合M中的ID比对选出主信号ID,剩余的信号则作为副信号ID候选;服务器根据主信号ID查找和主信号ID对应的一组副信号密钥;服务器通过ΔT计算当前服务器时间计数值TS,通过伪随机函数SLAVE_ID计算在TS数值下的一组副信号ID;若服务器计算所得的副信号ID包含在开放平台提交的副信号ID候选中,则可判定主信号ID来自于一个真实的设备。

2.根据权利要求1所述的一种防止信标设备被伪造或复制的方法,其特征在于,步骤A.中所述N个副信号ID以伪随机的方式从S1,...,SN中选取并随时间变化,具体包括以下步骤:

1)信标设备通过设备开始工作时间T0和设备时钟电路获得当前时间T,然后除以时间步长ΔT得到当前时间计数值TC;

2)信标设备使用伪随机函数SLAVE_ID(i,TC)选取第i个副信号在当前时间计数器值为TC时刻的ID;

3)当前时间计数值TC每隔ΔT时间之后加1,信标设备重新计算副信号ID。

3.根据权利要求2所述的一种防止信标设备被伪造或复制的方法,其特征在于,所述当前时间计数值TC通过以下方式计算得出:信标设备的开始工作时间为T0、时钟脉冲计数为C、时钟模块的频率为f,根据计算公式T=T0+C/f得到当前时间T,然后T除以时间步长ΔT,得到当前时间计数值TC。

4.根据权利要求3所述的一种防止信标设备被伪造或复制的方法,其特征在于,SLAVE_ID(i,TC)的定义如下:步骤1:用基于SHA1哈希算法的伪随机码生成函数HMAC(Ki,TC)产生伪随机数,其中Ki为第i个副信号密钥,TC为当前时间计数值;

步骤2:用步骤1中生成的伪随机数对副信号数组的长度取模,即q=HMAC(Ki,TC)mod|Si|;

步骤3:在Si中选取第q+1个元素为第i个副信号ID。

5.根据权利要求1所述的一种防止信标设备被伪造或复制的方法,其特征在于,服务器设有偏差修正变量δ修正TS。

6.根据权利要求5所述的一种防止信标设备被伪造或复制的方法,其特征在于,偏差修正量δ修正TS的实现方式是:服务器接收一个提交的主信号ID,服务器把对应的一组副信号密钥和长度为2L+1的时间窗口内的计数值TS-δ-L,...,TS-δ,...,TS-δ+L输入到SLAVE_ID函数得到2L+1组副信号ID;时间窗口长度L的选取取决于对和TC和TS之间偏差的预估;当服务器计算所得的2L+1组副信号ID中有一组通过TS-δ-L计算所得的副信号包含在开放平台提交的副信号ID候选中,则判定主信号ID来自于一个真实的设备,同时把δ+L设为新的偏差修正变量的值。

7.根据权利要求6所述的一种防止信标设备被伪造或复制的方法,其特征在于,选取L为3。

说明书 :

一种防止信标设备被伪造或复制的方法

技术领域

[0001] 本发明涉及无线互联网技术领域,特别是涉及一种防止信标设备被伪造或复制的方法。

背景技术

[0002] 在对发明进行详细描述之前,先对发明中用到的专用名词作出解释。1.无线信标设备(Beacon device):一种电子设备,采用特定的协议通过RFID,BLE,Wi-Fi或其他无线技术广播包含自身身份识别(ID)的信息。2.开放平台:指通过手机或其他移动设备获取信标设备的广播信号、过滤特定范围之内的信标设备ID并提供接口(API)给开发者的应用软件。3.第三方:依附于开放平台之上的设备生产者、设备部署者和应用开发者。
[0003] 无线信标设备已经被广泛的应用到室内导航和场景营销之中。目前在市场上比较流行的有苹果公司的iBeacon设备、谷歌公司的eddystone设备、和Radius Network公司的AltBeacon设备等。无线信标设备通过广播自己的ID号来实现身份的辨识,ID号可以由信标广播帧中多个字段组合而成。以目前最为广泛应用的苹果公司的iBeacon技术为例:iBeacon广播的ID号由“UUID”+“major”+“minor”三部分组成。其中UUID是遵循ISO/IEC11578:1996标准的128位标识符,而Major和Minor则是由iBeacon发布者自行设定的16位的标识符。比如在连锁店中安装iBeacon时,可以在Major中写入区域资讯,在Minor中写入个别店铺的ID。比如在家电中嵌入iBeacon功能时,可以用Major表示产品型号,用Minor表示错误代码,用来向外部通知故障。在用作室内导航时,商户会建立信标ID号和室内地图坐标之间的对应关系表,当手机或其它导航设备收到信标广播后,可以通过广播帧里面的ID获取当前的位置信息从而实现导航的路径规划。在用作场景营销时,商户会建立信标ID和场景之间的对应关系表,当手机或其它移动设备收到信标广播后,可以通过广播帧里面的ID获取对应的场景信息从而推送相应的广告营销信息。
[0004] 目前,安全性的缺失成为阻碍无线信标设备普及的一大障碍。如何防止恶意用户对信标的伪造或复制成为保障信标节点安全性的重要问题。无论是iBeacon、eddystone或者其他的开放信标标准,目前的规范中均没有明确的防止信标被伪造或者复制的办法。在目前的开放信标协议中,协议格式都是公开的,而且所有的信息都通过明文的方式以广播方式发送,因此信标ID信息都可以通过监听程序获取。在获取信标ID信息之后,用户可以用工具把相同的ID字段写入到新的硬件中以创建一个与原设备完全相同的信标设备。恶意的用户可以利用伪造或者复制的设备破坏原有的应用并为自己谋取利益。例如:1)商家A部署信标设备并开发了定位导航应用,用户B可以伪造属于商家A的信标设备而把用户诱导到可以使自己获取商业利益的位置,而商家A的定位导航应用则陷入混乱;2)商家A在线下门店部署信标设备,利用优惠券推送或者积分累积等手段吸引客户进店消费。用户B监听商家A门店内的信标设备ID并复制一个相同的设备,通过被复制的设备用户B可以在商家A门店之外的其他地区即可获取优惠券或进行刷积分等作弊行为,商家A的商业模式遭到破坏。
[0005] 信标设备生产者和信标信号接收者可以达成私密的协议防止信标被伪造或复制:信标设备生产者为每个信标设备分配一个唯一的密钥,并把此密钥告知信标信号接收者。
基于此密钥信标设备按照一定时间间隔自动变化ID,同时信标信号接收者运行一个完全相同的动态变化ID的算法。信标信号接收者在检测到信标设备ID之后和自己计算所得的信标ID比对,如果比对结果相同则认为该信标设备为真实设备。其他人无法知晓信标设备的密钥,也就无法伪造出和信标设备相同的ID。此方法有效实施的前提是信标信号接收者必须知晓信标设备的密钥和信标设备ID动态变化的算法。
[0006] 最近市场上出现了一种新的基于信标设备的运营模式。某些手机或其他移动设备应用(如微信,支付宝等)把对信标设备的支持作为自己生态系统的一部分。这些应用通过用户的操作(如摇一摇,闪一闪等)触发手机或其他移动设备对信标设备信号的接收,并把检测到ID为指定范围内信标设备的事件包装到API中开放给第三方的开发者。我们把这样的应用称之为开放平台。第三方可以生产并部署ID为开放平台指定范围内的信标设备,并进行应用开发。比较典型的应用开发流程是:开放平台允许第三方自定义信标设备检测事件触发的URL跳转,在跳转页面中结合平台软件的API如信标设备的坐标位置获取、用户信息获取等进行应用开发。这些应用包括诸如前面提到的定位导航和场景营销等。
[0007] 在这种运营模式下,信标设备的生产者是第三方,信标信号的接收者是平台软件。基于平台软件的开放性,它不会和任何第三方开发者达成私密的信标设备防伪协议。因此,目前开放平台不提供任何的防伪和防复制的措施:任何相同ID的信标设备被识别为同一设备。

发明内容

[0008] 本发明为克服上述的不足之处,目的在于提供一种防止信标设备被伪造或复制的方法,在开放平台没有防伪和防复制机制的情况下,仍然能够识别被伪造和复制的第三方设备,从而保证第三方设备在开放平台下的安全。
[0009] 本发明是通过以下技术方案达到上述目的:一种防止信标设备被伪造或复制的方法,包括以下步骤:
[0010] A.开放平台定义信号ID集合为A,集合A分拆成N+1个互斥的集合并用M和S1,...,SN表示,信标设备从M中选取主信号ID并保持不变,N个副信号ID以伪随机的方式从S1,...,SN中选取并随时间变化,主信号ID和副信号ID组成信标信号;
[0011] B.信标设备记录主信号ID、设备的开始工作时间T0、和一组用以产生副信号的密钥K1,...,KN,服务器记录所有信标设备的主信号ID和对应的副信号密钥,同时信标设备和服务器在计算副信号ID的伪随机函数SLAVE_ID和时间步长ΔT上达成一致;
[0012] C.信标设备广播信标信号,开放平台过滤服务范围内的信标信号,由服务器验证信标信号真伪。
[0013] 作为优选,步骤A.中所述N个副信号ID以伪随机的方式从S1,...,SN中选取并随时间变化,具体包括以下步骤:
[0014] 1)信标设备通过设备开始工作时间T0和设备时钟电路获得当前时间T,然后除以时间步长ΔT得到当前时间计数值TC;
[0015] 2)信标设备使用伪随机函数SLAVE_ID(i,TC)选取第i个副信号在当前时间计数器值为TC时刻的ID;
[0016] 3)当前时间计数值TC每隔ΔT时间之后加1,信标设备重新计算副信号ID。
[0017] 作为优选,所述步骤C中服务器验证信标信号真伪的步骤包括:
[0018] 服务器将开放平台提交的信标信号与集合M中的ID比对选出主信号ID,剩余的信号则作为副信号ID候选;服务器根据主信号ID查找和主信号ID对应的一组副信号密钥;服务器通过ΔT计算当前服务器时间计数值TS,通过伪随机函数SLAVE_ID计算在TS数值下的一组副信号ID;若服务器计算所得的副信号ID包含在开放平台提交的副信号ID候选中,则可判定主信号ID来自于一个真实的设备。
[0019] 作为优选,所述当前时间计数值TC通过以下方式计算得出:信标设备的开始工作时间为T0、时钟脉冲计数为C、时钟模块的频率为f,根据计算公式T=T0+C/f得到当前时间T,然后T除以时间步长ΔT,得到当前时间计数值TC。
[0020] 作为优选,其特征在于,SLAVE_ID(i,TC)的定义如下:
[0021] 步骤1:用基于SHA1哈希算法的伪随机码生成函数HMAC(Ki,TC)产生伪随机数,其中Ki为第i个副信号密钥,TC为当前时间计数值;
[0022] 步骤2:用步骤1中生成的伪随机数对副信号数组的长度取模,即q=HMAC(Ki,TC)mod|Si|;
[0023] 步骤3:在Si中选取第q+1个元素为第i个副信号ID。
[0024] 作为优选,服务器设有偏差修正变量δ修正TS。
[0025] 作为优选,偏差修正量δ修正TS的实现方式是:服务器接收一个提交的主信号ID,服务器把对应的一组副信号密钥和长度为2L+1的时间窗口内的计数值TS-δ-L,...,TS-δ,...,TS-δ+L输入到SLAVE_ID函数得到2L+1组副信号ID;时间窗口长度L的选取取决于对和TC和TS之间偏差的预估;当服务器计算所得的2L+1组副信号ID中有一组通过TS-δ-L计算所得的副信号包含在开放平台提交的副信号ID候选中,则判定主信号ID来自于一个真实的设备,同时把δ+L设为新的偏差修正变量的值。
[0026] 作为优选,选取L为3。
[0027] 本发明的有益效果在于:在开放平台没有防伪和防复制机制的情况下,仍然能够识别被伪造和复制的第三方设备,从而保证第三方设备在开放平台下的安全。

附图说明

[0028] 图1是本发明的步骤流程示意图;
[0029] 图2是信标设备的结构示意图;
[0030] 图3是本发明中信标设备、平台软件和第三方软件相互关系的示意图;
[0031] 图4是本发明信标设备的工作流程示意图;
[0032] 图5是本发明信标接收端的工作流程示意图;
[0033] 图中:101、时钟模块;102、时钟脉冲计数器;103、寄存器A;104、寄存器B;105、寄存器C;106、中央处理单元;107、无线射频模块;201、信标设备;202、移动设备;203、开放平台;204、第三方应用;205、服务器。

具体实施方式

[0034] 下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:
[0035] 本发明由信标设备201、移动设备202、开放平台203、第三方应用204、服务器205构成信标信号的发送和接受端,如图3所示。信标设备201广播信标信号,每个信标设备201广播一个主信号ID和一组副信号ID;移动设备202接收周边的所有的信标设备201的广播信号之后,开放平台203过滤掉不属于自身服务范围内的信标信号并把他们提交到API。移动设备202中第三方应用204通过开放平台203的API获取周边范围内的所有属于开放平台203服务范围之内的信标信号。第三方应用204把获取的信标信号上传到服务器205进行设备真伪验证。服务器205首先分离上传信标信号中的主信号ID和副信号ID候选,服务器205中有一张主信号ID与其副信号密钥对应关系的列表。对于一个主信号,在列表中查找对应的两个副信号密钥K1和K2,同时计算信号提交时间计数值TS。
[0036] 如图2所示,信标设备201包括:时钟模块101、时钟脉冲计数器102、寄存器A103、寄存器B104、寄存器C105、中央处理单元106、无线射频模块107,所示时钟模块101为时钟脉冲计数器102、中央处理单元104、无线射频模块105提供系统时钟,时钟脉冲计数器102、寄存器A103、寄存器B104、为中央处理单元106提供输入,寄存器C105、中央处理单元106为无线射频模块107提供输入。
[0037] 基于上述装置与结构,一种防止信标设备被伪造或复制的方法,如图1、图4及图5所示,包括以下步骤:
[0038] A.开放平台203定义信号ID集合为A,集合A分拆成N+1个互斥的集合并用M和S1,...,SN表示,信标设备201从M中选取主信号ID并保持不变,N个副信号ID以伪随机的方式从S1,...,SN中选取并随时间变化,主信号ID和副信号ID组成信标信号;
[0039] B.信标设备201记录主信号ID、设备的开始工作时间T0、和一组用以产生副信号的密钥K1,...,KN,服务器205记录所有信标设备201的主信号ID和对应的副信号密钥,同时信标设备201和服务器205在计算副信号ID的伪随机函数SLAVE_ID和时间步长ΔT上达成一致;信标设备201间隔一段时间后重新选取副信号ID,具体包括以下步骤:
[0040] 1)信标设备201通过设备开始工作时间T0和设备时钟电路获得当前时间T,然后除以时间步长ΔT得到当前时间计数值TC;
[0041] 2)信标设备201使用伪随机函数SLAVE_ID(i,TC)选取第i个副信号在当前时间计数器值为TC时刻的ID;
[0042] 3)当前时间计数值TC每隔ΔT时间之后加1,信标设备201重新计算副信号ID。
[0043] C.信标设备201广播信标信号,开放平台203过滤服务范围内的信标信号,由服务器205验证信标信号真伪;服务器205验证信标信号真伪的步骤包括:
[0044] 服务器205将开放平台203提交的信标信号与集合M中的ID比对选出主信号ID,剩余的的信号则作为副信号ID候选;服务器205根据主信号ID查找和主信号ID对应的一组副信号密钥;服务器205通过ΔT计算时间计数值TS,通过伪随机函数SLAVE_ID计算一组副信号ID;若服务器205计算所得的副信号ID包含在开放平台203提交的副信号ID候选中,则可判定主信号ID来自于一个真实的设备。
[0045] 其中,SLAVE_ID(i,TC)的定义如下:
[0046] 步骤1:用基于SHA1哈希算法的伪随机码生成函数HMAC(Ki,TC)产生伪随机数,其中Ki为第i个副信号密钥,TC为当前时间计数值;
[0047] 步骤2:用步骤1中生成的伪随机数对副信号数组的长度取模,即q=HMAC(Ki,TC)mod|Si|;
[0048] 步骤3:在Si中选取第q+1个元素为第i个副信号ID。
[0049] 信标设备201采用iBeacon设备,iBeacon设备的ID由128位的UUID、16位的major值和16位的minor值拼接而成,长度为160位。
[0050] 开放平台203分配10000个信标ID组成集合A,将集合A分拆成三组,一组主信号IDM和两组副信号IDS1,S2,并在每组信号中为信号ID创建索引。设置主信号为8000个,每组副信6
号ID的个数为1000个,这样两组副信号一共可以产生10 种组合,避免不同信标设备201间副信号的冲突。生产商可以一共生产8000个信标设备201,因为加入防伪功能而损失的ID占
20%。
[0051] 时钟脉冲计数器102保存从设备开始工作之后的时钟脉冲数。
[0052] 寄存器A103中保存iBeacon设备生产之后开始工作的时间T0。
[0053] 使用UTC格式的时间。
[0054] 寄存器B104中保存生成两个副信号ID的密钥K1和K2。
[0055] 寄存器C105中保存iBeacon主信号ID。
[0056] 中央处理模块106从时钟脉冲计数器102读取时钟脉冲计数C,结合从寄存器A103读取的设备初始时间T0计算当前时间。如果时钟模块的频率为f,那么当前时间的计算公式为T=T0+C/f。
[0057] 优选的选择时间步长ΔT为一分钟,中央处理模块106计算当前时间T并转换成当前时间计数值TC。中央处理模块106把从寄存器A103读取的密钥和TC值作为副信号ID生成算法的输入。在ΔT时间段内也就是1分钟的时间之内副信号ID保持不变。
[0058] 通过上述步骤,iBeacon设备每隔1分钟广播信标信号,信号信标被移动设备202接收后进行设备真伪验证。
[0059] 以下通过手机应用“微信”的“发现周边”功能为例,具体说明如何进行设备真伪验证。
[0060] 手机(即移动设备202)接收周边所有iBeacon设备广播是信号之后,开放平台203“微信”过滤掉不属于自身服务范围内的iBeacon信号ID并把他们提交到API。
[0061] 在手机中第三方应用204“发现周边”通过开放平台203“微信”的API获取周边范围内的所有属于开放平台203“微信”服务范围之内的iBeacon信号ID。
[0062] 第三方应用204“发现周边”把获取的iBeacon信号ID上传到服务器205进行设备真伪验证。服务器205首先分离上传iBeacon信号ID中的主信号ID和副信号候选ID,将开放平台203提交的信标信号与集合M中的ID比对选出主信号ID,剩余的的信号则作为副信号ID候选;服务器205根据主信号ID,在列表中查找对应的两个副信号密钥K1和K2,同时计算信号提交当前时间计数值TS,通过伪随机函数SLAVE_ID计算在TS数值下的两个副信号ID;若服务器205计算所得的副信号ID包含在开放平台203提交的副信号ID候选中,则可判定主信号ID来自于一个真实的设备。
[0063] 由于设备时钟偏差和网络传输时延,计算副信号ID时设备的当前时间计数值TC和服务器端的信号提交时间计数值TS会稍有偏差。此种情况下,在服务器205设置一个偏差修正变量δ,δ的初始值设为0.对于一个提交的主信号ID,服务器205把对应的一组副信号密钥和长度为2L+1的时间窗口内的计数值TS-δ-L,...,TS-δ,...,TS-δ+L输入到SLAVE_ID函数得到2L+1组副信号ID。时间窗口长度L的选取取决于对和TC和TS之间偏差的预估。如果服务器205计算所得的2L+1组副信号ID中有一组通过TS-δ-L计算所得的副信号包含在第三方应用提交的副信号候选中,则判定主信号ID来自于一个真实的设备,同时把δ+L设为新的偏差修正变量的值。
[0064] 所以,通过第三方应用“发现周边”对iBeacon设备访问的频度估算TC和TS之间的偏差,选取L的值为3。
[0065] 以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。