北京理工大学 何兴平 闫 森 梁晓昀
指导教师: 高 平
摘 要
网络安全涉及盗取信息, 攻击破坏国家具有政治、 经济、 文化、 科研、 军事命脉性质的资源, 对国家安全与社会稳定及个人隐私构成重大威胁, 研究如何保护网络资源成为刻不容缓的紧迫任务。
近年来, 由于各种泄密事件屡见不鲜, 信息安全日益重要。 如何让人们的文件更加安全? 加密是最简单、 最有效的办法。 然而目前众多的加密解密系统多采用软件加密实现, 效率低下且安全性不高。 本系统采用现行技术尚无法破解的高级加密算法, 利用Devkit 8500 ARM开发板AM3715芯片强大的数据处理能力, 实现硬件加密。 通过调用OCF-Linux驱动, 启动AM3715特有的加密硬件加速器, 最终实现对文件的快速、 实时加密解密。 与此同时, 基于Apache Web服务器, 开发出一套云端文件管理系统,从而实现重要文件实时、 透明的加密解密功能。
关键字: AES算法; OCF-Linux; 实时透明加密解密; 云端文件管理
Abstract
Network security is related to steal information, to attack the country's resources which are vital to political, economic, cultural, scientific research and military lifeblood. It has been a major threat to national security and social stability and personal privacy. Studying how to protect network resources has become an imperative task.
In recent years,with the rapid development of computer science and network communication technology,lots of information security leaks happened. More and more attentions are paid on information security. How to get the files and datas more secure? Encryption is the simplest,most effective way. However,a large number of encryption and decryption systems are used software encryption to implement,with low efficiency and security. Our system uses the Rijndael Advanced Encryption Algorithm(AES) to encrypt,which can not be broken at current technology. We utilize the powerful data processing capability of AM3715 chip for Devkit8500 ARM development board to achieve hardware encryption. Call the driver of OCF - Linux ( Open Cryptographic Framework for Linux) to start the AM3715's specific Cryptographic Hardware Accelerator,and ultimately to achieve rapid,real-time encryption and decryption. At the same time,based on the Apache Web server,we developed a system of cloud file management,in order to achieve encrypting and decrypting the important documents and datas at anytime and anywhere.
Key words:AES algorithm;OCF-Linux;real-time and transparent encryption and decryption;file management
1 绪论
1.1 需求分析
人类有保护自己的信息不被他人所知的强烈愿望, 随着信息化的加快, 在各种信息交流中, 越来越多的关键数据以电子文档形式存在, 如何确保用户的重要数据和文件不遗失、 不泄露? 信息安全技术重要数据以及文件的加密保存和使用显得尤为重要。
目前, 基于密码技术的密码类产品市场份额还相对较小, 但随着金融、 电信、 政府等行业信息化建设, 对于信息数据安全整体解决方案需求的不断增加, 基于加密技术的产品市场份额势必有较大的增长。 正是根据这种需求, 我们开发出基于OCF-Linux的实时透明加密解密及云端文件管理系统。
1.2 现有加密手段分析
数据加密是目前解决数据安全的一种有效的方法, 从实现角度讲, 数据加密技术主要分为两类: 软件加密和硬件加密。
软件加密技术是基于个人计算机特定的操作系统, 使用程序实现的一种加密技术。 这种加密技术应用方便, 成本较低, 加密方式比较灵活, 加密速度依赖于个人计算机的处理性能。 但由于操作系统和应用软件本身的不稳定和易受攻击性, 这种加密技术在安全和可靠方面存在很大漏洞, 不适合于重要信息的加密存储。
硬件加密技术使用相对独立的系统完成数据加密, 加密过程不受外界影响, 具有很高的安全性和可靠性, 是现代加密存储技术的发展趋势。
1.2.1 软件加密分析
目前市场上的主流软件加密方式有两类。
第一类加密软件是直接对文件加密的, 在文件生成的同时自动加密, 但需要提前规定文件类型, 文件在计算机内部是加密的, 但可以在局域网内随便传递和打开。
第二类加密软件, 包含文件加密的功能, 文件在计算机内部是不加密的, 只有通过端口的时候才能加密, 也可以对硬盘加密, 防止硬盘被盗造成资料流失。
1.2.2 硬件加密分析
硬件加密系统使用系统硬件资源安全、 便捷地对上层应用提供包括密码运算、 密钥存储、 随机数生成在内的诸多安全服务。 硬件加密系统包含一个能存储敏感信息、 自主完成与密码运算相关操作的密码设备, 外界只能通过定义好的接口调用其中功能, 不能直接访问其中的敏感信息对其运算任务进行干预。 加密系统将阻止一切非法访问, 当非法访问严重威胁加密系统安全时, 加密系统可以采取包括自毁在内诸多防护措施。
硬件加密系统在抵御攻击、 密钥安全存储、 运算速度等方面可以提供比软件加密系统更优质的服务。 基于这些因素, 在某些场合硬件加密系统起着软件加密系统不可替代的作用。
硬件加密系统优点如下:
1) 在硬件加密系统中, 种子密钥保存在密码设备的物理器件中, 并利用专门的保护电路, 从物理上断绝了非法访问密钥的可能性。 同时, 与种子密钥相关的所有操作都在密码设备内完成, 充分保证了种子密钥的安全性。
2) 完整性保护。 硬件加密系统中的密码算法芯片采用反熔丝的FPGA或ASIC实现, 相应的控制和序也是通过专用设备写入到密码设备内的FLASH芯片, 并加以保护; 此外, 核心程序运行在密码设备内专用的RAM上, 它在物理通路上与外界隔绝, 使得攻击者不能非法访问、 修改程序中的数据。
3) 硬件加密系统可以提供与软件加密系统相比更高速的服务。
4) 在阻击逆向工程攻击方面, 硬件加密系统更具有无与伦比的优越性。 反汇编软件无法对硬件加密系统进行监视, 并且与密码相关的运算放在密码设备专用处理器上完成, 普通设备难以跟踪, 从而极大地减少了系统被破解的可能。
1.3 AES加密算法简介
DES加密算法在20世纪90年代被攻破。 美国国家标准与技术局(NIST)于1997年发出了一个通告,征集新的加密标准。 要求如下:
1) 应是对称加密算法, 具有可变长度的密钥(128、192或256位);
2) 应比三重DES更安全;
3) 应可以应用公共领域并免费提供;
4) 应至少在15年内使用安全。
经过一个很长的公开分析过程, 最终从来自10个不同国家的15种算法中选择定AES(Rijndael)算法。
AES加密算法有以下优点:
1) 跨平台性能好, 可以在现行大多数平台上应用;
2) 高安全性, 在现有技术水平下几乎无法攻破;
3) ROM和RAM要求低, 故特别适用于Smart卡;
4) 运算的设置使得易于抵抗对Smart卡的攻击;
5) 快速的密钥设置;
6) 比较好地支持结构化平行设计;
7) 支持其他的32位倍数的密钥长和分组长。
鉴于AES算法优越的性能, 本系统采用AES-256算法进行加密解密。
1.4 OCF-Linux简介
OCF-Linux(Open Cryptographic Framework for Linux)是一个特殊的设备驱动程序, 它为更高层次的应用提供了通用接口。 例如, AM3715可在OCF-Linux的支持下使用加密硬件加速器(Cryptographic Hard-ware Accelerator)。
1.5 小结
本系统使用Devkit 8500 ARM平台, 采用目前尚无法破解的AES加密算法, 利用AM3715芯片强大的数据处理能力实现硬件加密。 通过调用OCF-Linux驱动, 启动AM3715特有的加密硬件加速器, 最终实现对文件的快速、 实时、 透明加密解密。
2 系统总体方案
2.1 硬件部分
该系统硬件平台为TI公司的Devkit 8500A, 软件平台采用Linux 2.6.32操作系统。
利用Linux USB Gadget驱动实现存储设备的U盘识别, 从而完成系统与外部存储设备之间的文件交互。 在系统读写文件的过程中采用AES-256算法对文件进行加密解密, 并利用AM3715强大的数据处理能力实现内存级别的高速加密解密。
另外通过外扩GSM模块, 实现用户手机和ARM系统之间的双向通信, 当系统遇到非法操作时, 实现远程通知和远程紧急保护的目的。
2.2 软件部分
利用Apache在Devkit 8500存储芯片上构建Web服务器, 并搭配PHP与MySQL一起构建云端文件管理平台, 在网络文件传输过程中使用OpenSSL进行加密, 确保文件传输安全。
系统总体方案框图如图1所示。
图1 系统总体框图
3 透明加解密模块构成
透明加解密模块是由Linux下的File-backed Storage Gadget驱动与AES算法结合生成的。
File-backed Storage Gadget驱动主要功能是将系统模拟成U盘, 主机将系统识别为U盘, 并能实现所有对U盘的操作。
3.1 Linux硬件驱动
要理解File-backed Storage Gadget驱动的工作原理 (参见图2), 必须了解USB的相关知识。 USB是英文“Universal Serial Bus”的缩写, 采用串行方式传输数据, 支持多数流和多个设备并行操作, 允许热插拔。 USB综合了多标准的优点, 使其逐步成为PC接口标准, 进入了高速发展期。
图2 Linux硬件驱动框图
在Linux下对于一个硬件的驱动, 可以有两种方式:
1) 直接加载到内核代码中, 启动内核时就会驱动此硬件设备。
2) 以模块方式编译生成一个.ko文件, 当应用程序需要时, 再加载进内核空间运行。 我们所说的一个硬件的驱动程序, 通常指的就是一个驱动模块。
SCSI是一种计算机标准接口, 本系统Linux提供IDE设备对SCSI的模拟(ide-scsi.o), 将USB存储设备模拟为SCSI硬盘进行访问。
3.2 USB与SCSI设备
3.2.1 USB Mass Storage类规范概述
大多USB驱动程序均链接另外一个驱动系统, 例如SCSI、 网络或者tty子系统。 USB组织在Univer-sal Serial Bus Mass Storage Class Spaceification1.1版本中定义了海量存储设备类(Mass Storage Class)的规范, 这个类规范包括四个独立的子类规范, 即:
1)USB Mass Storage Class Control/Bulk/Interrupt(CBI)Transport;
2)USB Mass Storage Class Bulk-Only Transport;
3)USB Mass Storage Class ATA Command Block;
4)USB Mass Storage Class UFI Command Specification。
前两个子规范定义了数据/命令/状态在USB上的传输方法。 Bulk-Only传输规范仅仅使用Bulk端点传送数据/命令/状态, CBI传输规范则使用Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态传送。 后两个子规范则定义了存储介质的操作命令。 ATA命令规范用于硬盘, UFI命令规范是针对USB移动存储。
Microsoft Windows提供对Mass Storage协议的支持, 因此USB移动设备只需要遵循Mass Storage协议来组织数据和处理命令, 即可实现与PC机交换数据。 存储类规范是由接口描述符决定的, 接口描述符各项的定义如表1所示。 其中, bInterfaceClass、 bInterfaceSubClass、 bInterfaceProtocol可以判断出设备是否是存储, 以及属于哪种存储子类和存储介质的操作命令。
表1 接口描述符定义
续表
3.2.2 Bulk-Only传输协议
设备插入到USB后, USB即对设备进行搜索, 并在USBHost得到描述符, 即完成了设备的配置且识别出为Bulk-Only的Mass Storage设备。 然后进入Bulk-Only传输方式, USB与设备间包括CBW、 CSW和普通数据等所有数据均通过Bulk-In和Bulk-Out来进行传输。
CBW的格式如表2所示。
表2 CBW的格式说明
参数如下:
1) dCBWSignature: CBW的标识, 固定值:43425355h(little endian);
2) dCBWTag: 主机发送的一个命令块标识, 主要用于关联CSW到对应的CBW;
3) dCBWDataTransferLength: 本次CBW命令要求在命令与回应之间传输的字节数。 如果为0, 则不传输数据;
4) bmCBWFlags: 反映数据传输的方向,0表示来自Host,1表示发至Host;
5) bCBWLUN: 对于有多个LUN逻辑单元的设备, 用来选择具体目标;
6) bCBWCBLength: 命令的长度, 范围在0~16;
7) CBWCB: 传输的具体命令, 符合bInterfaceSubClass中定义的命令规范, 此处是SCSI。
CSW命令格式如表3所示。
表3 CSW命令格式
参数如下:
1) dCSWSignature: CSW的标识, 固定值:53425355h(little endian);
2) dCSWTag: 设置这个标识和CBW中的dCBWTag一致, 参照上面关于dCBWTag的解释;
3) dCSWDataResidue: 还需要传送的数据, 此数据根据dCBWDataTransferLength——本次已经传送的数据得到;
4) bCSWStatus: 指示命令的执行状态。
3.2.3 HT指令集
在Bulk-Only的CBW中, CBWCB为如表4所示格式的命令块描述符(Command Block Descriptor)。SCSI-2有6、10和12字节等三种字长的命令, Microsoft Windows环境下支持12字节长的命令。
表4 Command Block Descriptor描述
参数如下:
1) Operation Code: 操作代码, 表示特定的命令。 高3位为Group Code, 低5五位为Command Code, 可以有32种命令;
2) Logicol Unit Number: 为了兼容SCSI-1而设的;
3) Logical Block Address: 为高位在前, 低位在后的扇区地址;
4) Transfer Length: 为需要从逻辑块地址处开始传输的扇区数;
5) Parameter List Length: 为需要传输的数据长度;
6) Allocation Length: 为初始程序为返回数据所分配的最大字节数。
Mass Storage协议只用到了SCSI指令集的一部分, 更多的SCSI指令参见: http:∥en.wikipedia.org/wiki/SCSI_command。
3.3 File-backed Storage Gadget驱动
为了提供最大的吞吐量, 驱动使用了缓冲头的循环管道(struct fsg_ buffhd)。 每个缓冲头包含一个bulk-in、 一个bulk-out请求指针、 一个指向缓冲区的指针和各个状态变量。 利用变量(fsg->next_buffhd_to_fill)指向下一个使用的缓冲头状态变量表明是否为空满或忙碌。
图3 程序流程图
3.4 FSG驱动与AES的结合
AES采用CBC模式, 入口函数AES_cbc_encrypt(), 通过循环调用AES_encrypt()和AES_decrypt()函数实现对任意长度字符串数组的加密解密。 驱动初始化时, 通过AES_set_en-crypt_key()和AES_set_decrypt_key()函数将输入的密钥转换成加密解密使用的特殊密钥。 我们为AES创建另一个缓冲区,用于存放加密解密数据的输出。 本系统将do_write()函数修改为进行数据写入前调用AES_cbc_encrypt ()完成一次对缓冲区数据的AES加密。 相应地, 在do_read ()函数中, 需要对刚读出的数据进行解密。
完整程序流程图如图3所示。
4 嵌入式Web服务器的实现
4.1 嵌入式Web服务器总体方案设计
通过移植开放式LAMP平台到TI公司的AM3715开发版并结合已有的网卡驱动及外围路由器, 本系统组建了一套完整的嵌入式Web服务器 (图4), 为后续移动存储设备B/S结构文件管理系统的开发提供底层支持。
LAMP是一种开源的Web网络应用和开发环境, 是Linux, Apache,MySQL,PHP的缩写。 与SUN公司的JAVA架构相比,LAMP具有Web资源丰富,轻量,快速开发等特点;与微软的.NET平台相比,LAMP具有通用、 跨平台、高性能、低价格等优势。LAMP平台由四个组件组成, 分别是Linux操作系统、 Apache Web服务器、 PHP解释器和MySQL数据库。
Linux操作系统处在最底层, 本系统的LINUX内核基于Kernel 2.6。 Angstrom Linux是基于OpenEmbedded(以下简称OE)工具创建的嵌入式系统专用Linux发行版。
Apache是一款功能强大、 稳定、 可支撑关键任务的web服务器, 并由于开放源代码团体成员的支持而得到发展和加强。 由于其跨平台性和安全性而被广泛使用, 成为当今最流行的Web服务器端软件。
MySQL是最流行的开源关系数据库管理系统, 是LAMP的数据存储端。 MySQL能让用户通过一种编写语言如PHP来存储和找回数据, 可以快速而高效地存储多种类型的数据, 如布尔类型、 文本类型、 整数类型、 图像类型、 二进制数据。
图4 嵌入式Web服务器总体方案框图
MySQL数据库具有很多特性, 如数据复制、 表格锁定、 询问限制、 用户账号、 多层数据库、 持续连接以及MySQL的存储过程、 触发器和视图。 MySQL支持标准的ANSISQL语句, 它还支持多种平台,以及Linux、 Windows、 SOFARIS等主流操作系统。
Perl是一种灵活的语言, 特别是在处理文本要素的时候, 这种灵活性使Perl很容易处理通过CGI接口提供的数据, 灵活地运用文本文件和简单数据库支持动态要素。 PHP是一种被广泛应用的开放源代码的多用途脚本语言, 它可嵌入到HTML中, 主要用于开发服务器端应用程序及动态网页。
综上所述, LAMP是一种Web网络应用和开发环境, 基本上是四种开源软件技术的组合, 它们组合在一起产生了一个功能强大的应用服务平台, 使用却相对来说比较简单和容易。 因此LAMP具有表5所列优势。
表5 LAMP的优势
4.2 MySQL数据库服务的交叉编译与移植
本系统以MySQL-5.1.32版为蓝本进行数据库服务移植, 首先在Ubuntu系统上配置好交叉编译链,将MySQL-5.1.32.tar.gz解压到/home/mysql-5.1.32目录下, 在终端输入以下命令:
在VI编辑器下注释掉21948~21956行,22025行,30317~30325行,30408行。 再次执行con-figure配置编译器指向arm-linux-gcc。
从Linux镜像源获取ncurses-5.6.tar.gz,解压到/home/ncurses-5.6目录下。在终端输入以下命令:
返回到mysql目录下, 使用VI编辑器在sql/sql_ parse.c文件中加入定义#define STACK_ DIREC-TION1, 最后make install即可完成编译。
把以下内容保存到/etc/my.conf。
在超级终端下输入以下命令:
至此, MYSQL移植工作完成。
4.3 APACHE网页服务的交叉编译与移植
略。
4.4 PHP解释器的交叉编译与移植
略。
4.5 嵌入式Web服务器总结
因LAMP平台由多部件联合工作, 如何保证兼容性、 安全性、 稳定性便成为本系统必须研究的课题。 通过合理配置APACHE及PHP的文件并搭配SWAP内存交换分区、 PHP加速器等多种手段, 充分保证嵌入式Web服务器在TI公司AM3715开发板上的高效运行。 通过对系统内核的优化及重新编译,可以确保本系统在中途断电时不丢失工作文件。 经过多次漏洞扫描及攻击测试, 可以确保本系统在一般的服务器攻击手段下的绝对安全性, 充分满足设计需要及运行要求。
5 系统远程Web客户端的实现
5.1 远程Web客户端总体方案设计 (图5)
图5 远程Web客户端总体方案设计框图
远程Web客户端基于ThinkPHP框架构建, 采用主流的MVC设计模式进行系统开发, 通过调用开源安全通信管理组件OpenSSL所提供的AES高级加密算法接口完成文件的实时加密解密传输, 保证了移动存储设备中文件管理的安全性、 可靠性及易用性。 通过结合JQuery、 DIV+CSS、 AJAX等Web前端开发技术, 实现了跨平台、 多终端的透明化远程文件管理。
按照远程Web客户端的功能进行分类, 可将各个模块细分如下:
1) 身份验证模块
负责: 用户密码验证、 网卡MAC地址验证、 存储设备硬件序列号验证。
2) 移动存储设备文件管理模块
负责: 加密文件、 解密文件、 删除文件、 目录管理、 文件管理、 压缩文件、 修改密钥、 权限管理。
3) 系统底层实时加密模块
负责: 硬件加密加速器、 安全加密管理接口。
5.2 MVC设计模式分析
5.2.1 MVC模式介绍
MVC是模型(Model)、 视图(View)、 控制器(Controller)的英文缩写, 是J2EE平台所推荐的设计模式。 MVC框架包括以下的组成部分:
1) 模型(Model)
模型是Web应用系统的核心模块, 在模型中封装了应用程序的事务逻辑和数据结构, 体现的是应用程序的状态。 模型不仅能够处理系统大多数的事务逻辑和数据结构, 而且还能和数据库进行交互, 主要负责维护应用系统的数据。
2) 视图(View)
视图是模型的表示实现, 提供与用户交互的外观, 是应用系统的外在表现, 一般使用多个包含单显示页面的用户组件。
3) 控制器(Controller)
控制器是用来接收用户从Web客户端浏览器的输入, 然后通过调用相应的模型及视图去响应用户的相关请求。 模型、 视图、 控制器这三者的动态协作关系如图6所示。
图6 MVC模式框图
5.2.2 MVC优势分析
MVC设计模式分离了PHP代码和HTML代码, 该特点为我们提供了许多方便。 首先, 多个视图可以共享相同的模式。 其次, 模型、 视图、 控制器保持相对独立, 可以很容易地改变应用程序的数据层和业务逻辑。 最后, MVC设计模式还有利于软件工程化管理。 由于不同的层各司其职, 每一层不同的应用具有某些相同的特征, 有利于通过工程化、 工具化产生管理程序代码。
5.2.3 远程Web客户端的MVC实现 (图7)
本系统基于Think PHP进行开发, 采用唯一入口点方式进行操作, 确保系统整体操作安全性的统一, 按照标准MVC模式设计, 各个逻辑单元相互独立, 扩展性极强。
视图层主要通过Tpl目录下的模板文件及Jquery目录下的JS文件实现, 为用户提供视图界面并响应用户行为。
控制器主要通过Do.php完成, 其内部已经封装了本系统大部分功能的响应代码, 可对用户的操作进行分析并做出响应。
图7 远程Web客户端的MVC实现框图
模型层主要通过INC目录下的系统全局调用函数库, DATA目录下的系统数据库及CONF目录下的系统配置文件构成。
5.3 OCF硬件加密加速驱动模块
5.3.1 硬件加密加速器介绍
AM3715拥有加密硬件加速器(Cryptographic Hardware Accelerator), 可以使文件加密过程的速度和效率大大提高, 下面将具体介绍AM3715加速器的使用。
5.3.2 OCF在AM3715上的驱动调用
AM3715的驱动程序的专门的设计来执行开放加密框架OCF, 从Sitara Linux SDK 05.04开始就有一个顶层的Makefile目标动构建这个加密驱动。 当相关模块安装之后, 可以通过OCF-Linux驱动执行OpenSSL的命令启动AM3715硬件加速器。
5.3.3 在AM3715上构建OCF模块
复制omap3_ crypto.tar.gz到主机开发系统并解压到合适位置, 该压缩包将创建自己的子目录“omap3_ crypto”。
编辑压缩包中包含的Makefile, 修改LINUXKERNEL_ INSTALL_ DIR参数。 此参数的值是目标内核源代码的路径, 内核源代码从PSP 3.0.1.6获得。
5.3.4 OCF在OpenSSL上的实现
1) 配置OpenSSL
在openssl-1.0.0d的目录下有一个README文件和安装文件。 根据INSTALL文件的说明, 编辑Makefile并进行下列变更:
INSTALL_PREFIX=[path to NFS]
CFLAG=-0-DHAVE_CRYPTODEV-DUSE_CRYPTODEV_DIGESTS
CC=arm-arago-linux-gnueabi-gcc
AR=arm-arago-linux-gnueabi-ar $(ARFLAGS)r
RANLIB=arm-arago-linux-guneabi-ranlib
NM=arm-arago-linux-gnueabi-nm
路径在INSTALL_PREFIX参数应符合在主机开发系统的路径下的NFS挂载,并被用于EVM的目标。
2) 修改OpenSSL
OpenSSL需要一个小的修改, 从而使SHA和MD5操作大文件的AM3x硬件加速器时工作。 该补丁可从下面链接获得:
File:0002-Modify-engcryptodev.c-to-make-SHA1-and-MD5-work-wit.patch
3) 编译并安装到目标路径
为确保OpenSSL的Makefile能从SDK中找到交叉编译工具, 需要在SDK的环境设置脚本。
4) 修改路径到OpenSSL
AM3715的SDK包含OpenSSL可执行文件在根文件系统中的位置: /usr/bin/openssl。 因此, 在Linux主机上, 需要修改路径, 以使调用OpenSSL到新的可执行文件中的/usr/local/bin/openssl。
5.4 系统加密解密流程
5.4.1 系统实时加密流程设计
当用户上传文件到本系统后, 系统首先提取经过MD5加密的密钥, 并采用该字符串作为AES的密钥。 然后系统加载OCF硬件加密模块, 并通过PHP调用底层的OpenSSL接口加密文件, 最终将加密后的文件写入到移动存储设备中。 参见图8
5.4.2 系统实时解密流程设计
当用户欲从移动存储设备下载文件时, 系统首先从数据库提取经过MD5加密的密钥, 并采用该HASH字符串作为AES高级加密算法的密钥。 然后系统将加载OCF硬件加密加速模块之后, 系统将通过PHP调用底层的OpenSSL接口解密文件, 最终将解密后的文件回传到用户的终端上。 见图9。
图8 实时加密流程图
图9 实时解密流程图
5.5 系统密钥管理解决方案
5.5.1 用于远程文件管理的高安全级方案
本系统依靠强大的MySQL数据库, 对密钥及用户权限进行统一管理, 可支持多用户分权限的文件远程管理。 当新的移动存储设备被连接到本系统时, 本系统将根据其硬件序列号, 随机生成一组高强度密钥, 并将该密钥与序列号进行匹配关联。 系统管理员可将不同的用户名关联到该移动存储设备上, 确保任何用户在不知晓移动存储设备的密钥的情况下, 也能在获得授权后对文件进行远程管理。 即使用户密码泄露, 也可确保移动存储设备中文件的绝对安全。 参见图10。
图10 密钥安全解决方案框图
5.5.2 用于本地文件管理的高便携性方案
当用户数量较少或用户密码可控时, 管理员可以采用解决方案, 提高文件管理的便携性及易用性。当新的移动存储设备连接到系统后, 管理员可以将唯一的用户密码经过MD5加密后, 与移动存储设备直接绑定。 这样获得授权的用户可通过自己的登录密码对文件进行加密解密, 亦可以在脱离本系统的情况下, 将移动存储设备中的数据安全取出, 有效增强本系统加密文件的兼容性及便携性。
5.6 远程Web客户端的创新点总结
本系统由于采用了优秀的Think PHP框架进行项目开发, 故极大地节约了开发时间, 并且获得了较为满意的运行效率及较高的安全性。 系统的前端设计基于DIV+CSS与Jquery函数库实现, 为用户提供了较为友好的界面及高效的操作环境, 更重要地在于实现了跨平台、 多系统、 多终端远程管理文件的功能。 系统通过将OCF加速模块与OpenSSL技术的整合, 较为可靠地实现了文件的实时加密与解密功能。
本系统Web客户端的主要创新点在于:
1) 驱动级文件加密解密功能: 为了获得更高的安全性与加密速率, 本系统舍弃了通常采用的基于PHP的AES加密算法, 而直接通过调用系统OpenSSL接口及底层OCF加速驱动模块进行加密。 其实时加密解密速率远超传统PHP脚本效率的数十倍。
2) 透明化文件管理功能: 通过调用Jquery函数库及AJAX技术, 本系统实现了基于B/S结构的友好远程文件管理功能, 可以满足用户一般的文件操作需求, 如新建、 删除、 复制、 粘贴、 剪切、 浏览等。
3) 跨平台多终端管理: 由于采用基于B/S结构的远程管理模式, 用户可通过任何能连接到网络的终端远程管理移动存储设备, 经过无线WIFI或有线连接的方式, 用户可使用如PC、 笔记本电脑、 手机、 平板电脑等诸多设备安全可靠的管理移动存储设备中的文件。
4) 软件与硬件联合验证: 系统通过用户密码确认, 访问者网卡MAC地址确认, 移动存储设备硬件序列号确认等多种方式验证用户身份, 充分保证了移动存储设备中文件的安全。
6 数据急救客户端的实现
6.1 数据急救客户端总体方案设计
考虑到系统遗失或损坏时, 需要紧急取出移动存储设备中数据。 本系统在windows环境下编写了数据急救程序, 用户可在任何支持USB的电脑上插入经过加密的移动存储设备, 紧急取出其中的数据(图11)。
6.2 Visual Basic开发环境介绍
略。
图11 数据急救客户端总体方案设计框图
6.3 移动存储设备数据急救流程
略。
6.4 数据急救客户端开发总结
本数据急救客户端的实现并不困难, 但拥有了本数据急救功能后, 将会使得本系统的可用性更强,安全性更高, 可靠性更有保障。 提升用户对于实时加密设备使用的信心, 为用户在突发情况下紧急情况读取数据提供可能。
7 GSM短信远程控制的实现
7.1 GSM短信远程控制板总体方案设计 (图13)
图12 移动存储设备数据急救流程图
图13 GSM短信远程控制板总体方案设计框图
本GSM远程控制板主要用于与Devkit 8500开发板对接, 实现用户通过手机即时接收本系统的操作信息(如开机), 若用户发觉数据被非法读取时, 可通过手机短信远程控制本系统锁死或远程清空移动存储设备中的数据, 保证数据的安全并确保数据不外泄。
本远程控制板由以下几个部分组成: LM2941S稳压芯片, STC12C5A60S2单片机, MAX232串口电平转换芯片, MAX810模拟开关和GTM900 GSM模块。
7.2 STC单片机硬件设计
STC12C系列单片机是具有流水线和精简指令集结构的高速、 低功耗新一代单片机。 它与传统8051单片机完全兼容, 同时还带有4路PWM/PCA(可编程计数器序列)、 SPI同步通信接口、8位ADC、 专用复位电路和看门狗电路。
本远程控制板使用的是STC12C系列中的双串口版本, 其中串口0用于与Devkit 8500通信, 串口1用于与GSM模块通信。 在单片机内部使用定时器1的1T模式为串口0提供115200 bps的波特率, 使用独立波特率发生器为串口1提供9600bps的波特率, 确保通信稳定。
7.3 GSM模块硬件设计
根据《华为GTM900模块数据手册》提供的内部组成结构及该模块的相关应用原理图, 实现了GSM模块与单片机的连接。 此外, 其第24至29脚用于与SIM卡插槽连接, 实现与SIM卡数据的交换。
7.4 短信远程控制板程序设计
远程控制板通过向STC单片机烧写进控制程序, 实现对GSM模块的控制及与Devkit 8500开发板的通信, 并负责处理手机短信的发送及手机短信的接收工作。
7.4.1 远程控制板程序文件设计规划 (图15)
图14 GTM900逻辑框图
图15 远程控制板程序文件设计规划框图
7.4.2 短信处理功能的实现
在短信处理之前, 首先要对GSM模块进行初始化操作, 包括上电、 检测SIM、 网络注册等操作。下面列出相关AT指令。 略。
7.4.3 主控制程序的实现
经过以上开机流程后, 系统将进入循环检测短信的程序。 当接收到新短信后, 自动判断所接收的命令, 并根据命令向Devkit 8500开发板执行相关操作。 参见图16。
图16 主控制程序流程图
7.5 短信远程控制板开发总结
本短信远程控制板充分利用了生活中常见的GSM网络, 来提高移动存储设备的安全性, 特别是当本系统或移动存储设备与用户距离较远时, 通过手机即时获取当前系统的运行状态, 并远程控制显得尤为必要。 目前已成功实现如下功能:
1) 当系统在任何时间任何地点被恶意开启时, 自动发送短信到用户手机, 提示当前开机状态。
2) 经用户判断为恶意开机时, 用户可通过发送手机短信的方式, 远程关闭系统, 断开USB OTG连接及以太网连接。
3) 经用户判断为恶意操作时, 用户可通过发送手机短信的方式, 远程清空移动存储设备的数据,确保重要数据不泄密。
8 系统测试及结果
8.1 U盘模拟功能测试
(1) 测试目的: 测试系统模拟U盘功能。
(2) 预置条件: 打开开发板电源, 等待系统启动完成。
(3) 操作描述: 插上U盘, 将开发板与PC机用OTG线连接。
(4) 期望结果: PC机自动将开发板识别为U盘。
(5) 测试结果: 与预期结果相符合。
8.2 透明加密解密功能测试
(1) 测试目的: 测试系统透明加密解密功能。
(2) 预置条件: 打开开发板电源, 系统启动完成后插上U盘, 将开发板与PC机用OTG线连接。此时PC机将开发板识别为U盘。
(3) 操作描述:
1) 当用户操作PC通过开发板向U盘中拷贝文件后, 将U盘从开发板上拔出并直接插入PC机的USB接口。 此时开发板与PC之间的连接断开。 打开刚才通过开发板拷贝的文件, 并通过计算哈希值与原文件比较。
2) 将U盘从PC机上拔下, 重新插入开发板并重置OTG接口, PC再次将开发板识别成U盘。 打开U盘, 打开最初通过开发板拷贝的文件, 并通过计算哈希值与原文件比较。
(4) 期望结果
1) 经过开发板的透明加密后, 直接插入PC的U盘里的文件是乱码, 哈希值与原文件不匹配。
2) 通过开发板透明解密后, 打开的文件与原文件相同, 哈希值与原文件匹配。
(5) 测试结果: 与预期结果相符合。
8.3 跨系统多终端远程访问测试
(1) 测试目的: 测试系统跨系统多终端远程访问移动存储设备的能力。
(2) 预置条件: 系统电源打开, 系统通过RJ45接口与局域网连接, 系统通过USB接口与移动存储设备连接。 支持WIFI的智能手机一台, 平板电脑一台, 笔记本一台。
(3) 操作描述:
1) 打开智能手机搜索WIFI热点, 建立无线连接, 通过手机浏览器远程登录本系统并管理文件。
2) 打开平板电脑搜索WIFI热点,建立无线连接,通过平板电脑浏览器远程登录本系统并管理文件。
3) 打开笔记本电脑连接有线局域网, 通过笔记本电脑浏览器远程登录本系统并管理文件。
(4) 期望结果:
1) 智能手机远程登录正常, 远程浏览及解密文件成功。
2) 平板电脑远程登录正常, 远程浏览及解密文件成功。
3) 笔记本电脑远程登录正常, 远程浏览及解密文件成功。
(5) 测试结果: 与预期结果相符合。
8.4 脱离本系统的数据紧急救援测试
(1) 测试目的: 测试移动存储设备中加密文件在普通电脑紧急解密的功能。
(2) 预置条件: 脱离本系统的普通WINDOWS XP/VISTA/7操作系统的电脑A一台, 预装本系统数据紧急救援包软件。 系统电源打开, 系统通过RJ45接口与局域网连接, 系统通过USB接口与移动存储设备连接。 相同局域网的远程控制用电脑B一台。
(3) 操作描述:
1) 将移动存储设备与本系统连接, 配置相应加密密钥。
2) 向移动存储设备中存储一个TXT文本文件和一个JPG图片文件。
3) 将移动存储设备与本系统脱离, 直接与电脑A连接。
4) 在电脑A中运行数据急救包, 并配置相同的密钥。
5) 通过数据急救程序解密数据, 并测试数据是否成功解密。
(4) 期望结果: 数据紧急救援成功。
(5) 测试结果: 与预期结果相符合。
8.5 GSM短信网络远程清空移动存储设备文件
(1) 测试目的: 测试通过手机短信远程清空移动存储设备文件的功能。
(2) 预置条件: 系统电源打开, 系统通过RJ45接口与局域网连接, 系统通过USB接口与移动存储设备连接。 GSM远程控制板与系统连接并打开。 普通GSM信道的手机一部, SIM卡两张。
(3) 操作描述:
1) GSM远程控制板插入SIM卡, 打开电源, 配置授权手机号。
2) 重新启动本系统, 使用测试电脑传输一个TXT文本文件及一个JPG图片文件到本系统, 检查移动存储设备中文件是否存在。
3) 使用授权手机向本系统发送清空文件短信。
4) 测试移动存储设备中的文件是否被清空。
(4) 期望结果:
1) 传输文件后, 移动存储设备中存在文件。
2) 授权手机向本系统发送清空短信后, 移动存储设备中的所有文件被清空。
(5) 测试结果: 与预期结果相符合。
此外还进行了软件与硬件联合身份认证测试、 远程序浏览及管理文件测试、 远程加密解密文件测试和GSM短信网络远程锁定系统等测试, 测试结果均与预期结果相符合。 测试过程序不再赘述。
9 创新与特色
(1) 硬件加密
系统的加密方式采用硬件加密实现, 加密系统独立于操作系统之外, 与现在主流的软件加密方式相比具有安全性高、 加密速度快、 密钥存储更安全的优点。
(2) OCF启动AM3715的CHA
通过调用OCF-Linux驱动, 启动AM3715特有的加密硬件加速器(Cryptographic Hardware Accelera-tor, 简称CHA), 使得加密速度和CPU利用率有了巨大的提高, 充分利用了AM3715芯片的加密处理优势。
(3) 透明化文件管理
通过调用Jquery函数库及AJAX技术, 本系统实现了基于B/S结构的友好远程文件管理功能, 可以满足用户一般的文件操作需求, 如新建、 删除、 复制、 粘贴、 剪切、 浏览等。
(4) 跨平台多终端管理
采用基于B/S结构的远程管理模式, 用户可通过任何能连接到网络的终端远程管理移动存储设备。经过无线WIFI或有线连接的方式, 用户可使用如PC、 笔记本电脑、 手机、 平板电脑等诸多设备安全可靠的管理移动存储设备中的文件。
(5) 软件与硬件联合验证
系统通过用户密码确认, 访问者网卡MAC地址确认, 移动存储设备硬件序列号确认等多种方式验证用户身份, 充分保证了移动存储设备中文件的安全。
(6) GSM远程控制
通过GSM远程控制板, 实现用户通过手机即时接收本系统的操作信息 (如开机), 若用户发觉数据被非法读取时, 可通过手机短信远程控制本系统锁死, 或远程清空移动存储设备中的数据, 确保用户的数据的安全。
10 总结
数据加密是人们进行数据交换和传输之前的迫切需要, 在当前信息化的社会有着巨大的需求。 然而目前中国市场上的加密产品和方式多为软件加密, 其存在着加密速率慢、 可靠性差和密钥管理混乱等诸多缺点。 基于此, 我们在TI公司提供的Devkit 8500开发板上创建了一套实时、 透明硬件加密解密系统, 使得用户的数据加密得以在其主机之外的硬件系统上实现, 并且做到了加密解密过程的透明和高效。 由于该系统独立于用户的操作系统之外, 因此具有非常高的安全性, 即使用户系统崩溃, 也不会对该系统构成威胁, 因此可以杜绝当前令人们头疼的木马和病毒的攻击。 而且, 由于该系统采用开发板的芯片进行加密解密, 不占用用户系统的内存和CPU资源, 再加之AM3715强大的数据处理能力和特有的加密硬件加速器(Cryptographic Hardware Accelerator), 可以实现对用户数据的高速实时加密解密。 利用外扩GSM模块, 我们实现了用户对开发板的远程控制, 这对该系统的安全性又是一个更大的保障。
同时, 为了扩大该系统的适用性, 我们还开发出了一套云端文件管理系统, 使得用户可以实现对其文件的远程访问和加密解密。
综上, 相比于目前市场上的主流加密产品, 本系统有极大的安全保障和高效的加密速度, 而且对使用者来讲也更加的方便和实用。 我们相信, 如果该产品可以走向市场, 并将有极大的应用空间和市场。
专家点评
参赛作品在TI公司提供的Devkit 8500开发板上创建了一套实时、 透明硬件加密解系统, 并基于A-pache Web服务器, 开发出一套云端文件管理系统, 方案设计合理, 整体工作量大。 系统采用Linux2.6.32操作系统, 利用加密硬件加速器实现AES高级加密算法, 具有硬件加密、 透明化跨平台、多终端管理、 GSM远程控制和实时快速加、 解密等特点。 经实际测试证明, 该系统达到设计要求, 实现了对文件的快速、 实时加密解密功能。
系统功能的量化指标还可进一步细化。 另外, 报告整理工作比较粗糙, 也有改进的余地。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。