蓝牙设备安全登录身份验证方法及装置与流程

文档序号:11960073阅读:2605来源:国知局
蓝牙设备安全登录身份验证方法及装置与流程

本发明属于网络安全技术领域,具体涉及一种蓝牙设备安全登录身份验证方法及装置。



背景技术:

蓝牙(Bluetooth):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换,出于安全上的考量,两个蓝牙设备建立可信任的连接之前,通常需要对对方设备进行身份验证,验证通过后配对连接。传统的蓝牙设备之间的配对方式为:每个设备必须输入PIN码,只有当两个设备都输入相同的PIN码方能配对成功,由于PIN码是一串静态明文,这样就很容易在传递的过程中被截取,导致设备功能信息泄露或被破解,存在着很大的安全隐患。

为解决合法身份验证的安全问题,有的方案采用蓝牙设备本身固有的mac地址作为唯一识别码进行认证通信,该方案虽然简单,但是存在mac地址很容易被获取并被复制伪照等严重安全问题。还有的方案采用蓝牙技术提供的常规保密措施,即在应用层和链路层上都采取了保密措施以保证通信的安全,所有蓝牙设备都采用相同的认证和加密方式。在登录验证上采用“口令-应答”的方式,验证方要求申请者鉴别随机数以及认证码并返回计算结果,若双方的计算结果相等则认证成功,然后在应用层和链路层上都采取了加密措施以保证通信的安全性。该方法虽然安全性较高,但也存在连接认证口令泄漏被破解或被截取等风险;数据传输时信息加解密处理也较为复杂,需要较多资源的处理器才能实现并实时响应,成本相对较高等问题。



技术实现要素:

本发明的目的之一在于克服以上缺点,提供一种认证过程简单,安全性高,占用资源低的蓝牙设备安全登录身份验证方法。

为了解决上述技术问题,本发明提供了一种蓝牙设备安全登录身份验证方法,包括以下步骤:

蓝牙从设备生成随机码,并使用预设的加密密钥将随机码加密成密文;同时,蓝牙从设备根据随机码计算本次登录密码,等待蓝牙主设备连接;

蓝牙主设备连接蓝牙从设备;所述蓝牙主设备预设与蓝牙从设备相同的加密密钥;

蓝牙从设备发送随机码密文给蓝牙主设备;

蓝牙主设备使用加密密钥解密出随机码,根据随机码计算本次登录密码,并用所述登录密码访问蓝牙从设备;

蓝牙从设备对蓝牙主设备发送的登录密码进行验证,若正确,则发送登录成功应答,允许蓝牙主设备访问,否则发送登录失败应答并断开连接。

本发明的技术方案中,由蓝牙从设备生成随机码,蓝牙从设备和蓝牙主设备均根据随机码计算登录密码,进行身份的验证,由于系统生成随机码的不可预知性和随机性,保证了每次使用的登录密码不会是相同值,不容易被破解,提高了安全性。

进一步地,所述加密密钥由公共加密密钥和用户加密密钥组成。

进一步地,所述密文由随机码和加密秘钥计算生成。

进一步地,所述登录密码由所述随机码和所述用户加密密钥计算生成。

进一步地,所述用户加密密钥可在蓝牙主设备登录成功后修改。

本发明的技术方案中,蓝牙从设备生成的随机码是加密成密文发往蓝牙主设备,由于随机码在空间传输是进行加密的,也增加了破解的难度,提高安全性。

本发明的技术方案中,用户加密密钥变化后,由于加密密钥和登录密码均和用户加密密钥相关,所以也会同时发生变化,同样可以增加密码破解的难度,提高安全性。

进一步地,所述的蓝牙安全登录身份验证方法,还包括以下步骤:若在设置的时间间隔内蓝牙主设备未登录,蓝牙从设备断开与蓝牙主设备的连接。

蓝牙主设备超时未登录后,可以重新生成新的随机码,等待蓝牙主设备重新连接,通过随机码的变化,保证密码和上一次不相同,提高安全性。

相应地,本发明还提供了一种蓝牙设备安全登录身份验证装置,包括:

第一处理模块,用于蓝牙从设备生成随机码,并使用预设的加密密钥将随机码加密成密文;同时,蓝牙从设备根据随机码计算本次登录密码,等待蓝牙主设备连接;

第二处理模块,用于蓝牙主设备连接蓝牙从设备;所述蓝牙主设备预设与蓝牙从设备相同的加密密钥;

第三处理模块,用于蓝牙从设备发送随机码密文给蓝牙主设备;

第四处理模块,用于蓝牙主设备使用加密密钥解密出随机码,根据随机码计算本次登录密码,并用所述登录密码访问蓝牙从设备;

