密码认证(共4篇)
密码认证 篇1
摘要:针对网络密码认证中存在的风险, 提出一种基于浏览器的密码安全认证方法。该方法利用Windows消息传递机制和浏览器插件的特点并引入钩子技术、散列函数, 从而保护用户密码认证安全, 并为每一个站点生成惟一的认证密码。
关键词:浏览器插件,密码认证,钩子技术,散列函数,网络钓鱼
随着网络的快速发展, 各种各样的黑客攻击层出不穷, 对用户和网络造成巨大的安全风险。由于绝大多数网站采用表单提交密码的方式认证用户身份, 进而为之提供个性化服务, 一旦黑客通过某些技术窃取用户密码等重要信息, 那么黑客便可以用户合法的身份登录窃取用户信息等资料。密码认证安全的研究有2个方向, 一是基于客户端, 二是有服务器端参与。目前, 国内基于客户端的研究较少, 研究领域集中在交互协议方面来保护认证密码安全, 如一次性密码认证协议[1];国外在密码认证安全领域的研究有PwdHash[2]、Spoofgard[3]和Spyblock[4]等。在服务器的参与下, 引进交互认证协议可以较好地保护用户认证密码的安全, 但实际中各服务站点不可能全部支持该协议。为此, 本文分析国外几种基于客户端研究的优、缺点, 提出一种浏览器插件形式的客户端密码认证安全方法。
1 网络攻击
1.1 弱密码攻击
面对众多的Web服务网站, 用户为了便于记忆, 通常对不同网站设置易记且相同的密码, 由于网站安全等级参差不齐, 所以当用户在某网站的认证密码被窃取后, 在其他网站的信息安全也可能遭到威胁。认证密码的复杂度在一定程度上影响用户在该网站的信息安全, 甚至是其他网站的信息安全, 虽然一些网站在用户登录认证时, 用MD5对用户的密码进行散列处理, 但通过离线的字典攻击, 用户的明文密码仍能被破解。
1.2 键盘记录攻击
为了窃取用户的密码等信息, 运行在用户主机上的恶意程序利用挂钩监控原理都具备键盘记录功能, 其能够记录用户按键信息或浏览器页面密码栏中的数据, 直接或间接发送给黑客, 从而使得黑客窃取用户的密码等重要信息。以木马攻击为例, 它是目前最常见的键盘记录的载体, 能够控制对方的鼠标、键盘等, 能够监视屏幕显示信息、文件传递信息, 控制对方信息的发送和接收等。
1.3 Java Script脚本攻击
在文档对象模型 (DOM) 和其他浏览器的帮助下, Java Script能够完善客户端功能和网页的外观, 使网页更具有吸引力、互动性和较快响应速度。但是Java Script超强的能力也会给用户带来许多不便及安全威胁。一方面, 它能降低用户上网体验, 如弹出广告窗口和篡改浏览器配置;另一方面, 它又能被黑客利用窃取用户的敏感信息, 例如钓鱼攻击[5]。特别是在钓鱼攻击中, 它常被用来伪装钓鱼网站迷惑用户, 从而使黑客能够成功诱骗用户密码等敏感信息。用此种攻击的方式有键盘监视、窃取表单域、“域重写”等。
1.4 网络钓鱼
网络钓鱼通常利用含有虚假链接的电子邮件引诱用户访问一些和真实站点外观几乎一样的Web站点来进行网络诈骗, 意图引诱受骗者泄露自己的私人资料, 如信用卡号、银行卡密码、身份证号等内容[5]。钓鱼网站为了增强自身的可信度通常采用一些脚本技术隐藏容易暴露的线索, 例如, 修改URL、制作虚假的SSL、修改状态栏等。另一种形式的钓鱼攻击 (Spear Phishing) 能够向特定的组织或其内部员工发送电子邮件, 这种攻击效率更高, 且不易被反钓鱼工具捕获。当黑客“控制”了用户访问网站的习惯后, 使得用户增强了对网站的信任, 那么钓鱼攻击的成功率就会大大提升。
网络中还有其他攻击, 如嗅探攻击、会话劫持、“域中毒”、ARP欺骗攻击等, 这些攻击需要服务器的参与。
2 理论基础及相关技术
越来越多的服务商选择B/S架构, 通过用户密码识别用户身份, 为用户提供个性化服务。由于用户密码是用户身份识别的惟一标识, 拥有该密码就意味着拥有该账户的合法身份, 因此用户密码成为黑客攻击的首要目标。
2.1 浏览器插件
浏览器插件BHO是微软公司推出的作为浏览器对第三方程序员开放交互接口的业界标准, 是实现特定接口的COM组件。借助于BHO, 可以编写一个进程内COM对象, 注册于注册表中Browser Helper Object键下, 这个对象在每次启动时都会加载该对象, 这样该对象就会在与之相同的上下文中运行, 并对可用的窗口和模块进行任何行动, 其通常以工具栏的形式出现在浏览器中。在Browser Helper Object键下列出的每一个CLSID, IE都会在相同的进程空间, 比如在浏览器中, 调用Co Create Instance来启动一个新的BHO实例。如果这个BHO已经注册了自己的CLSID并且实现了IObjectwithSite接口, 那么这个被IE启动的BHO就传递了一个指针给IE浏览器的I-WebBrowser2接口。
通过这个接口, BHO可以控制并收到来自IE浏览器的事件及行为, 比如“后退”“前进”“刷新”等。利用BeforeNavigate2事件获取IE当前加载的URL, 提交的Data, 并且可以控制是否继续刷新页面。程序员也可以用代码控制浏览器行为及当前页面DOM的数据, 比如用户在表单栏中的数据。此外, BHO还能够安装钩子以监控一些消息和动作。本文就是利用BHO这个特性安装钩子程序, 进而抵御键盘记录等恶意软件对用户密码的攻击。
2.2 钩子技术
钩子 (Hook) 是Windows平台上的一种Windows消息处理机制, 它可以设置子程监视指定窗口的某种消息。当特定的消息发出, 在没有到达目的窗口前, 钩子程序就先捕获该消息, 即钩子函数先得到控制权。这时钩子函数既可以加工处理 (改变) 该消息, 也可以不作处理而继续传递该消息, 还可以强制结束消息的传递或发送一个其他消息到目的地。根据钩子对消息监视范围的不同, 分为系统钩子和线程钩子2类, 且线程钩子的优先级别高于系统钩子, 线程钩子只能监视本进程中某个指定线程的事件或消息, 系统钩子监视系统中所有线程的事件或消息。钩子子程是一个应用程序定义的回调函数, 编写好相应的功能函数后, 利用Set Windows Hook Ex () 函数便可以指定钩子、监控事件及钩子类型等。为了不影响用户获取键盘消息, 本文采用线程钩子, 也就是线程钩子只监视浏览器页面内的击键消息。
2.3 散列算法
散列算法就是把任意长度的输入通过一个不可逆的散列算法, 变换成固定长度的输出。由于Hash算法是单向的, 一旦数据被转换, 就无法再以确定的方法获得其原始值, 因此, 除了应用于数字签名外, 也广泛应用于加密和解密技术, 典型的算法如MD5和SHA-1。理论上无法从散列值恢复出原文信息, 但黑客通常使用“跑字典”的方式来破解散列值, 其成功率较高。为此, 本文采用带密钥的散列函数hmac_md5 (pwd, key) 对用户密码进行散列, 从而提高抵抗“跑字典”攻击的能力。密钥key选择了当前站点域名作为哈希密钥。在钓鱼页面中, 输入的密码将会和钓鱼页面的域名进行哈希运算, 而在合法页面中的密码和合法页面的域名哈希, 由于二者域名不同, 因此哈希值也不同, 结合密码指示灯便可更直观地警示用户输入密码时是否安全。
3 设计体系及流程
其由一个继承IObjectWithSite的COM组件、一个作为IE工具栏加载的接口以及其他几个响应工具栏组件的模块组成, 2个窗口类实现CWindowImpl的接口来定义工具栏的外观和用户交互的界面, 见图1。
Warn Bar, 当用户提交表单时检查表单action的值是否改变, 如果改变则向用户提示;Reflection Wnd, CWindowImpl类实现了一个透明窗口, 用来将用户消息传递到弹出的警示窗口;Pwd Tool Bar, CWindowImpl类定义了密码助手在工具栏中出现的形式, 用户的预置信息便保存在其中, 最后存储在注册表中。Warn Bar需要Pwd Tool Bar的信息来决定密码指示灯的颜色。
当IE浏览器启动后, 它调用IObjectWithSite接口中的SetSite方法初始化密码助手, 密码助手收到一个指向网页浏览器对象的指针, 并通过ReflectionWnd和Pwd Tool Bar使密码助手不断检查内容浏览器事件。IE的DWebBrowserEvents2类导出BeforeNavigate2和Document Complete事件处理程序。因为BeforeNavigate2事件发生在navigate事件之前, 这就使得Warn Bar在浏览器跳转之前获取表单的URL并有机会取消跳转页面。当键盘钩子侦测到密码键或密码前缀时, 密码助手判定当前活动元件是否是密码型控件, 若不是, 则警告用户;若是, 则密码助手截取所有键盘输入的可打印字符, 直到焦点离开该密码型元件域。键入的字符将会存放在密码助手指定的内存中, 当侦测到焦点离开密码型元件域后, 然后结合预置信息对用户键入的密码进行散列加密运算, 并放在该地址的内存中。这样也允许用户在密码栏中回退、删除密码, 而不会导致数据出错, 也不会影响用户上网体验。
在用户提交表单之前, 密码栏中一直存放的是键盘钩子返回的伪字符串 (并不是用户在该网站的真实认证密码) 。当用户提交表单时, 密码助手便可利用BeforeNavigate2处理程序拦截提交事件。由于IE浏览器不允许密码助手在BeforeNavigate2处理程序中直接编辑表单数据, 因此就需要撤销原始BeforeNavigate2事件, 并创建一个含有用户真实密码数据的新BeforeNavigate2事件。密码助手包含这么一个数据结构, 即用于识别BeforeNavigate2事件是被密码助手撤销, 还是被用户撤销, 避免密码助手重复转换表单中的数据, 使之进入死循环。
4 功能测试与分析
在IE浏览器6.0上安装密码助手后, 经测试, 键盘记录软件、脚本捕获的是伪字符串。在钓鱼攻击中, 假定http://localhost/Tlogin.aspx为真实网站, http://localhost/Flogin.aspx为钓鱼网站, 输入相同的认证密码登陆后, 发现数据库中存放了2个不同的散列值, 结果符合开发初的构想。将国外2个同类软件与密码助手对比分析可以得出, 密码助手优于其他2个软件 (见表1) 。
总之, 本文旨在研究一种基于客户端的密码认证安全的方法, 利用底层钩子优先捕获击键事件, 而浏览器插件最后捕获页面事件的特性, 设计了一种能够有效保护用户认证密码, 使其不受本地键盘记录、网页脚本、网络钓鱼等攻击的插件。鉴于Web服务的不确定性, 本文的设计未与服务器进行信息交互, 所以其还不能抵御网络嗅探、会话劫持、“域中毒”等攻击, 这也是本课题以后要研究的内容。
参考文献
[1]Bin Li, Shaohai Hu.A practical one-time password authentication im-plement on Internet[C].Hangzhou, 2006.
[2]Blake Ross Collin, Jackson Nick, Miyake.Stronger Password Authenti-cation Using Browser Extensions[EB/OL].http://crypto.stanford.edu/Pwd-Hash, 2008-12-20.
[3]Neil Chou, Robert Ledesma.Client-side defense against web-based i-dentity theft webspoof[EB/OL].http://crypto.stanford.edu/webspoof, 2008-03-25.
[4]Collin Jackson, Dan Boneh, John Mitchell.Spyware Resistant Web Au-thentication Using Virtual Machines spyblock[EB/OL].http://crypto.stan-ford.edu/spyblock/spyblock-2.pdf, 2008-12-30.
[5]Legon, Jeordan.“Phishing”scams reel in your identity[EB/OL].http://www3.cnn.com/2003/TECH/internet/07/21/phishing.scam, 2009-01-10.
基于图形密码的身份认证 篇2
关键词:图形密码,身份认证
1 引言
身份认证是对系统中的主体进行验证的过程,用户必须提供他是谁的证明。在现实生活中,我们每个人的身份主要是通过各种证件来确认的,比如:身份证、学生证、户口本等。在电子世界认证一个用户的身份主要采用四种方法,一是,根据用户知道什么。如借助口令验证,通过提问验证等。二是根据用户拥有什么。如用磁卡和个人识别卡PIN一起使用。三是根据用户的生物特征。验证用户具有哪些生理特征,如指纹、声音、视网膜纹路、声音、脚印、容貌等。四是根据用户的下意思动作。不同人的同一个动作会留下不同的特征,如手写签字。目前也常常采用上面的几种方式联合认证用户,如用户是否具有银行卡,是否知道密码,更高级的是再采用一个验证码,只有知道密码,知道验证码的用户才能通过验证。
2 常见的身份认证模式
用户名/密码模式:它是采用身份认证的第一种方法。每一个合法用户都有系统给的一个用户名/口令对,当用户要求访问提供服务的系统时,系统就要求输入用户名、口令,在收到口令后,将其与系统中存储的用户口令进行比较,以确认被认证对象是否为合法访问者。如果正确,则该用户的身份得到了验证。由于每个用户的密码是由这个用户自己设定的,只有他自己才知道,因此只要能够正确输入密码,计算机就认为他就是这个用户。
IC卡认证模式:它是采用身份认证的第二种方法。IC卡是一种内置了集成电路的卡片,卡片中存有与用户身份相关的数据,登录时必须将IC卡插入专用的读卡器中读取其中的信息,以验证用户的身份。
动态口令模式:它也属于身份认证的第一种方法。它是指在认证时由服务端随机生成一个随机数,该随机数的生成时间一般为一分钟,并传到用户的手机或者其他设备上,用户输入该随机数来完成验证过程。
USB Key认证模式:它主要采用挑战/应答模式或者PKI体系模式。基于USB Key的身份认证方式是一种方便、安全、经济的身份认证技术,它采用软硬件相结合、一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。
生物特征认证模式:它是利用人体的生物特征 (如指纹、虹膜、脸部、掌纹等) 为依据,采用计算机的强大功能和网络技术进行图像处理和模式识别。从理论上说,生物特征认证是最可靠的身份认证方式,因为它直接使用人的物理特征来表示每一个人的数字身份,几乎不可能被仿冒。
3 基于图形密码的身份认证
用户名/密码模式是最简单的认证机制,其认证的识别过程如下:
(1) 用户将口令传送给计算机; (2) 计算机完成口令单向函数值的计算; (3) 计算机把单向函数值和机器存储的值比较。
然而,基于口令的认证方法存在下面几点不足:
第一、用户每次访问系统时都要以明文方式输入口令,这时很容易泄密。第二、口令在传输过程中可能被截获。第三、系统中所有用户的口令以文件形式存储在认证方,攻击者可以利用系统中存在的漏洞获取系统的口令文件。第四、用户在访问多个不同安全级别的系统时,都要求用户提供口令,用户为了记忆的方便,往往采用相同的口令,因此存在两个问题,一是不容易记忆,二是也容易受到攻击。图形密码能有效的回避口令认证带来的问题。基于图形密码的身份认证也属于第一种认证方式,它避免了文本密码的缺点,不仅容易记忆,也不容易被攻击,我们知道目前没有什么软件能够通过图灵测试,因此图形密码也能抵抗目前的病毒的攻击。图形密码主要分为识别型图形密码和回忆型图形密码。识别型图形密码是由系统从图案库中随机产生一组图片,用户从中选择并记住某些图片,认证时需要识别曾经记住的图形。回忆型图形密码则是要求用户重复以前设定的一个过程,如事先要求在用户一个图形上预先按顺序点击一些位置,在身份验证阶段则要求重复此过程。
下面是一种基于图形密码的身份认证方案。
在注册阶段:用户注册时完成用户名选择,接着用户根据自己的爱好选择合适的图像上传给系统,用户接着通过选择图像上的不同位置产生一个密码,系统在服务器端保存用户名、用户图像和相应的密码等参数完成注册过程。
客户端主要完成: (1) 实现用户注册; (2) 向服务器端发送登录请求; (3) 向服务器端提交认证图形; (4) 修改用户的注册信息。
服务器端主要完成: (1) 保存用户的注册信息; (2) 验证用户ID的合法性; (3) 验证用户的提交的认证图形; (4) 用户注册信息管理。
在登陆阶段,用户输入用户名以及通过登陆图像输入登陆密码。在服务器端,系统根据用户名查找出与之关联的图像 (用户注册过程中选定的图像) ,进行显示以供用户输入密码。为了提高安全性,系统也可以要求用户多幅图像中选择自己注册时所选定的图像。
4 结语
图形密码的特点是便于记忆,与文本密码相比,具有保密性高、难以破解等优点,图形密码能够提供比文本密码更强的安全性。本文给出了一种图形密码的认证方案,用户通过点击图中设置的位置来完成认证。
参考文献
[1]Birget J C, Hong D, Memon N.Graphical Passwords Basedon Robust DiscretizationIEEE Transactions on Information Fo-rensics and Security, 2006, 1 (3) :395-399.
密码认证 篇3
关键词:文件夹加密,Eigenface人脸识别,DES密码认证,双重身份认证
0 引言
当今信息社会,计算机文件已成为当前人们保存日常信息的重要载体,而文件夹又是计算机系统进行文件组织和管理的重要形式。如何控制、保护文件夹信息资源成为一个极其复杂而且富有挑战性的问题。身份认证是安全信息系统的第一道屏障,由于目前广泛使用的密码认证等方式自身存在固有的弱点[1]导致该技术面临着严峻的挑战,已显得越来越不适应现代科技的发展和社会的进步,需要一种更加方便可靠的方法进行身份认证。
在不同的身份认证方法中,人脸识别有其自身特殊的优势[2],在身份认证系统中有着重要的地位:
(1)非侵扰性。人脸识别无需干扰人们的正常行为就能较好地达到识别效果,无需担心被识别者惧怕麻烦的预定使用规范。
(2)采集设备简单,使用快捷。
(3)人脸识别身份认证,人和机器都可以使用人脸图片进行识别,使得人和机器可以配合工作。
但是,单纯的人脸识别认证,仍然存在一些隐患。为了解决传统密码或单纯生物特征在身份认证中存在的安全问题,本文针对文件夹设计了基于人脸识别和密码双重身份认证的文件夹加密方法。旨在利用传统密码认证和人脸识别双重身份认证来提高加密强度,有效保证用户的文件夹信息安全。
1 基于人脸识别和密码认证的文件夹加密方法
基于人脸识别和密码认证的文件夹加密方法主要包括人脸识别和口令加解密两部分。
人脸识别技术就是利用计算机分析人脸图像,从中提取有效的识别信息,用来辨认身份的一种技术。本方法中人脸识别认证部分作为先于密码的第一层认证,主要通过四个功能依次完成。
(1)图像的采集:采用摄像头实时抓取图像。
(2)人脸检测:采用Adaboost实时人脸检测算法从输入图像中检测出人脸。
(3)人脸化简和特征提取:主要包括子图像的灰度化和大小的归一化。
(4)人脸识别:采用Eigenface算法,根据已知的人脸信息判断待识别的人脸是否属于系统中的已知用户。
口令加解密采用传统口令加密技术对文件夹进行手动加解密,其优点是软件容易实现,并且操作简单。人脸识别认证作为文件夹加解密的第一道安全屏障,在通过人脸识别认证的情况下,才能进入下一步的加解密认证。本方法的结构如图1 所示。
1.1 人脸识别
1.1.1 图像实时采集和化简
Open CV[3]是Intel®开源计算机视觉库。它由一系列C函数和少量C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。Open CV对Adaboost人脸检测算法、Eigenface本征脸人脸识别算法都有比较完整的实现[4,5]。
利用Open CV摄像头驱动程序,实时驱动摄像头采集用户上半身的正面图像,将采集到的图像保存起来作为后续人脸检测和识别的源图像。
为了给人脸识别提供归一化的人脸图像,需要对人脸检测到的人脸图像进行化简。归一化主要包括直方图均衡化、图像的灰度化和尺寸的归一化。直方图均衡化主要是为了增强图像以初步消除光照的影响。灰度化和尺寸归一化则是为了计算的速度和方便。
1.1.2 基于Adaboost的人脸检测
人脸检测是指在输入图像中确定所有存在的人脸的位置、大小、姿势的过程。近年来出现了大量的人脸检测方法,但是各种方法都有一定的不足。本方法采用的是一种基于Adaboost的人脸检测算法[6],该算法建立了第一个真正实时的人脸检测系统,从根本上解决了检测速度的问题,同时也有较好的检测效果。
Adaboost人脸检测方法是基于Harr_Like特征、积分图、Adaboost算法的实现方法[7,8]。算法的基本思想是:给定一个弱学习算法和一个训练集,其中,Xi是输入的训练样本向量,Yi是分类的类别标志。由于人脸检测的任务是判断某幅图像是否是人脸图像,因而可以视为二分类问题。初始化时,对所有训练样本均赋予一个相同的权重,然后用该弱学习算法对训练样本集进行T轮训练。在每一轮训练结束后,对训练失败的样本赋予较大的权重,以便让学习算法在后来的学习中主要对比较难的训练样本进行学习。这样,就可以得到一个预测函数序列,其中,预测效果比较好的预测函数的权重较大。最终的预测函数 β 采用一种有权重的投票方式产生。
Adaboost方法基于弱学习模型(Weak Leaning Model),它假设存在弱学习算法,这些算法获得分类器的预测能力只比随机预测好一些,通过推进弱学习算法,从而得到任意高精度的分类器。Adaboost训练强分类器的算法描述如下。
(1)给定训练样本集:
式中:xi表示样本特征向量;yi表示训练结果,yi= 0 表示样本为负样本,yi= 1 表示样本为正样本;n为训练样本的总量。
(2)初始化样本权重wl,i,即训练样本的初始概率分布。样本的权重初始化为。
(3)对于t=1,2,⋯,T(T为迭代次数)。
①归一化样本的权值公式为:
② 对于每一个特征j,调用弱学习算法,训练一个弱分类器hj,计算该分类器的错误率gf。
③ 选择拥有最小错误率的最佳弱分类器。
④ 按最佳弱分类器,重新调整样本的权重。
式中:ei= 0 表示x被正确地分类;ei= 1 表示x被错误地分类。这样就可以增大分类错误样本的权重,降低分类正确样本的权重,下一次迭代时弱分类器的选择就会重视上一次分类错误的样本。
(4)最后生成强分类器。
最后在确定人脸的具体位置时,将循环遍历图像得到的由预测函数判断为人脸图像的各个图像子区域求均值,所得到的区域便是人脸所在的具体位置。
1.1.3 Eigenface人脸识别
目前,对于人脸识别学者已经提出了相当多的识别算法[9]。其中基于PCA主成分分析方法的Eigenface[10⁃11]人脸识别方法识别原理简单、识别速度快,适用于对识别准确度要求不是很严格的实时环境下的人脸识别场合。
Eigenface特征脸是从PCA主成分分析方法导出的一种人脸识别技术。它将包含人脸的图像区域看作一个随机向量,将所有的训练样本图像组合起来形成一个生成矩阵,然后采用KL变换得到正交KL基,对应其中较大特征值的基具有与人脸相似的形状,因此又被称为特征脸。
利用这些正交KL基的线性组合可以描述、表达和逼近人脸图像,可进行人脸识别与合成。识别过程就是将人脸图像映射到由特征脸组成的子空间上,并比较其在特征脸空间中的位置,然后利用对图像的这种投影间的某种度量确定图像间的相似度,最常见的就是选择各种距离函数进行度量分类实现人脸识别,采用欧几里德距离计算。为了提高识别速度,在选择正交KL基时,可根据生成矩阵特征值的大小将对应的正交KL基排序。选取能代表训练样本基本信息的前面若干个正交KL基作为特征脸子空间。这样在不明显损失信息量的情况下进一步达到降低维度的目的,减少运算复杂度,其算法流程如图2 所示。
1.2 口令加解密
采用著名的对称密钥加密算法——DES数据加密算法[12]。递归遍历待加密文件夹的每个文件,针对各种类型的文件,统一采用字符串读取方式加载到内存中,经过DES加密后的文件信息写入到另外一个和原文件路径和名称相同但类型不同的(利用MFC的文档注册机制指定的类型)文件中,加密成功后将原文件删除。为了解密时能够正确恢复原文件,系统采用统一的格式将原文件的完整路径信息、类型信息和密码保存在加密后的文件的头部。
为了避免对文件夹重复加密,需要将已加密文件夹的路径统一保存起来。每当系统开始运行,就加载已加密文件夹的路径信息到内存中,将当前路径信息和内存中的路径信息比较,如果前者和后者的某一项相等,或者后者某一项是前者的子字符串(当前路径是某个已加密文件夹路径的子路径,也即子文件夹或者子文件),则说明当前路径已经加密,不再提供加密服务。每当系统退出时就将加密路径记录持久化到特定文件中。
解密时首先解析文件头信息,得到原文件路径、类型信息和原密码,然后递归解密每个文件。
2 实验和分析
2.1 实验平台
在Windows XP平台上,以Visual Studio 6.0 为开发工具,用C++开发语言结合Open CV 1.0 视觉开源库,利用MFC框架实现具有文档视图结构的原型系统[4]。
2.2 实验数据
原型系统采用的是ORL人脸库。该库是目前使用最广泛的标准数据库,它含有大量的比较结果。在此基础上,在网上收集并整理了16 个具有代表性的人脸,每个人有10 张图片,作为备用人脸库。其中人脸部分表情和细节均有变化,例如笑与不笑、眼睛睁着或闭着,戴或不戴眼镜等,人脸姿态也有变化,其人脸尺寸也有变化。这些图片通过编写的人脸图片预处理程序统一来实现图片的归一化。归一化的步骤包括人脸的检测。这是为了在尺寸固定(92×112)的图片上保存更多的人脸信息,避免那种背景区域很多人脸很小的情况。检测出来的人脸经过尺寸归一化和灰度化,最后还要进行直方图均衡化以便尽量消除光照的影响。
2.3 实验结果及分析
运行原型系统,对于文件夹E:Test图片,解密时进行人脸识别认证的效果如图3 所示。
对于文件夹E:Test图片,文件夹解密处理时的效果如图4 所示。
对于文件夹E:Test图片,加密前后的效果如图5所示。
实验结果表明:人脸识别认证准确率要比Eigenface用在人脸识别静态测试[5]时的准确率要低。其原因是在实时获取人脸图像时,由于用户的运动特性,抓取到的图像难免因位移现象而导致图像模糊,影响识别效果;文件夹的合法用户能够容易的通过人脸识别验证,非法用户不易通过验证;最后,就系统整体来说,人脸识别的漏检率高于错检率。口令认证阶段还可以弥补漏检率偏高的缺陷,使系统总体上安全性比较高。
3 结语
本文提出了一种基于人脸识别和密码认证的文件夹加密方法,并实现了基于Eigenface人脸识别、DES密码认证和用户接口组成的原型系统。经过系统测试和运行,证明该方法安全性较高,是一个安全可信的文件夹加解密方案。
另外,为了进一步提高其安全性和实用性,可作适当改进。首先,可考虑加入光照消除算法来改善人脸检测和人脸识别的效果,或者也可以考虑其他更好的识别算法。其次,加解密时,DES算法针对所有的文件字符信息速度比较慢,可考虑采用基于文件夹的整体加密,在文件夹层次上实现消息拦截从而实现加解密。
参考文献
[1]向元平,宁子岚.基于人脸识别的双因素身份认证系统的设计与实现[J].计算机测量与控制,2009,17(5):959-961.
[2]肖冰,王映辉.人脸识别研究综述[J].计算机应用研究,2005(8):1-5.
[3]于仕琪.Open CV中文网站[EB/OL].[2006-01-27].http://www.opencv.org.cn/index.php/%E9%A6%96%E9%A1%B5.2009.10.
[4]HEWITT R.Seeing with Open CV,part 2:finding faces in images[EB/OL].[2007-04-11].http://www.cognotics.com/opencv/servo_2007_series/part_2/index.html.
[5]HEWITT R.Seeing with Open CV,part 5:implementing Eigenface[EB/OL].[2007-05-23].http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html.
[6]VIOLA P,JONES M.Rapid object detection using a boosted cascade of simple features[C]//Proceedings of 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.[S.l.]:IEEE,2001:511-518.
[7]梁路宏,艾海舟,徐光档,等.人脸检测研究综述[J].计算机学报,2002,25(5):449-458.
[8]VIOLA P,JONES M.Robust real-time face detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[9]严严,章毓晋.基于视频的人脸识别研究进展[J].计算机学报,2009,32(5):878-886.
[10]TURK M A,PENTLAND A P.Face recognition using Eigenfaces[C]//Proceedings of 1991 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Shanghai,China:IEEE,1991:586-591.
[11]ZHOU S H,RAMA C.From sample similarity to ensemble similarity:probabilistic distance measures in reproducing kernel Hilbert space[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2006,28(6):917-929.
密码认证 篇4
由于无线传输介质的开放性, Wi MAX技术自提出之初, 其安全问题就成为其能否成功商用和可运营的关键。无线网络的安全威胁包括网络窃听、未经授权使用服务、拒绝服务 (Denial of Service, Do S) 攻击、非法基站、非法篡改数据和重放攻击等。鉴于上述安全威胁, Wi MAX安全技术的重点是用户及设备的身份鉴权及授权、数据的保密性和数据的完整性保护等方面, 以保证网络资源的合法使用。
为此, 本文提出了一种更高效、更安全、基于椭圆曲线公钥密码体制[1,2,3,4,5] (Elliptic Curve Cryptography, ECC) 的认证和授权方法。
1 ECC数学基础
1.1 椭圆曲线
设K为一个给定域, 椭圆曲线E由下述Weierstrass方程定义
其中, a1, a2, a3, a4, a5, a6∈K且Δ≠0, Δ是E的判别式, 具体定义如下
若L是K的扩域, 则E上的L有理点数的集合是有理数点的集合:
椭圆曲线上的两点可以进行点加运算。具体的群运算规则如下: (1) 单位元。对于所有的P= (x, y) ∈E (K) , P+O=O+P=P。 (2) 负元素。若P= (x, y) ∈E (K) , 则 (x, y) + (x, -y) =O。记点 (x, -y) 为-P, 称其为P的负。-P也是E (K) 上的一个点, 且-O=O。 (3) 点加。令P= (x1, y1) ∈E (K) , Q= (x2, y2) ∈E (K) , P≠±Q, 则P+Q= (x3, y3) 。其中。 (4) 倍点。令P= (x1, y1) ∈E (K) , P≠-P, 则2P= (x3, y3) 。其中
1.2 椭圆曲线离散对数问题ECDLP
讨论椭圆曲线上的点乘运算k P, 其中, k为一个整数;P为定义在域GF (q) 上的椭圆曲线E上的一个点;阶为n, k∈[0, n-1]。ECDLP是已知Q=k P, 则称求解k为Q的基于P的离散对数问题, 表示为k=logPQ。合理选取椭圆曲线参数, 有效防止各种攻击, 这样的ECDLP才会被认为相对于现在的计算水平是难解的。椭圆离散对数问题是构造椭圆曲线密码ECC的数学基础。
2 Wi MAX认证授权机制分析
认证与授权是实现对用户进行授权的一个基础, 只有通过认证的合法设备和用户, 才被允许接入网络, 使用网络资源, 访问网络提供的服务。
2.1 Wi MAX认证授权机制
Wi MAX主要有802.16d和802.16e两个版本, 其安全策略集中体现在支持固定接入的802.16d和支持移动接入的802.16e两个标准的安全子层中。802.16[6]系列标准采用“X.509公钥证书+RSA公钥加密算法”的接入认证方法, 来确认接入者的合法身份, 及保护用户站SS和基站BS之间的密钥交换。
图2是基于RSA的Wi MAX接入鉴权和授权的全过程。整个鉴权认证和授权的工作过程描述如下[7]: (1) 当SS与BS建立无线连接时, SS将自己的数字证书传给BS。 (2) BS检验SS的证书的有效性。 (3) 如果证书鉴权成功, 则BS通过证书提供的公钥使用RSA算法加密授权密钥AK, 然后传递给SS;如果不成功, BS拒绝SS的接入请求。 (4) SS用自己的RSA私钥解密便可以获得AK。认证和授权结束。
2.2 Wi MAX安全策略存在的问题
从Wi MAX的接入鉴权和授权的全过程中可以看出存在以下问题: (1) 存在中间人攻击的危险。在RSA认证中, BS可以认证SS的身份, 而SS不能反向认证BS的身份, 只能无条件地信任BS。攻击者可以利用这一点使用相关设备冒充合法BS, 对SS发起中间人MITM攻击。 (2) RSA存在一定的局限性。RSA公钥加密算法安全性是基于大整数分解的困难性。但小于1 024位的N已经被证明是不安全的, 而且由于RSA算法进行的都是大数计算, 使得RSA最快的情况也比DES慢几倍, 因此, 计算量过大、密钥长度过长是RSA公钥算法最大的缺陷, 通常只能用于加密少量数据或者加密密钥。
考虑到IEEE 802.16系列标准安全框架使用的RSA算法运算量过大、密钥较长等缺陷, 本文旨在提供一种基于椭圆曲线公钥密码的Wi MAX接入认证方法, 作为先有基于RSA公钥的Wi MAX补充接入认证的补充。
3 基于ECC的接入认证方法
3.1 椭圆曲线公钥密码体制
1985年, N.Koblitz和V.Miller将椭圆曲线引入密码学, 成为构造双钥密码体制的一个有力工具, 提出了基于椭圆曲线的公钥密码机制ECC (Elliptic Curves Cryptosystem) , 它是建立在基于椭圆曲线离散对数问题 (ECDLP) 的一种非对称密码安全体制, 具有密钥短小、运算速度快等优点。160 bit长的密钥所具有的安全性和密钥长度1 024 bit的RSA算法所具有的安全性相当[8]。这适合那些存储空间及处理能力有限的设备, 尤其适用于智能卡。
作为一种公钥密码, 椭圆曲线密码不仅有较好的安全性, 而且利用椭圆曲线离散对数问题可以同时构造3种基本形式的公钥体制, 即公钥加密体制、密钥交换协议和数字签名方案等。
3.2 认证授权过程改进
前文中提到, Wi MAX安全策略集中体现在802.16标准的安全子层中。本方法就是在安全子层中增加一种基于椭圆曲线ECC的Wi MAX接入认证方法, 作为现有基于RSA公钥的Wi MAX补充接入认证补充, 体现在鉴权认证过程中就是用ECC加密算法替代RSA加密算法。此外, 本设计还根据802.16标准只能单向认证的实际, 在授权响应中增加了BS的证书, 并在其中附加了BS的签名, 实现了SS和BS的之间的双向认证。
图2是基于椭圆曲线ECC的Wi MAX接入认证和授权的全过程。整个认证和授权的工作过程详细描述如下: (1) SS与BS建立初始无线连接, SS向BS发送“认证信息消息”, 消息中包含SS的X.509数字证书, 该证书由第三方证书权威机构 (CA) 分配。 (2) BS检验SS发送的证书信息。 (3) 如果证书认证通过, BS向SS发送“认证信息消息”, 消息中包含自身的X.509数字证书;如果不通过, BS拒绝SS的接入请求。 (4) SS检验BS发送的证书信息。 (5) 如果证书认证通过, SS向BS发送“授权请求消息”, 请求授权密钥AK;如果不通过, SS拒绝接入该BS。 (6) BS使用SS证书提供的公钥和ECC算法加密授权密钥AK, 在“授权响应消息”中回送给SS。 (7) SS用自己的ECC私钥解密, 从BS处获得的授权密钥AK。至此, 鉴权认证和授权过程结束。
3.3 椭圆曲线加密方案设计
上文描述了接入认证和授权的过程, 其中设计了用ECC算法代替RSA算法实现对授权密钥AK的传输。3.3将具体介绍ECC加密的设计与实现。本设计为Elgamal[9]算法模拟的椭圆曲线加密与解密方案, 是ECC加密在WIMAX认证授权过程中的直接应用。
ECC加密主要用于BS传送授权密钥AK给SS的过程中对AK进行加密。加密过程如下:
(1) 密钥对的生成。从证书导出椭圆曲线参数集D={p, a, b, G, n, h}, 其中p为一个大素数, 如>160 bit的素整数, 指定了有限域GF (p) ;a, b指定椭圆曲线E;G= (x G, y G) ∈E (GF (p) ) 为一个基点;素数n为基点G的阶;h=#E (GF (p) ) /n为协因子整数;#E (GF (p) ) 表示椭圆曲线点群的阶;同时也得到了密钥对 (d, Q) , 其中d是私钥, Q=d G是公钥。
(2) 加密实现。1) 将要加密的AK密钥作为明文, 如果AK长度>n的话就进行分组, 如果长度不够, 则在高字节处填充0。2) 将要加密的安全数据A转换成椭圆曲线方程上的点的横坐标xA, 计算A=xA3+axA+b (mod p) , Q=p, 利用数论相关定理及平方剩余判断算法, 判断大整数A是否模平方剩余数。如果A不是模p的平方剩余数时, 则说明xA不是椭圆曲线上的点, 即不满足椭圆曲线方程等式成立。在最低字节内重新选取xA, 并重复这个平方剩余算法进行判断, 直到满足为止。3) 根据明文安全数据转换成椭圆曲线点的横坐标后, 利用二次同余方程解的计算法, 计算出对应横坐标xA的纵坐标yA。yA的计算如下:如果p具有2u+1, u为奇数形式时, 即满足p≡3 (mod 4) 或p≡7 (mod 8) 时, 椭圆曲线方程的解为yA≡±A ( (p+1) /4) (mod p) ;如果p具有4u+1, u为奇数的形式时, 即满足p≡1 (mod 4) 或p≡5 (mod 8) , 如果A ( (p-1) /4) ≡1 (mod p) , 则yA≡±A ( (p+3) /8) (mod p) ;如果A ( (p-1) /4) ≡1 (mod p) , 则yA≡±2 ( (p-1) /4) ·A ( (p+3) /8) (mod p) ;完成将安全数据编码为椭圆曲线上的点PA= (yA, yA) 。4) 对安全数据编码为椭圆曲线上的点后, 就可能利用BS私钥dR和SS公钥QA对数据进行加密运算。加密计算过程为PA+dRQA=PA+dR (dAG) , 然后将加密后的授权密钥AK在“授权响应消息”中传送给BS。5) 当BS收到“授权响应消息后”时, 使用其私钥dA完成如下计算:PA+dR (dAG) -dA (QR) =PA+dR (dAG) -dA (dRG) =PA;6) 对解密出的点PA中的横坐标xA进行解码处理, 然后将该整数转换成字节串, 即可授权密钥AK来。
4 优点及安全性分析
改进后的安全策略与原策略相比, 具有如下优点: (1) 在安全性相当的条件下可以使用更短, 运算速度快, 占用空间更小的密钥。160 bit长的密钥所具有的安全性和密钥长度1 024 bit的RSA算法所具有的安全性相当, 适合存储空间及处理能力有限的设备, 尤其适合于智能卡。 (2) 设备与基站间的互认证防止中间人攻击。新方法实现了设备与基站之间的互认证机制, 很好地解决了中间人攻击的问题。 (3) 安全性强。椭圆曲线密码体制式建立在一个不同于大整数分解及素域乘法群离散对数问题的数学难题之上。基于大整数分解及离散对数的RSA方案, 数学背景狭窄, 而椭圆曲线方法在同一个有限域上存在大量不同的椭圆曲线, 为安全性增加了额外的保证。
5 结束语
通过对支持Wi MAX的802.16协议的认证授权机制进的研究, 提出一种基于椭圆曲线密码的认证授权方法, 对Wi MAX接入实施增强安全保护。针对802.16协议只能单向认证与ECC密钥长度小、计算速度快等特点, 设计了一个新的认证授权过程与实时有效的ECC加密算法, 使得由该方法实现的认证授权过程完成了双向认证, 克服了存在中间人攻击的不足。所设计ECC算法, 相对于802.16标准中给出的RSA算法, 速度得到了提高, 更适合于一些存储和计算能力有限的移动终端。
参考文献
[1]NEAL K.Elliptic curve cryptosystems[J].Mathematics of Computation, 1987, 48 (5) :203-209.
[2]DARREL H, ALFRED M.Guide to elliptic curve cryptography[M].北京:电子工业出版社, 2005.
[3]卢忱.基于椭圆曲线密码的分组网通信安全与保密[J].计算机工程, 2006 (21) :133-135.
[4]卢忱.有限素整数域椭圆曲线密码体制基于代数几何快速算法设计[J].计算机工程与应用, 2002 (16) :63-65.
[5]卢忱.椭圆曲线加密卡设计与实现[J].计算机工程与应用, 2002 (18) :165-168.
[6]IEEE.IEEE 802.16e-2005 IEEE standard for local and metropolitan area networks-part 16:air interface for fixed broadband wireless access systems-physicaland medium access control layers for combined fixed and mobile operation in licensed bands[S].USA:IEEE, 2006.
[7]张晓宏.WiMAX安全机制[J].信息技术与信息化, 2011 (5) :79-81.
[8]卢忱.基于椭圆曲线方法的医学信息安全与保密研究[D].西安:西安交通大学, 2004.