APP下载

手机控制的蓝牙智能门锁设计与实现

2017-11-22扈健玮杨毯毯

关键词:闪光灯门锁字节

扈健玮,姜 琴,杨毯毯

(青岛工学院 信息工程学院,山东 胶州 266300)



手机控制的蓝牙智能门锁设计与实现

扈健玮,姜 琴,杨毯毯

(青岛工学院 信息工程学院,山东 胶州 266300)

为了解决现有智能门锁安全性差、容易遭到嗅探和远程攻击的问题,研究并设计了一种由智能手机控制的蓝牙智能门锁.该智能门锁以CC2540为主控制器,利用手机带有的蓝牙系统实现无线控制,利用手机闪光灯实现带外安全验证,能有效避免蓝牙嗅探攻击.身份验证码由用户输入,不绑定手机,避免了手机更换或丢失对用户造成的麻烦.实验调试证明,该智能门锁达到了实际运用的要求,具有安全性高、灵活性好、成本低廉的优点.

智能门锁;蓝牙;手机闪光灯;CC2540

随着产品智能化浪潮,各类功能的无线智能门锁出现在市场上.这些无线智能门锁在一定程度上提高了门锁的安全性和便捷性,摆脱了传统机械锁结构简单、易被破坏、安全性差的缺陷;但仍然存在很多不足,如使用RF通信时还需要给门锁另配遥控器,不适合多人共同使用的场合,如使用Wi-Fi通信时一旦室内路由器断电系统就无法正常工作,使用ZigBee通信时开发成本高,且手机上并没有ZigBee模块,还需要中转设备辅助[1].

相比之下,蓝牙通信的优势就凸显出来,尤其是在低功耗蓝牙4.0技术推出之后,得到了IOS、Window8、Android4.3以上版本的全面支持,智能手机、平板等移动终端硬件也开始支持蓝牙4.0.当前,智能手机成为安全认证领域的新工具,常见的有电子支付、短信验证、二维码验证等.

本文提出利用智能手机的蓝牙和闪光灯来控制智能门锁的解决方案兼顾了成本、功耗、安全性能、便捷程度等全方面需求,实现了利用智能手机进行安全验证、控制智能门锁的功能,具有很高的实用性.

1 系统运行原理

本文提出的智能门锁系统由门锁端和手机端两部分组成,系统的通信交互如图1所示.用户验证身份时,开启手机端应用,应用软件自动建立蓝牙主机端口,把该蓝牙主机的地址和密码按照预定的通信协议转换成闪光信号,用手机的闪光灯把光信号发出.

图1 手机与门锁通信交互图

闪光灯的高频率闪光使门锁端的光电信号转换电路上产生矩形脉冲电信号.主控制器受到该信号触发,从低功耗休眠状态激活到工作状态,对该信号进行采样和解码,读取蓝牙主机的地址和密码,把蓝牙模块从电源断电状态激活,指令该模块连入手机的蓝牙主机.主控制器随机生成验证码明文,用加密法转换出密文,通过蓝牙通信发送密文给手机端.

手机端收到密文后提示用户输入数字秘钥,手机端通过秘钥解密出明文,将明文转换成闪光信号由闪光灯模块发出.门锁的光电转换模块和控制器将闪光信号解码后与原明文对比,如果相同则认证通过,控制电磁锁体开门.

2 门锁端硬件设计

2.1 电磁锁体

电磁锁的设计和电磁铁一样,是利用电生磁的原理,当电源继电器闭合,电流通过硅钢片时,电磁锁会产生强大的吸力紧紧的吸住铁板达到锁门的效果.而当电源继电器断开,电磁锁失去吸力即可开门[2].如图2所示,K是电源继电器开关,RL是电磁锁线圈,R是电阻,D是二极管,1、2是工作电源.

图2 手机与门锁通信交互图

2.2 光电信号转换电路

光电信号转换电路是用来将手机闪光灯发出的闪烁光线转化成电信号的电路,将转化出的电信号送入控制器处理.实现光电转化功能主要依靠光电二极管元件,光电二极管能够在不同强度光线照射下产生相应的电压,而且反应时间灵敏度比光敏电阻高,可以检测变化频率和变化幅度很高的光信号,对闪烁频率为几十赫兹的二值闪光信号能产生频率相同,跳变边沿陡峭的方波电信号[3].

但是光电二极管对环境光线一样会产生响应电压,而且自然环境光线的强度既不恒定又可预知,无法从响应电压的幅度上区分环境光和闪光灯发出的闪烁光.利用选频网络电路滤除环境光产生的响应电压,环境光线在短时间内基本是不变的,产生的电压可以认为是一个直流电压,使用RC高通滤波网络来阻隔,再加上RC低通滤波网络形成一个带通波器,消除噪声信号的带外成分,提取出设计频率在通带内的闪烁光产生的方波信号.如图3所示,由C1和R1组成高通滤波网络,R2和C2组成低通滤波网络,滤除后的电信号经过放大器放大输入到控制器的IO口,电压大于判定门限的读取为1,低于判定门限的读取为0.

