宽带门户网站身份认证系统设计
来源:岁月联盟
时间:2010-08-30
图1 第一种身份认证方式 第二种认证方式:用户首先登录统一身份认证系统,验证其是否为合法注册用户,如果是合法用户可获取权限值。由于合法用户不一定开通了所有的内容服务,所以使用这个权限值访问内容业务系统时,内容业务系统将根据该权限值与统一身份认证服务进行交互,以检验访问的合法性。流程如图2所示
图2 第二种身份认证方式3.2 安全方案 如果将身份验证凭据以明文形式从客户端传递到服务器,在同一的某台主机上配备有基本网络监控软件的攻击者可以捕获传递的信息并获取用户的名称和密码。对于这种安全威胁,身份认证系统对用户名和口令进行加密,避免以明文的形式在网络上传输。 但是威胁依然存在,对于普通的加密算法,攻击者会有办法解密从而获取用户口令。即使是采用加强的加密算法,攻击者一时无法解密,也可以实施会话重放攻击。对于这种安全威胁,一种解决的办法是,当执行关键操作时,重新进行身份认证。比如,当用户通过身份验证后,可以进入VOD点播的页面;当用户指定播放某一VOD影片时,系统要求用户重新输入用户名、口令进行再一次验证。但是这样做,会让用户频繁输入用户名、口令,并不可取。 更好的做法是:采取结合DES算法,采用加入时间戳基于MD5摘要算法的一次一密方法对访问用户的口令进行加密,把用户名、口令和时间戳一起进行加密传输,即使攻击者进行重放攻击,由于时间戳已经改变,就不能通过认证。并且在执行关键操作时,由内容业务系统到身份认证系统再次进行验证,而不需要用户重新输入用户名和口令。以用户以第一种方式登录VOD点播系统为例,具体流程由图3所示:
图3 加密认证流程流程描述如下: 1) 用户登录时将用户名、口令提交给VOD系统;VOD系统将用户名转发给身份认证系统。 2) VOD系统将用户名、口令和时间戳一起加密后形成字符串PWD。 3) 同时,身份认证系统根据得到用户名查得用户的注册密码,并把用户名、注册密码、时间戳一起加密后形成字符串PASS。 4) VOD系统把PWD发送给身份认证系统。身份认证系统比较两者是否一致 5) 如果一致则允许用户进入VOD系统的页面。用户选择观看的影片 6) VOD系统再次生成PWD,身份认证系统再次生成PASS,并再次比较两者是否一致。如果一致,则播放影片3.3 通用接口 为了能让运行在不同的平台上的内容业务系统都能够访问身份认证系统,并且让身份认证系统能够不断地集成新的内容业务系统,当身份认证系统统一认证功能和安全方面的功能后实现以后,我们利用WEB SERVICES技术架构,把身份认证系统转换成身份认证服务。 该服务把身份认证系统提供的各项功能用WSDL语言描述成通用的服务接口,在这个接口中描述了身份认证服务提供给内容业务系统使用的一个函数,该函数的入口参数是用户名、用户口令和内容业务系统的ID;出口参数是该用户能否访问该内容业务系统的字符串。 以下是身份认证接口的WSDL描述:<?xml version="1.0" encoding="UTF-8"?><definitions name="railwayhelperRemoteInterface" targetNamespace="http://www.railwayhelper.com/definitions/railwayhelperRemoteInterface" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.railwayhelper.com/definitions/railwayhelperRemoteInterface" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"><message name="loginRequest"> <part name="userid" type="xsd:string"/> <part name="password" type="xsd:string"/> <part name="serviceid" type="xsd:string"/></message><message name="loginResponse"> <part name="result" type="xsd:string"/></message><portType name="railwayhelperJavaPortType"> <operation name="login"> <input name="loginRequest" message="tns: loginRequest"/> <output name="loginResponse" message="tns: loginResponse"/></operation></portType><binding name="railwayhelperBinding" type="tns:railwayhelperJavaPortType"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><operation name="login"> <soap:operation soapAction="" style="rpc"/> <input name="loginRequest"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tempuri.org/creator.javabean.railwayhelper"/> </input> <output name="loginResponse"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tempuri.org/creator.javabean.railwayhelper"/> </output></operation></binding></definitions>在这个接口中描述了身份认证服务提供的login函数,该服务的入口参数为:userid为用户名、password为用户名、口令和时间戳一起加密后得到的字符串PWD、serviceid内容业务系统编号,返回值是否允许用户登录该内容业务系统的字符串。 不论内容业务系统运行在何种平台上,只要根据WSDL接口的描述和SOAP协议规范,把用户名和PWD用SOAP消息发送给身份认证服务,身份认证服务就会把认证结果用SOAP消息返回个内容业务系统。内容业务系统不必了解认证服务是怎样实现的,从而实现跨平台的通用认证。4 结束语上述的宽带门户网站的身份认证方案已经实际应用于了湖南铁通宽带门户网站,取得了良好的效果。 [1] 张建伟,李鑫 ,张梅峰. 基于MD5算法的身份鉴别技术的研究与实现[J]. 机工程,2003,(3): 118-119[2] Microsoft Corporation. Web安全威胁与对策[EB/OL],[3] 尹逊玉. 广电综合宽带门户网站及流媒体工程建设要点分析[J]. 电视技术,2004,(9): 65-71[4] 柴晓路. Web Service Case Study: 统一身份认证服务[EB/OL],[5] 王芝虎, 葛 声, 张力军. 级J ava Web 服务的研究与实现[J].计算机应用研究,2005,(1): 128-133[6] 沈 斌1 ,史鸣杰2. 统一身份认证平台的设计[J].南京师范大学学报,2004(6):73-75[7] , IBM, 25 Sep 2000 [8] [EB/OL]. IBM, Microsoft, DevelopMentor, 2000 [9] [J/OL]. W3C, 2 May 2001 [10] [J/OL], W3C, 6 Oct 2000
上一篇:IP传真的分析与改进