第五处理模块,用于蓝牙从设备对蓝牙主设备发送的登录密码进行验证,若正确,则发送登录成功应答,允许蓝牙主设备访问,否则发送登录失败应答并断开连接。

进一步地,所述的蓝牙安全登录身份验证装置,还包括:

第六处理模块,用于若在设置的时间间隔内蓝牙主设备未登录,蓝牙从设备断开与蓝牙主设备的连接。

综上所述,本发明技术方案的有益效果有:

1.每次蓝牙主设备连接前,由蓝牙从设备生成随机码,蓝牙从设备和蓝牙主设备均根据随机码计算登录密码,进行身份的验证,由于系统生成随机码的不可预知性和随机性,保证了每次使用的登录密码不会是相同值,不容易被破解,提高了安全性。

2.用户加密密钥允许修改,由于加密密钥和登录密码均和用户加密密钥相关,所以也会同时发生变化,同样可以增加密码破解的难度,提高安全性。

附图说明

图1是本发明实施例的一种蓝牙设备安全登录身份验证方法步骤流程图。

图2是本发明实施例的一种蓝牙设备安全登录身份验证装置结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

蓝牙(Bluetooth):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换。蓝牙技术规定每一对设备之间进行蓝牙通讯时,必须一个为主设备,另一为从设备,才能进行通信,通信时,必须由主设备进行查找,发起登录验证,验证成功后,双方即可收发数据。一个具备蓝牙通讯功能的设备,可以在两个角色间切换,平时工作在从设备模式,等待其它主设备来连接,需要时,转换为主设备模式,向其它设备发起呼叫。一个蓝牙设备以主模式发起呼叫时,需要知道对方的蓝牙地址,登录密码等信息,登录验证完成后,双方可进行数据访问或传输操作。

如图1,是本发明实施例的一种蓝牙设备安全登录身份验证方法步骤流程图,包括以下步骤:

步骤1,蓝牙从设备生成随机码,并使用预设的加密密钥将随机码加密成密文;同时,蓝牙从设备根据随机码计算本次登录密码,等待蓝牙主设备连接;

本发明的蓝牙设备安全登录身份验证方法,在蓝牙主设备未连接蓝牙从设备的时候,蓝牙从设备先进行本次连接验证相关的准备处理,包括生成随机码,对生成的随机码进行加密以及根据随机码计算本次登录密码,以便在蓝牙主设备连接后进行后续相关认证操作。

首先,本发明的技术方案中所述的随机码是由数字、英文大小写字母混合组成的固定长度8字节随机码(RAND),随机码的产生方式是使用设备自带的内部定时器和日期/时间戳混合作为随机码的种子,使用软件函数来产生伪随机码。虽然该伪随机码存在重复的概率,但在某一时刻所产生随机码是由定时器和日期/时间戳定的,是不可预知的,其随机性和安全性也是可保证的,该随机码为蓝牙设备登录密码的生成提供了运算基础。

其次,为保证随机码在发送给蓝牙主设备过程中的安全性,必须对随机码进行加密操作,采用加密算法将明文随机码与密钥进行复杂的运算生成一串随机码的密文数据流,而加密算法中的重点就是加密密钥(PRIVATE_KEY),一旦加密密钥被破解,就会造成明文随机码的泄露。目前常用的加密算法主要有对称性的TEA加密算法、对称性的DES、IDE或AES等加密算法等。

本发明的蓝牙安全登录身份验证方法,加密密钥是在蓝牙设备出厂的时候就预设在设备中的,它由公共加密密钥(PUBLIC_KEY)和用户加密密钥(USER_KEY)两部分组成,以保证其复杂性和安全性。其中,公共加密密钥通常为不可修改的固定值,用户加密密钥是可以修改的非固定值,最终的加密密钥是由公共加密密钥和用户加密密钥经过一定的算法规则计算而得出。

例如,在采用对称性的TEA加密算法的实施例中,其加密密钥的长度是固定的16字节(即128bit)无法变更,其值是由公共加密密钥和用户加密密钥通过如下算法规则计算得出:PRIVATE_KEY=(USER_KEY)0-3(PUBLIC_KEY)0-3(USER_KEY)4-7(PUBLIC_KEY)4-7。即:16字节的加密密钥是由用户加密密钥的0-3字节、公共加密密钥的0-3字节、用户加密密钥的4-7字节、公共加密密钥的4-7字节这四个部分依次拼接而成。在具体的实施例中,若公共加密密钥(PUBLIC_KEY)=“E&nMV!78”,用户加密密钥(USER_KEY)=“12345678”,根据上述算法规则计算出的加密密钥(PRIVATE_KEY)=“1234E&nM5678V!78”。当然,上述加密密钥的算法规则并不唯一,还可以根据安全性的要求采用更加复杂的算法规则生成加密密钥。

