信息安全大赛北京理工大学作品设计报告_第1页
信息安全大赛北京理工大学作品设计报告_第2页
信息安全大赛北京理工大学作品设计报告_第3页
信息安全大赛北京理工大学作品设计报告_第4页
信息安全大赛北京理工大学作品设计报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《2008年全国大学生电子设计竞赛信息安全技术专题邀请赛》作品设计报告作品题目哑谜——基于行为密码和击键特征的身份认证系统参赛学校北京理工大学参赛队员付力力李海炜郭天放指导教师王耀威目录1引言 11.1项目背景 11.2名词解释 21.2.1行为密码 21.2.2击键特征 32系统方案 32.1总体设计 32.1.1目标 32.1.2系统框图 42.2模块设计 52.2.1通用函数库 52.2.2文件保护驱动模块 52.2.3进程及注册表保护驱动模块 72.2.4Windows登录模块 92.2.5核心服务程序模块 102.2.6系统配置程序模块 123功能与性能指标 133.1功能指标 133.2.1Windows系统登录保护 133.2.2文档保护 143.2.3关键字输入保护 14性能指标 153.3.1安全特性指标 153.3.2时间特性指标 163.3.3精度指标 163.3.4系统资源占用指标 164系统特色 175系统测试 18测试环境 185.2测试过程描述 18 针对Windows登录保护模块的测试 18 针对文件保护模块的测试用例 20 针对击键特征识别模块的测试用例 21 针对自身安全的测试用例 225.3测试结果分析 236参考文献 24

