基于混合密码体制的Web用户验证安全策略

来源 :计算机时代 | 被引量 : 0次 | 上传用户:cntanmingyong
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对多数Web系统在用户验证时以明文传输账户信息带来的安全隐患,提出了一种综合使用对称密码体制、非对称密码体制、单向散列算法和一次一密技术来保障用户验证安全的策略。该方法在略微增加计算复杂度的前提下,就能够有效防止用户验证过程遭受窃听、重放等恶意攻击;而对现有Web系统的改进仅涉及新用户注册、用户登录、密码修改等操作,更新便捷。
  关键词:混合密码体制;安全;Web;用户验证;加密
  
  0 引言
  
  随着互联网的发展和WWW技术的推广应用,Web浏览已经成为广大网民主要的网络活动。CNCERT/CC网络安全工作报告指出,2005年Web浏览所消耗的带宽位居所有网络应用之首(37.82%)。随着WWW应用领域的扩大,Web应用所暴露的安全问题日益增多,这其中多数Web系统都必备的用户验证模块就存在着重大的安全隐患。常见的Web服务,比如网络论坛、网络博客、Web邮箱,在为用户提供服务前,服务器都需要根据用户输入的账户信息进行身份验证。然而,经调查发现,多数Web服务(如新浪邮箱、新华论坛、博客天下、搜狐邮件等。调查日期:2007-1-6)在对用户身份验证时并没有采取有效的保护措施,用户的账户信息被直接以明文形式在网络中传送。于是,恶意攻击者利用网络嗅探技术将很容易得到他人的账户信息,甚至出现了专门的工具软件用于窃取局域网中的账户信息。
  
  1 用户验证的安全策略
  
  由于设计时未考虑安全因素,HTTP协议是以明文方式传送数据的。因此,Web通信的安全需要通过其他路径来解决。
  为了保证基于WWW服务的数据传输的安全,Netscape公司提出了称为“Secure Sockets Layer”(安全套接字层,SSL)的Internet安全标准。SSL位于应用层(如HTFP)和传输层(TCP)之间,为客户机与服务器间的数据传输建立了加密通道。然而Web服务器在执行SSL相关任务时,吞吐量显著下降,运行速度比只执行HTTP1.0连接时慢50多倍。而且,除了网络银行等少数站点,多数Web应用并不需要运行SSL来为所有传输的数据加密。在这些Web系统中,可以采用综合对称密码算法、非对称密码算法、单向散列算法和一次一密技术的混合密码体制,在用户验证所涉及的新用户注册、用户登录、密码修改等3个操作中为账户的传输提供保密措施。
  新用户注册过程中,用户输入的账户信息(包括用户名和密码)将被安全地传输到服务器端用户数据库中存储。这可以通过非对称密码体制(比如RSA)来实现。服务器端在运行初始阶段生成并维护一对密钥:公钥用于浏览器对账户信息的加密,私钥用于服务器端的解密。两端的加解密分别用服务器端脚本和客户端脚本实现。
  为了防止服务器端用户数据库中账户信息(主要是密码)的泄露,可以存储通过单向散列函数(比如MD5)求得的密码的摘要信息,而非密码本身。
  用户登录过程中,只要能验证用户的合法性即可,不必传输密码信息。服务器将当前系统时间和一个随机数传输给浏览器,浏览器以用户输入的账户信息为密钥,用对称加密算法(比如DES)对这两个值加密后传回服务器进行验证。由于传输的是系统时间和随机数的组合,实现了一次一密技术,可以有效预防重放攻击。
  密码修改操作首先需要验证用户现用密码的正确性,然后以新密码更新用户数据库。服务器将两个参数(系统时间和一个随机数)传输给浏览器,浏览器端以现用密码为密钥,用对称加密算法加密新密码和服务器端传来的两个参数。于是服务器端可根据传回的两个参数值验证用户后更新数据库。
  
  2 用户验证的实现细节
  
  Web系统中涉及密码传输的主要有三个操作:新用户注册、用户登录和密码修改。
  
  2.1 新用户注册
  服务器端在第一个用户注册前生成一对密钥:公钥PK和私钥SK——这对密钥可供所有新注册用户使用,为安全起见,也可定期更新。浏览器以PK为密钥对账户信息进行加密。待密文传输到服务器端后,服务器端即可以SK为密钥解密并获得账户信息。用户注册过程有以下几个步骤:
  (1)用户浏览新用户注册页面(Reg),如图1的①;
  (2)服务器端生成一个随机数R,将R和系统时间T保存到当前连接的会话Session中,并将Reg页面(内含T、R和PK)发送到浏览器,如图1的②;
  (3)用户输入用户名UN、密码PWD,并单击“提交”按钮;
  (4)Reg页的客户端脚本以PK为密钥采用非对称加密算法AE将T、R、UN和PWD加密为密文:AEPK[T+R+UN+PWD];
  (5)浏览器将密文传输到服务器端,如图1的③;
  (6)服务器端将当前时间和保存在Session中的T进行比较,若超时,则提示用户并转到“(2)”; (7)服务器端脚本利用SK对AEPK[T+R+UN+PWD]进行解密,得到T’、R’、UN和PWD;
  (8)服务器端将T’和R’与Session中的T和R进行比较。若不同,则提示失败并转到“(2)”;
  (9)服务器端判断UN是否已被他人注册使用,若已用,则提示用户并转到“(2)”;


  (10)服务器端将账户信息保存到用户数据库,并提示用户注册成功。为防止用户数据库泄密,服务器端可将UN和PWD用单向散列算法H进行散列,将得到的H[UN+PWD]存储到密码字段——此处包含UN是为了防止不同用户碰巧采用同一密码而导致密码泄露。
  
  2.2 用户登录
  每当用户需要登录系统时,服务器将当前的系统时间T和一个随机数R发送给浏览器。浏览器以用户输入的账户信息为密钥采用对称加密算法SE对T和R进行加密,然后将密文传输到服务器。服务器端用数据库中的账户信息将密文解密后,比对前后的T和R以验证用户的合法性。详细过程如下:
  (1)用户浏览用户登录页面(Login),如图2的①;
  (2)服务器端生成一个随机数R,将R和系统时间T保存到当前连接的会话Session中,并将Login页面(内含T和R)发送到浏览器,如图2的②;
  (3)用户输入账户信息UN和PWD;
  (4)Login页的客户端脚本用单向散列算法H对UN和PWD进行散列,求得H[UN+PWD];
  (5)Login页的客户端脚本以H[UN+PWD]为密钥采用对称加密算法SE对T和R进行加密,得到SEH[UN+PWD][T+R]
  (6)浏览器将密文和UN一起发送到服务器端,如图2的③;
  (7)服务器端将当前时间和保存在Session中的T进行比较,若超时,则提示用户并转到“(2)”;
  (8)服务器端根据UN在用户数据库中找到H[UN+PWD], 以其为密钥解密收到的密文,获得浏览器传回的数据T’和R’;


  (9)服务器端将T’和R’与Session中的T和R进行比较,若相同则登陆验证通过,完成随后的一系列工作(如在Session中保存UN),并清除Session中的T和R——以免遭受重放攻击,若不同,则提示失败并转到“(2)”。
  
  2.3 密码修改
  成功登录后的用户需要修改密码时,服务器端给浏览器发送当前系统时间T、随机数R和Session中的UN。浏览器以用户输入的现用密码OPWD和UN为密钥,对T、R和用户输入的新密码NPWD采用对称加密算法SE进行加密,然后将密文传输给服务器。服务器通过比较前后的T和R验证用户的合法性,更新用户密码。以下是修改密码的过程:
  (1)用户浏览修改密码页面(chgPwd),如图3的①;


  (2)服务器端生成一个随机数R,将R和系统时间T保存到当前连接的会话Session中,并将ChgPwd页面(内含T、R和Session里的UN)发送到浏览器,如图3的②;
  (3)用户输入现用密码OPWD和新密码NPWD;
  (4)ChgPwd页面里的客户端脚本用单向散列算法H对UN和OPWD进行散列,求得H[UN+OPWD];
  (5)ChgPwd页面里的客户端脚本以H[UN+OPWD]为密钥采用对称加密算法SE对T、R和NPWD进行加密,得到SEH[UN+OPWD][T+R+NPWD]
  (6)浏览器将密文发送到服务器端,如图3的③;
  (7)服务器端将当前时间和保存在Session中的T进行比较,若超时,则提示用户并转到“(2)”;
  (8)服务器端根据Session里的UN在数据库中找到H[UN+PWD],以其为密钥解密密文,获得浏览器传回的数据T’、R’和NPWD;
  (9)服务器端将T’和R’与Session中的T和R进行比较,若相同则用户合法,计算H[UN+NPWD]并更新用户数据库,提示成功,同时清除Session中的T和R,若不同,则提示失败并转到“(2)”。
  
  3 性能分析
  
  3.1 安全性能分析
  用户验证的安全策略至少可以应对以下几种攻击:
  密码窃听 用户验证过程中没有明文传输密码,而且在用户登录操作中就根本无需传输密码,从而避免了密码被窃听的威胁。
  数据篡改 浏览器端传回的密文中包含了随机值,若数据被篡改则服务器端能在验证时及时发现。
  已知明文攻击 用户验证过程中传输的数据都包含了随机值,可以避免明文数据模式的泄露。
  重放攻击 用户验证中传输的数据都包含了系统时间值,时间错误和超时都不能完成操作,从而杜绝了重放攻击的发生。
  
  3.2 计算性能分析
  密码算法的引入必然会增加系统的计算复杂度,其中以非对称密码算法的复杂度最大。不过,只有新用户注册时需要执行非对称密码算法。由于新用户注册操作相比用户登录操作要少很多,用户验证的3个操作在Web系统整个运行期间也只占很小的比重;而且,完成用户验证后,系统就可按常规(明文)方式通信。因此用户验证的改进策略对Web服务的计算性能影响不大。
  
  4 结束语
  
  综合了多种密码学技术的Web用户验证策略可以有效解决存在于现今多数Web服务中的账户信息安全隐患。不仅如此,还可以借鉴这一策略来实现Web服务中其他一些敏感数据的安全传输。当然,该方法只是解决了账户信息明文传输可能造成的威胁,并没有涉及验证通过后的访问安全性。而且Web服务还存在其他一些安全问题,比如用户登录成功后,系统一般利用Session中的数据来识别用户的合法性,因此,存在会话被第三方劫持等威胁。这些却需要通过其他技术解决。
