APP下载

物联网应用:移动平台门锁控制系统设计与实现

2017-11-08卫孝贤

科技资讯 2017年26期
关键词:移动平台门锁蓝牙

卫孝贤

摘 要:如今就整体而言,中国的物联网产业仍然主要处于“概念”阶段,投入实用的产品数量与其他领域相比,相差甚多。作为物联网技术的一种应用,本文设计了一种基于Android手机软件认证的门锁系统,讨论了该系统的构成方式和工作过程,并分析了该系统的设计方案。本系统使用手机作为“钥匙”控制门锁,获得开锁密钥的移动设备在认证通过的情况下可通过发送开锁控制命令使门锁打开。

关键词:移动平台 Android 门锁 RSA算法 蓝牙

中图分类号:TP277 文献标识码:A 文章编号:1672-3791(2017)09(b)-0019-02

随着开锁技术的发展,传统门锁的安全性受到挑战,更为重要的是,手动开锁的繁琐操作逐渐成为用户难以接受传统门锁的主要原因。本文的目标是针对门锁系统的改进问题提出通过手机这种移动设备控制门锁的设计方案。

1 系统构成与工作过程

本系统主要由以Android智能手机为载体的“开锁器”和可以通信的门锁设备构成,实验的载体是Android智能手机,但理论上本系统也可以构建在可运行Android应用程序的其他设备上,例如Android平板电脑。在设计计划中,门锁在上锁之后,该门锁只有在受到智能手机传来的与之对应的开锁控制命令后才能打开,而智能手机通过应用程序验证用户身份,并控制开锁控制命令的发出与否,见图1。

首先,需要在移动设备和门锁之间构建遥控通信信道,这一过程的前提是用户用过了应用程序的身份验证,获得使用开锁程序的权限。第二步,实施移动设备与门锁之间的身份认证,仅在互相确认对方的身份认证可以通过之后,门锁控制权限才会被赋予给移动设备,可以向门锁发送加密信息,认证自身拥有的控制权限,门锁在受到这一信息之后会进入允许开锁状态。如果双方的身份认证出现错误,移动设备不会获得开锁权限。即使双方的身份认证都得到通过并确认,只要“控制认证信息”未正确收到,门锁也不会进入允许开锁状态。第三步,拥有开锁权限的移动设备向门锁发出开锁控制命令,开锁控制命令会使处于允许开锁状态的门锁实施开锁,不处于允许开锁状态的门锁会忽略开锁控制命令。

2 系统组成

通过讨论和实验,系统使用蓝牙无线信道作为通信信道,系统中提及的门锁使用了特制的门锁,并镶嵌了蓝牙模块和控制处理芯片。

蓝牙无线信道具有使用便捷、耗能低、价格便宜、器件规模小的优点,本系统的蓝牙通信使用国际预留的免费的工业、医疗和科技使用的无线电波段。

这一设计易于推广,因为Android手机具有自带的蓝牙通信模块,使用蓝牙通信不需要任何器材增购的费用。

蓝牙无线信道的开放性在本系统中既是优点也是缺点,为避免开放带来的安全隐患,信息在信道中只能以密文形式传输,且系统需要认证通信双方的身份。设计中采用了破译难度高,安全性强的RSA非对称加密算法,RSA基于分解大整数的困难性假定,对于明文数据量不大的本系统来说十分适用。

3 系统实现

根据之前的描述可以看出系统的核心在于软件部分,在此我们对软件部分做出规划,如图2所示。

Android手机上的开锁控制软件是Android开锁部分的核心,它的主要工作是完成对用户身份的验证,建立蓝牙信道,加解密信道上的信息,实现身份认证,完成蓝牙通信任务。另一方面,门锁部分的核心在于加锁控制程序,它建立蓝牙信道,监听并接收数据,发回回复,并加解密信道上传输的信息,与移动设备进行身份的互相认证,判断是否需要打开门锁。

为便于描述,后续的叙述中,我们将Android平台上的开锁程序称为AU(Android unlock),门锁上的加锁控制程序记为GL(gate lock)。

3.1 Android平台开发

(1)搭建Android开发环境,使用jdk1.8作为java编译环境,使用Android studio作为开发工具。

(2)Android应用程序组成。

Android系统拥有活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)这四个基本组件。所有Android应用程序的门面都是活动。只要是看得到的东西,都是在活动中的。服务不可见,可以保持持续的运行,即使用户退出了应用。来自各处的广播消息由广播接收器负责接收。内容提供器则为应用程序之间共享数据提供了可能。

而在对外信息交换方面,Android客户端与服务器实现的登录验证和信息传输的解决方案已经十分完善,在此不在赘述。在蓝牙方面,Android平台拥有良好的蓝牙协议栈支持,Android设备支持以蓝牙为基础的无线交换数据,并且提供了便于应用开发的蓝牙API。

我们将客户端设计为四个主要类型:ClientActivity、RsaCheck、BluetoothBuild、MyTools。