1引言1.1项目背景传统的字符密码是如今用户认证方式中的最主要手段,然而,这种方式存在着它的弊端:容易被间谍程序记录、容易被猜测、密钥存储安全难以保证等等。有鉴于此,我们提出了一种新的思路:如果记录用户一连串特定的行为,并将其作为一种“密码”,将是对传统密码的绝佳补充。实际上,这种方式在保险柜锁上已有应用(譬如其锁的左右旋转不同圈数)。由于行为密码不存在可见的字符输入,使得它难于被现有的木马程序记录,有着传统字符密码认证方式所不能及的优势。同时,考虑到每个用户使用电脑的习惯互不相同且难以模仿,用户的击键行为在终端使用过程中出现比较高,并且容易采集和区分,因此可以把用户的击键行为特征作为身份认证的依据之一。“哑谜”系统将“行为密码认证”和“击键特征识别”这两种身份认证手段应用于终端系统,从而更好的保护终端系统的安全。“哑谜”系统提出并实现了一种新的身份验证方式——结合用户行为密码和击键特征进行计算机终端用户身份的识别。行为密码就是把用户在一段时间内的键盘、鼠标操作序列作为密码。同时对用户击键特征进行验证,以进一步保证用户身份的真实性。自上世纪70年代以来,研究者们发现每个人的键盘击键方式不同(譬如力度,粘滞时间等)。系统采用了与字符相关的击键粘滞时间作为特征对不同用户进行识别,识别正确率达95%。系统采用计算机终端用户行为密码技术加强系统安全,同时采用基于关键字的击键特征保护技术辅助确认用户身份,并采用文档欺骗对入侵者进行攻击。对于系统自身的安全则采用目前应用广泛而有效的底层驱动隐藏和保护技术来保护系统自身进程。系统实现了对Windows登录的接管,将行为密码、击键特征和字符密码同时作为用户身份验证的手段;并支持对计算机内的文档和重要数据(如注册表)采用行为密码和击键特征进行保护或欺骗(不拒绝非法访问,但非法用户访问的是一个事先定制的假文档)。实验结果表明系统对计算机终端用户的保护可行、有效。采用360安全卫士等软件不能找到系统进程和杀死系统进程,确保系统自身能够安全、可靠的运行。1.2名词解释行为密码行为密码是指由若干个用户操作组成的操作序列。主要包括以下操作1.鼠标击键操作a.左键单击b.右键单击即从按住鼠标左键到释放的过程中鼠标移动所形成的动作序列。比如按住鼠标左键从12点钟方向开始,顺时针旋转360度,回到12点钟方向。3.键盘操作a.单一击键,即一次Press-Release操作b.组合键,类似Ctrl+C,Ctrl+Alt+Q之类的操作一个典型的行为密码的例子是: →←,A,S,D即先用按下鼠标左键,然后先向右再向左移动,接着鼠标左键,最后依次按下A、S、D三个键,即成功输入一次密码。另外出于系统保密性的考虑,输入行为密码时是不会出现任何提示。默认情况下在进行需要进行行为密码认证的操作前10秒内的操作算做有效的行为密码输入。击键特征本系统所使用的击键特征是指用户在使用键盘输入某个特定的字符串时所产生的特征信息。这里的特征信息包括字符串击键总时间、各字母击键粘滞时间、粘滞时间在所有字母中的排序位置。下面以“admin”这个字符串为例详细说明。首先定义一个PR值,即Press-Release,是指用户从按下一个键到弹起的时间,以毫秒为单位,这个是击键特征的主要组成部分。显然,对于“admin”这个字符串,用户会产生5个PR值,实验表明,对于不同的用户来说,这5个PR值以及他们之间的关系是很不一样的,并且对于同一个用户来说,是相对稳定的,这个就是击键特征判别的基础。例如用户A这5个PR值从大到小的排序是“dmina”,而用户B则是“animd”,根据这个排序和具体的PR值可以对每个按键的击键算出一个M值,公式为M=位置其中位置A是指某个按键在用户A的PR值排序中的位置,PRA指这个按键用户A的PR值。具体来说,“d”这个按键M值为(|1–5|+1)x|PRA-PRB|。对于每个按键都计算出一个M值,然后相加即可得到最终的特征值。在击键特征的训练过程中,用户需要重复输入10次特定字符串。从而得到这10次输入数据的方差σ和平均数。根据公式CV=σ/μ算出变异系数CV,若CV>10%则认定特征不稳定,训练无效。否则由方差σ和平均数得到一个高斯分布函数N(x)。对于每一次的输入x,滤掉Nx<N(μ-σ)和Nx>2系统方案2.1总体设计目标提出并实现一种新的身份验证方式:结合用户行为密码和击键特征的计算机终端用户身份识别系统。系统把键盘、鼠标操作序列作为计算机终端用户密码,同时对计算机终端用户击键特征进行验证,以进一步保证用户身份的真实性。本系统的适用者是所有计算机终端用户。系统框图图SEQ图表\*ARABIC1 系统框图2.2模块设计通用函数库定义系统数据结构,并实现其他模块所需的I/O,加密,日志记录等基本功能,主要包括以下几部分:一、行为密码 行为密码的结构体的定义,行为密码的记录、存储、复制、销毁和比较等函数。二、击键特征 击键特征的结构体的定义,击键特征的记录、存储、比较和复制等相关函数。三、其他 编码\解码函数、常用的辅助函数以及统一的日志记录函数。文件保护驱动模块文件保护驱动模块使用微软提供的微过滤器驱动模型实现的对底层文件IO操作进行过滤的驱动程序。本驱动程序模块通过对文件的IRP_MJ_CREATE请求(任何进程试图对某个文件进行打开、创建操作时会发送此请求)进行过滤,达到禁止、通过或者重定向文件打开操作的目的,从而实现文件保护的功能。图2 文件保护驱动模块流程图进程及注册表保护驱动模块程序自身的进程安全以及注册表保护采用hookSSDT方式予以实现,这是目前软件自我保护的主流方法之一。以防止进程被恶意结束为例,说明模块的工作过程。Ring3下有结束进程功能的API如TerminateProcess(),EndTask()等,归根结底最后都调用了ntdll.dll导出的ZwTerminateProcess函数来结束进程。我们只需要将SSDT中ZwTerminateProcess函数的地址替换为我们构造好的新函数NewZwTerminateProcess的地址,并在这个新函数中验证是否是其他进程在试图结束受保护的进程,若是,就返回拒绝访问,否则就调用真正的ZwTerminateProcess函数正常完成请求。首先,修改SSDT中的函数地址,并替换为我们构造好的NewZwTerminateProcess函数,过程描述如下:图3 HOOKSSDT流程图一旦有用户以非法手段试图结束”哑谜”服务进程,便会在NewZwTerminateProcess函数中被拦截,以下以某用户试图用”ntsd–cq–p[进程ID]”命令来强制结束哑谜进程为例,描述这个过程:图4 进程保护流程图Windows登录模块将Windows传统的字符密码验证替换为行为密码验证和原密码验证。WindowsXP系统中的用户登录逻辑的处理是通过winlogon进程来调用GINADLL中的相关函数来实现的。为了达到这个目的,在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\下新增字符串键,名称为GINADLL,内容为哑谜系统所带的ROAGina.dll的路径,在ROAG,这样就可以实现自己的登录验证功能。程序在对话框的WM_INITDIALOG消息处理中启用一个全局鼠标钩子和一个全局键盘钩子,在钩子的回调函数中调用通用函数库中的相关函数,实现行为密码的记录。同时处理一个自定义的WM_ROALOGIN消息,收到这个消息即表示登录成功,调用EndDialog来结束对话框,完成登录过程。WM_ROALOGIN消息在钩子的回调函数中发出,当用户输入了正确的行为密,WM_ROALOGIN消息会立即传递到登录对话框的消息处理函数中,让用户输入原系统登录密码。图5 Windows登录模块流程图核心服务程序模块本程序是整个系统在用户态的核心程序,负责将底层驱动模块和系统配置模块关联起来,实现文件保护和击键特征识别的功能。下面分几个部分说明这个模块的设计。一、行为密码的记录行为密码的记录采用全局键盘钩子(WH_KEYBOARD_LL)和全局鼠标钩子(WH_MOUSE_LL)实现。在两个钩子的回调函数中会对用户的键盘行为和鼠标行为进行分析处理,最终格式化为行为密码原子并加入到存储行为密码的链表中。为了保证匹配的准确性,行为密码的链表中只会保存用户10秒之内的有效输入。图6 行为密码记录流程图二、文件保护验证本程序会和文件保护驱动模块进行通信,接受其发送过来的文件信息,然后验证该文件是否已经被解锁,或者用户是否已经输入行为密码解密了该文件,最后把成功或者失败的信息返回到核心态的文件保护驱动。图7 文件保护验证流程图三、关键字输入保护关键字的识别和特征的提取采用全局键盘钩子(WH_KEYBOARD_LL)来实现。在全局键盘钩子的回调函数中对用户的输入进行检查,初始化出错计数为0,一旦识别到用户输入了关键字列表中的某个单词,则把该单词的特征信息和存储在配置中的对应信息进行比较,如果认定是合法用户则把出错计数-1,直到减为0。如果是非法用户则把出错计数+1,当出错计数达到设定值(默认为5次)时计算机会立即锁定。图8 关键字特征识别流程图 系统配置程序模块本模块是基于MFC的图形界面程序,提供友好的操作界面,用于修改系统的各项配置。界面由一个对话框和三个TAB组成,每个TAB里可以进行一个功能项的相关配置。本模块和其他模块的接口是一个名为ROAConfig.ini的配置文件,配置程序根据用户的定义把相应的配置写在配置文件中,而其他的模块则会根据自己的需要来读取配置文件。ROAConfig.ini受到文件保护驱动的保护,所以只有本系统自己的进程才可以读取该文件,其它进程无法对其进行读取、复制和删除等操作的。本模块通过管道和核心服务程序进行通信,通知核心服务程序各项配置的改变,让其重新读取配置,达到让用户的配置实时生效的目的。3功能与性能指标3.1功能指标Windows系统登录保护本部分功能主要对系统的登录行为进行保护。启用本功能之前,需要设定一个行为密码,之后的系统登陆操作需要正确输入此行为密码才能进入。行为密码的构成原子可以是:鼠标手势、键盘按键、鼠标左右键单击。本功能支持拥有个多个用户的终端计算机。登录之前,先在用户名框中输入想登录的用户名,然后输入对应的行为密码即可登陆。图9 Windows系统登录保护设置界面文档保护本部分功能主要是对系统的文件/目录进行保护。可以对具体的文件/目录添加一个读/写保护,并设置一个行为密码。同时,还能设定一个欺骗文档(可选)。设定之后,任何进程试图读/写该文件/目录之前都必须通过行为密码的认证,否则会失败,对于事先设定好欺骗文档的文件或目录,所有的操作都只会对欺骗文档进行。图10 文件保护效果图11 文件欺骗效果关键字输入保护关键字输入保护是击键特征识别的一项具体应用。用户事先设定一个关键字,并进行5次输入,“哑谜”系统会采集用户数据,并进行分析。同时,用户还要设定一个匹配失败次数阈值,在之后的使用过程中,匹配失败次数累计超过阈值后,计算机将自动锁定。设置完毕后,在之后的击键过程中一旦出现设定好的关键字,就进行击键特匹配,以智能地保证终端计算机安全。默认的错误次数阈值为5,用户可以设置任何大于0的数作为阈值。图12 关键字输入保护设置界面安全特性指标.1进程自我保护及隐藏通过Windows底层操作,HOOKSSDT(SystemServiceDescriptorTable,系统服务描述符表),隐藏进程,同时能够保护进程不被其他进程非法结束。无法通过任务管理器、tasklist命令查看进程。无法通过任务管理器、taskkill命令、tskill命令、ntsd-cq-p结束进程。.2自身数据安全保证数据存储安全。通过Windows底层文件过滤驱动保护自身数据的安全,不被非法读取、修改、删除。cmd、explorer及一般的第三方应用程序等进程都无法访问自身配置文件。.3越权访问保护通过Windows底层文件过滤驱动保护,保证受保护的文件或文件夹在未经授权的情况下不被读取/写入/执行。cmd、explorer及一般的第三方应用程序等进程都无法访问受保护的文件(夹)。.4注册表关键键值保护通过Windows底层操作,HOOKSSDT(SystemServiceDescriptorTable,系统服务描述符表),保护注册表。Regedit.exe,reg.exe及一般的第三方应用程序等进程都无法访问受保护的键值。这里的注册表保护并不是全局的注册表保护,它保护的是“哑谜”系统自身正常运行所需要保护的注册表项。时间特性指标行为密码检测周期10秒,也就是说选择10秒内的键盘鼠标操作序列作为匹配依据。文件解锁时间可由用户自己定义,默认为10秒。精度指标行为密码为顺序精确匹配。关键字击键特征识别的准确率达95.4%。系统资源占用指标1.内存占用: a.ROAService.exe(哑谜系统核心服务程序):约为1964K b.ROAConfig.exe(哑谜系统配置程序):约为5624K2.CPU占用:a.ROAService.exe(哑谜系统核心服务程序):常驻时占用率为0%,峰值为3%b.ROAConfig.exe(哑谜系统配置程序):常驻时占用率为0%,峰值为10%4系统特色一、使用计算机终端用户行为密码加强系统安全隐藏了输入提示。行为密码不像传统的密码那样,有一个明确的密码输入提示。行为密码的输入是一系列的键盘、鼠标操作,夹杂在用户的正常操作中,“哑谜”系统会实时进行行为密码的匹配,匹配成功,用户便获得相应的权限。在匹配成功后,如果用户10秒(该时间可由用户定义)内没有对文档进行操作,文档会自动锁定。用户每对文档进行一次读写操作,超时计时器自动重新计时。便于记忆。由于密码由一系列动作构成,较字符容易记忆。密钥空间大。原子动作的组合,远大于字符的组合。不易被木马和其他间谍软件记录。作为行为密码的键盘,鼠标操作,与用户平常使用电脑时的一些“小动作”别无二致;退一步而言,即使入侵者知道您已经使用行为密码,也很难弄清楚哪些键盘、鼠标操作才是真正的密码。图13 行为密码设定界面二、采用基于关键字的击键特征保护技术辅助确认用户身份通过对计算机终端用户的击键特征识别辅助确认用户的身份。这项研究已经非常成熟,从上个世纪70年代开始,研究者们对此进行了大量的研究。目前已有AdmitOneSecurity/Psylock/bioChec等成熟的商业产品。采用这项技术无疑可以增强系统的安全性。三、采用文档欺骗方式对入侵者进行攻击对非法入侵者可以设置欺骗文档进行欺骗。有时候欺骗比拒绝更有意义。当非法用户访问文档时不是拒绝访问,而是把事先准备好的欺骗文档提供给他,让入侵者以为成功得到了文件。四、通过底层驱动隐藏和保护自身进程系统进程自身的安全如果得不到保障,其他的保护都是空谈。我们采取了主流杀毒软件保护自身的方式——HOOKSSDT,从Windows底层驱动对自身进程进行保护,防止被其他进程非法结束。为了增强隐蔽性,我们进一步隐藏了自身进程,使非法程序更难发现我们的踪迹。5系统测试测试环境操作系统:WindowsXPSP2(32位)内存:DDR6672.00GB网卡:BroadcomNetXtreme57xxGigabitController5.2测试过程描述5.2.1 针对Windows登录保护模块的测试1号测试用例测试目的:测试Windows登录保护模块能否在本地正常运作预置条件:开启了Windows登录保护模块,并为相应的Windows用户设定了行为密码;第一次安装之后重新启动计算机。操作描述:1.打开哑谜系统配置界面2.开启Windows登录保护3.双击用户列表的中用户名4.输入用户名对应的Windows登陆密码5.设定行为密码,行为密码采用的是:鼠标从9点钟位置沿顺时针方向转一圈,然后键盘按1次F5,然后鼠标从3点钟位置沿逆时针方向转一圈6.保存并重新启动计算机。期望结果:1.Windows重启后原先的登录界面被哑谜系统的登录界面替换2.在用户名处填写用户名,并输入之前设定的行为密码之后,成功登录到Windows。3.锁定计算机,计算机成功锁定,唤出哑谜系统登录界面。4.使用行为密码能解锁计算机。测试结果:与期望结果一致2号测试用例测试目的:测试Windows登录保护模块能否在远程登录时正常运作预置条件:开启了Windows登录保护模块;第一次安装之后重新启动计算机;终端计算机开启了远程桌面服务。操作描述:行为密码设定过程同1号测试用例。开启本机远程桌面。在另外一台计算机上登录本机远程桌面,并尝试通过行为密码登录。期望结果:1.Windows重启后,远程桌面登录之后看到哑谜系统的登录界面2.在用户名处填写用户名,并输入之前设定的行为密码之后,成功通过远程桌面登录到Windows。测试结果:与期望结果一致3号测试用例测试目的:测试Windows登录保护模块是否能正常停用预置条件:开启了Windows登录保护模块;第一次安装之后重新启动计算机。操作描述3.保存并重新启动计算机。期望结果:Windows登录方式变回原先的默认认证方式测试结果:与期望结果一致5.2.2 针对文件保护模块的测试用例1号测试用例测试目的:测试文件保护模块是否正正常运作预置条件:无操作描述:1.打开哑谜系统配置界面2.点击文件保护标签页,点击添加文件(夹)3.双击行为密码网格,为文件(夹)设定解锁需要的行为密码4.如果需要设定解锁时间,双击解锁时间网格,设定解锁时间5.如果需要设定欺骗文档,双击欺骗文档网格,设定一个欺骗文档6.点击保存。期望结果:1.输入行为密码前,文件无法被打开\修改\删除\执行(对于事先设定欺骗文档的,所有操作将在欺骗文档中进行)2.输入行为密码之后,在解锁时间内,文件可以被打开\修改\删除\执行。3.输入行为密码后,在解锁时间后,文件无法被打开\修改\删除\执行(对于事先设定欺骗文档的,所有操作将在欺骗文档中进行)。测试结果:与期望结果一致2号测试用例测试目的:测试文件保护模块是否正正常删除被保护对象预置条件:无操作描述:1.打开哑谜系统配置界面2.点击文件保护标签页,选中对应的文件(夹)3.点击删除按钮以删除保护4.点击保存。期望结果:文件(夹)不再受哑谜系统保护,能够打开\修改\删除\执行测试结果:与期望结果一致3号测试用例测试目的:测试文件保护模块是否能正常保护哑谜系统配置程序自身预置条件:无操作描述:1.打开哑谜系统配置界面2.点击文件保护标签页,点击添加文件,选定哑谜系统安装目录下的RoaConfig.exe3.双击行为密码网格,为文件(夹)设定解锁需要的行为密码4.如果需要设定解锁时间,双击解锁时间网格,设定解锁时间5.如果需要设定欺骗文档,双击欺骗文档网格,设定一个欺骗文档6.点击保存。期望结果:1.输入行为密码前,哑谜系统配置程序无法被打开\修改\删除\执行(对于事先设定欺骗文档的,所有操作将在欺骗文档中进行)2.输入行为密码之后,在解锁时间内,哑谜系统配置程序可以被打开\修改\删除\执行。3.输入行为密码后,在解锁时间后,哑谜系统配置程序无法被打开\修改\删除\执行(对于事先设定欺骗文档的,所有操作将在欺骗文档中进行)。测试结果:与期望结果一致5.2.3 针对击键特征识别模块的测试用例1号测试用例测试目的:测试关击键特征识别模块是否正正常运作预置条件:无操作描述击键特征识别标签页,启用击键特征识别保护3.点击添加关键字4.双击特征信息网格,重复输入关键字5.设定最大容错次数,默认为5次6.点击保存。期望结果:1.非法用户在特定关键字的输入累计出错次数达到5次后,Windows自动锁定2.合法用户正常使用,不会锁定。测试结果:与期望结果基本一致在实际测试过程中发现,合法用户在个别情况下也会因出错次数达到阈值而被拒绝。2号测试用例测试目的:测试关键字能否被删除预置条件:无操作描述击键特征识别标签页,启用击键特征识别保护3.选中需要删除的关键字4.点击保存。期望结果:被删除的关键字不再受到保护测试结果:与期望结果一致5.2.4 1号测试用例测试目的:“哑谜”服务进程在常见检测手段下是否可见预置条件:测试主机安装了“360安全卫士”软件操作描述:1.打开“360安全卫士”,选择“高级”下的“系统进程状态”,寻找“哑谜”服务进程2.打开Windows任务管理器,寻找“哑谜”服务进程期望结果:“哑谜”“360安全卫士”与Windows任务管理器的列表中测试结果:与期望结果一致2号测试用例测试目的:测试进程常见结束进程手段对“哑谜”服务进程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论