个性化身份验证
2010-11-15候传宇
徐 旭 候传宇
(1合肥工业大学计算机信息学院,安徽 合肥 230000)
(2宿州学院信息工程学院,安徽 宿州 234000)
个性化身份验证
徐 旭1,2候传宇2
(1合肥工业大学计算机信息学院,安徽 合肥 230000)
(2宿州学院信息工程学院,安徽 宿州 234000)
身份认证是网络安全中一个重要问题,论文结合了Web日志挖掘和决策树分类这两方面的知识,提出了一种新的认证方式,个性化身份验证,在用户登陆系统后可以对其身份进行二次验证。
身份验证;Web日志挖掘;决策树
随着网络的飞速发展,人们对网络的依赖程度也越来越大。网络的发展给我们带来了很大的方便。但同时也衍生出了一些问题。随着人们的生活和工作重心往网络上的转移,网络安全也成为一个越来越重要的话题。在考虑安全问题时,大部分都是关注于第一次身份验证时的安全问题,当用户利用正确的口令登陆系统以后,就不再进行身份验证了,对于非法用户窃取用户口令并以该用户口令登陆系统这种情况没有做任何的处理。为了解决这个问题,本文提出了个性化身份验证的观点。
1 常见身份认证方式
1.1 用户口令认证
传统的认证技术主要采用基于口令的认证方法。当被认证对象要求访问提供服务的系统时,提供服务的认证方要求被认证对象提交该对象的口令,认证方收到口令后,将其与系统中存储的用户口令进行比较,以确认被认证对象是否为合法访问者。这种认证方法的优点在于简单实用。然而,基于口令的认证方法存在很多不足。
用户每次访问系统时都要输入口令,这样很容易泄密;口令在传输过程中可能被截获;系统中所有用户的口令以文件形式存储在认证方,攻击者可以利用系统中存在的漏洞获取系统的口令文件;只能进行单向认证,即系统可以认证用户,而用户无法对系统进行认证,攻击者可能伪装成系统骗取用户的口令。
1.2 基于智能卡的认证
基于智能卡的用户身份认证机制主要利用硬件实现,它将用户安全信息存在智能卡中,并在认证服务器中存入某个事先由用户选择的随机数。用户访问系统资源时,用户输入智能卡信息,系统首先判断智能卡的合法性,然后由智能卡认证用户身份,若用户身份合法,再将智能卡中的随机数送给认证系统作进一步认证。
1.3 数字证书认证
数字证书是一个经证书授权中心(也叫认证中心,Certificate Authority简称CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。
当用户向某一服务器提出访问请求时,服务器要求用户提交数字证书。收到用户的证书后,服务器利用CA的公开密钥对CA的签名进行解密,获得信息的散列码,然后服务器用与CA相同的散列算法对证书的信息部分进行处理,得到一个散列码,将此散列码与对签名解密所得到的散列码进行比较,若相等则表明此证书确实是CA签发的,而且是完整的未被篡改的证书。这样,用户便通过了身份认证。服务器从证书的信息部分取出用户的公钥,以后向用户传送数据时,便以此公钥加密,对该信息只有用户可以进行解密。
1.4 Kerberos认证
Kerberos采用对称密钥体制对信息进行加密,其基本思想是:能正确对信息进行解密的用户就是合法用户。当用户进行登录时,Kerberos对用户进行初始认证通过认证的用户可以在整个登录期间得到相应的服务,Kerberos既不依赖用户登录的终端,也不依赖用户所请求的服务的安全机制,它本身提供了认证服务器来完成用户的认证。
2 个性化身份验证
个性化身份验证是指:在用户登陆系统以后,继续对用户进行监测,并收集用户的个性化信息,在规定时间以后,根据收集到信息来对用户进行第二次身份验证,这样就对用户身份被非法使用这一情况做了相应的处理。
用户在使用网络时都有自己的习惯,比如密码设置长度的多少,密码输出时间的多少,鼠标的点击习惯,经常使用的操作系统,浏览器类型,浏览信息的不同,浏览爱好的不同等等,要想找到两个使用习惯完全相同的用户,那几乎是不可能的事情。因此,我们可以把用户的使用习惯作为判断用户身份的依据。
Web日志挖掘可以帮助我们收集用户在浏览网页时的个性化信息,它可以对存储在客户端、Web服务器端和代理服务器端中的服务器日志文件、Cookies、用户注册信息及用户显式输入的数据等进行挖掘处理,从中得到用户的个性化信息,交给身份验证系统,来对用户的身份进行验证。决策树算法是数据挖掘中一种非常重要的分类算法,我们可以利用决策树算法,结合收集到的个性化信息,来对用户的身份进行验证。有了这两种技术,就可以实现个性化身份验证了。在进行系统设计时,可分为四个模块,如下图1所示。
图1 个性化身份验证系统的模块功能
数据收集模块功能:主要是收集用户的密码输入时间,用户鼠标的电击习惯和用户使用Web系统所产生的日志文件,把它们存储到数据库中。
数据预处理模块功能:进行数据净化、用户识别、会话识别等操作,对日志中的数据进行过滤,转换成事务数据库,方便下一阶段使用。
模式挖掘模块功能:对上一阶段的数据进行分析整理,建立用户的个性化信息模型。
身份验证模块:利用以前该用户的个性化信息和数据库中其他用户的个性化信息来建立训练集和测试集,以次来建立决策树,并用决策树用户的身份进行二次验证。
2.1 数据收集模块设计
本模块又可以分成三个部分,分别是用户密码输入时间的收集,鼠标点击习惯的收集和Web日志数据的收集。
2.1.1 用户密码输入时间的收集
我们可以在服务器的登陆程序中加入一个脚本文件,通过脚本文件来收集用户登陆时的密码输入时间。
2.1.2 鼠标点击习惯的收集
我们可以在服务器中加入一段程序代码,通过其来记录用户登陆系统以后的鼠标左右键使用习惯。
2.1.3 Web日志数据的收集
Web应用系统是一个多层次的系统,包括客户端,代理服务器端和Web服务器端,因此对日志数据的收集主要集中在客户端,代理服务器端和Web服务器端进行的。利用Web挖掘技术很容易就可以从日志文件中获的我们所需要的信息。
2.2 数据预处理模块设计
2.2.1 数据净化
把Web日志文件中和本设计无关的数据删除掉,同时把有用的数据转换为相应的格式。在这一阶段,根据系统需要,我们需要建立几张表结构。
(1)用户浏览网页地址表
该表用来记录从用户第一次登陆以来到用户最后一次登陆这段时间内,所访问过的URL。这张表整个系统只有一张,表结构如下所示:
表1 用户浏览网页记录表
该表建立以后,当有用户登陆系统进行浏览,如果是第一次浏览一个URL,就把该URL插入表中,如不是第一次,则在表中找到相应记录,把登陆次数加一,同时把访问时间加入到浏览时间中
(2)用户密码输入时间表
该表用来记录用户每次登陆系统时输入密码的平均时间。该表结构如下:
表2 用户密码输入时间表
用户在登陆系统时,系统记录下用户此次输入密码所用的时间T,再从表中取出用户的密码输入平均时间AT和登陆次数C,然后利用公式AT=(AT*C+T)/(C+1),重新计算出该用户的密码输入平均时间,再存入该表中。
(3)鼠标点击习惯表
用来记录用户在操作鼠标时,是喜欢双击鼠标左键还是喜欢点击鼠标右键的情况的。用户在注册时,就需要提供自己的点击习惯,该表结构如下:
表3 鼠标点击习惯表
在点击习惯这个属性中,用0来表示双击左键,用1来表示点击右键。
(4)用户日志表
该表用来记录从Web服务器日志文件中获取的一些用户信息。这张表中的数据来源于客户端日志和服务器日志文件,也可以是用户在注册账户的填入。该表结构如下所示:
表4 用户日志表
2.2.2 用户识别
要识别出每个用户并不是一件简单的事情,由于防火墙,代理服务器等的存在,使得我们很难去识别一个用户。一般来说,人们在识别的过程中,经常会遇到多个用户用同一IP访问服务器,同一用户用多个IP访问服务器等问题,因此识别用户的身份就比较困难。本文所采用的解决方法是根据表4中的后四个属性值来进行用户识别的,如果四个属性值有三个是一致的,那我们就可以识别用户了。用户识别以后,我们再把该用户的使用信息分别存储在上文建立的表1到表4中。
2.2.3 会话识别
会话指用户对服务器的一次有效访问。日志文件中不同用户访问的页面属于不同的会话。会话识别就是把一系列的页面访问划分成独立的会话,用户会话识别是否准确直接决定了后续的挖掘结果,一般我们通过设置一个timeout值来判断会话是否结束。如果用户访问的时间差超过了这个值,那我们就认为该用户开始了一个新的会话。
会话识别后,把识别的所有用户会话存储在数据库中。表的格式如下:
表5 用户会话表
2.2.4 路径补全
用户在浏览的时候有可能会使用浏览器上的后退功能,这就造成了用户访问的当前页和上一次访问的页面之间没有直接的超链接关系。如何解决这个问题呢?我们可以这样做:根据Web日志中的引用页cs字段,确定当前访问的页面来自于哪一页,如果用户的历史访问记录有多个页面和当前访问页面有引用关系,则将访问时间最接近当前页的页面作为当前请求的来源,将Web日志中遗漏的页面补充在路径中。例如在会话Y1-Y40-Y260-Y270-Y300中,从页面Y260到页面Y270没有直接的超链接,通过查找Web日志文件中的cs-uri-stem字段与其对应的cs字段,可知道当前页的引用页是Y40,路径补全后的会话为Y1-Y40-Y260-Y40-Y270-Y300。
2.3 模式挖掘模块设计
本文中模式挖掘模块的作用就是从数据预处理阶段所得到的数据中提取出可以用来进行个性化身份认证的信息,并把这些数据组织起来,交给身份验证模块来进行下一步处理。
该模块的数据来源就是我们上一阶段所提到的那几张表格,那么这些表中的那些数据是我们需要的呢?我们来分析一下。
首先,我们来看下用户的密码输入时间。用户的密码输入时间一般都是固定,上下在1秒之内变化。当用户的密码被非法用户窃取后,由于非法用户对于密码的不熟悉,在登陆系统时,密码输入时间肯定和该用户的密码输入时间差异比较大,因此我们可以把密码输入时间来作为判断用户身份的一个指标。如果密码输入时间比规定时间相差2秒以上,那我们就可以认为此次登陆用户的这项指标不合格。
接着,我们来看下用户的鼠标点击习惯。有的用户喜欢双击鼠标左键来执行一个文件,而有的用户则喜欢通过鼠标右键来执行一个文件。而且用户的点击习惯一旦确定以后,就很少发生改变,因此,如果系统监测出一个用户使用双击左键,另一个用户使用鼠标右键来执行,那我们就可以基本上判断两个用户不是同一个用户。因此,鼠标点击习惯也可以做为判断用户身份的一个指标。
我们再来看下表5中的用户IP地址、操作系统类型、浏览器类型以及主机名这四个字段。一般来说,用户的IP的地址都是位于一个IP地址段的,不同地方的用户,它的IP地址段一般不同,但同一个地方的用户,他们的IP地址段就有可能相同,因次,我们可以把利用它来对用户进行识别,但区分度不大。操作系统类型和浏览器类型,对于这两个字段,大部分的用户所使用的都是一样的,但也有不同的,所以这两个字段的区分度也不大。最后一个字段,主机名。用户有可能使用不同的计算机来登陆系统,因此,这一个的区分度也不大。但是,如果我们把这四个综合起来一起进行判断的话,它的区分度还是比较好的。我们把这四个字段合在一起,称为常用计算机情况,构成一个指标,如果四个都正确的话,我们就可以认为这一个指标是合格的,否则,只要有一个不正确,我们就认为这个指标是不合格的。
最后我们来看下用户浏览网页的记录。绝大部分的用户在上机第一个浏览网页时所访问的第一个网页都是固定的几个网页,在一个很小的范围内。不同的用户上机时第一个浏览的网页大都是不同的,因此,我们可以把用户第一个浏览的网页作为一个指标。用户的兴趣爱好也是有差别的,有的用户喜欢浏览小说网页,有的喜欢浏览电影信息,有的喜欢浏览新闻等等,因此,也可以用户浏览时间最长的网页作为一个指标,来对用户的身份进行验证。
通过上面的分析,我们得到了五个用来进行身份验证的指标,分别是用户密码输入时间,鼠标点击习惯、常用计算机习惯、第一个浏览的网页和浏览时间最长的网页。我们下一步所要做的操作就是怎样把这些数据组织成决策树所能使用的属性。
我们可以根据用户ID,每个用户都创建一张表,表名就是用户登陆名,结构如下所示:
表6 用户决策树属性表
下面我们来看下表6中记录的生成。
当用户登陆进入系统,在规定时间后,就要对用户身份进行二次验证。
第一步、根据用户ID,找到和该用户对应的表6,在该表中生成一条空白记录。在用户身份字段插入1。
第二步、根据用户ID,在表4中找到该用户ID对应的记录,把该记录的用户IP地址、操作系统、浏览器和主机名这四个字段值和我们收集的个性化信息进行比较,如果这四个字段值都一样,就在表6中的常用计算机情况字段插入1,否则插入0。
第三步、根据用户ID,在表3中找到该用户ID对应的记录,把该记录点击习惯字段值插入表6的鼠标点击习惯字段。
第四步、根据用户ID,在表2中找到该用户ID对应的记录,把该记录平均输入时间字段值和此次我们所收集到的密码输入时间进行比较,如果上下差别在2秒左右,就在表6的用户密码输入时间字段插入1,否则,插入0。
第五步、对表1中的记录按照用户ID字段和浏览次数字段进行进行分类汇总,然后根据用户ID,在表1中找到该用户ID对应的第一条记录,把该记录URL地址字段值和此次我们收集到的用户浏览的第一个网页的URL地址相比较,如果相等,在表6中第一个浏览的网页字段插入1,否则插入0。
第六步、对表1中的记录按照用户ID字段和浏览时间字段进行进行分类汇总,然后根据用户ID,在表1中找到该用户ID对应的第一条记录,把该记录URL地址字段值和此次我们收集到的用户浏览时间最长的网页的URL地址相比较,如果相等,在表6中浏览时间最长的网页字段插入1,否则,插入0。
2.4 身份验证模块设计
2.4.1 训练集和测试集的生成
我们先建立一样表train,该表的结构和表6一样。然后我们把该用户对应的表6中的记录全部插入到表train中,再从服务器中其他用户对应的表6中,每张表随机抽取若干条记录,每条记录的用户身份字段值都改为0,也插入到表6中,就构成了训练集train。测试集test的生成方法和训练集的生成方法一样,按照同样步骤,我们再生成测试集test。
2.4.2 生成决策树
本文采用的算法是经典的ID3算法,下面我们来看下该算法的描述:
输入:训练样本集train,由离散值属性表示;候选属性集合attribute_list
输出:一棵决策树
算法:
(1)创建节点 N
(2)if train都在同一类C then
(3)返回N作为叶节点,以类C标记;
(4)if attribute_list为空 then
(5)返回N作为叶节点,标记为train中最普遍的类;
(6)选择attribue_list中具有最高信息增益的属性branch_attribute;
(7)标记结点 N 为 branch_attribute;
(8)For each branch_attribute中的已知值 ai
(9)由节点N生成一个条件为branch_att ribute=ai的分支;
(10)设 Si是 train 中 branch_attribute=ai的样本的集合;
(11)if Si为空 then
(12)加上一个树叶,标记为train中最普遍的类;
(13)else 加上一个由 Generate_decision(Si,attribute_list,branch_attribute)返回的节点
3 结束语
本文主要介绍了一种新的认证技术,个性化身份认证技术。它弥补了传统认证技术只对用户进行一次验证的不足,在用户登陆系统以后对其进行了二次验证,给用户的安全又添加了一道防线。
[1]Pitkow J.In search of reliable usage data on the WWW.6th Int.World Wide Web Conf.,Santa Clara,California,1997:1343-1355.
[2]涂承胜,鲁明羽,陆玉昌.Web内容挖掘技术研究[J].计算机应用研究,2003,11:5-9.
[3]Perkowitz M,Etzioni O.Adaptive sites:automatically learning from user access patterns.6th Int.World Wide Web Conf.,Santa Clara,California,1997.
[4]蒋外文,喻兴标,熊东平.Web 使用挖掘研究[J].微机发展,2005,15(8):37-40.
[5]Jiawei Han,MichelineKarnber著,范明等译,数据挖掘概念和技术[M].北京:机械工业出版社,2007.
AN ANT COLONY ALGORITHM BASED IMPROVEMENT FOR TSP SOLUTIONS
XU Xu1,2HOU Chuan-yu2
(1 Hefei University of Technology school of computer&Information ,Hefei Anhui 230009)
(2 Institute of Information Engineering Suzhou University,Suzhou Anhui 234000)
Authentication is an important issue in network security,Sexual services is a popular information technology,This combination of Web log mining and decision tree classification of knowledge in these two areas,a new authentication,personalized authentication,after the user login system can be a secondary verification of their identity.
Authentication; Web log mining; decision tree
TP393.081
A
1672-2868(2010)06-0025-05
2010-09-06
安徽省高校优秀青年人才基金项目(项目编号:2010SQRL193)
徐旭(1981-),男,安徽宿州人。讲师,硕士研究生,研究方向:Web数据挖掘
责任编辑:陈 侃