(1)ClientActivity是四个主要类型中的核心,包含的內容也比较多,在这个类中实现软件界面的设计、蓝牙的开关和搜索、蓝牙信息交换和身份认证,同时该类也处理蓝牙的链接请求,另外,该类中定义了一个广播接收器组件,用于监听手机信息广播。

(2)RsaCheck以RSA算法为基础实现了数字签名和加解密运算。

(3)BluetoothBuild主要负责了蓝牙信道的建立与释放。

(4)MyTools主要包含了一些常用变量和一些工具函数。

打开开锁程序AU后首先会验证用户身份,用户需要通过登录来获得使用权限,登录成功后,应用会弹出对话框提示是否打开蓝牙,若是选择取消,软件将会自动关闭,选择打开蓝牙则软件进入工作状态,搜索周围的蓝牙。用户选择了对应门锁的蓝牙名称后,软件就会发起连接请求,未收到蓝牙配对成功的回复,则连接请求就不会中断。收到配对成功的回复时,蓝牙信道就成功建立了。endprint

发出身份认证信息前,先要使用RSA算法处理明文,完成数字签名和加解密运算。首先AU使用自己的私钥完成数字签名,然后使用GL的公钥和RSA加密技术生成密文,最后将密文送入蓝牙信道传输。与身份认证相同,控制权限认证信息和开锁控制命令这两种信息也需要使用GL的公钥进行加密后再发出。而身份认证成功回复到达AU处时也是密文,必须经过使用AU的私钥解密和利用GL的公钥验证这两个过程处理。

仅在收到身份认证成功回复,并且GL的身份验证得到通过后,AU才拥有开锁控制权限,可以发送控制权限认证信息通知GL,准备接收开锁控制命令,只有GL收到开锁控制命令密文,门锁才会打开。若GL的身份验证未通过,則AU会保持在身份认证信息发送状态。

3.2 加锁控制部分开发

加锁控制部分在本系统中起到了类似于“服务端程序”的作用。在加锁控制程序(GL)的控制下,蓝牙工作在被动状态,当蓝牙被设置成可检测状态时,GL就转入了监听状态,仅在接收到请求连接的要求,且确认蓝牙已经成功的配对后,才会发送一份告知蓝牙配对成功的回复到AU处。由此,蓝牙信道便成功的建立了,GL进入数据等待状态,等待接收数据。

GL工作的主要过程可以分为以下阶段。

(1)AU身份认证。在这个阶段,AU会发送一份密文,其中包含身份认证信息。密文中的数字签名必须进行处理,首先使用GL的私钥进行解密,然后再使用AU的公钥进行验证。若AU的身份认证信息通过,GL会将内置的身份认证成功表示置为true,并发回经过数字签名和RSA加密处理的认证成功回复,AU受到回复后,GL进入第二阶段。若是身份认证失败,则持续进行第一阶段的工作。

(2)控制权限认证。这一阶段发生在身份认证成功之后,允许开锁之前,主要接受的数据是来自AU的控制认证信息,GL承认AU的权限,则进入允许开锁状态并转入第三阶段,否则,仍然停留在第二阶段。当然,这一阶段的信息交换也是建立在RSA加密解密的基础上。

(3)控制开锁。GL在允许开锁状态下,仅接收开锁控制命令的密文,其余信息将直接丢弃。解密后信息符合命令格式,则GL解析命令,完成指定操作。

以上操作都是有着内置的时间限制,时间内未完成操作,则系统将直接终止连接,释放资源,直到等到新的连接建立。

4 结语

本系统主要特点在于便捷,尽管智能手机的安全性一直存在疑问,但毫无疑问在可穿戴设备普及之前,智能手机仍然是最为便捷的可通信计算机。本系统对于公寓等居住人时常更换的住房门锁是具有相当的意义的,可以大大削减管理成本。系统设计过程未允许直接的信息交换,而是通过先认证再通信的方式完成信息交换,并全程使用RSA算法加密信息,保证了系统的安全性。设计过程同样兼顾了实用性和各个器件的通用性,为系统的实用化提供了有利条件。

参考文献

[1] 郭霖.第一行代码—Android[M].2版.北京:人民邮电出版社,2016.

[2] 眭俊华,张海盛.蓝牙技术安全性解析[J].计算机应用,2002,22(10):13-14.

[3] 郑昊,钟志峰,郭昊,等.基于Arduino/Android的蓝牙通信系统设计[J].物联网技术,2012(5):15-34.

[4] 韦广剑.基于Android令牌的动态密码认证系统的研究与实现[D].武汉:武汉理工大学,2012.endprint

猜你喜欢

移动平台门锁蓝牙
咔嚓咔嚓,门锁别玩
帮你轻松找到AirPods的神奇工具
旋转门锁
理由
基于移动式培训评估系统的培训闭环管理研究与探索
基于移动平台的电力营销系统应用探析
数字化校园中统一移动平台的实践与探索
基于互联网+环境下大学生自主学习移动平台设计的研究
和各色骗术斗智,是个技术活
无线连接的飞跃 蓝牙技术4.2揭密