基于身份验证技术的智能闹钟软件∗
2017-12-18张亚娟刘寒冰史建国
张亚娟 刘寒冰 史建国
(黄河科技学院信息工程学院 郑州 450063)
基于身份验证技术的智能闹钟软件∗
张亚娟 刘寒冰 史建国
(黄河科技学院信息工程学院 郑州 450063)
传统的闹钟一般包括闹钟的设置,以及一些系统的时间记录,仅仅具备提醒的功能,没有任何自定义设置。基于身份验证技术的智能闹钟软件除了具有闹钟的设置、提醒时间、记录纪念日、添加背景以及心情描述设置,还在用户登录注册时采用MD5对用户信息进行加密,从而保护了用户的隐私,便于软件的推广使用。在给出各个功能模块具体实现后,总结了本款软件的优缺点,并对下一步的改进方向进行分析。
闹钟;身份验证;MD5;隐私保护
1 引言
随着iPhone的风靡,基于iOS的应用程序也大量涌现。要使应用程序推广利用,一方面要考虑功能齐全、操作简单,苹果系统自带的闹钟仅仅包括闹钟的设置以及一些系统的时间记录,没有用户自定义模块,不能满足个性化的需要。另一方面,也是现在大部分用户关心的物联网安全问题。尽管iOS维持了较好的安全记录,但一些新的漏洞暴露出iOS系统也存在严重的安全隐患[1]。
目前,物联网已经在智慧电力、智能家居、医疗健康、环境检测等领域得到了初步应用[2]。人们为了利用物联网的便利性,还是比较愿意安装应用程序的,比如,小区门禁开门软件,不用带门禁卡,使用手机操作软件就能开门。但是人们在获得服务的过程中,个人隐私信息与物品信息[3]等敏感的信息将会暴露在物联网环境中,就有可能造成隐私泄露。
无论是物联网的哪种类型的隐私泄露,都可能涉及个人位置、兴趣爱好甚至社会关系等敏感信息,一旦此类数据被恶意监听或篡改,使个人隐私暴露于公众,都可能造成无法挽回的损失。
许多智能设备的开发商都是小型创业公司,没有资源或经验去提供复杂的安全功能,最明显的体现就是弱密码问题,这将导致设备容易被黑客攻击[4]。因此,解决好物联网应用过程中的隐私保护问题,是物联网得到广泛应用的必要条件之一[5]。
智能闹钟软件,主要优点不仅在于给用户提供更多的自定义设置,有更高的选择性,让用户体会到它不仅仅是一款提醒时间的闹钟,更重要的是,在注册登录的过程中采用MD5进行身份验证,而且将加密数据放在本地,充分考虑了用户的隐私不被轻易泄露。
2 MD5算法
MD5[6~7]的工作原理是对任意输入的信息进行补位处理,将得到的字符串以512位进行分组,每一分组又划分为16个32位二进制数的子分组,最后算法输出一个将4个32位分析级联成的128位的哈希值。
MD5广泛应用于信息安全和身份认证上。在注册的时候,用户的密码是用MD5加密在本地保存;用户登录的时候,系统先把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较[8],进而确定输入的密码是否是正确的。由于MD5较好的性价比,使它比较适合于智能手机软件的加密和解密。
3 系统分析与设计
3.1 系统需求分析
经调查,在APP Store上评分最高的一款智能闹钟软件是由runtastic开发的“优质睡眠”闹钟,它可提醒你的待办事项以及记录你的睡眠时长,此外更重要的一个优点是它可以和苹果系统自带的软件Health——这一可以高度满足个性化需求的平台完美地整合。但是非常遗憾的是,这款软件在2015年4月已经停止了更新。
基于身份验证技术的智能闹钟APP,在APP Store中的严重缺乏,有近62%的人们对智能闹钟APP都不太满意,而个人认为,其主要原因可能在于智能闹钟APP的设计在人性化方面和隐私保护方面没有引起开发商的真正重视。
这款智能闹钟软件,除了包括闹钟的主要功能提醒人们时间之外,还增加了一些更加任性化的功能,比如说心情描述设置,纪念日的设置,自己实现铃声的录制功能,为自己的闹钟设置名字等。
3.2 设计思想
在此款软件的整个设计实现的过程中,将Modal和Controller进行了分离,而view和Controller则统一到了一起。界面间的交互,通过传值来实现,例如通知、代理、block等传值方式,实现三者之间的交互,最终完成整个设计。
4 功能模块实现
首先我们需要在苹果的开发者网站上下载我们需要的Xcode版本,以及我们需要的SDK,之后就可以安装了。
如果你的Mac的版本是10.6.7以上,那么安装Xcode对你来说将是一件非常简单的事情。你只需要把下载的Xcode的安装包拖拽名字为“应用程序”的文件夹形状里,在Mac电脑上双击安装dmg镜像即可,等待片刻,iOS开发环境的安装就已经完成了。
此款软件主要实现的模块包括:注册登录、我的闹钟、添加闹钟、铃声选择、纪念日添加、个人中心、录音设置等九大子模块。详细实现如下。
4.1 注册登录
在注册界面,填写用户的用户名、密码,点击注册按钮的时候,将用户名和密码存储到数据库中,并将密码使用MD5加密。加密代码[9~10]如下。
@implementation NSString(MD5)
-(NSString*)md5str
{
const char*cStr=[self UTF8String];
unsigned char digest[CC_MD5_DIGEST_LENGTH];CC_MD5(cStr,strlen(cStr),digest);
NSMutableString*output=[NSMutableString string-WithCapacity:CC_MD5_DIGEST_LENGTH*2];
for(int i=0;i<CC_MD5_DIGEST_LENGTH;i++)
{
[output appendFormat:@“%02x”,digest[i]];
return output;
}
@end
存储到数据库中时,都转变为大写。
[database executeUpdate:@“CREATE TABLE user(Name text,password text)”];
//md5转大写给密码加密
NSString*jiaMiPassword=[_password.text md5str]。uppercaseString;
//插入数据
BOOL insert=[database executeUpdate:@“insert into user values(?,?)”,_nickName.text,jiaMiPassword];
if(insert){
[self addAlertController:@“恭喜你,注册成功”];}
[rs close];
[database close];
图1 数据加密图
登录界面包括用户的用户名和密码设置,整个界面通过代码加第三方库Massory创建完成。UI的层次结构为给self.View.backgroundColor设置为灰色,在self.view上添加子视图View设置背景颜色为白色,然后在view删添加子View,将子view的高设置为1像素,颜色设置为灰色,当做中间线条使用。最后在view上添加label和UITextField来实现用户名和密码的输入。点击登录按钮的时候,首先判断用户名和密码是否为空,其次将输入的值用MD5加密转换为大写判断和数据库中存储的是否一致[11]。
4.2 我的闹钟
此功能模块的界面主要通过UItableview结合UINavigationController+UITabBarCotroller实现整体布局,在UITableView的上部为一个UILable,用来显示当前的时间。UITableView的cell通过重用方法函数dequeueReusableCellWithIdentifier:实现,优化代码,省去不必要的多次创建,优化内存。Cell使用的是系统自带的默认样式三。左侧负责显示闹钟的名称以及时间,右侧负责显示闹钟的开启和关闭。闹钟的时间和名称通过属性的传值从二级界面添加闹钟页面传值得到。而闹钟的开启按钮,是由开关控件UISwitch控制。开关控件的功能类似于Windows的复选框,它只有两种状态:ture(或者yes)和FALUS(或者NO),两种状态的切换方式是:setOn:animate:。通过BOOL值来标记当前的开关状态。在开启状态下,通过比对当前时间和闹钟的时间,来控制本地通知的发送。如图2所示。
4.3 添加闹钟
该页面包括闹钟名字的添加设置、闹铃的设置以及闹钟的时间设置。该界面中闹钟铃声的设置包括两个方面,分别为闹铃的录制和选择。此页面,首先使用[datePicker date]方法获取当前时间,通过numberOfComponentsInPickerView:来设置显示的行数。如图3所示。
图2 我的闹钟
图3 添加闹钟
4.4 铃声选择
铃声选择包括铃声的录制,以及铃声的自选。其中闹铃的录制,是通过调用系统的声音系统以及Xcode自带的音频API来实现录一段音频保存起来。而另外一个则是选择自带的铃声,这些铃声是事先下载好的铃声,直接导入到项目工程中的,通过以表的形式展现出来,右侧为铃声的名称,右侧为播放铃声的按钮,通过点击按钮来实现铃声的播放试听,如图4所示。
4.5 纪念日设置
纪念日设置界面,如图5所示。界面负责显示所有纪念日,点击页面右上角的加号跳转,跳转界面 通 过[Self.navgationControllerpushViewController:animation:]来实现,cell的侧滑删除通过-(void)tableView:(UITableView*)tableViewCommitEdittingStyle:(UITableViewCellEditingStyle)editingStyleforRowAtIndexPath:(NSIndexPath*)index-Path函数实现,在某次删除的时候调用[tableView reloadData]来刷新表。
图4 铃声选择
图5 纪念日设置
4.6 纪念日添加
该界面通过使用NSUserDefualut来存储添加的纪念日的所有信息,包括纪念日时间,纪念日名称。此款APP的名称添加均采用UITextField实现输入,在UIKit框架中,TextField控件由UITextField类创建,此外,它还有对应的UITextFieldDelegate委托协议。委托可以帮助响应事件处理。进入纪念日添加界面,首先获取当前日期时间,在UIPicker-View上默认显示当前时间,修改UIDataPiker的模式为DateAndTime。
4.7 个人中心
个人中心界面包括头像上传、点击“你还没有登录,点击登录”跳转登录界面、心情设置、背景设置、清空闹钟、帮助中心。头像上传是通过UIImagePikerViewController以及遵循UIImagePikerView-Controller协议来调用系统相册,选择一张照片并将选择的图片作为页面HeaderImg的背景显示。点击“你还未登录,请点击登录”按钮跳转登录界面,此界面上部分为tableView的headerView,下部分为系统cell,用来显示其他目录,通过UITableView的delegate协议方法 didSelectCell:(NSInterger)index-Path来获取当前点击的是哪个cell,根据cell的index来决定跳转的页面。
4.8 心情设置
心情设置,点击跳转添加心情页面,该页面包括七个button,分别设置为周一,周二等,点击按钮弹出自定义View,在View添加TextView为子视图,以便输入心情描述文字。自定义view下部分添加Button,用来保存编辑的文字,同时将文字存入数据库。如图6所示。
4.9 背景设置
图6 设置心情
图7 设置背景
此界面通过for循环创建7个按钮,负责显示添加的图片,同时将图片添加到数据库中存储。点击“点我添加图片按钮”来向divce设备注册权限,如果用户允许,则跳转用户相册界面,调用UIImagePikerView对象协议方法,来实现选择图片功能。通过一个BOOL数组,来分别标记每一个按钮是否已经添加过背景颜色。
5 结语
在基于身份验证技术的智能闹钟的实现与设计的过程中,充分的考虑了用户的需求,同时也考虑到了苹果手机的呆板枯燥,不能自定义设置自己想要的声音、名称等。本软件具有很高的自定义性,更加的人性化。真正满足提供给用户一款可以根据自己的个人喜好来设置自己的闹钟,使它具有不同的铃声,以及自己录制声音的功能。而且登录的过程中采用MD5进行加密,并把加密数据存放在本地,充分考虑了用户的隐私不被轻易泄露。
由于苹果系统的限制性,不允许开发者随意更改系统声音以及硬件设置,所以程序不能在后台一直处于改期状态。另外,由于MD5是通用算法,攻击者可以通过生日攻击法、差分攻击法、网站查字典暴力破解等多个方法获取MD5码相应的原文,进而进入系统,窃取用户的信息,进而推测用户的行为。已经有文献提出,要对MD5算法进行改进,由于计算机的运算速度越来越快,可以加大经过MD5算法加密后的值的位数,但智能手机的运算能力相对较差,因此,下一步考虑在算法中加入随机数的方法进行二次验证,加大破解的难度,提高破解的成本,进而弥补MD5的不足。
因此,如何充分考虑智能手机的特点,设计更适合的算法,保护用户的隐私,是智能终端软件能否被广泛推广的重要因素,也是下一步要研究的方向。
[1]Tielei Wang,Yeongjin Jang,Yizheng Chen,Simon P.Chung,Billy Lau,Wenke Lee.On the Feasibility of Large-Scale Infection of iOS Devices[C]//Proceedings of the 23rdUSENIX Security Symposium,San Diego,USA,2014:79-93.
[2]王和平,景凤宣.物联网安全与隐私保护研究[J].微型机及应用,2015,34(5):9-12.WANG Heping,JING Fengxuan.Research on Security and Privacy Preservation in Internet of Things[J].Microcomputer&its Application,2015,34(5):9-12.
[3]张建军,吴启武.物联网中的隐私保护问题研究[J].计算机应用与软件,2015,32(6):278-279,327.ZHANG Jianjun,WU Qiwu.Research on Privacy Protection in Internet of Things[J].Computer Application and Software,2015,32(6):278-279,327.
[4]腾讯科技.智能设备数据泄露严重物联网安全性受质疑[EB/OL].http://tech.qq.com/a/20160121/033354.htm Artesyn.Intelligent device data leakage is serious,the security of the Internet of things is questioned[EB/OL].http://tech.qq.com/a/20160121/033354.htm.
[5]钱萍,吴蒙.物联网隐私保护研究与方法综述[J].计算机应用研究,2013,30(1):13-20.QIAN Ping,WU Meng.Survey on Privacy Preservation in IoT[J].Application Research of Computers,2013,30(1):13-20.
[6]毛熠,陈娜.MD5算法的研究与改进[J].计算机工程,2012,38(24):111-114,118.MAO Yi,CHEN Na.Research and Improvement of MD5 Algorithm[J].Computer Engineering,2012,38(24):111-114,118.
[7]喻谦.基于MD5算法的用户身份认证系统研究[D].北京:华北电力大学,2013.YU Qian.Research on User Authentication System Based on MD5[D].Beijing:School of Electrical and Electronic Engineering,2013.
[8]刘啸.MD5算法在Web开发中的应用[J].计算机安全,2014(8):51-54.LIU Xiao.Application of MD5 in Web Exploriation[J].Computer Security,2014(8):51-54.
[9]张凯.编写 Objective-C 代码[EB/OL].http://blog.sina.com.cn/s/blog_54b0c0ab0102enyv.html ZHANG Kai.Writing Code in Objective-C [EB/OL].http://blog.sina.com.cn/s/blog_54b0c0ab0102enyv.html.
[10]iOS Objective-c的MD5/SHA1加密算法的实现[EB/OL].http://www.111cn.net/sj/iOS/53370.htm iOS.Implementation of Encryption Algorithm of Objective-c Based on MD5/SHA1.
[11]丁丁.基于Web住宅小区智能化系统设计与实现[D].成都:电子科技大学,2014.DING Ding.Design and Implementation of the Resigential Intelligent System Based on Web[D].Chengdu:University of Electronic Science and Technology of China,2014.
Smart Alarm Clock Software Based on User Authentication
ZHANG Yajuan LIU Hanbing SHI Jianguo
(School of Information Engineering,College of Huanghe Science and Technology,Zhengzhou 450063)
Traditional alarm clocks generally include clock settings and some systematic time recordings.They can only remind time but not support custom settings.While the alarm clock with user authentication not only has the functions of clock setting,time reminding,memorial day recording,background adding and mood description setting,but also is capable of encrypting users,information through MD5 when login and register so as to protect user'privacy and facilitate the promotion and utilization of the application.After the concrete realization of all function modules is provided,the advantages and disadvantages of the software are summarized and the next improvement orientation is analyzed.
alarm clock,user authentication,MD5,privacy protection
TP391.43
10.3969/j.issn.1672-9722.2017.11.025
Class Number TP391.43
2017年5月20日,
2017年6月27日
河南省基础与前沿技术研究计划项目(编号:162300410193);郑州市科技局科技发展计划项目(编号:20141371);郑州市嵌入式系统应用技术重点实验室资助项目(编号:121PYFZX177)资助。
张亚娟,女,硕士,副教授,研究方向:物联网安全、数据管理技术、网络软件。刘寒冰,女,硕士,副教授,研究方向:算法分析与设计。史建国,男,博士,教授,研究方向:系统工程。