再次,蓝牙从设备需要计算生成本次登录密码,以便在蓝牙主设备请求验证登录密码的时候进行比对,只有在蓝牙主设备持有的登录密码和蓝牙从设备的登录密码一致时,才能成功登录蓝牙从设备,否则将不能访问并修改蓝牙从设备的信息。本发明技术方案中的登录密码是由随机码(RAND)和用户加密密钥(USER_KEY)计算生成。

例如,在一具体的实施例中,蓝牙的登录密码(LOGIN_PWD)由大小写字母和数字组成的固定长度8字节的字符串组成,其生成的规则为:

LOGIN_PWD=(RAND)1-6+校验值(2字节)

即:长度为8字节的登录密码LOGIN_PWD等于随机码(RAND)的1-6字节与2字节长度的校验值拼接的结果。其中,校验值2字节字符串,是由用户加密密钥(USER_KEY)的0-7字节与随机码(RAND)的0-7字节合并后16字节的字符串不进位累加和得到的一个字节十六进制数,再转换为2个字节字符,如得到十六进制数0x3F,则校验值为“3F”。

例如,假设用户加密密钥(USER_KEY)为:“12345678”,生成随机码(RAND)为:“A9V5xb92”,那么合并后的字符串为“12345678A9V5xb92”,用该合并后的字符串不进位累加和得到的一个字节十六进制数0xEE,再把这个十六进制转换为2个字节字符‘E’‘E’,即校验值为“EE”,最后得到8字节的登录密码LOGIN_PWD为“A9V5xbEE”。

其中不进位累加和计算过程为:

首先,将字符串“12345678A9V5xb92”转换为ASCII码的十六进制数为0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x41 0x39 0x56 0x35 0x78 0x62 0x39 0x32

其次,计算累加和计算如:0x31+0x32+0x33+0x34+0x35+0x36+0x37+0x38+0x41+0x39+0x56+0x35+0x78+0x62+0x39+0x32=0x3EE

最后,取累加和的低8位得到一个字节十六进制数0xEE,再把这个十六进制转换为2个字节字符‘E’‘E’,即为“EE”。

步骤2,蓝牙主设备连接蓝牙从设备;所述蓝牙主设备预设与蓝牙从设备相同的加密密钥;

本发明的技术方案中,为了保证蓝牙主设备能根据蓝牙从设备发送的随机码密文正确解码出随机码明文,就必须将蓝牙主设备的加密密钥(PRIVATE_KEY)在出厂时预设成与蓝牙从设备的加密密钥一致,即公共加密密钥(PUBLIC_KEY)和用户加密密钥(USER_KEY)均与蓝牙从设备预设的一致。

步骤3,蓝牙从设备发送随机码密文给蓝牙主设备;

步骤4,蓝牙主设备使用加密密钥解密出随机码,根据随机码计算本次登录密码,并用所述登录密码访问蓝牙从设备;

蓝牙主设备在接收到蓝牙从设备发送的随机码密文后,首先,采用与蓝牙从设备相同的计算算法,用公共加密密钥(PUBLIC_KEY)和用户加密密钥(USER_KEY)计算出加密密钥(PRIVATE_KEY);其次,再用加密密钥(PRIVATE_KEY)对随机码密文进行解密,得到随机码明文;再次,采用与蓝牙从设备相同的计算算法,用随机码(RAND)和用户加密密钥(USER_KEY),计算出本次登录密码;最后,蓝牙主设备用登录密码请求蓝牙从设备进行登录验证。

步骤5,蓝牙从设备对蓝牙主设备发送的登录密码进行验证,若正确,则发送登录成功应答,允许蓝牙主设备访问,否则发送登录失败应答并断开连接。

蓝牙从设备在接收到蓝牙主设备的登录请求后,将蓝牙主设备请求的登录密码与本地计算的登录密码进行比对,如果两者一致,则认证成功,蓝牙从设备将发送登录成功应答给蓝牙主设备,并允许蓝牙主设备访问,两者之间可以进行数据访问,传输等操作;若两者不一致,则认证失败,蓝牙从设备将发送登录失败应答给蓝牙主设备,同时断开与蓝牙主设备之间的连接。蓝牙从设备断开与蓝牙主设备的连接后,可以重新生成随机码,并进行加密得到新的随机码密文以及重新计算登录密码,为下次蓝牙主设备的连接登录做准备。

在一优选的实施例中,当蓝牙主设备与蓝牙从设备身份验证成功之后,本发明的技术方案还可以对双方设备所预设的用户加密密钥(USER_KEY)同时进行修改。由于用户加密密钥(USER_KEY)发生改变后,将影响加密密钥(PRIVATE_KEY)和登录密码(LOGIN_PWD)也同时改变,可以增加密码破解的难度,提高安全性。