图3 光信号接收转换电路示意图

2.3 主控制器CC2540

CC2540是一款高性价比,低功耗,带有片上系统的高集成度蓝牙低功耗芯片.片上集成了性能优越的RF收发器,增强型工业标准的8051MCU,内部可编程flash,8KB内存,集成了TI公司的蓝牙低功耗协议栈.特别适合于对功耗要求极为苛刻的应用系统,成为市场上适应性最强,性价比最高的单模蓝牙低功耗解决方案[4].本次设计选用CC2540作为门锁端控制器,发挥其低成本和低功耗的特性.

门锁端系统上电后,进入节电模式,如果没有处理任务,马上进入睡眠模式,在睡眠模式下等待闪光灯信号转换电路产生中断信号.

如图4所示,当系统接到闪光灯信号转换电路传来的激活信号,会发生中断唤醒控制器,解除睡眠模式,接收闪光信号.对接收到的数据进行完整性检测,确定数据完整后,清除中断标志;从闪光信号中提取蓝牙连接信息和验证信息,开始进入蓝牙协议栈,连入手机端的蓝牙中心,等待蓝牙中心发送数据. 接收完毕后,将数据和闪光信号发送的验证信息做处理,验证用户身份正确后,控制IO口驱动继电器,控制电磁门锁开关.

图4 光信号接收转换电路示意图

当控制器被闪光信号激活后,数据不完整或出现其他异常,都被视为无效激活,重新进入睡眠模式.成功激活后如果身份验证出错,会进入防攻击流程,手机的蓝牙地址将会被记录,连续验证出错后,会把该地址拉入黑名单,拒绝连接,同时系统在一分钟内拒绝任何激活,以防止强力攻击.系统在没有处理任务后,会自动进入睡眠模式等待再次激活.处于睡眠模式时,系统的电能消耗极小.

2.4 门禁电源

选用DY12UPS门禁专用后备电源为系统供电.DY12UPS为全自动智能型不间断电源,电池充电电量足,能防止过充欠充,能提供稳定的12V直流输出,带UPS电源,停电自动供电,保证系统在市电断电的情况下仍然正常工作.使用该电源还可减小门禁控制器的负荷,减小故障隐患.

3 手机软件设计

3.1 软件程序主流程

智能门锁的IOS客户端使用最新推出的Swift语言进行开发,Swift语言开发出的手机软件具有维护方便,效率高,安全性好等特色.

手机软件程序的主流程如下:手机蓝牙建立中心角色,将接入手机蓝牙的密钥数据转编码成闪光灯发送的信号,闪光灯发送数据后等待门锁端蓝牙接入,门锁端接入后,进入用户操作子流程.用户操作流程如图5所示,用户可以选择开启门锁和修改密钥两种操作,操作完成后再把信息提供蓝牙和闪光灯发送给门锁端.手机端将接收门锁的验证反馈信息,并显示操作结果.

图5 用护操作流程示意图

3.2 手机端模块调用

在蓝牙通信设计上,调用CoreBluetooth.framework框架,进行以下的操作步骤:①建立中心角色;②扫描外设;③连接外设;④发现服务与特征;⑤数据交互;⑥断开连接;实现蓝牙与门锁端的信息交互[5].在中心这边,由CBCentralManager对象管理本地中心,来发现或连接远程外设.此时正在连接的外设用CBPeripheral 对象表示.远程外设的数据由CBService和CBCharacteristic对象表示,当你与远程外设CBPeripheral对象进行数据交互时,是由一个服务与特征操作的.

在键盘输入设计上,通过设置文本框控件属性textfaild.secureTextEntry,实现了密码输入内容*显示的功能.在安全设计上,调用arc4random()函数,实现了二进制流的随机生成.

在闪光灯通信设计上,调用AVFoundation.framework框架,驱动手机闪光灯模块的高速亮灭,实现了通过闪烁光信号唤醒门锁端,并发送数据信息功能.

3.3 通信协议

3.3.1 安全设计

传统智能门锁往往让用户在手机端输入开门密码,也就是一个固定的验证数据,再将验证数据通过无线方式发送到门锁端,门锁收到的数据与存储器中的验证数据对比.这种验证方式有很大的安全问题,因为开门密码往往是固定的一个数据,加密法都是对同一个明文产生密文,所以很容易遭到攻击.

