版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023年全国大学生信息安全竞赛作品报告作品名称:基于云计算的网络虚拟磁盘系统组长:李彤组员:尹纪权、罗俊沣、蔡觅提交日期:2023-07-18填写说明1.所有参赛项目必须为一个基本完整的设计。作品报告书旨在可以清楚准确地阐述(或图示)该参赛队的参赛项目(或方案)。2.作品报告采用A4纸撰写。除标题外,所有内容必需为宋体、小四号字、1.5倍行距。3.作品报告中各项目说明文字部分仅供参考,作品报告书撰写完毕后,请删除所有说明文字。(本页不删除)4.作品报告模板里已经列的内容仅供参考,作者也可以多加内容。目录TOC\o"1-3"\h\z\u第一章摘要ﻩPAGEREF_Toc\h1第二章作品介绍 h22.1背景与意义 PAGEREF_Toc\h2HYPERLINK2.2特色描述 PAGEREF_Toc\h4HYPERLINK2.3应用市场分析 PAGEREF_Toc\h5HYPERLINK\l"_Toc"2.4相关工作ﻩPAGEREF_Toc\h5HYPERLINK\l"_Toc"第三章实现方案 PAGEREF_Toc\h73.1系统方案与功能ﻩPAGEREF_Toc\h73.1.1系统客户端、代理服务器、云端间交互 PAGEREF_Toc\h83.1.2开发工具 PAGEREF_Toc\h93.1.3开发环境 PAGEREF_Toc\h93.1.4合用的环境 PAGEREF_Toc\h93.1.5软件指标 PAGEREF_Toc\h103.2相关技术与原理ﻩPAGEREF_Toc\h10HYPERLINK\l"_Toc"3.2.1访问控制技术ﻩPAGEREF_Toc\h11HYPERLINK\l"_Toc"3.2.2Filedisk—文献驱动技术 PAGEREF_Toc\h12HYPERLINK3.2.3文献过滤驱动技术——AES透明加密 PAGEREF_Toc\h16HYPERLINK\l"_Toc"3.2.4云平台管理技术 PAGEREF_Toc\h17HYPERLINK\l"_Toc"3.2.5容灾备份技术ﻩPAGEREF_Toc\h213.2.6DLL注入技术ﻩPAGEREF_Toc\h223.3客户端实现 PAGEREF_Toc\h24HYPERLINK\l"_Toc"3.3.1磁盘管理 PAGEREF_Toc\h24HYPERLINK3.3.2创建虚拟映像、加载、卸载虚拟磁盘ﻩPAGEREF_Toc\h25HYPERLINK\l"_Toc"3.3.3用户空间ﻩPAGEREF_Toc\h273.3.4权限控制ﻩPAGEREF_Toc\h28HYPERLINK3.3.5权限审批 PAGEREF_Toc\h293.4.1用户管理ﻩPAGEREF_Toc\h31HYPERLINK\l"_Toc"3.4.2黑名单管理ﻩPAGEREF_Toc\h31HYPERLINK\l"_Toc"3.4.3磁盘管理ﻩPAGEREF_Toc\h32HYPERLINK3.5云端实现ﻩPAGEREF_Toc\h32HYPERLINK\l"_Toc"3.5.1云平台搭建ﻩPAGEREF_Toc\h32HYPERLINK\l"_Toc"3.5.2通信模块接口实现 PAGEREF_Toc\h35HYPERLINK3.6软件流程 PAGEREF_Toc\h37HYPERLINK\l"_Toc"第四章功能测试ﻩPAGEREF_Toc\h374.1测试概述 PAGEREF_Toc\h374.2测试方案 PAGEREF_Toc\h38_Toc"4.4.1客户端测试ﻩPAGEREF_Toc\h424.4.2认证服务器测试ﻩPAGEREF_Toc\h错误!未定义书签。HYPERLINK4.4.3云端测试ﻩPAGEREF_Toc\h错误!未定义书签。第五章性能测试ﻩPAGEREF_Toc\h625.1安全性ﻩPAGEREF_Toc\h635.2加密速率与传输速率ﻩPAGEREF_Toc\h655.3易用性 PAGEREF_Toc\h66第六章测试总结与分析 PAGEREF_Toc\h67HYPERLINK\l"_Toc"第七章创新性与实用性ﻩPAGEREF_Toc\h68HYPERLINK7.1创新性 PAGEREF_Toc\h68HYPERLINK\l"_Toc"7.2实用性ﻩPAGEREF_Toc\h69HYPERLINK\l"_Toc"第八章总结 PAGEREF_Toc\h708.1项目工作总结 PAGEREF_Toc\h70HYPERLINK8.2后期工作 PAGEREF_Toc\h71HYPERLINK参考文献 PAGEREF_Toc\h72第一章摘要随着信息化进程的不断推动,数据资源管理越来越受到公司的重视。但是相关公司和部门在进行文献管理的过程中,经常会碰到以下几个问题:文献安全缺少保障,存在被窃取或者丢失的隐患;海量文献的存储,给服务器导致承担,导致效率低下;文献存取操作麻烦、管理举步维艰等。相关公司以及政府部门在解决这一问题上,惯用的措施有:使用局域网文献共享软件如飞鸽传书等;TrueCrypt数据加密工具;禁用U盘等可移动设备;并遵循“联网机器不涉密,涉密机器不联网”原则。但是这样的一系列措施又给业务上带来了诸多不便,这与业务规定本地数据安全可靠、内部资源共享方便安全等需求自相矛盾,因而相关部门在实际实行过程中并没有严格按规定进行,从而导致了安全隐患。所以,解决安全性和数据共享之间的矛盾,在保证用户数据安全、操作简朴、使用方便的前提下能实现数据的共享,成了保证业务信息化健康发展的关键所在。在此背景下,本小组开发了一款基于云计算的网络虚拟磁盘系统。该系统采用云计算的思想,实现了自动负载均衡及透明扩容缩容功能。为了克服公有云无法实现资源安全隔离的弱点,本系统创新性地通过Hadoop云平台构建无缝式的虚拟磁盘透明加密环境,实现独立存储和数据隔离。该系统采用身份认证、密钥协商、SHA-2散列函数、AES透明加解密、文献指纹、云平台管理、容灾备份和基于权限控制的共享审批等关键技术,集成了本地虚拟磁盘数据加密、数据远程备份及共享审批等多种功能,保证了用户数据的安全。本作品分为三个组成部分:代理服务器、云端和客户端。其中云端负责文献分布式存储与管理,客户端供用户对虚拟磁盘进行基本操作,对映像文献进行上传、文献加载、修改等,代理服务器负责身份认证、密钥分发、用户管理等。测试表白,本作品功能较完善、性能良好,通过高效快捷的存储管理机制,可以有效地对抗强制说出密码的威胁,防止硬件故障导致的损失,将内部故意泄密的危险降到最低,从而有效保障公司开发、电子政务过程中安全的内部文献共享。关键字:云计算,虚拟磁盘,透明加密,权限审计,文献共享第二章作品介绍2.1背景与意义文献共享是公司信息化进程中提高生产效率的基石。然而在文献共享的同时,若无法保障文献的安全,导致信息被监听、公司内部积极泄密、存储信息丢失等,会使公司蒙受巨大损失。1、在公司信息化中,实现文献共享的同时,公司内部泄密事件给公司导致损失重大,公司存在安全隐患。随着公司信息化的发展,文献管理系统越来越多地使用于平常工作,成为不可或缺的工具和手段。通过公司信息化大大提高了公司生产效率,打破地区之间的阻碍,同时还会产生大量如客户资料、营销方案、财务报表、研发数据等关乎公司核心竞争力的机密资料。然而,信息技术自身的双刃剑特性也在广泛应用中不断显现:强大的开放性和互通性催生了商业泄密、网络间谍等众多灰色名词,据美国FBI记录,83%的信息安全事故为内部人员和内外勾结所为,70%的泄密犯罪来自于公司内部。2023年4月4日,一名被美国Gucci解雇的华裔网络工程师于曼哈顿刑事法院过堂。他由于对公司做法感到不忿,以及想要炫耀自己的才干,多番入侵Gucci的计算机系统,干扰网络的运作,关闭服务器及删除内存数据,使得Gucci计算机网络的文献及电邮功能瘫痪将近24小时,大部分文献及电邮也被删除,Gucci对此进行修复及补救,花费逾20万元。同时删除多个服务器,关闭一个内存网络,使员工无法登陆,网上购物平台也不能运作给公司导致了重大损失。在电子产品业,公司泄密案件更是层出不穷。如苹果产品加工生产基地富士康的员工泄露iPad2设计图;一名即将离职40岁女雇员被怀疑泄密三星电子核心数据,涉及了三星新技术资料、产品细节,甚至是未来2023规划;黑客入侵PlayStation游戏网络平台,窃取了索尼PS3与音乐、网络云服务用户登入信息,在地下交易价值数百亿美元……通过以上事例,我们可以看到公司内部的泄密问题给公司导致了重大的损失。事实上,对于公司来说,它们最关注的不应当是系统有没有遭到了入侵,而应当是在系统中存放的数据和信息有没有被盗取,有没有被篡改,或者说是不是已经被破坏掉了。核心数据才是公司最应当关注的地方。所以可以直接接触核心信息的员工,才最有也许给公司带来最大的损害。由此可见,数据安全存储与共享问题不容忽视。2、传统的安全防护手段已经难以应对目前的安全威胁。为了保障公司或部门内部的信息安全,目前安全界采用了多种防护手段和技术,涉及外网安全系统,如杀毒软件、防火墙、入侵检测等系统,积极型文献和文献夹加密系统,网络监控与审计系统,文献权限集中管理系统等,然而他们均存在安全漏洞,防不住内部人员积极泄密。对于内部员工的管理,由于目前办公均为电子化办公,需要使用到大量电子信息,涉及技术资料,客户信息等等关键数据,数量庞大,流转速度又非常迅速,仅仅通过管理手段与规章约束,可以说主线就无法起到实际性的效果。禁用U盘等可移动设备、遵循联网机器不涉密,涉密机器不联网的原则,又给业务上带来了诸多不便,这与业务规定本地数据安全可靠、内部资源共享方便安全等需求自相矛盾,因而相关部门在实际实行过程中并没有严格按规定进行,从而导致了安全隐患。
同时,信息一旦泄露主线无法追查,在实际的诉讼过程中取证也成为最大的问题,由于无法取证,或证据效力不够,导致许多公司只能吃哑巴亏。并且信息的泄露大多数只有在问题出现后才干被发现,许多公司的重要信息早已泄露,但因目前未被公开使用,所以一直未被知悉,一旦使用,势必导致巨大的经济损失,就相称于一个又一个未被察觉的定期炸弹,时刻隐藏在公司的周边。ﻫ3、海量文献存储给服务器导致很大承担,且系统故障容易给公司带来意想不到的损失。在公司内部,公开发布的数据量逐年递增,如客户资料、营销方案、财务报表、研发数据等,这些都会促使“数据之山”越来越高。公司再也不能只管理自己的数据,未来的成功很大限度上取决于能否从其他组织的数据中提取出价值。海量的存储数据会给服务器导致很大的承担,减少读写效率。同时,由于意想不到的系统硬件故障,也许给公司带来意想不到的损失。一旦开始使用多个硬件设施,其中一个会出故障的概率是非常高的。避免数据丢失的常见做法是复制:通过系统保存数据的冗余副本,在故障发生时,可以使用数据的另一份副本。然而冗余磁盘阵列的工作方式也会给服务器带来更大的承担。一旦服务器崩溃,后果不堪设想。所以,如何在公司信息化的进程中,如何在实现文献共享提高公司生产率的前提下,保障公司文献安全,防止内部泄密以及信息丢失,成为了公司发展的关键问题。鉴于以上背景,本作品旨在开发一款基于云平台的分布式文献管理系统,以云平台为基础,结合虚拟磁盘技术,从文献的信道传输以及存储方式、浏览方式入手,进行透明加解密,同时采用平台分块存储和云平台管理技术达成防灾备份,保证数据的安全性,从而保障了相关公司或部门业务、开发和电子政务的顺利进行。2.2特色描述作品分为三个组成部分:代理服务器、云端和客户端。其中代理服务器负责身份认证、密钥分发,云端负责文献分布式存储与管理,客户端供用户对虚拟磁盘进行基本操作,如文献上传、文献加载等。在实现文献共享的同时,要保证文献的安全性,就必须在文献的上传、加载、存储以及浏览等各环节中都采用必要切实可行的手段,通过对文档内容级的安全保护,实现机密信息分密级且分权限的内部安全共享机制。本作品的核心设计思想:1、用户注册时通过RSA算法生成自己的公钥和私钥。用户登录时通过代理服务器进行身份验证。用户与云端交互时通过与代理服务器共同实现三方认证协议。2、通过用户上传映像文献到云端,实现文献的共享;通过严格的权限控制,用户只可加载自己权限范围内的文献。权限审批结果进行日记记录,方便管理以及追究责任。3、文献加密后在信道中分块传输至云端,防止恶意的网络监听、截获,保证传输过程中的安全性。4、文献以密文的形式分块存储在云端,每一个分块都有三个备份,防止信息被窃取以及数据丢失。5、对用户访问映像文献时拷贝、截屏、另存和打印等行为进行限制。与现有的技术相比,本作品的特色表现为以下几个方面:1、将文献的安全保密和资源共享结合起来。目前国内许多安全软件,在重视本地数据安全时,忽略了公司内部资源共享的前提。本作品运用云存储的集群应用、网格技术或分布式文献系统等功能,同时通过行为限制等功能,有效地帮助用户解决日益增长的数据的可访问性、安全性、移动性和成本问题。2、容灾备份。HDFS文献块通过索引表进行管理,不仅能减少寻址时间开销,还能在一个块发生损坏或机器故障时,在其他地方读取另一个副本并复制,通过查看文献块分派索引表,将新的副本存放在选定的数据结点上。3、高效方便。密钥由服务器生成,加解密在驱动级上实现,速度可观,过程自动、实时和透明化。加载磁盘后,在客户本地生成新的磁盘,操作简便、界面和谐。2.3应用市场分析本作品是基于云计算的网络虚拟磁盘系统,采用较为成熟的虚拟磁盘技术,通过网络共享构建无缝式的虚拟磁盘环境,实现数据多域独立存储和数据隔离,并以在云端分布式存储的方式,实现了数据便捷、快速、安全共享与权限审核;独具特色的共享审批功能,在保证用户数据安全、操作简朴、使用方便的前提下能提高信息共享行为的合法性和安全性,合用于:1、国家重要部门:采用有效的机密文档的安全存储与共享措施,保证电子政务安全无忧。2、行业性强的企事业单位:保证重要资料、源码不外泄,提供便捷安全的开发环境同时,本作品数据存储与加解密对用户完全透明、界面和谐,用户无需具有过多的专业知识即可使用,对于用户使用方便。综上所述,本作品具有很好的实用价值和应用前景。2.4相关工作为了保证公司内部信息数据的全面共享,又能提高工作效率,保证其安全,防止泄密,目前重要有以下五种手段。然而他们都存在一定的缺陷。1、外网安全系统在计算机安全产品中,杀毒软件、防火墙、入侵检测等系统。然而这些系统都是基于外部安全模型的,它们可以有效的防止外部黑客入侵带来的电子文档泄密风险,但无法阻止内部人员的泄密。当有新的病毒、袭击手段、漏洞等出现时,公司必须及时升级,软硬件的升级费用,经常也是一笔不小的开支。2、积极型文献和文献夹加密系统。用户积极在保存文献时设立密码或者在文献保存完毕之后,用第三方软件予以加密。然而在密码传输过程中同样存在泄密问题,且文档发明者可在文献加密解决之前给自己留下拷贝,因而此方法还是防不住内部人员的积极泄密。3、网络监控与审计系统。公司中计算机管理人员对每一台涉密计算机进行监控,并可根据这些操作制定不同的策略,这种系统的核心便是“监视”、“控制”、“审计”,而其基本思想在于“堵漏洞”。它在一定限度上可以规范计算机用户的网络行为,减少了内部人员对公司网络发起袭击的风险,然而却将用户带到了一个两难的境地:用户要么为了必要的、正常的工作交流而留一些“口子”,从而大大减少系统的可靠性;要么就堵死所有的“漏洞”,以牺牲方便性为代价来换取严格的安全性。并且它无法保证泄密事件发生后不导致损失,特别是当泄密人员觉得他泄密本公司的电子文档后带来的收益比公司开除他带来的收益更大时,该系统变得毫无用处。4.文献权限集中管理系统。它属于一种文献格式转换系统,该系统管理的直接是电子文档数据自身,可在一定限度上从源头上保证电子文档的安全,然而同样无法真正防止内部人员的积极泄密,需要更多的投资于服务器和周边子系统,需要庞大的数据库做后台支持,且不能保护所有的文献。5、强制文献加解密系统。它通过保证电子文档从创建到打开、编辑、浏览、保存、传输直至删除的整个生命周期中始终处在加密状态、任何人(涉及文献的创建者和合法使用者)始终都接触不到非加密状态的文献,来做到没有人可以带走非加密文献的安全效果。然而由于涉密文献所有被加密,并且在文献使用过程中安全软件进行文献的自动加解密,假如软件犯错或者在停电等异常情况下,增大了文献损坏的几率,并且一般文献损坏就无法修复,所以对安全系统自身的稳定性和可靠性规定极高。当采用实时加密技术时,在大文献的打开或保存时会有一定的延迟现象。与上述工作相比,本作品有自己的独特之处,重要表现为:1、本作品能在实现文献共享的前提下保障文献安全,将内部泄密的也许性减少到最小。2、本作品将文献分块存储在云平台,具有容灾备份的功能。3、本作品将文献分块传送至云端,通过度布式文献管理系统,实现负载均衡,防止海量数据导致服务器崩溃。4、本作品进行透明式加解密,自动提醒用户加密,操作简朴、使用方便。第三章实现方案3.1系统方案与功能系统架构由客户端、云端和代理服务器三方组成,代理服务器负责客户端和云端交互过程中的身份认证与密钥分发;云端负责对用户上传的映像文献进行分布式存储与管理;客户端可以供用户进行虚拟磁盘的基本操作,如创建映像文献、上传映像至云端、从云端加载映像等等。系统架构如图3-1所示:图3-1系统框架结构系统客户端、代理服务器、云端间交互图3-2客户端与代理服务器交互客户端与云端交互如图3-3所示。对于公司,每个部门作为一个相对独立的存储域。对于部门一每个员工来说,他可以通过云终端(客户端)创建自己的用户空间。公司内部,成员之间可以进行方便快捷的文献共享,但对于部门之间的共享行为,需要通过相关部门的负责人进行审批。图3-3客户端与云端交互3.1.2开发工具MicrosoftVisualC++6.0、MicrosoftSQLServer2023、Eclipse3.1.3开发环境VC++、Java、ApacheHadoopﻩ3.1.4合用的环境操作系统:Windows2023、WindowsXP、Vista、Windows7、Linux使用范围:国家重要部门内部文献共享及电子政务、行业性强的企事业单位内部文献共享及移动办公、教育网内资源共享与存储、特殊情况下的公共网络(该情况可以通过限制虚拟映像文献的上限为一个较小值来保证系统的性能)。3.1.5软件指标3.1.5.1功能指标本系统定位为一款实用、专业的保护计算机使用者隐私安全和数据共享安全的文献管理系统。制定指标如下:(1)系统可以在常见的Windows、Linux操作系统环境下正常运营,并且使用本系统不会对原有的系统导致不利影响。(2)能防止由于文献被恶意删除,或者电脑中毒、硬盘崩溃等带来的损失,保证本地文献安全存储,并能方便安全地实现使用者之间的数据共享。(3)服务器端负载自动均衡,服务稳定,云端数据安全可靠,不丢失。(4)具有和谐美观的界面,方便实用的使用方式和舒适人性化的使用体验。3.1.5.2性能指标登录系统的响应时间:<2.5S映像文献的大小:2M~4G映像文献在局域网中的传输速度:大于12M/s(视带宽而定)加解密速度:不低于40M/s3.2相关技术与原理近年来,云存储技术发展日益成熟。云存储标准可以帮助用户解决日益增长的数据的可访问性、安全性、移动性和成本问题,还可以帮助明拟定义与数据所有权、归档、发现和搜索相关的角色和职责。本系统正是基于此技术,采用云计算的思想,实现了自动负载均衡及透明扩容缩容。为了克服公有云无法实现资源安全隔离的弱点,本系统通过实现加密过程自动、实时和透明化的本地虚拟磁盘,创新性地通过网络共享构建无缝式的虚拟磁盘环境,实现独立存储和数据隔离,并结合网络共享安全需求与云存储标准,设计了独具特色的共享审批功能。该存储系统采用身份认证、密钥协商、SHA-2散列函数、AES透明加解密、文献指纹、云平台管理、容灾备份和基于权限控制的共享审批等关键技术,集成了本地虚拟磁盘数据加密、数据远程备份及共享审批等多种功能,保证用户数据的安全。3.2.1访问控制技术ﻩ本作品基于C/S模式,通过身份认证技术与密钥协商技术相结合,实现严格的访问控制机制。3.2.1.1身份认证技术客户端程序一方面将用户名和密码采用美国国家标准局(ANSI)和国际标准化组织(ISO)推荐的SHA-2哈希函数进行解决,再将解决后的哈希值用服务器公钥加密发送至服务器。同时,运用下述技术实现用户身份的认证(假定A为客户端,B为服务器):①A将自己的身份传递给B,但是B不能拟定此信息是来自A还是窃密者C;②B收到后,产生一个随机的消息,用A的公钥加密和得到,并用自己的私钥计算运算即署名,将加密结果和署名结果传送给A;③A收到消息后用B的公钥对署名进行验证,验证原理为判断等式=是否成立。由于只有合法的B才拥有私钥,因此A就可以通过上述等式成立与否确认通信对方是否为B。假如验证通过,A确认通信对方为B,并对进行解密,解密=,再分离出和;④A将求得的用B的公钥加密传送给B,由于只有合法的A可以求得从而可以得到对的的;B只需用自己的私钥解密即可得到,将此与本来的对比就可以确认对方是否是意定的通信方A.该身份认证技术具有以下特点:⑴实现了通信双方的交互认证;⑵防敌手的假冒袭击;⑶防重放袭击;⑷提供了消息的机密性和完整性保护。3.2.1.2密钥协商技术假设、分别为大素数,且满足,为循环群中的一个二次剩余子群,即,为的生成元,为安全hash函数。假定表达初始的参与通信的成员集,且集合中成员的下标构成一个环,即为,为,依此类推。具体的密钥协商过程如下:Step1.每一个参与方选择一个随机数,计算并广播;Step2.接受到所有的后,随机选取,计算并广播,随机选取,计算并广播,选择一个随机数,计算并广播,其中,,,。Step3.接受到所有的后,计算共享密钥:,最后可得:。该PGKA协议由本项目组设计,并发表在《ComputerStandards&Interfaces》上,它不仅具有抗积极袭击的能力,并且拥有仅需2轮通信的优点。3.2.2Filedisk—文献驱动技术核心层源码分析DriverEntryDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE_STRINGRegistryPath){UNICODE_STRINGparameter_path;//参数的途径RTL_QUERY_REGISTRY_TABLEquery_table[2];//注册表查询表ULONGn_devices;//最大创建多少个设备NTSTATUSstatus;//返回的状态UNICODE_STRINGdevice_dir_name;//UNICODE_STRING类型的DEVICE_DIR_NAME值OBJECT_ATTRIBUTESobject_attributes;ULONGn;//循环时用到的自增变量USHORTn_created_devices;//已经创建设备的个数……InitializeObjectAttributes(&object_attributes,&device_dir_name,OBJ_PERMANENT,NULL,NULL);status=ZwCreateDirectoryObject(&dir_handle,DIRECTORY_ALL_ACCESS,&object_attributes);if(!NT_SUCCESS(status)){returnstatus;}ZwMakeTemporaryObject(dir_handle);for(n=0,n_created_devices=0;n<n_devices;n++){//创建磁盘设备status=FileDiskCreateDevice(DriverObject,n,FILE_DEVICE_DISK);if(NT_SUCCESS(status)){n_created_devices++;}}for(n=0;n<n_devices;n++){//创建光驱设备status=FileDiskCreateDevice(DriverObject,n,FILE_DEVICE_CD_ROM);if(NT_SUCCESS(status)){n_created_devices++;}}if(n_created_devices==0){ZwClose(dir_handle);returnstatus;}……returnSTATUS_SUCCESS;}主函数入口;备份传入途径,查询注册表值,调用ZwCreateDirectoryObject创建设备目录,反复4次调用FileDiskCreateDevice创建设备,初始化操作函数指针。FileDiskCreateDevice调用IoCreateDevice创建设备,KeInitializeEvent初始化事件对象,PsCreateSystemThread创建内核线程,入口函数是FileDiskThread,传入的函数参数为IoCreateDevice返回的设备对象。FileDiskThread一方面调用KeSetPriorityThread更改自身线程的优先级为LOW_REALTIME_PRIORITY,然后开始for(;;),调用KeWaitForSingleObject函数等待事件对象有信号,假如等到,判断事件类型,有如下几种:(1)IRP_MJ_READ:调用ZwReadFile读取文献,从内核到用户缓冲区(2)IRP_MJ_WRITE:调用ZwWriteFile写入文献,从用户到内核缓冲区IRP_MJ_DEVICE_CONTROL在FileDiskDeviceControl设立事件才会触发,重要有如下两种操作码:(1)IOCTL_FILE_DISK_OPEN_FILE:调用FileDiskOpenFile。(2)IOCTL_FILE_DISK_CLOSE_FILE:调用FileDiskCloseFile。FileDiskOpenFile:根据用户程序传入的映像文献全途径,调用ZwCreateFile在内核中打开它,假如文献不存在则再创建它,返回文献句柄。FileDiskCloseFile:调用ZwClose关闭文献。FileDiskCreateClose:仅返回成功;相应Create,Close操作。FileDiskReadWrite:将IO包插入队列,然后调用KeSetEvent函数,激活事件对象;相应Read,Write操作。FileDiskDeviceControl:用户程序调用DeviceIoControl的响应函数,重要有如下两种操作:(1)IOCTL_FILE_DISK_OPEN_FILE:设立好参数,将IO包插入队列,设立对象为有信号。(2)IOCTL_FILE_DISK_CLOSE_FILE:将IO包插入队列,设立对象为有信号。其它的操作类型由于输入输出共用一个缓冲区,所以都采用系统默认解决,设立好需要输出的参数后,就直接从这个函数返回了。如:IOCTL_DISK_GET_DRIVE_GEOMETRY,IOCTL_CDROM_GET_DRIVE_GEOMETRY。有4种操作是自定义的FileDiskReadWrite函数两种,FileDiskDeviceControl函数两种,相应的操作码分别是:IRP_MJ_READ,IRP_MJ_WRITE,IOCTL_FILE_DISK_OPEN_FILE,IOCTL_FILE_DISK_CLOSE_FILE这4种,在FileDiskThread中等待这4种事件发生,假如等到,就调用相应的函数解决。应用层源码分析mount调用DefineDosDevice在应用层创建一个指向设备命名空间的符号链接,用CreateFile打开此链接,然后调用DeviceIoControl,控制码是IOCTL_FILE_DISK_OPEN_FILE,内核程序响应后,执行真正打开源映像文献的操作。umount执行关闭映像文献的操作,和上面大体同样,只是多一些环节,不同的是控制码改为IOCTL_FILE_DISK_CLOSE_FILE,之后必须发送FSCTL_DISMOUNT_VOLUME。3.2.3文献过滤驱动技术——AES透明加密传统的加解密软件的几个弊端:每次加解密都需要用户手动输入密钥,过程较为麻烦。密钥遗忘或丢失的风险。一旦密钥丢失,用户文献也许永远无法取回了。密钥管理的困难。该系统在不改变用户使用习惯、计算机文献格式和应用程序的情况下,采用“驱动级透明动态加解密技术”,对指定类型的文献进行实时、强制、透明的加解密。即在正常使用时,计算机内存中的文献是以受保护的明文形式存放,但硬盘上保存的却是加密状态的数据。加解密采用分组长度128位的AES加密算法。其中,密码学中的高级加密标准(AdvancedEncryptionStandard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,属于对称分组密码体制。由于本系统的加解密是在驱动级上实现的,在每次读写文献时自动使用特定的密钥进行加解密,对用户完全透明。对于非管理员用户而言,他们甚至完全不需要知道密钥的存在。驱动级透明加密技术基于windows的文献系统(过滤)驱动(IFS)技术,由于工作在受windows保护的内核层,运营速度更快,加解密操作更稳定。本系统在驱动级上实现文献的加解密操作如下图3-4所示。用户进行读写操作后,IO管理器根据用户操作生成文献读写操作指针IRP,IRP传递到驱动程序,执行指定的派遣函数。在派遣函数中执行加解密操作,加解密操作结束后,得到结果,并将结果返回给IO管理器。图3-4透明加解密过程3.2.4云平台管理技术3.2.4.1云计算简介云计算(CloudComputing)是分布式解决(DistributedComputing)、并行解决(ParallelComputing)和网格计算(GridComputing)的发展,或者说是这些计算机科学概念的商业实现。云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,公司数据中心的运营将更与互联网相似。这使得公司可以将资源切换到需要的应用上,根据需求访问计算机和存储系统。3.2.4.2MapReduceMapReduce作业(job)是客户端执行的单位:它涉及输入数据、MapReduce程序和配置信息。Hadoop通过把作业提成若干个小任务(task)来工作,其涉及两种类型的任务:map任务和reduce任务。有两种类型的节点控制着作业执行过程:jobtracker和多个tasktracker。jobtracker通过调度任务在tasktracker上运营,来协调所有运营在系统上的作业。Tasktracker运营任务的同时,把进度报告传送到jobtracker,jobtracker则记录着每项任务的整体进展情况。假如其中一个任务失败,jobtracker可以重新调度任务到此外一个tasktracker.Hadoop把输入数据划提成等长的小数据发送到MapReduce,称为输入分片(inputsplit)或分片。Hadoop为每个分片(split)创建一个map任务,由它来运营用户自定义的map函数来分析每个分片中的记录。拥有许多分片就意味着解决每个分片的时间与解决整个输入的时间相比是比较小的。因此,假如我们并行解决每个分片,且分片是小块的数据,那么解决过程将有一个更好的负载平衡,由于一台速度较快的计算机,将可以比一台速度较慢的机器在作业过程中解决完更多的数据分片。即使是相同的机器,没有解决的或其他同时运营的作业也会使负载平衡得以实现,并且在分片变得更细时,负载平衡质量也会更佳。另一方面,假如分片太小,那么管理分片的总时间和map任务创建的总时间将决定作业执行的总时间。对于大多数作业,一个抱负的分片大小往往是一个HDFS块的大小,默认是64MB.map任务的执行节点和输入数据的存储节点是同一节点,Hadoop的性能达成最佳。这就是所谓的datalocalityoptimization(数据局部性优化)。3.2.4.3HDFSHDFS是为以流式数据访问模式存储超大文献而设计的文献系统,在较低配置规定硬件的集群上运营。HDFS建立在这样一个思想上:一次写入、多次读取模式是最高效的。一个数据集通常由数据源生成或复制,接着在此基础上进行各种各样的分析。每个分析至少都会涉及数据集中的大部分数据(甚至所有),因此读取整个数据集的时间比读取第一条记录的延迟更为重要。HDFS集群有两种节点,以管理者-工作者的模式运营,即一个名称节点(管理者)和多个数据节点(工作者)。名称节点管理文献系统的命名空间,它维护着这个文献系统树及这个树内所有的文献和索引目录。这些信息以两种形式将文献永久保存在本地磁盘上:命名空间镜像和编辑日记。名称节点也记录着每个文献的每个块所在的数据节点,但它并不永久保存块的位置,由于这些信息会在系统启动时由数据节点重建。图3-5HDFS结构图客户端代表用户通过与名称节点和数据节点交互来访问整个文献系统,如图3-5。数据节点是文献系统的工作者。它们存储并提供定位块的服务(被用户或名称节点调用时),并且定期的向名称节点发送它们存储的块的列表。3.2.4.4文献读取文献以分块的形式存储在云端数据结点上,数据结点中存放文献块索引通过名称结点获得。因此,云终端与云端进行通信时,终端HDFS开始分布式计算,向名称结点NameNode请求并获得数据分块位置,终端通过读取FSDataInputStream数据流,从各个数据结点上分别读取数据块并在终端进行合并,最后关闭管道,结束本次读取。文献读取剖析如图3-6:图3-6文献读取剖析3.2.4.5文献写入文献写入与读取基本类似。云终端通过调用Create向NameNode发送请求,然后通过FSDataOutputStream数据流进行文献写入,数据将分块存储在各个数据结点上。NameNode负责维持整个文献系统的负载均衡以及分块副本数目。文献写入剖析如图3-7:图3-7文献写入剖析在eclipse中,实现将本地文献复制到Hadoop文献系统(HDFS)并显示进度:public
class
FileCopyWithProgress
{
public
static
void
main(String[]
args)
throws
Exception
{
String
localSrc
=
args[0];
String
dst
=
args[1];
InputStream
in
=
new
BufferedInputStream(new
FileInputStream(localSrc));
Configuration
conf
=
new
Configuration();
FileSystem
fs
=
FileSystem.get(URI.create(dst),
conf);
OutputStream
out
=
fs.create(new
Path(dst),
new
Progressable()
{
public
void
progress()
{
System.out.print(".");
}
});
IOUtils.copyBytes(in,
out,
4096,
true);
}
}
容崩自检机制没有名称节点,文献系统将无法使用。因此,名称节点可以经受故障是非常重要的,本系统通过在Hadoop上运营一个二级名称节点的机制来保证系统的可靠性与可用性。对于二级名称节点,其不能作为名称节点使用。这个二级名称节点的重要作用就是定期的通过编辑日记合并命名空间镜像,以防止编辑日记过大。该节点一般在其他单独的物理计算机上运营,由于它也需要占用大量CPU和内存来执行合并操作。它会保存合并后的命名空间镜像的副本,在名称节点失效后就可以使用。但是,二级名称节点的状态是比主节点滞后的,所以主节点的数据若所有丢失,损失仍在所难免。在这种情况下,一般把存在NFS上的主名称节点元数据复制到二级名称节点上并将其作为新的主名称节点运营。3.2.5容灾备份技术HDFS文献块的概念与普通的文献系统中分块的概念基本相同,但是是更大的单元,默认为64MB,这样的一个好处是减少寻址时间开销。与单一磁盘上的文献系统不同的是,HDFS中小于一个块大小的文献不会占据整个块的空间。在分布式文献系统中使用抽象块会带来很多好处。最明显的好处是,一个文献可以大于网络中任意一个磁盘的容量。文献的分块不需要存储在同一个磁盘上,因此它们可以运用集群上的任意一个磁盘。云存储最大的问题是数据完整性和保密性。由于本系统采用虚拟磁盘技术,每个映像文献都是加密后的密文,因而可以保证数据的保密性。此外,对于完整性,由于所有映像文献分块存储在云端,而数据分块副本机制为实现容错、容灾和备份奠定了基础。图3-8文献分块存储索引上图3-8是NameNode上文献分块存储索引。从索引表中,NameNode可以知道哪些文献块在哪些DataNode上,通过MapReduce对HDFS进行管理。为了恢复损坏的块以及应对磁盘或机器的故障,每个块都将自己的此外两个副本放在其它数据结点上,并保证副本数目的恒定。这个工作由设立在名称结点上的监控程序完毕。假如一个块发生损坏或机器故障,系统会在其他地方读取另一个副本,并将此副本复制一份,通过查看文献块分派索引表,根据负载均衡原则,将新的副本存放在选定的数据结点上,以保证副本的数量回到正常水平,这个过程对用户是完全透明的。当然,对于非常热门的文献块,我们可以给其设立更高的副本数量以提高集群的读取负载量。3.2.6DLL注入技术本系统还为移动办公提供了支持。涉及两大版块,一是安全策略的实行,对业务系统操作进行安全控制。二是操作环境的记录与跟踪审计。其中,安全策略有三项:保存与打印控制、文字拷贝控制、屏幕拷贝控制。页面保存与打印控制对于业务上的文档,大部分为word文档和pdf文档,因此对这两种主流文档的保存和打印控制是非常必要的。控制的前提是捕获事件spplicstion.SaveAs,该过程重要通过系统钩子模块完毕。钩子事实上是一段用来解决系统消息的程序,通过系统调用,将其挂入到系统,它是Windows的消息解决机制中的一个监视点。在设立钩子的情况下,Windows的消息传递过程会发生改变,钩子可以在系统中的消息流到达目的窗口过程前监控它们。钩子函数可以监视指定窗口的某种消息,并且所监视的窗口可以是其他进程所创建的。当消息到达后,钩子机制允许应用程序截获解决窗口消息或特定事件。这时钩子函数既可以加工解决(改变)该消息,也可以不进行解决而继续传递该消息,还可以强制结束消息的传递。3.2.6.2文字拷贝控制文字拷贝重要是实现当用户在操作敏感业务系统时候,需要严禁用户通过拷贝方式将重要数据保存下来。其关键技术是对剪贴板的监控。假如发现剪贴板在用户操作过程中发现变化,则说明用户已经实行了拷贝行为。Windows剪贴板是一种开销比较小的IPC(InterProcessCommunication,进程间通讯)机制。Windows系统支持剪贴板IPC的基本机制是由系统预留一块全局共享内存,用来暂存在各进程间需要互换的数据:提供数据的进程创建一个全局内存块,并将要传送的数据移到或复制到该内存块;接受数据的进程(也可以是提供数据的进程自身)获取此内存块的句柄,并完毕对该内存块数据的读取。为了实现上述功能,Windows提供了存放于USER32.dll中的一组API函数、消息和预定义数据格式等,并通过对这些函数、消息的使用来管理在进程间进行的剪贴板数据互换。系统调用剪贴板的简化环节为:一方面通过调用OpenClipboard函数打开剪贴板,假如是获取剪贴板的内容则调用GetClipboardData函数,假如是设立剪贴板内容则先通过调用EmptyClipboard函数清空剪贴板,然后调用SetClipboardData设立剪贴板内容(在获取和设立剪贴板内容的函数的参数中都要有相应的数据格式)。屏幕拷贝控制屏幕拷贝重要通过对用户键盘操作进行控制完毕,一方面禁用屏幕拷贝按钮,此外一方面严禁具有屏幕拷贝功能的进程出现。键盘控制重要也通过系统钩子模块完毕。Win32系统会为钩子建立一个钩子链(HookChain),一个钩子链事实上是一个指针列表,其指针指向钩子的各个解决函数,这些函数是一种特殊的回调函数。钩子链的运作方式类似于栈,在钩子链中最后安装的钩子放在钩子链的最前面,最先安装的钩子则放在钩子链的最底层,所以最后加入的钩子优先获得控制权。通过挂接系统键盘钩子,即可完毕对屏幕打印键的控制。3.3客户端实现3.3.1磁盘管理用户登录后,客户端的程序接下来要完毕的是进行初始化的工作。一方面,服务器会依据该用户的用户名对数据库表userFileTable执行一个SQL查询语句,查询结果即为该用户在服务器端存放的所有映像文献的相关信息,涉及文献所有者、映像文献名、映像文献大小、属性、是否自动加载。接着,服务器端的程序将这些信息传给客户端,客户端成功接受到这些信息后,将这些信息显示在磁盘管理界面上。然后,客户端程序检查参数是否自动加载,假如为“是”,则向服务器发送加载该映像文献的请求。服务器接受到加载请求后,一方面将映像文献传送到客户端,然后从数据库中获取该映像文献的密钥,并用密钥M2(管理员用户名和登录密码的Hash值,用户名和登录密码在管理员登陆服务器端程序的时候获取)进行解密。解密之后,再用会话密钥M1进行加密,并传给客户端。客户端接受到加密后的密钥后,用M1进行解密,得到M3,然后用M3对映像文献进行解密。解密完毕后,调用filedisk的mount命令,将该映像文献加载为本地磁盘。最后,更新用户界面,将该映像文献这一行的状态列置为“已加载”,将磁盘名置为本地加载完毕后的磁盘号。假如自动加载这一栏为“否”,则将相应的状态值置为“未加载”。该功能给用户的体验是,本地凭空多余来了一个磁盘,这个磁盘可以像其它本地磁盘同样进行格式化、添加文献、删除文献等操作。除此之外,用户可以右键,更改映像文献的名称、将映像文献的自动加载状态置为“是”从而在下次登录的时候能自动加载该映像文献。还可以对未加载的映像文献进行加载。3.3.2创建虚拟映像、加载、卸载虚拟磁盘图3-9虚拟磁盘界面创建映像文献:用户选择待创建的映像文献所在的盘符、文献名以及文献大小(本作品映像文献的扩展名为.vdk),点击拟定后,客户端程序一方面向服务器进行映像创建的申请,服务器端程序接受到后,为待创建的映像文献分派一个随机密钥M4,并用M1进行加密然后传给客户端的相应用户。磁盘卸载和客户端程序退出的时候所用的加密密钥就是M4。加载映像文献:对于新创建的映像文献,直接用filedisk加载成本地磁盘。对于先前创建的映像文献,由于它是加密了的,所以先要向服务器申请获取相应的解密密钥进行解密,然后才干用filedisk进行加载。由映像文献加载后的磁盘的截图见图3-5。卸载虚拟磁盘:将创建的虚拟磁盘从资源管理器中卸载,系统将磁盘里面的内容更新到映像文献中去,并用相应的密钥进行加密,并自动将其上传到服务器上。相关技术实现见下面的Filedisk—文献驱动源码分析。图3-10由映像文献加载而成的本地磁盘M3.3.3用户空间图3-11用户空间浏览映像文献里面的信息客户端的用户在通过身份验证后,代理服务器会自动将用户在云端保存的所有映像文献的信息传送给用户,映像文献内容将实时显示在用户空间中。用户可以查看映像文献里面保存的内容,并可将映像文献下载到本地并加载为本地磁盘。加载磁盘后,用户对该磁盘的修改会在用户客户端程序退出时,自动更新到服务器端的映像文献中。用户除了查看自己在云端的映像文献的内容之外,还可以查看其他用户授予该用户浏览或加载权限的映像文献里面的内容。同时该用户还可以下载该用户有加载权限的映像文献,并可在本地进行加载。用户对本地加载的映像文献进行操作后,可以手动上传到云端或者在退出系统后自动上传。3.3.4权限控制图3-12权限控制界面用户对其它用户的映像文献默认的权限是不可加载且不可浏览。当用户由于某些需要将该用户的数据和其他某用户进行共享时,可以通过权限控制来实现其他用户浏览或下载该用户在服务器端的映像文献,从而达成数据共享的目的。本系统定义的权限有三种:(1)浏览:假如用户A将该权限授予用户B,那么用户B用自己的账号登录本系统后,可以在用户空间里面查看到用户A在服务器端存放的映像文献里面的文献信息,但是不可以下载该映像文献。(2)加载:假如用户A将该权限授予用户B,则用户B不仅可以在他的用户空间里面看到用户A在服务器端存放的映像文献I里面的信息,还可以下载该映像文献I,并可将下载后的映像文献I在用户B的本地加载为本地磁盘,从而使用里面的文献,但用户B对该本地磁盘的修改不会更新到服务器端相应的映像文献I中。(3)加载受限:对用户访问映像文献时拷贝、截屏、另存为和打印都进行了限制。通过对文档内容级的安全保护,实现机密信息分密级且分权限的内部安全共享机制。加载受限重要通过在文献操作上进行安全策略的实行,从而对业务系统操作进行安全控制。安全策略有三项:保存与打印控制、文字拷贝控制、屏幕拷贝控制。如图3-13.具体实现原理见3.2.6节。图3-13加载受限安全策略3.3.5权限审批对于一般的公司文献管理系统,内部文献共享的机制并不完善。一个文献所有者或负责人可以将其具有访问权限的文献共享给任何人,涉及部门外业务人员以及潜在的泄密者,并且这种共享行为没有日记记录,因而无法保证文献共享行为的合法性,容易导致机密信息的扩散和泄露。图3-14共享审批示意图基于云计算的网络虚拟磁盘系统,采用严格的共享审批机制,对用户的共享行为进行审计,该审计由相关负责人完毕,通过审批通过的文献共享行为才可以顺利进行,并且系统对所有的共享行为及审批结果进行了具体的日记记录,在一定程序上对相关负责人的行为进行了监控,防止出现如前面提到的公司高管泄露机密的隐患。该系统采用的共享审批与日记审计相结合的访问控制技术,保证了文献共享行为的合法性和安全性。如图3-14.3.4代理服务端实现图3-15服务器端主界面3.4.1用户管理服务器端程序在初始化的时候,通过访问数据库表userInfoTable将所有注册了的用户信息显示出来,方便管理员进行管理。管理员可以将这些用户进行删除、加入黑名单的操作,删除后的用户的该账户从此无法使用,只能重新注册,而被加入黑名单的用户账号会被屏蔽,无法登录和注册。这些操作会引起服务器端程序对数据库表userInfoTable和userBlackTable的相应修改。除此之外,管理员还可以设立每个用户在服务器端可上传的映像文献总大小的上限。3.4.2黑名单管理加入黑名单的账号从此无法再被使用,管理员拥有将黑名单中的某账号从黑名单中移除从而恢复为可用账号的权限,该操作会引起服务器端程序对数据库表userInfoTable和userBlackTable的相应修改。3.4.3磁盘管理在服务器端有一个公共映像文献,该映像文献是可以被所有客户端用户浏览和加载的。重要是为了方便管理员通过客户端程序向所有用户发布某些文献,只要将该文献放到有映像文献加载后的磁盘中即可,而不需要逐个拷贝给所有用户,当用户登录的时候自动加载该映像文献为本地磁盘从而浏览使用服务器端程序发布的这些文献。极大地减轻了管理员发布文献的工作。3.5云端实现3.5.1云平台搭建本系统通过ApacheHadoop搭建云平台。ApacheHadoop构建在虚拟主机上,作为云计算平台。其设计核心是MapReduce实现和HDFS(HadoopDistributedFileSystem),它们源自MapReduce(由一份Google文献引入)和GoogleFileSystem。本系统采用全分布模式,即Hadoop配置在不同的主机上,作为集群运营,Hadoop基本组成结构如下图3-16。图3-16Hadoop两大基本组成部分本系统通过Hadoop搭建云平台,在平台上,一台机器作为Master主机(Hadoop-A)、两台机器分别为Slave机(Hadoop-B\Hadoop-C)。其中,Hadoop-A为名称节点,也是数据节点,Hadoop-B\Hadoop-C分别为数据节点,因此构成了管理中间件。云计算具体体系结构如图3-17:图3-17云计算的具体体系结构每个结点的配置文献如下:core-site.xml文献的配置:<?xmlversion="1.0"?><configuration><property><name>fs.default.name</name><value>hdfs://Hadoop-A/</value><final>true</final></property></configuration>hdfs-site.xml文献的配置:<?xmlversion="1.0"?><configuration><property><name>dfs.name.dir</name><value>/disk1/hdfs/name,/remote/hdfs/name</value><final>true</final></property><property><name>dfs.data.dir</name><value>/disk1/hdfs/data,/disk2/hdfs/data</value><final>true</final></property><property><name>fs.checkpoint.dir</name><value>/disk1/hdfs/namesecondary,/disk2/hdfs/namesecondary</value><final>true</final></property></configuration>mapred-site.xml文献的配置:<?xmlversion="1.0"?><configuration><property><name>mapred.job.tracker</name><value>jobtracker:8021</value><final>true</final></property><property><name>mapred.local.dir</name><value>/disk1/mapred/local,/disk2/mapred/local</value><final>true</final></property><property><name>mapred.system.dir</name><value>/tmp/hadoop/mapred/system</value><final>true</final></property><property><name>mapred.tasktracker.map.tasks.maximum</name><value>7</value><final>true</final></property><property><name>mapred.tasktracker.reduce.tasks.maximum</name><value>7</value><final>true</final></property><property><name>mapred.child.java.opts</name><value>-Xmx400m</value><!--NotmarkedasfinalsojobscanincludeJVMdebuggingoptions--></property></configuration>此外,namenode的master文献配置如下:Hadoop-Anamenode的slaves文献配置如下:Hadoop-BHadoop-C3.5.2通信模块接口实现Hadoop中的RPC是Hadoop系统内部的通信机制,RPC(RemoteProcedureCallProtocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。PC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。当我们讨论HDFS的时候,通信也许发生在:• Client-NameNode之间,其中NameNode是服务器• Client-DataNode之间,其中DataNode是服务器• DataNode-NameNode之间,其中NameNode是服务器• DataNode-DateNode之间,其中某一个DateNode是服务器,另一个是客户端org.apache.hadoop.rpc中有类Client和类Server。但是类Server是一个抽象类,类RPC封装了Server,运用反射,把某个对象的方法开放出来,变成RPC中的服务器。Client类由于Client也许和多个Server通信,典型的一次HDFS读,需要和NameNode打交道,也需要和某个或某些DataNode通信。这就意味着某一个Client需要维护多个连接。同时,为了减少不必要的连接,现在Client的做法是拿ConnectionId来做为Connection的ID。ConnectionId涉及一个InetSocketAddress(IP地址+端标语或主机名+端标语)对象和一个用户信息对象。这就是说,同一个用户到同一个InetSocketAddress的通信将共享同一个连接。3.5.2.2Server类Server类是个抽象类,其中,最重要的是实现call方法Server.Call。Server.Connection维护了一个来自客户端的socket连接。它解决版本校验,读取请求并把请求发送到请求解决线程,接受解决结果并把结果发送给客户端。Hadoop的Server采用了Java的NIO,这样的话就不需要为每一个socket连接建立一个线程,读取socket上的数据。在Server中,只需要一个线程,就可以accept新的连接请求和读取socket上的数据。请求解决线程一般有多个,它们都是Server.Handle类的实例。它们的run方法循环地取出一个Server.Call,调用Server.call方法,搜集结果并串行化,然后将结果放入Responder队列中。对于解决完的请求,需要将结果写回去,同样,运用NIO,只需要一个线程,相关的逻辑在Responder里。3.5.2.3通信接口代码实现publicclassUseRPC{//hadoop配置信息privatestaticConfigurationconf=newConfiguration();//定义接口publicinterfaceServerif{publicStringmethod(Stringargs);}//服务器端的实现publicstaticclassServerImplimplementsServerif{//业务逻辑的实现publicStringmethod(Stringargs){returnargs;}}publicstaticvoidmain(Stringargs[])throwsException{ServerImplsi=newServerImpl();intport=8668;org.apache.hadoop.ipc.Serverserver=RPC.getServer(si,port,10,true,conf);server.start();server.join();}3.6软件流程图3-18软件流程图第四章功能测试4.1测试概述本作品致力于为政府机关、公司公司、开发团队等注重信息安全的机构营造一种信息传输安全、快速、方便的氛围。为了保证防止信息泄露、窃取、破坏的问题,在系统性能上,切实做到以下几点安全性能:(1)即使信息被泄露,脱离本软件后也无法使用;(2)即使信息被窃取,窃取者看到的只是乱码;(3)即使信息被破坏,服务器仍有备份;(4)即使单一服务器崩溃,基于云平台的服务器仍然可以自动将数据恢复。本系统是一个功能齐全,安全性强的管理系统,本次测试内容重要针对系统实现的相关功能和需要达成的安全性能进行测试。重要从以下几个方面进行测试:(1)用户注册、登录、审核功能,保证角色权限的划分。(2)客户端虚拟磁盘管理功能,即测试虚拟磁盘的加密,解密等功能以及效率。(3)客户端用户空间----上传/下载映像文献功能、数据共享与权限设立功能、共享审批功能等。(4)云平台的容灾备份功能,保证存放在服务器上的数据安全可靠。4.2测试方案根据上述测试目的,我们将测试提成三个部分:客户端功能测试,认证服务器功能测试,云端测试,具体方案如下表所示:表4-2-1客户端测试方案测试类型与编号测试方法测试目的预期结果用户登陆测试1-1用户注册、登录在客户端登录页面中,注册用户,并用合法账号登录测试客户端是否可以实现注册、登录功能客户端可以注册新用户,并通过审核通过的账户登录磁盘管理测试1-2创建映像文献在磁盘管理中,创建映像文献,并在本地加载虚拟磁盘测试客户端是否可以成功创建映像文献客户端可以成功创建映像文献并且加载成为虚拟磁盘测试1-3删除映像文献在磁盘管理中,卸载虚拟磁盘,并删除映像文献测试客户端是否可以成功删除映像文献客户端可以成功卸载虚拟磁盘并删除映像文献用户空间测试1-4上传映像文献在用户空间中,上传本地映像文献至服务器测试客户端是否可以成功上传本地加密的映像文献客户端可以成功上传本地加密的映像文献至服务器测试1-5加载映像文献在用户空间中,加载映像文献测试客户端是否可以成功加载在服务器端的映像文献客户端可以成功加载在服务器端的映像文献权限控制测试1-6文献访问设立浏览权限在权限控制中,对所属文献进行浏览权限设立,使授权用户仅能实现浏览测试客户端是否可以成功设立文献浏览权限客户端可以成功设立文献浏览权限测试1-7文献访问设立加载权限在权限控制中,对所属文献进行加载权限设立,使授权用户可以实现加载测试客户端是否可以成功设立文献加载权限客户端可以成功设立文献加载权限测试1-8文献访问设立加载受限权限在权限控制中,对所属文献进行加载受限权限设立,使授权用户能实现加载受限测试客户端是否可以成功设立文献加载受限权限客户端可以成功设立加载受限权限审批测试1-9文献共享审批以部门负责人身份,在审批中,对该部门普通用户申请的文献共享进行审批测试客户端是否可以成功审批共享文献客户端可以成功审批共享文献测试1-10注册用户审批以部门负责人身份,在审批中,对申请该部门的账户进行审批通过测试客户端是否可以成功审批注册用户客户端可以成功审批注册用户表4-2-2认证服务器测试方案测试类型与编号测试方法测试目的预期结果用户管理测试2-1查看当前所有用户和监听在线用户登录认证服务器,在用户管理中,查看当前所有用户和监听在线用户情况测试认证服务器是否可以查看和监听用户信息认证服务器可以查看和监听用户信息测试2-2黑名单管理在认证服务器中,将一些非法或者违规的用户拖入黑名单,从而无法使用网络虚拟磁盘系统测试本系统是否可以在认证服务器中管理删除非法用户认证服务器可以管理删除非法用户测试2-3注册用户的审批在认证服务器中,对申请注册的用户进行审批通过测试认证服务器是否可以成功审批申请注册的用户认证服务器可以成功审批申请注册的用户磁盘空间管理测试2-4磁盘空间管理在认证服务器中,设立用户可以使用的网络虚拟磁盘空间测试认证服务器是否可以成功设立用户的网络虚拟磁盘空间认证服务器可以成功设立网络的虚拟磁盘空间表4-2-3云端测试方案测试类型测试方法测试目的预期结果云端备份测试3-1映像文献的备份存储将上传至云端的映像文献通过云平台namenode查询文献存放情况测试云端是否具有映像文献的备份存储云端将映像文献分为三个备份存放在两台电脑中云端容灾测试3-2云端的容灾自检关闭一台datanode的计算机,查找曾经存放在该结点中的文献并没有丢失,而是转移到其他结点中。测试云端是否能容灾自检云端可以通过定期自检,将曾存储在崩溃节点中的数据转移到其他正常节点中云端负载均衡测试3-3云端各节点负载均衡通过查看云端各节点的数据占用率情况,检测是否云端各检节点是否负载均衡测试云端各节点是否负载均衡云端可以自动分派各数据块存储位置,使各个节点负载均衡4.3测试环境图4-1测试环境拓扑图根据上述实验方案,我们搭建测试环境如图4-1所示,重要测试计算机性能参数及IP地址配置如表4-3所示。表4-3-1测试计算机配置名称重要配置IP地址客户端PC机CPU:Int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烟台市中医院神经电生理室主任技术管理考核
- 泰州市人民医院脑血运重建手术适应证把握考核
- 绍兴市人民医院介入超声技术考核
- 温州市人民医院旅行相关感染病诊疗考核
- 常州市中医院腹腔镜技能模拟训练考核
- 景德镇市人民医院肿瘤介入治疗考核
- 嘉兴市人民医院脏腑推拿技术资格认证
- 新余市中医院带教下属与HRBP团队建设能力评估
- 宁德市人民医院静脉疾病术后管理考核
- 宁波市中医院甲状腺病理细胞学诊断考核
- 2025年年国产AI芯片和高性能处理器厂商排名和行业趋势报告
- 2025年及未来5年中国烘焙花生行业市场调研分析及投资战略咨询报告
- 船舶现场应急预案
- 2025年森林防火考试题目及答案
- 红色文化基地课件
- 干花的制作与欣赏课件
- JJF 1072-2000-齿厚卡尺校准规范-(高清现行)
- 一年级下册科学课件-4.11 多姿多彩的植物 - 苏教版(共25张PPT)
- 简易呼吸器课件
- 《课题结题报告》PPT课件.ppt
- 个人劳动仲裁申请书的范本
评论
0/150
提交评论