其他文献
摘要:网络课程是教育资源建设和精品课程建设的重要组成部分,是顺利实施现代远程教育教学的关键所在。针对目前存在的网络课程开发环境不完善、资源管理无序化、封闭式低水平重复建设的现状,介绍了Blog(博客)的特点和优势,并将Blog应用于网络课程设计与开发中,说明了Blog在网络教育中的良好发展前景。  关键词:网络课程;Blog;日志;RSS    0 引言    网络课程是按照相应学科的教学目标和教
期刊
摘要:通过模拟海量数据的产生,生成测试数据并进行数据查询、插入,对索引的效率进行分析,给出了Oracle数据库中大数据量下如何合理使用全局索引与分区索引的建议。  关键词:大数据量;索引;效率;分区    0 引言    一些大的应用系统如医保、移动、银行等行业的应用系统,出于节约管理成本、提高数据共享度等方面的考虑,业务数据一般以省为单位集中,数据库中存放的数据量很大(一般为T级),而这类业务系
期刊
摘 要:在P2P(peer—to-peer)网络的大规模应用中,资源查询一直是备受关注的核心问题。文章在对当前P2P网络查询的三种主流模型进行研究和分析的基礎上,通过整合及改进,比较巧妙地设计了一种新型的适用于复杂P2P网络的资源查询模型。  关键词:Napster;Gnutella;Chord;混合式网络
期刊
摘 要:基于定位的服務(LBS)是指为移动设备的用户提供一系列个性化的与位置相关的服务。文章着眼于J2ME技术的应用,开发一项向无线用户提供的增值业务——手机地图,对手机地图实现矢量地图缩放、地理信息等功能进行分析和研究。  关键词:J2ME;LBS;手机定位;矢量地图
期刊
摘 要:分析了UML建模和關系数据库设计的关系;说明了应用UML进行关系数据库设计的优点和基本过程;最后结合实例给出由UML类图映射到关系数据库的基本策略,从而实现对象的持久性存储。面向对象模型和关系模型紧密结合为信息系统的成功开发提供了良好的保障。  关键词:UML;关系数据库;设计;映射
期刊
摘 要:IPv6在智能家居中已有较好的发展和应用,文章着重对智能报警系统的硬件结构和软件流程进行了设计,对IPv6的包头结構进行了分析,并且应用IPv6的数据包结构进行通信,同时指出IPv6在智能社区中具有广泛的应用前景。  关键词:IPv6;智能小区;智能报警系统RS485
期刊
摘 要:通过对一个Windows缓冲区溢出程序的详细调试分析,深入研究了Windows系统中缓冲区溢出的机制和具体流程,指出了缓冲区溢出攻击的基本原理,并提出了防范緩冲区溢出攻击的有效措施。  关键词:缓冲区;溢出;堆栈;ShellCode;漏洞
期刊
摘 要:单点登录(SSO)技术被广泛应用在各个领域的软件系统中,使得用戶只经过一次身份认证便可以访问多处被授权的资源。文章首先介绍了单点登录的概念及解决方案,然后研究了Sun ONE单点登录的原理,最后分析了使用JAAS实现单点登录的过程。  关键词:Sun ONE;单点登录;JAAS
期刊
摘要:数据流具有连续、实时、无限性,同时数据流也是不可预测的,且具有不可重现性,利用传统的数据库管理技术显然不能解决数据流的问题,因此必须进行数据流管理新技术的研究。文章先介绍了数据流管理系统的一般体系结构,然后研究了数据流管理系统TelegraphCQ的开源码,并在此基础上详细阐述了TelegraphcQ的体系结构、数据管理方法和查询处理技术,同时给出了建立TelegraphcQ的详细步骤及使用
期刊
摘要:日志文件分析是系统安全检测的重要内容,同时日志文件也是计算机取证的重要依据。文章设计了第三方的Windows日志取证系统,并讨论了今后的研究方向。  关键词:日志文件;网络取证;审计跟踪;IRP    0 引言    当前网络应用非常广泛,网络涉及了各种各样的信息,由此产生各种攻击事件非常多,有些已经构成网络犯罪。我们除了对攻击进行防范外,还要记录下犯罪现场的信息,得到黑客入侵证据,以便分析
期刊