英语原文共 4 页
基于智能手机的双因素认证文件加密系统的设计与实现
张宗福
现代教育技术中心
江门理工学院
江门,中国
jmptzhang@126.COM
摘要 - 设计并实现了一个基于智能手机的双因素认证文件加密系统,分析了文件加密系统的安全性和组合双因素认证技术。通过蓝牙以及专用通信协议与计算机的相互认可,系统使用智能手机作为硬件加密密钥,在计算机中设置文件柜,用于存储私有文件,以处理信息存储的安全性。该应用程序表明该系统易于使用,高度可扩展,并大大提高了数据存储的安全性。
关键词 - 双因素认证;文件加密技术;蓝牙通讯;文件保护
一,引言
由于信息安全技术发展迅速,计算机和网络技术已广泛应用于各行各业,越来越多的计算机用户使用计算机存储机密信息。为了存储这些重要且机密的数据并防止它们被窃取,需要更方便,安全和有效的加密技术。一些当前的文件加密系统主要通过以下两个方面对文件进行加密:一种是现代加密技术,另一种是处理身份认证和访问权限的强认证系统。
目前,身份认证的方式很多,双因素认证是最有效的方式。它由USB KEY完成,包含算法,动态密码卡和输入密码。[3]
但USB KEY必须每天携带,因为计算机启动和文件处理需要插入KEY。同时,请求专业的KEY并占用USB资源。尽管计算机的安全性得到了改善,但这并不方便。因此,智能手机可用作建立双因素认证系统的KEY。它很有可能将智能手机作为识别身份验证的因素之一,因为现在几乎每个人都拥有便携式智能手机。我们可以随时通过无线方式将智能手机与PC连接,如蓝牙,WIFI等进行身份验证。它更简单方便。
二,基于智能手机的文件加密系统原理
基于智能手机的文件加密系统主要由智能手机和计算机组成。智能手机与计算机之间的通信是通过蓝牙通信协议进行的。
蓝牙 加 解
密 密
储存
解压
图1.基于智能手机的文件加密系统示意图
通过蓝牙连接到计算机,存储在智能手机中的KEY可用于设置机密文件柜,并在用户将Pin码放入智能手机后将所有明文文件转换为密文;同时,KEY和PIN码可用于打开机密文件柜,然后将密文转换为明文。
系统采用双因素认证方式,即只有当智能手机的功能与密码完全匹配时,认证才有效。通过系统调用和拦截系统对文件进行读写操作,文件驱动层的加密软件使用Windows中的文件操作API函数对相关文件进行加密和解密。这种加密机制使用高强度加密算法和存储在智能手机中的长密钥[1-2]。
三,安全认证模式和认证机制的设计私人文件的安全系数通过智能增加
手机实现认证保护计算机中的文件,而且对每个人来说都比较方便。目前,作为Android下的智能手机,Symbian或Windows Mobile操作系统越来越普及,这使我们更加考虑智能手机支持的安全认证模式和机制,这意味着在智能手机中安装安全认证模块并保存KEY以保护文件;相应的密文保存在计算机中。因此,在智能电话密钥的参与下,可以在计算机上完成对本地文件的加密和解密操作。
A.模块
通用认证机制模块的安全设计如图2所示。智能手机需要部署认证模块软件,计算机侧主要由认证模块和文件保护模块组成。
智能手机 PC
图2.身份验证机制模块
智能手机认证模块保存文件,保护相应的KEY,并与计算机认证模块交换信息。计算机认证模块负责从智能手机获取Key并测试智能手机与计算机之间的连接状态,同时通知文件保护模块是否启动文件保护功能。文件保护模块启动和关闭加密和解密功能,还加密和解密本地文件。 KEY保护文件作为密文保存在计算机中。
B.基于智能手机的双因素认证机制工作流程
首先,智能手机将请求发送到远程文件柜,并通过蓝牙模块连接PC设备。然后,智能手机的蓝牙将在完成基于匹配密码的连接后将成功匹配的消息发送回智能手机认证模块。其次,智能手机认证模块请求用户输入KEY的保护密码并解密智能的KEY。
手机和蓝牙模块将KEY传递到PC端,然后PC端认证模块将操作文件保护KEY并将其传递给文件保护模块,文件保护模块将使用KEY加密和解密文件。最后,PC端认证模块循环检查配对电话是否连接;如果断开连接,它将通知文件保护模块关闭文件保护功能。
C.密钥生成过程
首先,确保智能手机的密钥不是安全柜的密钥;通过不可靠的链接完成将智能手机密钥传递到PC端的过程- 蓝牙通信,因此密钥可能被第三方截获。智能手机密钥仅作为保护和操作KEY参数的一部分,因此即使有人互联智能手机密钥,他们也无法解密安全柜。实际上,samartphone密钥与种子密钥联合以创建将加密保护KEY的主密钥。智能手机密钥以密码保护的方式保存在智能手机中,而保护KEY以密文的形式保存在PC端。
D.文件加密和解密过程
在加密和解密文件时,首先输入智能手机密码的密码来解密智能密钥。电话将连续传递到PC端以恢复主密钥以解密保护KEY。该过程描述如下:Smartp-hone认证模块要求用户输入保护密码;根据密码解密智能手机密钥的密文,恢复智能手机密钥;智能手机认证模块通过智能手机
电脑钥匙到PC端; PC端的认证模块对128种子密钥和128个智能手机密钥进行散列操作。为避免重复哈希值,将在每个哈希操作中填充固定值。几个哈希结果的组合将形成主密钥。
主密钥使用解密算法A来解密保护KEY的密文以获得明文。
保护KEY使用解密算法B解密保护文件的密文以获得明文,或者加密保护文件以获得密文。
文件保护模块关闭时,内存中的保护KEY将被破坏。
没有智能手机密钥的参与,本地文件无法加密或解密。
E .安全性分析
创建安全柜的密钥相对容易,但只有智能手机和计算机的协同工作才能创建认证机制。同时,智能手机钥匙既不是安全柜的钥匙,也不是主钥匙。即使第三方在创建过程中获得智能手机密钥,智能手机密钥仍然无法完成安全柜的解密。主密钥在保存过程中加密安全柜的密钥。因此,不必担心KEY被盗。
IV。系统的设计和实现
- 总体设计
该系统主要是让客户端远程管理服务器中的安全柜。
安全柜主要在PC的硬盘上创建虚拟安全存储空间,并存储用户的敏感数据。文件安全柜将在“我的电脑”中显示一个用户保存安全文件的字母。操作与硬盘分区相同[3]。
客户端主要通过蓝牙模块连接服务器,并将操作指令传递给服务器以管理安全柜。
服务器主要通过蓝牙模块从客户端接收数据,然后解析和分发数据,最终完成安全柜的管理。
该系统采用C / S结构的软件系统。服务器采用Windows XP(或更高级操作系统)中的个人计算机和(或加上)蓝牙模块。
智能手机的客户端采用带有蓝牙模块的Android 2.0(或更高级的操作系统)。
bull;智能手机客户端软件模块的开发
图3.智能手机客户端软件模块的故障
bull;PC端软件模块
图4.PC侧软件模块
bull;安全柜管理软件模块
图5.安全柜的管理软件模块
B.智能手机侧程序实现方法
智能手机直接面向用户,为用户操作提供界面。用户使用界面管理安全柜,包括安全柜的设置,删除,修改,枚举,添加和备份等。该模块的操作是通过向PC发送指令实现的;智能手机和PC之间的通信是通过蓝牙通信进行的。
智能手机应用程序的设计主要包括蓝牙和用户界面。智能手机的开发平台是Android 2.2。开发环境和编译器使用Eclipse Jee 4.5和JDK16。应用程序是围绕Android应用程序框架开发的。界面由“droiddraw-rlb16”开发,可以设计和生成Android界面文件(xml文件)。
该模块使用Android SDK中的BluetoothSocket类的OutputStream和InputStream来发送和接收数据[2]。
C.PC端程序实现方法
PC服务处理个人计算机,连接智能手机并通过蓝牙接收命令,完成相应的过程。其主要任务如下:监控与蓝牙的连接,接收和分析操作指令,设置,删除和枚举安全柜。
服务流程的设计包括蓝牙,指令接收和分析,以及安全柜。接收和分析指令主要处理接收数据。安全柜的管理由机柜API完成[4-6]。
该模块主要处理从智能手机接收,解析和分发指令。主界面有以下几点:
1)PC侧的蓝牙模块接收数据包,服务程序根据通信指令的格式解析数据包。
2)根据指令代码和相应的参数调用相应的安全柜API。
D. PC端智能手机和蓝牙通信的设计和实现
该模块的最终目标是建立通信连接,进行智能手机与PC之间的数据交换,以及检测和启动本地蓝牙设备,搜索其他蓝牙设备,然后枚举和连接。
蓝牙模块由移动设备和PC组成。
·智能手机的蓝牙模块引用Android SDK的android蓝牙套件,其中包括蓝牙设备的一系列操作功能。同时,智能手机应用程序是在Android开发平台的基础上开发的,因此蓝牙的相关操作使用Android中的Broadcast Receiver组件来监控蓝牙设备的状态。
注册信息:
//在发现设备时注册广播
IntentFilterfilter=new
IntentFilter(BluetoothDevice. ACTION_FOUND);
this. registerReceiver(mReceiver, filter);
//发现时注册广播
filter=new
IntentFilter(BluetoothAdapter. ACTION_DISCOVER Y_FINISHED);
this. registerReceiver(mReceiver, filter);
Message的回调函数:
private final BroadcastReceiver mReceiver=new
BroadcastReceiver0{
@Override
public void onReceive(Context context, Intent intent){
//当发现找到设备时
if
(BluetoothDevice. ACTION_FOUND. equals(action))
{
//从Intent获取BluetoothDevice对象
BluetoothDevice device=
intent. getParcelableExtra(BluetoothDevice. EXTRA DEVICE);
//如果它已经配对,请跳过它,因为它已经被列出了
if (device. getBondState0!=
BluetoothDevice. BOND BONDED){
mNewDevicesArray Adapter. add(device. getName0
'n' device getAddress));
}
//完成发现后,更改活动标题
elseif
(BluetoothAdapter. ACTION_DISCOVERY_FINISH ED. equals(action)){
setProgressBarlndeterminateVisibility(false); if(mNewDevicesArray Adapter getCount)
=0){
String noDevices='Can not find any device!'toString); mNewDevicesAray Adapter. add(noDevices);
}}}
};
·PC的蓝牙模块主要是在套接字通信周围完成的,构建过程类似于TCP / IP,主要通过加载版本信息,创建套接字,绑定,监控和接受连接来实现[5]。但有一点不同的是,其中一个设置服务用于表示它是蓝牙通信。
创建蓝牙套接字的过程:
WSAStartup(wVersionRequested,amp;wsaData); server=socket(AF_BTH,SOCK_STREAM, BTHPROTO _RFCOMM);
bind (server (const sockaddr*)amp;sa, sizeof(SOCKADDR_BTH));
listen( server,1);
getsockname(server,(SOCKADDR*)amp;sa,amp;sa_len); WSASetService(amp;svcInfo,RNRSERVICE_REGISTER,0); client=accept(server(LPSOCKADDR)amp;ca,amp;calen); recv(client,buf,MSG_MAX_LEN,0);
send(client,bufbufLen,0);
五,结论
由于智能手机被用作双因素认证的因素之一,本文设计并实现了一种易于使用,高度可扩展且大大提高数据存储安全性的文件加密系统。
实践表明,该系统能够充分满足企业内部对数据机密性的需求,有效防止黑客入侵,保护个人隐私,具有较高的商业价值和社会
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。