【Jsp精品源码栏目提醒】:网学会员--在 Jsp精品源码编辑为广大网友搜集整理了:基于动态软键盘的口令认证安全客户端的研究与实现 - 开发文档绩等信息,祝愿广大网友取得需要的信息,参考学习。
基于动态软键盘的口令认证安全客户端的研究与实现 么贻聪 吉林大学 分 类 号TP31 单位代码10183 研究生学号2006532041 密 级公 开 吉 林 大 学 硕士学位论文 基于动态软键盘的口令认证安全客户端的研究与实现 Research and Implementation of a Security Client Based on Password Authentication with Dynamic Soft Keyboard 作者姓名么贻聪 专 业计算机软件与理论 研究方向信息安全 指导教师金成柏 副教授 培养单位计算机科学与技术学院 2009年4月 基于动态软键盘的口令认证安全客户端的研究与实现 Research and Implementation of a Security Client Based on Password Authentication with Dynamic Soft Keyboard 作者姓名么贻聪 专业名称计算机软件与理论 指导教师金成柏 副教授 学位类别工学硕士 答辩日期2009年 5 月 未经本论文作者的书面授权依法收存和保管本论文书面版本、电子版本的任何单位和个人均不得对本论文的全部或部分内容进行任何形式的复制、修改、发行、出租、改编等有碍作者著作权的商业性使用但纯学术性使用不在此限。
否则应承担侵权的法律责任。
吉林大学硕士学位论文原创性声明 本人郑重声明所呈交的硕士学位论文是本人在指导教师的指导下独立进行研究工作所取得的成果。
除文中已经注明引用的内容外本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位论文作者签名 日期2009 年 4 月 2 日 《中国优秀博硕士学位论文全文数据库》投稿声明 研究生院 本人同意《中国优秀博硕士学位论文全文数据库》出版章程的内容愿意将本人的学位论文委托研究生院向中国学术期刊光盘版电子杂志社的《中国优秀博硕士学位论文全文数据库》投稿希望《中国优秀博硕士学位论文全文数据库》给予出版并同意在《中国博硕士学位论文评价数据库》和CNKI系列数据库中使用同意按章程规定享受相关权益。
论文级别■硕士 □博士 学科专业计算机软件与理论 论文题目基于动态软键盘的口令认证安全客户端的研究与实现 作者签名 指导教师签名 2009年 4 月 2 日 作者联系地址邮编吉林大学计算机科学与技术学院130012 作者联系电话 提 要 随着互联网的不断发展越来越多的人使用网上银行但网上银行被盗的情况屡见不鲜尤其是以用户名和口令方式登录的安全隐患较大。
本安全客户端由用户使用动态软键盘输入口令采用基于口令认证的协议来确认用户的身份可应用于网上银行等对安全性要求较高的登陆认证系统能有效提高采用用户名和口令登陆方式的安全性。
本文设计并实现了有效抵御字典攻击的口令认证协议借鉴了EKE等经典协议的思想根据B/S模式下的实际情况精简了认证的步骤减少了交互次数不在本地保存用户的口令或口令的哈希摘要。
采用了对称加密和非对称加密在认证过程中传递的秘密信息是采用高强度加密后的随机数和随机公钥其不带有敏感信息无法通过字典攻击的方式获得口令。
在传输密文的时候还可以防止Denning-Sacco攻击有效地保护用户口令的安全。
本文还使用CSS 和JavaScript实现了一个动态软键盘数字键能够动态排列。
安全客户端系统分为客户端和服务器端在客户端采用动态软键盘输入口令使用被代码混淆过的applet小程序来实现对口令的相应处理。
在服务器端采用
JSP技术配合后台的数据库处理用户的注册请求、认证用户的身份并解密用户传来的密文。
I 目 录 第1章 绪 论.............................................1 1.1 研究背景...............................................1 1.2 国内外研究现状.........................................2 1.3 本文的工作.............................................4 1.4 本文的结构.............................................5 第2章 相关概念和技术.......................................6 2.1 密码学知识.............................................6 2.1.1 密码学的相关概念...................................6 2.1.2 AES算法............................................7 2.1.3 RSA算法............................................8 2.1.4 散列函数...........................................9 2.2 口令认证技术..........................................10 2.2.1 身份认证技术简介..................................10 2.2.2 动态口令认证技术..................................10 2.3 EKE协议..............................................11 2.4 Java的安全架构及其核心API............................12 第3章 安全客户端概述......................................14 3.1 体系结构..............................................14 3.2 主要功能..............................................14 3.2.1 用户注册..........................................15 3.2.2 身份认证..........................................15 3.2.3 密文传输..........................................16 3.3 开发和运行环境........................................17 第4章 安全客户端的安全设计与分析..........................18 4.1 传统客户端的安全威胁..................................18 4.2 用户注册的安全设计与分析..............................21 4.3 基于口令的身份认证协议................................22 4.3.1 EKE等协议在实际应用中的不足.......................22 4.3.2 协议描述..........................................23 4.3.3 协议分析..........................................26 4.4 密文传输的安全分析....................................28 4.5 动态软键盘的安全分析..................................28 4.6 协议实现的安全分析....................................29 4.6.1 客户端协议的实现技术..............................29 II 4.6.2 Applet插件的代码混淆技术..........................30 4.7 与其他登陆认证方式的安全性对比........................32 第5章 安全客户端..............................33 5.1 安全客户端的总体设计..................................33 5.2 动态软键盘................................33 5.2.1 动态软键盘的设计..................................33 5.2.2 动态软键盘的实现..................................34 5.3 用户注册系统..............................35 5.4 身份认证系统..............................40 5.5 密文传输功能的实现....................................44 5.6 数据库的设计..........................................46 第6章 结束语..............................................47 参考文献....................................................48 致 谢....................................................50 摘 要.....................................................1 Abstract.....................................................4 第1章 绪 论 1 第1章 绪 论 1.1 研究背景 随着科技的不断发展信息技术的应用越来越广泛人们已经进入信息化、网络化的时代尤其是互联网的大规模应用使得信息共享变得普遍。
随着互联网的日益成熟电子交易的规模不断扩大网上银行、电子商务等应用已经融入我们的生活之中但开放和信息共享也带来信息安全隐患如何保障交易的安全成为一个亟待解决的问题尤其是客户端的安全性比较脆弱而用户在登陆系统的过程中口令可能被窃取更需要安全的客户端来保障用户的信息安全。
安全客户端在版权保护、国防等很多领域都有应用但应用最多的还是在网上银行以及电子支付平台中。
一般来讲服务器端的安全比较受重视而且相关的技术比较成熟而客户端的安全以及客户端与服务器之间的交互比较容易被人忽视。
随着网上银行和电子商务应用的增加暴露的问题也不断显现出来用户在使用网上银行或者网上购物系统的时候账号与口令被盗的时间屡有发生给用户的经济上造成了很大的损失使得部分用户不敢使用网上银行和在线支付工具网上银行和电子交易的大规模应用更需要安全客户端来保证用户的信息安全。
世界上第一家网上银行即美国“安全第一网上银行SFNB”于1995年在美国亚特兰大诞生。
由于其交易成本远低于普通的柜台交易且可以为用户提供724小时的服务开设后在金融界引起来很大的轰动许多银行纷纷效仿。
1996年3月中国的第一笔网上银行业务在中国银行交易成功此后各大银行都开设了网上银行业务此外支付宝等第三方支付平台的开通使得电子商务的便利性大大提高。
网上银行是电子交易的核心如何保证交易的安全已经成为用户、商家、银行共同关注的问题。
我国也出台了相关的法规。
中国人民银行于2001年制定了《网上银行业务管理暂行办法》2006年1月中国银行业监督管理委员会通过了《电子银行业务管理办法》和《电子银行安全评估指引》2007年3月6日中华人民共和国商务部发布《关于网上交易的指导意见暂行》。
这些政策法规规范了网上银行也对其安全性做出了指导加强了对网上银行业务的安全与风险管理。
由于在国内攻破网络银行或者网络支付平台的服务器具有很高的难度而且风险性比较高所以一般不法分子都是对网络银行或者网络支付平台的客户端进行攻击窃取客户端的用户信息以达到盗取资金的目的。
2004年4月国内首个窃取网上银行用户信息的木马“网银大盗”出现在网络中在随后的几年时间里不断出现“网银大盗”病毒的变种网银木马的数量迅速增加甚至有人在网络上贩卖自己编写的网第1章 绪 论 2 银木马由网银木马引发的银行卡被盗的案件频频发生已经对我国网上银行业务的健康发展产生了严重影响1 。
一些不法分子通过这些木马程序盗取用户网上银行的账号和登录口令进行非法的转账使得一些用户蒙受巨额的经济损失。
因此保护客户端的安全关系我国网上银行和网上交易等能否正常的进行。
1.2 国内外研究现状 随着网络的普及应用客户/服务器模式已经在很多场合中应用。
客户端主要用于与服务器端交互登陆到服务器端并使用服务器端的各种资源与服务。
在电子商务、网上银行等应用中由于用户会在客户端输入账号或口令等私密信息所以对安全性的要求较高一旦这些信息被不法分子盗取就会给用户的资金等造成很大的损失所以更需要一个安全的客户端来保护用户的机密信息。
由于安全客户端有着重大的意义国内外很多科研机构、公司都投入了很大精力进行研究尤其是随着网上银行以及电子商务的迅速发展人们更加关注网上交易的安全性所以对客户端的安全的研究受到了很大重视。
在客户端用户要经过认证然后登陆到服务器才能使用服务器提供的功能和资源登陆认证系统相当于第一道关卡以往发生用户信息以及账户被盗的情况往往都是在登陆认证系统中做的不够仔细使得用户的信息等被盗取。
如何在客户端安全地登陆并且使得服务器有效的认证客户的身份是安全客户端的重点。
从安全客户端登陆到服务器并进行身份认证主要有以下两种方式基于数字证书的和基于用户名和口令的。
第一类是基于数字证书的数字证书是电子的身份证用于标识使用者的身份。
使用的数字证书登陆的主要分为两种 1.在客户端本地计算机存储数字证书。
优点是这种方法成本相对较低但使用不够方便一般出于安全的考虑数字证书只能下载到自己的计算机中使用不建议在其他计算机上使用而且目前一般都是采用微软的IE浏览器的证书体系结构跨平台性较差在其他种类的浏览器上无法使用虽然现在的数字证书都采用高强度的加密并且一般设为不可导出但还有一些木马会含有远程控制程序完全控制电脑从而也可以通过特殊的手段获得数字证书。
目前已出现了能够窃取存贮在本地的数字证书的网银木马。
2.采用USB Key的方法把数字证书存储在USB Key中由于USB Key上有一个智能芯片采用硬件的方式控制对数字证书的读取一般的木马程序等很难窃取在USB Key中存储的数字证书优点是安全性比较高USB Key由用户随身携带使用时只要将USB Key插入电脑即可用户需要交易的时候通过USB Key中的数字证书第1章 绪 论 3 对账单进行签名。
但USB Key也存在安全隐患2在用户对账单确认之后通过USB Key对账单签名之前这一过程中的账单有可能被木马等篡改我们称之为本地篡改攻击。
虽然有黑客宣称可以对使用USB Key的网上银行系统进行攻击但进行本地篡改攻击的难度远大于进行一般的攻击目前还没有关于这方面攻击的公开报道。
USB Key的缺点是USB Key需要一定的成本一般需要用户付费购买现在只有部分用户使用难于全面推广。
第二类基于用户名和口令的主要分为采用静态口令的和采用动态口令的。
采用静态口令登陆的由于口令很容易被窃取现在一般很少使用。
采用动态口令主要有 1.使用软键盘。
软键盘是指不依赖真正的键盘而是虚拟的建立一个键盘来进行输入。
过去有的软键盘上键的位置排列固定木马可能记录每次点击软键盘的键的位置通过计算得出用户点击的是哪个按键从而获得用户的口令。
现在很多都采用动态软键盘其键盘排列是动态的。
此外还会在客户端对口令进加密后提交到服务器端。
一些采用此种方式动态软键盘方式的在客户端对口令的加密强度一般偏低有的实现了动态的口令认证通过JavaScript实现对口令的加密采用对称加密的方式密钥为随机生成的数组用户的口令虽然不改变但口令被加密后的结果每次都不一样由于只使用了基于字符串的替换并且数组的内容是以明文的方式传递到页面之中通过查看源代码的方式可以获得其密钥而且可以对HTTP报头文进行分析获得加密后的口令然后使用密钥对加密后的口令进行解密就可以获取口令。
总体来说其优点是成本较低用户使用起来很方便但安全性偏低此外由于大部分用户使用的都是微软的IE浏览器登陆而IE浏览器有一个小缺陷3对于没有页面嵌套的网页IE 的IHTMLInputTextElement接口会被一些黑客利用在表单的密码框输入的内容可能被通过接口读取出来这样就可以窃取用户的口令。
2.使用安全控件。
安全控件的作用有两个第一是在客户端对口令进行加密处理处理的过程中会加入一些随机的因素比如随机数或时间等这样每次加密后的口令都不一致这样就实现了动态口令的思想。
第二是会重写一个键盘驱动。
可以防止一般键盘/消息钩子窃取用户的键盘输入从而获得口令而且可防止通过IE 的IHTMLInputTextElement接口获取密码的方法。
但还存在以下问题4还是有些安全控件做得不够深入系统的底层给一些木马留下了可乘之机。
对于一些不够深入底层的安全控件在Windows平台下采用键盘过滤驱动的方法就可以突破他们的保护而记录用户通过键盘输入的密码了。
除了采用键盘过滤驱动方法外还可以挂接中断描述符表的键盘入口甚至有些木马还可以挂钩键盘驱动Dispatch 例程以及Inline hook 相应I/O请求包的分发函数。
如果更深入点的话还可以挂钩驱动文件i8042prt.sys。
采用安全控件的优点是成本相对较低。
缺点是用户每次在不同的电脑上使用都要安装控件而且有些类似上网助手的工具会自动屏蔽此类控件不方便用户的安装。
此外一第1章 绪 论 4 般安全控件都是ActiveX控件跨平台性比较差一般只能在Windows下的IE浏览器下使用而且ActiveX控件本身也会产生一些安全隐患比如缓冲区溢出等这些隐患也可能被黑客等利用。
此外现在还有一些银行采用动态密码锁来登陆到服务器中的原理与动态口令机制类似即对申请网上银行的用户发放一个类似于电子令牌的装置其有一个显示屏显示屏上面显示一串数字数字每隔一段时间变化一般为几十秒而服务器端有一个同步的装置用户登录时需要输入显示屏上的数字服务器判断用户输入的数字是否与服务器端的一致一致则确认用户的身份允许其登陆。
因为显示屏显示的口令不断变化所以攻击这很难在一段时间变化一般为几十秒内进行穷举攻击。
包括RSA公司在内的很多国内外公司都推出了相应的产品。
目前香港恒生银行的网上银行采用此种方案。
花旗、汇丰、荷兰银行等国外银行的也采用此种方案但是目前国内银行使用动态密码锁的却较少5。
一些银行为了提高安全性对于大额网上转账等风险较高的操作都采用了双因素认证的方式比如采用口令登陆和证书相结合的方式也有采用口令登陆加上动态密码锁等这样采用两种方式认证这样在一定程度上提高了系统的安全性。
1.3 本文的工作 本文分析国内外安全客户端的研究状况总结了其存在的安全威胁研究并实现了一个基于动态软键盘的口令认证安全客户端有效的提高了使用用户名和口令的登陆系统的安全性保证用户口令的安全。
本文的主要工作如下 1.使用JavaScript和CSS等表现层技术实现了一个动态软键盘通过CSS定义动态软键盘的表现样式通过JavaScript定义相应的事件响应函数数字键能够动态排列用户通过动态软键盘输入口令防止用户的口令被记录键盘击键信息的软件窃取。
此外在用户输入口令的页面采用了页面嵌套的方式有效地防止由于IE浏览器的缺陷而导致用户输入的口令被木马通过IHTMLInputTextElement接口读取。
2.设计并实现了有效抵御字典攻击的口令认证协议。
协议借鉴了EKE等经典协议的思想根据B/S模式下的实际情况精简了认证的步骤减少了交互次数不在本地保存用户的口令或口令的哈希摘要。
采用了对称加密和非对称加密在登陆认证的过程中不是直接对用户的口令进行加密后传输防止弱加密方式导致口令被通过密码分析的方式等获得而是由服务器根据用户标识使用用户的口令摘要为密钥加密随机数和随机的公钥将加密后的信息传回客户端。
客户端输入口令计算口令的哈希摘要进行解密产生客户端随机数用公钥加密端随机数将服务器端的随机数和客户端随机数作为一个整体使用公钥对其加密一起发回服务器端。
由服务器端进行第1章 绪 论 5 解密认证用户的身份在认证过程中传递的秘密信息是采用高强度加密后的随机数或随机公钥不带有敏感信息这样能防止字典攻击在传输密文的时候还可以防止Denning-Sacco攻击有效地保护用户口令的安全。
3.讨论了安全客户端的安全分析与设计指出了传统客户端的安全威胁对用户注册系统的安全性进行了分析详细分析了基于口令的身份认证协议协议能有效防止字典攻击并采用高强度的加密方式来保证用户口令的安全讨论了密文传输的安全性在传输密文的时候可以防止Denning-Sacco攻击对动态软键盘进行了安全分析能有效防止直接窃取用户口令的木马程序对协议的具体实现方式进行了分析在客户端采用applet实现协议对applet进行代码混淆使得反编译后的程序代码很难读懂这样隐藏了在客户端对口令的处理细节具有较高的安全性。
4.设计并实现了安全客户端系统。
安全客户端系统分为注册系统与登陆认证系统此外在登陆系统后用户还可以向服务器传送密文。
考虑到B/S模式使用比较方便所以本方案以浏览器为载体在客户端通过使用Java的applet插件在客户端对用户的口令进行处理并在发布前对applet进行代码混淆。
在服务器端采用
JSP配合后台的数据库对用户提交的口令进行处理和认证通过服务器和客户端的交互一起实现用户注册、登陆认证和密文传递功能。
1.4 本文的结构 第一章 绪论 主要介绍论文的研究背景、研究意义以及国内外研究现状并概括的介绍了作者在本文中所做的工作。
第二章 相关概念和技术 主要介绍了和本文有关的技术与概念。
第三章 安全客户端概述 概括性的介绍了本文设计的安全客户端的体系结构系统的功能开发以及运行环境。
第四章 安全客户端的安全设计和分析 指出.