为了解决这个问题,本设计采用了“一次一密”的身份信息验证方案.每次验证时,门锁端随机生成一个二进制流并发送给手机端;用户输入的验证数据,不直接发送,而是把数据的二进制码与等长的随机生成的二进制码按位异或生成密文,该次操作所用的随机二进制码作为密钥,通过闪光灯发送给门锁端,再通过蓝牙把密文发送给门锁端.这样蓝牙中的加密算法每次加密的数据都是随机生成的不具有任何特殊语义的乱码.这样攻击者试图破解蓝牙层的加密时,根本无法验证是否已经成功破解.香农证明,如果密钥流是完全随机的,并且与明文一样长,那么他就是不可破解的[6].

那么要保证加密验证的安全就要确保以下三点.

第一是闪光信号发送的密钥不要被截获.由于闪光灯信号不像电磁波那样可以远程截获,使用者自身能够确保闪光信号不被泄露.

第二是产生的二进制密钥流是随机流.要从数学角度证明随机生成器是否真的产生了随机位流,这是不可能的,所能做的是看随机位流是否具有所期望的特征,通过随机性测试来验证产生密钥流的随机性,包括单个位测试(monobit test)、扑克牌测试(poker test)、连串测试(runs test).测试了10组20000位二进制流,测试结果如下:

单个位测试在于校验0和1的个数是否大致相等,我们期望0和1的个数是大致相等的.测试过程是计算1的个数,如果其个数在9654~10346之间,占比在0.4827~0.5173,那么这个位流就通过了单个位测试,测试结果见表1.

表1 单个位测试结果

组号1的个数1的比例199380.496902100290.50145399710.498554100470.50235599000.495006100380.501907101270.50635898810.49405999590.4979510100640.50320

扑克牌测试,将20000个二进制位分成若干段,每段有4个二进制位,每段所表示的十进制数字是0~15.对于一个真正的随机流,0~15的个数分布也应该是随机分布的[7].假设ni是数字i的个数,将这些值带入下式:

如果1.034

表2 扑克牌测试结果

组号X129.9136229.804839.6384417.7792531.0272622.9888732.2112838.3424923.62241032.8064

连串测试:连串就是指1或0连续的序列.在真正的随机流中,连串的长度应是随机分布的.如果每个连串的数量在以下区间之内,那么该位流就通过了此测试[8],结果见表3.

连串长度 标准数量

1 2267~2733

2 1079~1421

3 502~748

4 223~402

5 90~223

6+ 90~223

表3 连串测试结果

组号1连串2连串3连串4连串5连串6连串及以上1248712656713341241262249812156233711341443253112136533881081394250512176383951261305259212406433711151096249612605943851311427251212116483701471378255312556563721141019250712286533711201281025121273631374133129

10组数据的测试结果全部落在期望之内,通过了随机性测试,说明手机软件产生的随机流是具有较强的随机性[9].

第三是防止攻击者进行逐个尝试的暴力破解.为了实现这一点,当系统收到来自同一个蓝牙MAC地址的验证数据连续出错3次,系统将会拒绝任何连接1min,并记录该MAC地址,同时拒绝该MAC地址的蓝牙设备在24h内的任何请求.那么攻击者要想每天不间断的进行24个h的攻击,就需要1440个蓝牙MAC地址,每天能够尝试1440种组合,而8位的大小写字母与数字组合共有218340105584896种可能性,大约需要3亿年才能尝试所有的组合,显然暴力破解不再可行[10].

3.3.2 数据格式

闪光灯数据帧的起始符用‘&’‘%’‘$’三个字符,不同的起始符区分帧数据的表示内容(表4).起始符后有固定长为8字节的数据,之后为1字节检验码,校验码为前8字节数据按位异或产生.帧的结尾用‘#’字符表示结束.每帧的长度都固定为11字节,见表5.

表4 闪光灯数据标识符

字符十六进制标志意义‘&’26蓝牙地址数据起始‘%’25蓝牙密码数据起始‘$’24身份验证数据起始‘#’23结束

表5 闪光灯数据帧格式

起始符蓝牙地址检验码结束符‘&’8字节1字节‘#’起始符蓝牙密码检验码结束符‘%’8字节1字节‘#’起始符校验密钥检验码结束符‘$’8字节1字节‘#’

蓝牙发送数据只有两类,一类是安全验证的密文码,一类是操作的反馈信息,都以字符串的形式发送.

闪光灯数据帧的起始符用‘&’‘%’‘$’三个字符,不同的起始符区分帧数据的表示内容,见表1.起始符后有固定长为8字节的数据,之后为1字节检验码,校验码为前8字节数据按位异或产生.帧的结尾用‘#’字符表示结束.每帧的长度都固定为11字节,见表4.

蓝牙发送数据只有两类,一类是安全验证的密文码,一类是操作的反馈信息,都以字符串的形式发送.

3.3.3 验证交互规则

举例来说,如用户在输入界面输入的身份验证码是ABCD1234,其ASCII码值为:

0x41,0x42,0x43,0x44,0x31,0x32,ox33,0x34;

