星火杯软件类说明书范例_第1页
星火杯软件类说明书范例_第2页
星火杯软件类说明书范例_第3页
星火杯软件类说明书范例_第4页
星火杯软件类说明书范例_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、西安电子科技大学第十九届“星火杯”大学生课外学术科技作品竞赛软件类说明书作品名称:_动态密码、声纹识别身份验证系统_作品类别:_软 件 类_作品编号:_动态密码、声纹识别身份验证系统说明1、开发目的针对逐渐强调信息安全与信息数字化的今天,人们也越来越注重个人隐私及信息的安全。因此开发了该套身份验证系统。2、功能及特色说明该系统为vc+开发的windows下的应用程序。系统可以通过动态密码识别和声纹识别两部分确认用户的身份,并且加入了新颖的援护码设计方便用户因各种意外无法登陆系统时的意外处理。此外,该套系统为防止用户在被胁迫的情况输入密码,特别设立了伪登陆模式。特色一动态密码。主要针对目前截图等

2、盗取密码的手段进行防范,密码的位置以及内容会不断地改变,这样以达到保护密码的目的。 特色二声纹认证。该部分是通过用户事先在系统留下自己的声音,然后再次输入时,系统将目前声音与记录的声音进行频率的比较,由于每个人的声音频率都是不一样的,通过该方法以达到安全以及高精度的身份认证。 认证通过以后,系统才能正常运行。 特色三援护码:用户可以通过一个系统产生的随机援护码发送给解锁码演算程序(开发商的服务端),将获得一组长度不定的解锁密码跳过动态密码和声纹识别部分直接登陆系统以解决突发情况,即使同一个援护码进行申请多次解锁密码也会获得长度和内容完全不同的解锁密码。 特色四特殊状况求救。当用户处于特殊状况被

3、迫登陆系统时,可以将获得的援护码加20发送给解锁码演算程序,解锁码演算程序会发出用户处于危险状况的警报,同时给用户发送一组伪解锁密码,用户用该组密码依然能正常登陆系统,但是系统将处于非正常工作状态。 当本系统运行后,操作系统会自动进入锁定状态,并且任务管理器、快捷键、注册表编辑器都处于不可用状态。3、使用说明、详细功能介绍及技术路线 (1)首次运行安装该系统结束后,系统会要求您进行首次使用设定,即声纹密码的录制,录制方法是按住F12不放进行录制,录制结束后放开F12,点击下方的保存进行确认。用户可以参照上方的声纹模型对自己的录音进行调整。系统将用户的声音处理并保存(具体实现见后面声纹部分)。当

4、需要设置新的声纹密码时,只需要运行根目录下的voice.exe便可打开此程序对声纹密码进行重新登陆。图1此过程结束后将重新启动计算机,重启动后,安全系统将自动运行,安全系统启动后,操作系统会自动进入锁定状态:windows的shell被结束、任务管理器、快捷键、注册表编辑器都处于不可用状态。(见图2)图2系统锁定部分相关技术说明:结束进程explorer.exe:由于windows会自动重新启动其皮肤文件,故将注册表KEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon中的AutoRestartShell相应修改。修

5、改函数内容如下: HKEY hKey; DWORD re; re=0;(const BYTE *) &re;RegOpenKeyEx(HKEY_LOCAL_MACHINE,SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon,0,KEY_WRITE,&hKey); RegSetValueEx(hKey,AutoRestartShell,0,REG_DWORD,(const BYTE *)&re,4);RegCloseKey(hKey);锁定任务管理器:每200ms搜索一遍系统进程,如果有“taskmer.exe”则将其结束。另外对注册表中HKEY_