在另一优选的实施例中,若在设置的时间间隔内蓝牙主设备未登录,蓝牙从设备将断开与蓝牙主设备的连接,重新生成随机码,并进行加密得到随机码密文以及重新计算登录密码,为下次蓝牙主设备的连接登录做准备。通过这种方式,产生新的随机码,保证了下次使用的登录密码不会是相同值,不容易被破解,提高了安全性。

下面以一具体实施例详细说明本发明的蓝牙设备安全登录身份验证方法。

本实施例中,蓝牙主设备和蓝牙从设备出厂预设相同的公共加密密钥(PUBLIC_KEY)为:“ABCDEFGH”,预设相同的用户加密密钥(USER_KEY)为:“12345678”,蓝牙主设备和蓝牙从设备进行认证连接的的具体过程为:

步骤1,蓝牙从设备生成随机码(RAND)“A9V5xb92”;根据预设的公共加密密钥(PUBLIC_KEY)和用户加密密钥(USER_KEY),计算出加密密钥为:“1234ABCD5678EFGH”,再采用对称TEA加密算法对随机码进行加密得到8字节密文(用十六进制表示):0xe0 0x05 0x60 0x21 0x44 0x09 0xbb 0x28;同时根据随机码(RAND)和用户加密密钥(USER_KEY)计算得到登录密码为:“A9V5xbEE”。在完成上述处理后,蓝牙从设备等待蓝牙主设备连接;

步骤2,蓝牙主设备连接蓝牙从设备;

步骤3,蓝牙从设备发送随机码密文(0xe0 0x05 0x60 0x21 0x44 0x09 0xbb 0x28)给蓝牙主设备;

步骤4,蓝牙主设备根据预设的公共加密密钥(PUBLIC_KEY)和用户加密密钥(USER_KEY),计算出加密密钥为:“1234ABCD5678EFGH”,再使用加密密钥对随机码密文解密出随机码“A9V5xb92”,根据随机码(RAND)和用户加密密钥(USER_KEY),采用同样的登录密码计算方法计算出登录密码为“A9V5xbEE”,并用所述登录密码访问蓝牙从设备;

步骤5,蓝牙从设备对蓝牙主设备发送的登录密码“A9V5xbEE”进行验证,确认与本地计算的登录密码一致,则发送登录成功应答,允许蓝牙主设备访问。

如图2,是本发明实施例的一种蓝牙设备安全登录身份验证装置结构图,包括:

第一处理模块,用于蓝牙从设备生成随机码,并使用预设的加密密钥将随机码加密成密文;同时,蓝牙从设备根据随机码计算本次登录密码,等待蓝牙主设备连接;

本处理模块主要进行蓝牙主设备连接验证前相关的准备处理,包括生成随机码,对生成的随机码进行加密以及根据随机码计算本次登录密码,以便在蓝牙主设备连接后进行后续相关认证操作。

第二处理模块,用于蓝牙主设备连接蓝牙从设备;所述蓝牙主设备预设与蓝牙从设备相同的加密密钥;

第三处理模块,用于蓝牙从设备将加密好的随机码密文发送给蓝牙主设备;

第四处理模块,用于蓝牙主设备使用加密密钥解密出随机码,根据随机码计算本次登录密码,并用所述登录密码访问蓝牙从设备;

本模块主要用于蓝牙主设备在接收到蓝牙从设备发送的随机码密文后的相关处理,包括:一,采用与蓝牙从设备相同的计算算法,用公共加密密钥(PUBLIC_KEY)和用户加密密钥(USER_KEY)计算出加密密钥(PRIVATE_KEY);二,再用加密密钥(PRIVATE_KEY)对随机码密文进行解密,得到随机码明文;三,采用与蓝牙从设备相同的计算算法,用随机码(RAND)和用户加密密钥(USER_KEY),计算出本次登录密码;最后,蓝牙主设备用登录密码请求蓝牙从设备进行登录验证。

第五处理模块,用于蓝牙从设备对蓝牙主设备发送的登录密码进行验证,若正确,则发送登录成功应答,允许蓝牙主设备访问,否则发送登录失败应答并断开连接。

在优选的实施例中,本发明实施例的一种蓝牙设备安全登录身份验证装置,还包括:第六处理模块,用于若在设置的时间间隔内蓝牙主设备未登录,蓝牙从设备断开与蓝牙主设备的连接。通过增加本处理模块,在蓝牙主设备长时间未发起认证请求或认证请求失败的时候,蓝牙从设备可以生成新随机码,从而改变下一次登录密码,以增加登录密码的破解难度,提高安全性。

上述具体实施方式只是对本发明的技术方案进行详细解释,本发明并不只仅仅局限于上述实施例,凡是依据本发明原理的任何改进或替换,均应在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1