生成的八字节随机二进制流为:

0x34,0x77,0x50,0x44,0xDC,0x02,0x37,0x93;

身份验证码与随机流按位异或,生成验证密钥为:

0x75,0x35,0x13,0x00,0xED,0x30,0x04,0xA7;

各字节按位异或的到帧检验码为0x2D;

闪光灯发出的数据帧为:

0x24|0x75,0x35,0x13,0x00,0xED,0x30,0x04,0xA7|0x2D|0x23

蓝牙发送的数据为随机二进制流:

0x34,0x77,0x50,0x44,0xDC,0x02,0x37,0x93;

门锁端收到两个数据后,将闪光灯数据中验证密钥:

0x75,0x35,0x13,0x00,0xED,0x30,0x04,0xA7;

与蓝牙数据中的随机二进制流,进行按位异或操作,运算出身份验证码:

0x41,0x42,0x43,0x44,0x31,0x32,ox33,0x34;

即ABCD1234.

如果和存储的身份验证码相同则通过蓝牙发送信息告知验证成功,否则告知验证失败.4 结束语

本文介绍了一种基于智能手机控制的蓝牙智能门锁的设计原理和实现方式,并分别具体的给出了门锁端的硬件设计和手机端的软件设计.本设计充分利用智能手机通用的蓝牙、闪光灯等模块实现门锁的无钥匙控制,避免了传统智能门锁无线射频模块一直处于伺服监听状态的功耗浪费.同时提出了利用手机闪光灯实现安全验证的方案并验证了其可行性与安全性.通过测试,本智能门锁能够通过手机软件实现开锁和修改开锁密码的预期效果.由于本智能门锁的控制只使用智能手机,真正免去了钥匙的繁琐,极大的方便了用户,加之其低成本,具有较为广泛的实际应用价值.

[1]乔鹏.基于滚动码技术遥控无钥门禁系统的设计[D].哈尔滨:东北林业大学,2014.

[2]陈东帆,王照亮,汪红,等.利用ThinkDesign和WorkBench的指纹枪机械盒设计[J].现代制造工程,2011(7):58-61.

[3]陈邦.酒店门锁管理与视屏监控[D].泉州:华侨大学,2014.

[4]李满玲.基于NFC的数字化智能门禁系统的设计[J].鄂州大学学报,2014,21(6):108-110.

[5]常国权,翟雁.基于蓝牙的智能门锁控制系统设计[J].电子产品世界,2015(05):41-44.

[6]苗超,陈科明,卢建国,等.可无线充电远程控制的智能门锁[J].杭州电子科技大学学报,2015,35(4):20-22.

[7]韩建飞.基于细胞自动机的流密码的设计与应用研究[D].西安:西安电子科技大学,2014.

[8]高建华,胡振宇.物联网技术在智能建筑中的应用[J].建筑技术,2013,44(2):136-137.

[9]孙永道,王勇,张岚,一种基于加密二维码的手机门禁系统的设计与实现[J].科技通报,2014,30(7):166-169.

[10]樊明如.基于ZigBee的无人值守的酒店门锁系统研究[D].淮南:安徽理工大学,2014.

(编辑:姚佳良)

Design and implementation of intelligent bluetooth lock controlled by smart mobile phone

HU Jian-wei,JIANG Qin,YANG Tan-tan

(School of Information Engineering, Qingdao University of Technology, Jiaozhou 266300,China)

In order to solve the security problem of existing intelligent door lock which is vulnerable to sniffing and remote attacks, research and design of a Bluetooth intelligent door lock controlled by smart mobile phone are made. The intelligent door lock adopts a Bluetooth low energy solution by using the CC2540 uses mobile phones with Bluetooth to implement wireless control, and uses the flash light with verification of safety to effectively avoid the Bluetooth sniffing attack. Authentication input without binding the phone can avoid the trouble induced by the replacement or loss of the phone to the user. The experimental results showed that the smart door lock can meet the requirements of practical application. It has the advantages of high security, good flexibility and low cost.

intelligent door lock;bluetooth;flash light;CC2540

2016-03-05

国家级大学生创新创业训练计划项目(201513995006);青岛工学院2015年度大学生科技创新基金项目(2015CX005)

扈健玮, 男, 1172951257@qq.com; 通信作者:姜琴, 女, ritajq@126.com

1672-6197(2017)01-0055-05

TP273+.5

A

猜你喜欢

闪光灯门锁字节
2011款别克凯越车中控门锁失灵
No.8 字节跳动将推出独立出口电商APP
一种简易气门锁夹安装设备
愉快地给娃照相吧 别怕闪光灯
6款热门智能门锁推荐
No.10 “字节跳动手机”要来了?
LED闪光灯电源设计与实现
简谈MC7字节码
限压保护LED闪光灯电源设计
热障涂层闪光灯激励红外热像检测