6、CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem 中的DisableTaskMgr进行相应的修改。 定义了一个timer控件,触发间隔为200ms PROCESSENTRY32 pe;/定义一个PROCESSENTRY32结类型的变量 HANDLE hShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);/ 创建快照句柄 pe.dwSize = sizeof(PROCESSENTRY32);/为dwSize赋值 if (Process32First(hShot,&p

7、e) do if (strcmp(pe.szExeFile,TASKMGR.EXE)=0) /判断此进程是否为你要终止的进程 HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe.th32ProcessID);/如果是就利用其ID获得句柄 TerminateProcess(hProcess,4);/终止该进程 if (strcmp(pe.szExeFile,taskmgr.exe)=0) /判断此进程是否为你要终止的进程 HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe.th

8、32ProcessID);/如果是就利用其ID获得句柄 TerminateProcess(hProcess,4);/终止该进程 while(Process32Next(hShot,&pe); CloseHandle(hShot);注册表编辑器的锁定:对注册表中HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem下的Disableregistrytools进行相应的修改。re=1; RegCreateKey(HKEY_CURRENT_USER,SoftwareMicrosoftWindowsCurrentVer

9、sionPoliciesSystem,&hKey); RegSetValueEx(hKey,DisableTaskMgr,0,REG_DWORD,(const BYTE *)&re,4); RegCloseKey(hKey);re=1; RegCreateKey(HKEY_CURRENT_USER,SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem,&hKey); RegSetValueEx(hKey,Disableregistrytools,0,REG_DWORD,(const BYTE *)&re,4);RegCloseKey(hKey

10、);动态密码相关技术说明:动态密码是由10个不断交换位置的按钮组成(见图2),这样同一组密码每次鼠标点击的坐标都不一样,为防止了目前流行的通过截图和记录鼠标点击坐标来盗取密码。在确定和清除按钮下方,用户每次单击都会显示一个“*”号,以提示用户输入数字的个数,由于该“*”不具有任何实际物理意义,仅供输入密码个数的提示,所以也就无法从其解析密码。声纹识别部分:当正确输入动态密码后,系统自动进入声纹认证部分(图3)。图3使用方法是按住F12不放进行录制,录制结束后放开F12,此时系统会自动将录制的声音与用户之前录制的声音进行比较,然后判断是否为合法用户。(相关技术资料见附录)相关技术说明:该部分通过

11、一个声音频率分析控件,将录入的声音进行分析,然后将频率连接成一条曲线,将该曲线保存,当用户再次录入声音时,再次进行频率分析,将新的频率曲线与用户之前的频率曲线进行比较,当吻合度超过80%时本系统将认为是合法用户。此外,当出现硬件问题或各种突发原因无法通过声纹验证时,可以点击返回按钮回到动态密码输入界面,系统在返回的同时会给与用户一组援护码用于获取解锁密码(详细内容见援护码部分)。声纹部分使用注意事项:A.避免在噪音太大的环境录音。(当信噪比小于5倍,特征曲线将不准确)B.麦克风要避免直接受到嘴巴气流的冲击!(气流直接冲击麦克风会导致特征曲线残缺不齐)C.录音的起点与结束点必须包含整个句子(或单

12、词)。声纹识别用户界面说明:援护码: 由于在使用过程中存在各种突发状况用户无法通过系统认证(忘记密码,声音设备无法正常工作等),特别设计了援护码功能,获得援护码的方法是点击动态密码界面左上方的“援护码”按钮或者在声纹认证界面点击“返回”按钮,系统将随机产生一个整型数,用户只要将此整型数通过手机短信发送给开发商,将获得一组解锁动态密码,将此解锁密码通过动态密码输入器输入系统,将跳过动态密码及声纹识别部分直接登入系统。特别的,返回的解锁密码的长度及内容都是不相同的,而且即使同一个援护码申请多次解锁密码也会获得长度和内容完全不同的解锁密码。当用户处于特殊状况被迫登陆系统时,可以将获得的援护码加20发

13、送给解锁码演算程序,解锁码演算程序会发出用户处于危险状况的警报,同时给用户发送一组伪解锁密码,用户用该组密码依然能正常登陆系统,但是系统将处于非正常工作状态。相关技术说明:援护码按钮被点击后,系统将从事先准备好的集合中随机抓取一个数,当用户将该援护码发送给解锁码演算程序时,演算程序实际上是对援护码进行了代数分解,然后将其返还给用户,当用户输入的解锁密码符合分解规则时,系统将跳过声纹识别直接登陆系统。当用户将援护码加20发送给解锁码演算程序时,解锁码演算程序将认为用户出去非常状态,发出警报,同时将该援护码进行标示处理并进行分解,然后返还用户,用户输入此伪解锁码后,系统将显示登陆成功。但是wind

14、ows将处于非正常工作状态。关于援护码的产生:int x;time_t t; srand(unsigned) time(&t); x = rand() % (40 - 20 + 1) +20; x.ToString();其他相关:如果用户多次录入仍然未通过验证,系统会给出一个简单的使用提示帮助。4、开发环境VC+ 20055、运行环境 Windows xpMicrosoft .NET Framework SDK v2.0声卡声音输入设备(麦克风等)附:相关API原型及参数创建进程BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCo

15、mmandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes。 LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation );lpApplicationName:为执行程序的文件名,如果在创建进程

