背景技术
随着科技的发展,移动终端越来越多地应用于工业控制、智能家居以及物联网等相关技术领域。在这些应用中,使用移动终端控制具体设备的基础是首先需要移动终端与对应的设备建立关联关系,之后再获取设备的相关数据(采集数据、运行数据以及故障信息等)或者发送相应的控制指令。
目前,移动终端与设备建立关联关系通常采用XMPP协议实现,XMPP是一种分布式的、基于客户端/服务器架构的技术,XMPP客户端通过其帐号即JID(Jabber Identifier)来进行标识。JID与电子邮件地址较为类似,采用了node@domain/resource的结构,其中的node、domain以及resource字段分别标识了用户、用户连接的服务器以及用户用以连接的资源。
当XMPP客户端连接到其JID的domain字段所表示的服务器时,客户端与服务器将建立起一个双向的XML流,所有的客户端与服务器之间的信息交互均以XML节(XML Stanza)的形式通过该XML流进行传送。当一个XMPP客户端(如node1@domain1)需要与另一个XMPP客户端(如node2@domain2)进行通信时,服务器要检查node1和node2之间是否存在关联关系,如果存在关联则允许其互相通信,并转发消息,否则拒绝转发消息,并返回错误。
按照XMPP协议,移动终端和设备都称为XMPP服务的用户(客户端),为实现二者之间的通信,必须要建立二者之间的关联关系,通常关联关系的发起方为移动终端,目标方为设备,持有人想要使用移动终端(手机、Pad等)远程控制自己拥有的设备,目前,建立这种关联关系常用的方法有三种:
1、发起方用户通过服务器向目标方用户发送建立关联关系请求,目标方用户收到请求后同意或者拒绝并将反馈信息发送回服务器,如果同意则关联关系建立成功,否则建立失败,服务器将反馈结果通知发起方用户。
2、目标方用户预先发送同意消息到服务器,同意某个指定用户与其建立关系,如果发起方用户向该目标方发起了关系建立请求,那么服务器会验证是否是目标方预先同意的指定用户,如果是则代替目标方同意请求并建立并联关系,否则使用服务器验证的方式建立关联关系。
3、目标方用户默认同意任一个发起方用户发起的关联请求。
上述三种方法中,前两种方法,不管是选择同意或拒绝还是预先同意某个用户关联,都需要设备拥有用户界面,不适用于无用户界面的设备。因此,对于无用户界面的设备,如智能灯、工作在户外的设备等,如果想要建立与移动终端的关联关系,只能第3种方法,而第3种方法,无用户界面设备虽然可以建立关联关系,但是无法验证发起方,所有人都可以发出请求并操作这台无用户界面设备,对于无用户界面设备拥有者来说是极不安全的。
发明内容
本发明所要解决的技术问题是无用户界面设备采用默认策略与移动终端建立关联关系,给无用户界面设备持有人带来安全隐患的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种无用户界面设备与移动终端建立关联关系的方法,包括以下步骤:
无用户界面设备利用固定标识和对应的特征标识组合形成第一字符串,并通过散列算法计算所述第一字符串得到第一散列值;
无用户界面设备登录XMPP服务器,并将第一散列值发送到XMPP服务器或保存到本地以备校验;
移动终端登录XMPP服务器,输入无用户界面设备的固定标识和对应的特征标识并组合形成第二字符串,然后通过散列算法计算所述第二字符串得到第二散列值;
移动终端向无用户界面设备发出关联请求,并附加第二散列值;
验证第一散列值与第二散列值是否一致,如果一致则关联关系建立成功,反馈关联成功消息到移动终端,否则反馈关联失败消息到移动终端;
关联关系建立成功后,移动终端可发送相关控制或查询命令到该无用户界面设备,以实现相应的操作。
在上述方法中,所述固定标识为一组固定的多位字符串,所述特征标识为无用户界面设备的序列号或MAC地址。
在上述方法中,所述固定标识分为前缀和后缀两部分,所述第一字符串的组合方式为固定标识的前缀+特征标识+固定标识的后缀,所述第二字符串的组合方式与所述第一字符串的组合方式一致。
在上述方法中,移动终端利用扫描无用户界面设备的二维码的方式获取无用户界面设备的特征标识。
在上述方法中,在所述XMPP服务器上验证第一散列值与第二散列值是否一致。
在上述方法中,在所述无用户界面设备上验证第一散列值与第二散列值是否一致。
本发明还提供了一种无用户界面设备与移动终端建立关联关系的装置,包括:
第一组合单元和第一计算单元,分别内置于无用户界面设备中,第一组合单元用于将所述无用户界面设备的固定标识和对应的特征标识组合形成第一字符串,第一计算单元用于通过散列算法计算所述第一字符串得到第一散列值;
第二组合单元、第二计算单元和采集单元,所述采集单元用于获取所述无用户界面设备的特征标识,第二组合单元用于将所述特征标识与所述无用户界面设备的固定标识组合得到第二字符串,第二计算单元用于利用散列算法计算所述第二字符串得到第二散列值;
无用户界面设备将第一散列值发送到XMPP服务器或保存到本地以备校验,无用户界面设备和移动终端分别登录到XMPP服务器上,其中,无用户界面设备使用第一散列值的前n位登录XMPP服务器,移动终端登录XMPP服务器后,以第二散列值的前n位作为目标向相应的无用户界面设备发出关联请求;
验证单元,用于验证第一散列值与第二散列值是否一致,如果二者一致则关联关系建立成功,反馈关联成功消息到移动终端,否则反馈关联失败消息到移动终端。
在上述装置中,所述固定标识分为前缀和后缀两部分,所述第一字符串的组合方式为固定标识的前缀+特征标识+固定标识的后缀,所述第二字符串的组合方式与所述第一字符串的组合方式一致。
在上述装置中,所述验证单元设置在XMPP服务器上。
在上述装置中,所述验证单元设置在无用户界面设备上。
本发明,无用户界面设备利用固定标识和特征标识的组合计算得到第一散列值,移动终端通过输入无用户界面设备特征标识并与固定标识组合,再计算得到第二散列值,通过验证第一散列值与第二散列值是否一致,确定是否建立移动终端与无用户界面设备的关联关系,从而使得只有该无用户界面设备的持有人才能够使用移动终端与该无用户界面设备建立关联关系,确保了安全性。
具体实施方式
本发明提供了一种无用户界面设备与移动终端建立关联关系的方法及装置,针对现有XMPP协议对于无用户界面设备关联关系建立方面的不足,通过计算无用户界面设备关键属性和固定参数组合后的散列值校验,安全可靠地建立了移动终端(手机、pad等)与无用户界面设备的关联关系,保证了只有该无用户界面设备的持有人才能够使用移动终端与该无用户界面设备建立关联关系,并以此完成远程控制、远程查询、故障报警等功能,非无用户界面设备的持有人由于无法获得无用户界面设备的参数而不能通过散列值校验,因此无法进行关联,更加没有办法非法操控和查询无用户界面设备的信息,大大提高了安全性。下面结合说明书附图和具体实施方式对本发明做出详细的说明。
本发明实施例提供了一种无用户界面设备与移动终端建立关联关系的方法,如图1所示,所述方法包括以下步骤:
步骤110、每一个无用户界面设备都具有一个固定标识和一个唯一的特征标识,固定标识为一组固定的多位字符串,特征标识可以是序列号或MAC地址。无用户界面设备启动后,首先将该无用户界面设备的固定标识和特征标识组合成第一字符串,然后通过散列(Hash)算法计算所述第一字符串得到第一散列值。
在本具体实施例中,固定标识分为前缀和后缀两部分(同一个系统中,所有的设备都一样),第一字符串的组合方式为固定标识的前缀+特征标识+固定标识的后缀。组合方式也可以选择其他方式,例如固定标识+特征标识等。
在本具体实施例中,无用户界面设备的特征标识为序列号为9562fd24,固定标识为igrsb61f(前缀部分为igrs,后缀部分为b61f);将固定标识和特征标识组合后形成的第一字符串为:igrs9562fd24b61f;通过散列(Hash)算法计算第一字符串得到的第一散列值为:1aa5ef4a5a772b19c03b4a743b96b0666cd40a63。
无用户界面设备的特征标识可以采用二维码的方式贴在无用户界面设备上,以方便识别。
本方案中所使用的散列(Hash)算法是一种公知技术,是一种可以将任意长度的消息压缩到某一固定长度的消息摘要的函数,即通过散列(Hash)算法可以把任意长度的输入(又叫做预映射,pre-image)变换成固定长度的输出,该输出就是散列值,常用散列算法包括:md5,sha1,sha256等。
步骤120、无用户界面设备登录XMPP服务器(采用标准XMPP登录流程方式实现),并将第一散列值发送到XMPP服务器或保存到本地(无用户界面设备)以备校验。
在本具体实施例中,XMPP服务器域名为igrslab.com,无用户界面设备可以使用第一散列值的前10位1aa5ef4a5a作为登录帐号进行登录。
步骤130、移动终端登录XMPP服务器(采用标准xmpp登录流程实现),输入无用户界面设备的固定标识和对应的特征标识并组合形成第二字符串,然后通过散列(Hash)算法计算第二字符串得到第二散列值。
具体步骤如下:
移动终端登录XMPP服务器后,扫描无用户界面设备的序列号二维码,解码后得到该无用户界面设备的特征标识,并将特征标识与该无用户界面设备的固定标识组合得到第二字符串,然后利用散列(Hash)算法计算第二字符串得到第二散列值,第二字符串的组合方式与第一字符串的组合方式一致。
本具体实施例中,移动终端扫描无用户界面设备的序列号得到的特征标识为序列号9562fd24,与固定标识igrsb61f组合后得到第二字符串igrs9562fd24b61f,利用散列(Hash)算法计算第二字符串得到第二散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63。
步骤140、移动终端向无用户界面设备发出关联请求,并附加第二散列值,其中,移动终端以第二散列值的前10位1aa5ef4a5a作为向无用户界面设备发出关联请求的目标。
步骤150、验证第一散列值与第二散列值是否一致,如果一致则关联关系建立成功,反馈关联成功消息给移动终端,否则反馈关联失败消息给移动终端。
步骤160、关联关系建立成功后,移动终端可发送相关控制或查询命令到该无用户界面设备,以实现相应的操作。
在上述方法中,验证第二散列值与第一散列值是否一致可以采用以下两种方式进行。
第一种方式:在XMPP服务器上验证第二散列值与第一散列值是否一致,具体作法如下:
步骤201:无用户界面设备以第一散列值的前10位1aa5ef4a5a作为登录账号登录XMPP服务器,之后将第一散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63上传到XMPP服务器,XMPP服务器保存无用户界面设备ID(可以采用第一散列值的前10位)与其第一散列值的对应关系;
步骤202:移动终端登录XMPP服务器后,以第二散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63的前10位1aa5ef4a5a作为目标向无用户界面设备发出关联请求,并附加第二散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63;
步骤203:XMPP服务器接收到移动终端发出的关联请求后,验证目标方的第一散列值与请求方提供的第二散列值是否一致,如果一致则转步骤204;如果第二散列值与第一散列值不一致或者未附加第二散列值,则转步骤205;
步骤204:关联关系建立成功,反馈关联成功消息给移动终端。
步骤205:反馈关联失败消息给移动终端。
第二种方式:在无用户界面设备本地验证第二散列值与第一散列值是否一致,具体作法如下:
步骤301:移动终端登录XMPP服务器后,以第二散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63的前10位1aa5ef4a5a作为目标发送关联请求,并附加第二散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63;
步骤302:XMPP服务器将移动终端发出的关联请求和第二散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63转发给相应的无用户界面设备;
步骤303:无用户界面设备收到XMPP服务器转发的关联请求消息后,检查第二散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63与该无用户界面设备本地保存的第一散列值1aa5ef4a5a772b19c03b4a743b96b0666cd40a63是否一致;如果第二散列值与第一散列值一致,则转步骤304;如果第二散列值与第一散列值不一致或者未附加第二散列值,则转步骤307;
步骤304:无用户界面设备反馈同意关联消息给XMPP服务器;
步骤305:XMPP服务器收到同意关联消息后,保存移动终端与相应无用户界面设备的关联关系,并反馈关联成功消息给移动终端;
步骤306:移动终端收到关联成功消息后可发送相关控制或查询命令到设备,结束;
步骤307:反馈关联失败消息给XMPP服务器;
步骤308:XMPP服务器转发关联失败消息给移动终端。
移动终端收到关联失败消息,则表明移动终端未能与该无用户界面设备建立关联关系,不能控制该无用户界面设备或查询该无用户界面设备的信息。
以上两种验证第二散列值与第一散列值是否一致的方式,主要区别在于一种是在XMPP服务器端进行散列值的校验,一种是在无用户界面设备端进行散列值的校验,二者比较其优缺点分别为:
使用第一种方式:
优点:无用户界面设备端不需要处理关联请求,降低了无用户界面设备处理逻辑的复杂性,并且无用户界面设备上传第一散列值成功后,即使关联请求到达XMPP服务器时无用户界面设备离线,关联操作仍然可以进行;
缺点:XMPP服务器需要保存无用户界面设备id与第一散列值的关联关系,并且要代替无用户界面设备进行散列值的校验,因此XMPP服务器需要在现有标准XMPP服务器上进行扩展,需要二次开发。
使用第二种方式:
优点:可以使用标准XMPP服务器(可以为第三方服务器),不需要特殊的XMPP服务器支持,并且无用户界面设备不需要上传第一散列值,可以降低安全风险;
缺点:无用户界面设备进行散列校验,增加了复杂性,并且无用户界面设备离线时无法进行关联。
基于上述方法,本发明实施例还提供了一种无用户界面设备与移动终端建立关联关系的装置。
如图4所示,无用户界面设备10具有一个固定标识和一个唯一的特征标识,并内置有第一组合单元11和第一计算单元12,固定标识可以是一组固定的多位字符串,并分为前缀和后缀两部分(同一个系统中,所有的设备都一样),特征标识可以是序列号或MAC地址。
第一组合单元11用于将该无用户界面设备10的固定标识和对应的特征标识组合形成第一字符串,组合的方式为固定标识的前缀+特征标识+固定标识的后缀。
第一计算单元12用于通过散列(Hash)算法计算所述第一字符串得到第一散列值。
移动终端20内置有第二组合单元21、第二计算单元22和采集单元23,采集单元23用于获取无用户界面设备10的特征标识,可以采用扫描二维码的方式获取。第二组合单元21用于将特征标识与无用户界面设备10的固定标识组合得到第二字符串。第二计算单元22用于利用散列(Hash)算法计算所述第二字符串得到第二散列值。
无用户界面设备10将第一散列值发送到XMPP服务器30或保存到本地以备校验,无用户界面设备10和移动终端20分别登录到XMPP服务器30上,其中,无用户界面设备10使用第一散列值的前n位登录XMPP服务器30,移动终端20登录XMPP服务器30后,以第二散列值的前n位作为目标向相应的无用户界面设备10发出关联请求。
验证单元用于验证第一散列值与第二散列值是否一致,如果二者一致则关联关系建立成功,反馈关联成功消息到移动终端20,否则反馈关联失败消息到移动终端20。
移动终端20收到关联成功消息后就可以发送相关控制或查询命令到无用户界面设备10了。
验证单元可以设置在XMPP服务器30上,也可以设置在无用户界面设备10上,具体验证方法在之前的方法中已经详细介绍,在此不再赘述。
本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结构变化,凡是与本发明具有一致或相近的技术方案,均落入本发明的保护范围之内。