16、时要使用参数,则该参数可以为NULL。 lpCommandLine:为参数行,如果无参数可以为NULL,在有参数传递给进程时如下设置:lpApplicationName=NULL;lpCommandLine=para。 lpProcessAttributes,lpThreadAttributes:分别描述了创建的进程和线程安全属性,如果使用NULL表示使用默认的安全描述。 bInheritHandles:表示当前进程中的打开的句柄是否能够被创建的子进程所继承。 dwCreationFlags:表示创建标记,通过该标记可以设置进程的创建状态和优先级别。常用的有下面的标记: CREATE_NEW_

17、CONSOLE:为子进程创建一个新的控制台。 CREATE_SUSPENDED:子进程在创建时为挂起状态。 HIGH_PRIORITY_CLASS/NORMAL_PRIORITY_CLASS:高/普通优先级别。 lpEnvironment:表示子进程所使用的环境变量,如果为NULL,则表示与当前进程使用相同的环境变量。 lpCurrentDirectory:表示子进程运行的初始目录注册表键值打开LONG RegOpenKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);

18、hKey:主键,可以是预定义的键值,如HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS 这几个。lpSubKey:子键,指向一个字符串。当这个字符串为空或这指针为NULL时,他会打开hKey的值。ulOptions:保留。samDesired:一种权限,如常用的查询权限KEY_QUERY_VALUE,用于创建子键的KEY_CREATE_SUB_KEY,用于写的权限KEY_SET_VALUE等。phkResult:一个句柄,就像CreateEvent一样,返回了一个打开的注册表键,用完了就用它来关闭。返回值表示成功

19、或失败,成功则ERROR_SUCCESS,其他则表示出了些问题,在Winerror.h中定义。注册表键值创建LONG RegCreateKey( HKEY hKey, LPCTSTR lpSubKey, PHKEY phkResult);hKey: 与RegOpenKeyEx相似lpSubKey: 要创建的子键的字符串。该值不可以为NULL,也不可以含有反斜线,而且是不区分大小写的phkResult:句柄,用于之后的操作注册表键值修改LONG RegSetValueEx( HKEY hKey, LPCTSTR lpValueName, DWORD Reserved, DWORD dwType,

20、 const BYTE* lpData, DWORD cbData);hKey:目标键的handle。lpValueName:值名称。NULL、空字符串都会导致一个匿名属性。Reserved:数保留。dwType:表示值的类型,常用的有二进制REG_BINARY、DWORD类型REG_DWORD、字符串REG_EXPAND_SZ等。lpData:值内容。cbData:值内容的大小,sizeof即可,不过当是字符串的时候,记得加1,来表示结尾符。声音处理控件接口1.Rocord 录制(true 或 false)true 开始录音,false 停止录音(结束录音的同时分析声纹的相似度)。(这个函数允许用户人为控制录音的开始与结束)。2.Establish

温馨提示

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

评论

0/150

提交评论