专利名称:一种向后兼容的认证、授权、计费系统网络结构和实现方法
技术领域:
本发明涉及一种基于Diameter协议(“直径”协议)的电信网络认证(Authentication)、授权(Authorization)和计费(Accounting)系统,尤其涉及了一种向后兼容RADIUS协议(“半径”协议)的AAA系统的网络拓扑结构和实现方法。
背景技术:
认证(Authentication)是指用户在使用网络资源时网络系统对用户身份的确认。认证过程通过与用户的交互获得用户身份信息(如用户名/口令、公钥证书等),再由认证服务器将获得的用户身份信息与存储在数据库里的用户信息进行核对处理,最后根据处理结果确认用户身份是否正确。授权(Authorization)是指网络系统授权用户以特定的方式使用其资源。授权过程指定了被认证的用户在接入网络后能够使用的业务和拥有的权限。计费(Accounting)是指网络系统收集、记录用户对网络资源的使用,以便向用户收取资源使用费用,或者用于审计等目的。认证、授权和计费一起实现了网络系统对特定用户的网络资源使用情况的准确记录。这样既有效地保障了合法用户的权益,又能有效地保障网络系统安全可靠地运行。由此可见,AAA功能直接关系到每个互联网服务提供商和用户的切身利益。
RADIUS协议是目前应用最广泛的AAA协议,目前使用的其他AAA协议还包括TACACS+、Kerberos等。但由于RADIUS协议不受某个企业知识产权的限制,已经成为事实上的当前互联网AAA协议的国际标准。RADIUS协议最初是由Livingston公司提出的,原先的目的是为拨号用户进行认证和计费,后被IETF(InternetEngineering Task Force,互联网工程任务组)于1997年规范为RFC标准,成为一套通用的AAA协议。目前最新的RADIUS协议标准是2000年6月发布的RFC2865。除此之外,为适应互联网技术的发展,RADIUS协议族还包括的主要协议有RADIUS计费协议(RFC2866)、RADIUS扩展协议(RFC2869)、RADIUS和IPv6(RFC3162)等。在RADIUS网络中,大量的网络接入服务设备(如网关、接入控制器、VPN网关等)都通过RADIUS协议与RADIUS服务器通信,同时作为AAA系统,除RADIUS服务器外,还包括与之配套的基于RADIUS协议通信的用户数据库与计费系统。RADIUS协议作为AAA协议的通用标准,在各种业务领域中被广泛采用。尤其近年来随着移动通信技术的发展,无线接入和移动互联业务逐步开展,无线环境下的网络安全和信息安全备受关注,这也使得RADIUS协议从传统的有线接入网走向无线接入环境。其中最重要的是RADIUS协议在第三代移动通信网(3G)和无线局域网(WLAN)中的应用。
然而,RADIUS协议是在20世纪90年代初设计的,其目的是适应当时的网络环境与AAA需求。随着新的接入技术的引入和接入网络的快速扩容,越来越复杂的路由器和网络接入服务器大量投入使用,传统AAA网络显然无法满足当前与未来AAA应用发展的需要。尤其是表现在网络结构等方面的深层次的缺陷,使得对新一代AAA技术的需求变得异常迫切。Diameter协议的提出正是为了解决这一矛盾。
IETF在1998年12月成立了属于互联网操作与管理领域的AAA工作组,并着手下一代互联网AAA协议的研究开发以及标准制定,目的是替代现有包括RADIUS协议在内的AAA协议,以提供统一、开放、分布、移动的AAA服务。1999年Diameter协议作为新的AAA协议首先经Sun公司提出后,受到了业界的广泛支持,同期被提出的还有包括SNMP、RADIUS+和COPS等多种候选AAA协议。IETF的AAA工作组为确定最终的AAA协议,于2000年5月20日专门组建了AAA协议的评估组,经过一年的意见征集、讨论与评估,于2001年6月以RFC(RFC3127)的形式公布了评估结果,最终Diameter协议脱颖而出成为IETF的AAA工作确定的新一代的AAA协议。2003年9月,“Diameter基础协议”正式成为IETF的RFC标准(RFC3588),其相关的应用(如NASREQ、MobileIPv4、EAP、Credit-control、SIP等)也已被陆续提交,并在进一步的讨论中。
分析Diameter和RADIUS协议,Diameter在设计思想上保留了RADIUS的可扩展性等优点,与此同时,Diameter不仅弥补了RADIUS协议中已知的不足,而且提供了符合未来业务需求的全新功能。表1中通过Diameter和RADIUS协议的比较说明了Diameter协议的主要功能特点和突出优势。由比较可以看出,Diameter无论在安全性、可靠性、可扩展性还是网络结构以及对移动漫游的支持都明显优于RADIUS,并且更符合统一、开放、分布、移动的特点。
表1
RADIUS协议是目前应用最广泛的AAA协议,几乎所有的网络接入服务器都支持RADIUS协议,因此新的AAA协议的是否能够顺利推广与应用很大程度上取决于是否能够有良好的向后兼容特性,即与RADIUS协议兼容。Diameter为了兼容RADIUS协议,保留了0~256的命令码和属性码,并且希望能够用协议翻译代理设备将RADIUS消息翻译成Diameter服务器能够理解的Diameter消息。然而,由于RADIUS和Diameter协议会话状态模式、安全机制、消息路由机制以及网络结构的完全不一致,使得向后兼容难以实现。
发明内容
技术问题本发明的目的是提出一种向后兼容的认证、授权、计费系统网络结构和实现方法,描述的基于Diameter基础协议的FAIv1-NASREQ应用协议定义了AAA系统中翻译代理的实现方法,为解决Diameter和RADIUS协议的兼容性问题提供了可行的解决方案。
技术方案本发明的向后兼容的认证授权计费系统网络结构为,该网络结构遵循互联网工程任务组制定的“直径”协议中规定的网络结构,在该结构中有网络接入服务器翻译代理、本地服务器翻译代理、中继代理和委托代理、网络接入服务器和本地认证授权计费服务器;网络结构根据每个本地认证授权计费服务器所服务的区域被划分为服务域A、服务域B、服务域C,根据管辖区域划分为管理域I、管理域II;在服务域A内,网络接入服务器与网络接入服务器翻译代理直接连接,本地认证授权计费服务器与本地服务器翻译代理直接连接;网络接入服务器翻译代理、本地服务器翻译代理和中继代理由本地网络连接,并相互访问;在管理域内,包含了多个服务域,服务域A和服务域B的本地服务器翻译代理和中继代理之间通过管理域I网络连接,并相互访问;委托代理处于管理域I和外网的边界上,通过网络访问管理域I内各本地服务器翻译代理和中继代理;管理域I和管理域II的委托代理之间通过互联网相互连接。
遵循互联网工程任务组制定的“直径”协议中规定的网络结构实现方法为1)在原“直径”协议的实现方案中引入网络接入服务器翻译代理设备和本地服务器翻译代理设备,它们位于“直径”协议网络和“半径”协议网络的边界,用于“直径”协议消息和“半径”协议消息之间的协议转换处理,符合“直径”
2)协议中关于翻译代理的实现方法;3)网络接入服务器翻译代理和本地服务器翻译代理之间的通信遵循“直径”协议;4)网络接入服务器翻译代理与网络接入服务器之间的通信遵循“半径”协议,本地服务器翻译代理与本地认证授权计费服务器之间的通信遵循“半径”协议;5)网络接入服务器翻译代理和本地服务器翻译代理根据功能分别被划分为接口模块、消息处理模块和协议模块;6)定义两种“直径”协议消息AA-Request消息和AA-Answer消息,消息命令码为265;7)定义一种“直径”协议属性值对用于承载“半径”协议消息,称为RADIUS属性值对,属性值对码为255;8)网络接入服务器翻译代理实现方法的处理流程当收到来自网络接入服务器的“半径”协议请求消息,网络接入服务器翻译代理根据“半径”协议请求消息中用户归属地服务域信息检索与对应服务域本地服务器翻译代理建立的端到端会话,如果未检索到对应端到端会话,则由网络接入服务器翻译代理发起建立;“半径”协议请求消息经过预处理后封装在AA-Request消息的RADIUS属性值对中,AA-Request消息通过端到端会话发送至本地服务器翻译代理,本地服务器翻译代理解析RADIUS属性值对中的“半径”协议请求消息,经过预处理后发送到本地认证授权计费服务器;9)本地认证授权计费服务器翻译代理实现方法的处理流程当收到本地认证授权计费服务器的“半径”协议应答消息,“半径”协议应答消息经过预处理后封装在AA-Answer消息的RADIUS属性值对中,AA-Answer消息通过端到端会话发送至网络接入服务器翻译代理,网络接入服务器翻译代理解析RADIUS属性值对中的“半径”协议应答消息,经过预处理后发送到网络接入服务器。
网络接入服务器翻译代理的实现方法为1.)接口模块遵循“半径”协议与网络接入服务器通信1a.监听传输协议的1812和1813端口,等待接收“半径”协议请求消息;来自消息处理模块的“半径”协议应答消息,接口模块经过应答预处理后,发往对应的网络接入服务器,已发送的“半径”协议应答消息在已应答消息队列中保留5秒后自动删除;1b.收到“半径”协议请求消息,根据消息标识符检索待处理消息队列,如果找到相同标识符的消息则此“半径”协议请求消息为待处理消息的重发请求,丢弃此请求消息,返回步骤1a;1c.根据消息标识符检索已应答消息队列,如果找到相同标识符的应答消息则此“半径”协议请求消息为已应答消息的重发请求,重发对应“半径”协议应答消息,返回步骤1a;1d.如果收到的“半径”协议请求消息不是重发请求消息,在完成对“半径”协议请求消息的请求预处理后,消息将进入消息处理模块的待处理消息队列,返回步骤1a;2.)消息处理模块负责“半径”协议消息和“直径”协议消息之间的封装和解析,以及“直径”协议消息与端到端会话之间的映射2a.等待新消息进入待处理消息队列;当从协议模块收到AA-Answer消息时,从RADIUS属性值对中解析出“半径”协议应答消息;如果AA-Answer消息中结果码属性值对的值等于2002,则生成“半径”协议的接入拒绝消息作为“半径”协议应答消息;对应的“半径”协议请求消息从待处理消息队列中出队,并把接入拒绝消息发往接口模块;2b.新进入待处理消息队列的“半径”协议请求消息被封装为AA-Request消息,并根据“半径”协议请求消息中目的服务域的信息分发AA-Request消息到协议模块中已建立的对应服务域端到端会话接口,返回步骤2a;2c.对于新的目的服务域,消息处理模块将请求协议模块发起建立新的端到端会话,如果端到端会话建立成功,AA-Request消息发往此端到端会话接口,否则对应的“半径”协议请求消息从待处理消息队列中出队,并生成Access-Reject消息发往接口模块,返回步骤2a;3.)协议模块执行“直径”协议中定义的客户端功能,根据消息处理模块的请求,通过“直径”协议网络的路由和中继,与目的服务域本地服务器翻译代理建立端到端会话,通过此端到端会话发送和接收对应服务域的AA-Request消息和AA-Answer消息;并且根据“直径”协议定义的会话管理机制管理端到端会话。
本地服务器翻译代理设备的实现方法为1.)接口模块遵循“半径”协议与本地认证授权计费服务器通信3a.通过传输协议与本地认证授权计费服务器的1812和1813端口建立连接,等待接收“半径”协议应答消息;来自消息处理模块的“半径”协议请求消息,经过请求预接口模块处理后,发往本地认证授权计费服务器,已发送的“半径”协议请求消息保存在已请求消息队列中,每5秒重发一次,三次重发后出队,并通知消息处理模块;3b.收到“半径”协议应答消息,根据消息标识符检索已请求消息队列,如果没有找到相同标识符的消息,则丢弃此应答消息,返回步骤3a;3c.如果在已请求消息队列中找到相同标识符的消息,对应“半径”协议请求消息出队,在完成对“半径”协议应答消息的应答预处理后,消息将发往消息处理模块,返回步骤3a;2.)消息处理模块负责“半径”协议消息和“直径”协议消息之间的封装和解析4a.等待新的AA-Request消息进入待处理消息队列;来自接口模块的“半径”协议应答消息被封装在RADIUS属性值对中,如果收到来自接口模块的已请求消息超时或应答错误通知,则将对应“半径”协议请求消息封装在RADIUS属性值对中,并设置结果码属性值对的值等于2002;根据RADIUS消息标识符检索待处理消息队列中AA-Request消息,对应AA-Request消息出队,根据AA-Request消息的属性值对信息生成AA-Answer消息;生成的AA-Answer消息发往协议模块;4b.从新进入待处理消息队列的AA-Request消息的RADIUS属性值对中解析“半径”协议请求消息,发往接口模块,返回步骤4a;3.)协议模块遵循“直径”协议中定义的服务器的功能,通过“直径”协议网络的路由和中继,与网络接入服务器翻译代理建立端到端会话,并根据“直径”协议定义的会话管理机制管理端到端会话;通过此端到端会话发送和接收本地服务域的AA-Answer消息和AA-Request消息,收到的AA-Request消息进入消息处理模块的待处理消息队列。
定义的AA-Request消息和AA-Answer消息格式,其前序部分符合“直径”协议网络接入服务器请求应用协议中定义的消息格式,1.)AA-Request消息和AA-Answer消息中必须包含RADIUS属性值对;2.)在发生协议错误时,AA-Answer消息中RADIUS属性值对内容与对应AA-Request消息中RADIUS属性值对内容相同。
定义的RADIUS属性值对格式,其前序部分符合“直径”协议中定义的属性值对格式,1.)RADIUS属性值对头中M和P标识为1,表示RADIUS属性值对必须经过加密和数字签名保护;2.)RADIUS属性值对数据部分为8比特字节串。
网络接入服务器翻译代理的实现方法中接口模块预处理过程,其前序部分符合“半径”协议中定义的属性加密和解密、生成请求认证码、计算应答认证码、计算消息认证属性的方法,1.)请求预处理过程收到接入请求消息时,使用网络接入服务器翻译代理与网络接入服务器共享的密钥解密用户口令属性,并以明文替换原属性,2.)应答预处理过程5a.收到接入接收消息时,使用网络接入服务器翻译代理与网络接入服务器共享的密钥加密隧道口令属性,并以密文替换原属性;5b.计算应答认证码替换“半径”协议应答消息中的请求认证码;5c.计算消息认证属性替换原属性。
本地服务器翻译代理的实现方法中接口模块预处理过程,其前序部分符合“半径”协议中定义的属性加密和解密、生成和计算请求认证码、计算和检查应答认证码、计算和检查消息认证属性的方法。
1.)请求预处理过程6a.收到接入请求消息时,使用本地服务器翻译代理与本地认证授权计费服务器共享的密钥加密用户口令属性,并以密文替换原属性;6b.收到计费请求消息时,计算请求认证码替换原请求认证码;其它“半径”协议请求消息,则保存请求认证码,生成新的请求认证码替换原请求认证码;6c.保存“半径”协议请求消息的消息标识符,使用新的消息标识符替换原消息标识符;6d.计算消息认证属性替换原属性;2.)应答预处理过程7a.检查“半径”协议应答消息的应答认证码是否正确,如验证错误则发送应答错误通知给消息处理模块;7b.检查消息认证属性是否正确,如验证错误则发送应答错误通知给消息处理模块;7c.收到接入接受消息时,使用本地服务器翻译代理与本地认证授权计费服务器共享的密钥解密隧道口令属性属性,并以明文替换原属性;7d.恢复原消息标识符;7e.恢复原请求认证码。
有益效果根据本发明构建的AAA系统网络,不仅引入了新一代的Diameter AAA网络结构,而且完全兼容现有AAA系统;分布式的组网结构便于扩展;为网络的可持续升级提供了解决方案。
本发明描述的FAIv1-NASREQ应用协议完全符合Diameter应用协议规范,同时完全兼容RADIUS协议(包括RADIUS计费协议和RADIUS扩展协议),支持RADIUS各种认证和计费消息。FAIv1-NASREQ应用协议所定义的NASTA和HMSTA设备的操作流程充分考虑了RADIUS协议和Diameter协议各自的特点,在强调兼容性的同时还兼顾效率,尤其在为漫游用户提供安全、可靠、高效的AAA服务的同时不影响本地用户AAA服务质量。
图1为认证、授权、计费(AAA)系统网络拓扑结构示意图。其中有网络接入服务器翻译代理1;本地服务器翻译代理2、6、11;中继代理3、7、10;委托代理8、9;网络接入服务器5;本地认证授权计费服务器4。
图2为依据本发明中描述的实施例的消息流程图。
具体实施例方式
下面结合附图对本发明具体实施方式
作进一步说明本发明的向后兼容的认证授权计费系统网络结构为,该网络结构遵循互联网工程任务组制定的“直径”协议中规定的网络结构,在该结构中有网络接入服务器翻译代理、本地服务器翻译代理、中继代理和委托代理、网络接入服务器和本地认证授权计费服务器;网络结构根据每个本地认证授权计费服务器所服务的区域被划分为服务域A、服务域B、服务域C,根据管辖区域划分为管理域I、管理域II;在服务域A内,网络接入服务器与网络接入服务器翻译代理直接连接,本地认证授权计费服务器与本地服务器翻译代理直接连接;网络接入服务器翻译代理、本地服务器翻译代理和中继代理由本地网络连接,并相互访问;在管理域内,包含了多个服务域,服务域A和服务域B的本地服务器翻译代理和中继代理之间通过管理域I网络连接,并相互访问;委托代理处于管理域I和外网的边界上,通过网络访问管理域I内各本地服务器翻译代理和中继代理;管理域I和管理域II的委托代理之间通过互联网相互连接。
遵循互联网工程任务组制定的“直径”协议中规定的网络结构实现方法为1.)在原“直径”协议的实现方案中引入网络接入服务器翻译代理设备和本地服务器翻译代理设备,它们位于“直径”协议网络和“半径”协议网络的边界,用于“直径”协议消息和“半径”协议消息之间的协议转换处理,符合“直径”协议中关于翻译代理的实现方法;2.)网络接入服务器翻译代理和本地服务器翻译代理之间的通信遵循“直径”协议;3.)网络接入服务器翻译代理与网络接入服务器之间的通信遵循“半径”协议,本地服务器翻译代理与本地认证授权计费服务器之间的通信遵循“半径”协议;4.)网络接入服务器翻译代理和本地服务器翻译代理根据功能分别被划分为接口模块、消息处理模块和协议模块;5.)定义两种“直径”协议消息AA-Request消息和AA-Answer消息,消息命令码为265;6.)定义一种“直径”协议属性值对用于承载“半径”协议消息,称为RADIUS属性值对,属性值对码为255;7.)网络接入服务器翻译代理实现方法的处理流程当收到来自网络接入服务器的“半径”协议请求消息,网络接入服务器翻译代理根据“半径”协议请求消息中用户归属地服务域信息检索与对应服务域本地服务器翻译代理建立的端到端会话,如果未检索到对应端到端会话,则由网络接入服务器翻译代理发起建立;“半径”协议请求消息经过预处理后封装在AA-Request消息的RADIUS属性值对中,AA-Request消息通过端到端会话发送至本地服务器翻译代理,本地服务器翻译代理解析RADIUS属性值对中的“半径”协议请求消息,经过预处理后发送到本地认证授权计费服务器;8.)本地认证授权计费服务器翻译代理实现方法的处理流程当收到本地认证授权计费服务器的“半径”协议应答消息,“半径”协议应答消息经过预处理后封装在AA-Answer消息的RADIUS属性值对中,AA-Answer消息通过端到端会话发送至网络接入服务器翻译代理,网络接入服务器翻译代理解析RADIUS属性值对中的“半径”协议应答消息,经过预处理后发送到网络接入服务器。
网络接入服务器翻译代理的实现方法为1.)接口模块遵循“半径”协议与网络接入服务器通信1a.监听传输协议的1812和1813端口,等待接收“半径”协议请求消息;来自消息处理模块的“半径”协议应答消息,接口模块经过应答预处理后,发往对应的网络接入服务器,已发送的“半径”协议应答消息在已应答消息队列中保留5秒后自动删除;1b.收到“半径”协议请求消息,根据消息标识符检索待处理消息队列,如果找到相同标识符的消息则此“半径”协议请求消息为待处理消息的重发请求,丢弃此请求消息,返回步骤1a;1c.根据消息标识符检索已应答消息队列,如果找到相同标识符的应答消息则此“半径”协议请求消息为已应答消息的重发请求,重发对应“半径”协议应答消息,返回步骤1a;1d.如果收到的“半径”协议请求消息不是重发请求消息,在完成对“半径”协议请求消息的请求预处理后,消息将进入消息处理模块的待处理消息队列,返回步骤1a;2.)消息处理模块负责“半径”协议消息和“直径”协议消息之间的封装和解析,以及“直径”协议消息与端到端会话之间的映射2a.等待新消息进入待处理消息队列;当从协议模块收到AA-Answer消息时,从RADIUS属性值对中解析出“半径”协议应答消息;如果AA-Answer消息中结果码属性值对的值等于2002,则生成“半径”协议的接入拒绝消息作为“半径”协议应答消息;对应的“半径”协议请求消息从待处理消息队列中出队,并把接入拒绝消息发往接口模块;2b.新进入待处理消息队列的“半径”协议请求消息被封装为AA-Request消息,并根据“半径”协议请求消息中目的服务域的信息分发AA-Request消息到协议模块中已建立的对应服务域端到端会话接口,返回步骤2a;2c.对于新的目的服务域,消息处理模块将请求协议模块发起建立新的端到端会话,如果端到端会话建立成功,AA-Request消息发往此端到端会话接口,否则对应的“半径”协议请求消息从待处理消息队列中出队,并生成Access-Reject消息发往接口模块,返回步骤2a;3.)协议模块执行“直径”协议中定义的客户端功能,根据消息处理模块的请求,通过“直径”协议网络的路由和中继,与目的服务域本地服务器翻译代理建立端到端会话,通过此端到端会话发送和接收对应服务域的AA-Request消息和AA-Answer消息;并且根据“直径”协议定义的会话管理机制管理端到端会话。
本地服务器翻译代理设备的实现方法为
1.)接口模块遵循“半径”协议与本地认证授权计费服务器通信3a.通过传输协议与本地认证授权计费服务器的1812和1813端口建立连接,等待接收“半径”协议应答消息;来自消息处理模块的“半径”协议请求消息,经过请求预接口模块处理后,发往本地认证授权计费服务器,已发送的“半径”协议请求消息保存在已请求消息队列中,每5秒重发一次,三次重发后出队,并通知消息处理模块;3b.收到“半径”协议应答消息,根据消息标识符检索已请求消息队列,如果没有找到相同标识符的消息,则丢弃此应答消息,返回步骤3a;3c.如果在已请求消息队列中找到相同标识符的消息,对应“半径”协议请求消息出队,在完成对“半径”协议应答消息的应答预处理后,消息将发往消息处理模块,返回步骤3a;2.)消息处理模块负责“半径”协议消息和“直径”协议消息之间的封装和解析4a.等待新的AA-Request消息进入待处理消息队列;来自接口模块的“半径”协议应答消息被封装在RADIUS属性值对中,如果收到来自接口模块的已请求消息超时或应答错误通知,则将对应“半径”协议请求消息封装在RADIUS属性值对中,并设置结果码属性值对的值等于2002;根据RADIUS消息标识符检索待处理消息队列中AA-Request消息,对应AA-Request消息出队,根据AA-Request消息的属性值对信息生成AA-Answer消息;生成的AA-Answer消息发往协议模块;4b.从新进入待处理消息队列的AA-Request消息的RADIUS属性值对中解析“半径”协议请求消息,发往接口模块,返回步骤4a;3.)协议模块遵循“直径”协议中定义的服务器的功能,通过“直径”协议网络的路由和中继,与网络接入服务器翻译代理建立端到端会话,并根据“直径”协议定义的会话管理机制管理端到端会话;通过此端到端会话发送和接收本地服务域的AA-Answer消息和AA-Request消息,收到的AA-Request消息进入消息处理模块的待处理消息队列。
定义的AA-Request消息和AA-Answer消息格式,其前序部分符合“直径”协议网络接入服务器请求应用协议中定义的消息格式,1.)AA-Request消息和AA-Answer消息中必须包含RADIUS属性值对;2.)在发生协议错误时,AA-Answer消息中RADIUS属性值对内容与对应AA-Request消息中RADIUS属性值对内容相同。
定义的RADIUS属性值对格式,其前序部分符合“直径”协议中定义的属性值对格式,1.)RADIUS属性值对头中M和P标识为1,表示RADIUS属性值对必须经过加密和数字签名保护;2.)RADIUS属性值对数据部分为8比特字节串。
网络接入服务器翻译代理的实现方法中接口模块预处理过程,其前序部分符合“半径”协议中定义的属性加密和解密、生成请求认证码、计算应答认证码、计算消息认证属性的方法,1.)请求预处理过程收到接入请求消息时,使用网络接入服务器翻译代理与网络接入服务器共享的密钥解密用户口令属性,并以明文替换原属性,2.)应答预处理过程5a.收到接入接收消息时,使用网络接入服务器翻译代理与网络接入服务器共享的密钥加密隧道口令属性,并以密文替换原属性;5b.计算应答认证码替换“半径”协议应答消息中的请求认证码;5c.计算消息认证属性替换原属性。
本地服务器翻译代理的实现方法中接口模块预处理过程,其前序部分符合“半径”协议中定义的属性加密和解密、生成和计算请求认证码、计算和检查应答认证码、计算和检查消息认证属性的方法,1.)请求预处理过程6a.收到接入请求消息时,使用本地服务器翻译代理与本地认证授权计费服务器共享的密钥加密用户口令属性,并以密文替换原属性;6b.收到计费请求消息时,计算请求认证码替换原请求认证码;其它“半径”协议请求消息,则保存请求认证码,生成新的请求认证码替换原请求认证码;6c.保存“半径”协议请求消息的消息标识符,使用新的消息标识符替换原消息标识符;6d.计算消息认证属性替换原属性;2.)应答预处理过程7a.检查“半径”协议应答消息的应答认证码是否正确,如验证错误则发送应答错误通知给消息处理模块;7b.检查消息认证属性是否正确,如验证错误则发送应答错误通知给消息处理模块;7c.收到接入接受消息时,使用本地服务器翻译代理与本地认证授权计费服务器共享的密钥解密隧道口令属性属性,并以明文替换原属性;7d.恢复原消息标识符;7e.恢复原请求认证码。
根据本发明中FAIv1-NASREQ应用协议描述的NASTA和HMSTA设备的行为,NAS发起Access-Request消息(接入请求消息)到收到Access-Accept消息(接入接受消息)的消息流程如图2所示,NASTA和HMSTA设备各模块的具体操作步骤如下a.NASTA的接口模块监听UDP协议的1812和1813端口,收到Access-Request消息,根据消息标识符检索待处理消息队列,没有找到相同标识符的消息,此Access-Request消息不是待处理消息的重发请求;根据消息标识符检索已应答消息队列,没有找到相同标识符的应答消息,此Access-Request消息不是已应答消息的重发请求;使用NASTA与NAS共享的密钥解密User Password属性(用户口令属性),并以明文替换原属性;进入消息处理模块的待处理消息队列;b.NASTA的消息处理模块将新进入待处理消息队列的Access-Request消息封装为AA-Request消息,并根据RADIUS请求消息User Name属性(用
c.户名属性)中目的服务域的信息分发AA-Request消息到协议模块中已建立的对应服务域端到端会话接口;如果是新的目的服务域,消息处理模块将请求协议模块发起建立新的端到端会话,如果端到端会话建立成功,AA-Request消息发往此端到端会话接口;d.NASTA的协议模块遵循Diameter协议中定义的客户端的功能,通过此端到端会话发送对应服务域的AA-Request消息;e.HMSTA的协议模块遵循Diameter协议中定义的服务器的功能,通过端到端会话接收本地服务域的AA-Request消息,收到的AA-Request消息进入消息处理模块的待处理消息队列;f.HMSTA的消息处理模块等待新的AA-Request消息进入待处理消息队列,从新进入待处理消息队列的AA-Request消息的RADIUS AVP中解析Access-Request消息,发往接口模块;g.HMSTA的接口模块对Access-Request消息使用HMSTA与HMS共享的密钥加密User Password属性(用户口令属性),并以密文替换原属性,保存Access-Request消息的消息标识符,使用新的消息标识符替换原消息标识符,计算Message Authenticator属性(消息认证属性)替换原属性,然后发往HMS;已发送的Access-Request消息保存在已请求消息队列中,每5秒重发一次;h.HMSTA的接口模块收到来自HMS的Access-Accept消息,根据消息标识符检索已请求消息队列,找到相同标识符的消息,对应Access-Request消息出队;检查RADIUS应答消息的应答认证码是否正确,如验证错误则发送应答错误通知给消息处理模块;检查Message Authenticator属性是否正确,如验证错误则发送应答错误通知给消息处理模块;使用HMSTA与HMS共享的密钥解密Tunnel Password属性(隧道口令属性),并以明文替换原属性;恢复原消息标识符;恢复原请求认证码;将处理后的Access-Accept消息发往消息处理模块;i.HMSTA的消息处理模块将来自接口模块的Access-Accept消息被封装在RADIUS AVP中,根据RADIUS消息标识符检索待处理消息队列中AA-Request消息,对应AA-Request消息出队,根据AA-Request消息的AVP信息生成AA-Answer消息;生成的AA-Answer消息发往协议模块;j.HMSTA的协议模块通过此端到端会话发送AA-Answer消息到NASTA;k.NASTA的协议模块从端到端会话接收AA-Answer消息;l.NASTA的消息处理模块当从协议模块收到AA-Answer消息时,从RADIUSAVP中解析出Access-Accept消息;对应的Access-Request消息从待处理消息队列中出队,并把Access-Accept消息发往接口模块;m.NASTA的接口模块将来自消息处理模块的Access-Accept消息使用NASTA与NAS共享的密钥加密Tunnel Password属性,并以密文替换原属性;计算应答认证码替换RADIUS应答消息中的请求认证码;处理后的Access-Accept消息发往对应的NAS,已发送的Access-Accept消息在已应答消息队列中保留5秒后自动删除。
权利要求
1.一种向后兼容的认证授权计费系统网络结构,其特征在于该网络结构遵循互联网工程任务组制定的“直径”协议中规定的网络结构,在该结构中有网络接入服务器翻译代理(1)、本地服务器翻译代理(2、6、11)、中继代理(3、7、10)和委托代理(8、9)、网络接入服务器(5)和本地认证授权计费服务器(4);网络结构根据每个本地认证授权计费服务器所服务的区域被划分为服务域A、服务域B、服务域C,根据管辖区域划分为管理域I、管理域II;在服务域A内,网络接入服务器(5)与网络接入服务器翻译代理(1)直接连接,本地认证授权计费服务器(4)与本地服务器翻译代理(2)直接连接;网络接入服务器翻译代理(1)、本地服务器翻译代理(2)和中继代理(3)由本地网络连接,并相互访问;在管理域内,包含了多个服务域,服务域A和服务域B的本地服务器翻译代理(2、6)和中继代理(3、7)之间通过管理域I网络连接,并相互访问;委托代理(8)处于管理域I和外网的边界上,通过网络访问管理域I内各本地服务器翻译代理(2、6)和中继代理(3、7);管理域I和管理域II的委托代理(8、9)之间通过互联网相互连接。
2.一种如权利要求1所述的向后兼容的认证授权计费系统网络结构的实现方法,其特征在于遵循互联网工程任务组制定的“直径”协议中规定的网络结构实现方法为1)在原“直径”协议的实现方案中引入网络接入服务器翻译代理设备和本地服务器翻译代理设备,它们位于“直径”协议网络和“半径”协议网络的边界,用于“直径”协议消息和“半径”协议消息之间的协议转换处理,符合“直径”协议中关于翻译代理的实现方法;2)网络接入服务器翻译代理和本地服务器翻译代理之间的通信遵循“直径”协议;3)网络接入服务器翻译代理与网络接入服务器之间的通信遵循“半径”协议,本地服务器翻译代理与本地认证授权计费服务器之间的通信遵循“半径”协议;4)网络接入服务器翻译代理和本地服务器翻译代理根据功能分别被划分为接口模块、消息处理模块和协议模块;5)定义两种“直径”协议消息AA-Request消息和AA-Answer消息,消息命令码为265;6)定义一种“直径”协议属性值对用于承载“半径”协议消息,称为RADIUS属性值对,属性值对码为255;7)网络接入服务器翻译代理实现方法的处理流程当收到来自网络接入服务器的“半径”协议请求消息,网络接入服务器翻译代理根据“半径”协议请求消息中用户归属地服务域信息检索与对应服务域本地服务器翻译代理建立的端到端会话,如果未检索到对应端到端会话,则由网络接入服务器翻译代理发起建立;“半径”协议请求消息经过预处理后封装在AA-Request消息的RADIUS属性值对中,AA-Request消息通过端到端会话发送至本地服务器翻译代理,本地服务器翻译代理解析RADIUS属性值对中的“半径”协议请求消息,经过预处理后发送到本地认证授权计费服务器;8)本地认证授权计费服务器翻译代理实现方法的处理流程当收到本地认证授权计费服务器的“半径”协议应答消息,“半径”协议应答消息经过预处理后封装在AA-Answer消息的RADIUS属性值对中,AA-Answer消息通过端到端会话发送至网络接入服务器翻译代理,网络接入服务器翻译代理解析RADIUS属性值对中的“半径”协议应答消息,经过预处理后发送到网络接入服务器。
3.根据权利要求2所述的向后兼容的认证授权计费系统网络结构的实现方法,其特征在于网络接入服务器翻译代理的实现方法为1)接口模块遵循“半径”协议与网络接入服务器通信1a.监听传输协议的1812和1813端口,等待接收“半径”协议请求消息;来自消息处理模块的“半径”协议应答消息,接口模块经过应答预处理后,发往对应的网络接入服务器,已发送的“半径”协议应答消息在已应答消息队列中保留5秒后自动删除;1b.收到“半径”协议请求消息,根据消息标识符检索待处理消息队列,如果找到相同标识符的消息则此“半径”协议请求消息为待处理消息的重发请求,丢弃此请求消息,返回步骤1a;1c.根据消息标识符检索已应答消息队列,如果找到相同标识符的应答消息则此“半径”协议请求消息为已应答消息的重发请求,重发对应“半径”协议应答消息,返回步骤1a;1d.如果收到的“半径”协议请求消息不是重发请求消息,在完成对“半径”协议请求消息的请求预处理后,消息将进入消息处理模块的待处理消息队列,返回步骤1a;2)消息处理模块负责“半径”协议消息和“直径”协议消息之间的封装和解析,以及“直径”协议消息与端到端会话之间的映射2a.等待新消息进入待处理消息队列;当从协议模块收到AA-Answer消息时,从RADIUS属性值对中解析出“半径”协议应答消息;如果AA-Answer消息中结果码属性值对的值等于2002,则生成“半径”协议的接入拒绝消息作为“半径”协议应答消息;对应的“半径”协议请求消息从待处理消息队列中出队,并把接入拒绝消息发往接口模块;2b.新进入待处理消息队列的“半径”协议请求消息被封装为AA-Request消息,并根据“半径”协议请求消息中目的服务域的信息分发AA-Request消息到协议模块中已建立的对应服务域端到端会话接口,返回步骤2a;2c.对于新的目的服务域,消息处理模块将请求协议模块发起建立新的端到端会话,如果端到端会话建立成功,AA-Request消息发往此端到端会话接口,否则对应的“半径”协议请求消息从待处理消息队列中出队,并生成Access-Reject消息发往接口模块,返回步骤2a;3)协议模块执行“直径”协议中定义的客户端功能,根据消息处理模块的请求,通过“直径”协议网络的路由和中继,与目的服务域本地服务器翻译代理建立端到端会话,通过此端到端会话发送和接收对应服务域的AA-Request消息和AA-Answer消息;并且根据“直径”协议定义的会话管理机制管理端到端会话。
4.根据权利要求2所述的向后兼容的认证授权计费系统网络结构的实现方法,其特征在于本地服务器翻译代理设备的实现方法为1)接口模块遵循“半径”协议与本地认证授权计费服务器通信3a.通过传输协议与本地认证授权计费服务器的1812和1813端口建立连接,等待接收“半径”协议应答消息;来自消息处理模块的“半径”协议请求消息,经过请求预接口模块处理后,发往本地认证授权计费服务器,已发送的“半径”协议请求消息保存在已请求消息队列中,每5秒重发一次,三次重发后出队,并通知消息处理模块;3b.收到“半径”协议应答消息,根据消息标识符检索已请求消息队列,如果没有找到相同标识符的消息,则丢弃此应答消息,返回步骤3a;3c.如果在已请求消息队列中找到相同标识符的消息,对应“半径”协议请求消息出队,在完成对“半径”协议应答消息的应答预处理后,消息将发往消息处理模块,返回步骤3a;2)消息处理模块负责“半径”协议消息和“直径”协议消息之间的封装和解析4a.等待新的AA-Request消息进入待处理消息队列;来自接口模块的“半径”协议应答消息被封装在RADIUS属性值对中,如果收到来自接口模块的已请求消息超时或应答错误通知,则将对应“半径”协议请求消息封装在RADIUS属性值对中,并设置结果码属性值对的值等于2002;根据RADIUS消息标识符检索待处理消息队列中AA-Request消息,对应AA-Request消息出队,根据AA-Request消息的属性值对信息生成AA-Answer消息;生成的AA-Answer消息发往协议模块;4b.从新进入待处理消息队列的AA-Request消息的RADIUS属性值对中解析“半径”协议请求消息,发往接口模块,返回步骤4a;3)协议模块遵循“直径”协议中定义的服务器的功能,通过“直径”协议网络的路由和中继,与网络接入服务器翻译代理建立端到端会话,并根据“直径”协议定义的会话管理机制管理端到端会话;通过此端到端会话发送和接收本地服务域的AA-Answer消息和AA-Request消息,收到的AA-Request消息进入消息处理模块的待处理消息队列。
5.根据权利要求2所述的向后兼容的认证授权计费系统网络结构的实现方法,其特征在于定义的AA-Request消息和AA-Answer消息格式,其前序部分符合“直径”协议网络接入服务器请求应用协议中定义的消息格式,1)AA-Request消息和AA-Answer消息中必须包含RADIUS属性值对;2)在发生协议错误时,AA-Answer消息中RADIUS属性值对内容与对应AA-Request消息中RADIUS属性值对内容相同。
6.根据权利要求2所述的向后兼容的认证授权计费系统网络结构的实现方法,其特征在于定义的RADIUS属性值对格式,其前序部分符合“直径”协议中定义的属性值对格式,1)RADIUS属性值对头中M和P标识为1,表示RADIUS属性值对必须经过加密和数字签名保护;2)RADIUS属性值对数据部分为8比特字节串。
7.根据权利要求3所述的向后兼容的认证授权计费系统网络结构的实现方法,其特征在于网络接入服务器翻译代理的实现方法中接口模块预处理过程,其前序部分符合“半径”协议中定义的属性加密和解密、生成请求认证码、计算应答认证码、计算消息认证属性的方法,1)请求预处理过程收到接入请求消息时,使用网络接入服务器翻译代理与网络接入服务器共享的密钥解密用户口令属性,并以明文替换原属性,2)应答预处理过程5a.收到接入接收消息时,使用网络接入服务器翻译代理与网络接入服务器共享的密钥加密隧道口令属性,并以密文替换原属性;5b.计算应答认证码替换“半径”协议应答消息中的请求认证码;5c.计算消息认证属性替换原属性。
8.根据权利要求4所述的向后兼容的认证授权计费系统网络结构的实现方法,其特征在于本地服务器翻译代理的实现方法中接口模块预处理过程,其前序部分符合“半径”协议中定义的属性加密和解密、生成和计算请求认证码、计算和检查应答认证码、计算和检查消息认证属性的方法,1)请求预处理过程6a.收到接入请求消息时,使用本地服务器翻译代理与本地认证授权计费服务器共享的密钥加密用户口令属性,并以密文替换原属性;6b.收到计费请求消息时,计算请求认证码替换原请求认证码;其它“半径”协议请求消息,则保存请求认证码,生成新的请求认证码替换原请求认证码;6c.保存“半径”协议请求消息的消息标识符,使用新的消息标识符替换原消息标识符;6d.计算消息认证属性替换原属性;2)应答预处理过程7a.检查“半径”协议应答消息的应答认证码是否正确,如验证错误则发送应答错误通知给消息处理模块;7b.检查消息认证属性是否正确,如验证错误则发送应答错误通知给消息处理模块;7c.收到接入接受消息时,使用本地服务器翻译代理与本地认证授权计费服务器共享的密钥解密隧道口令属性属性,并以明文替换原属性;7d.恢复原消息标识符;7e.恢复原请求认证码。
全文摘要
一种向后兼容的认证授权计费系统网络结构涉及一种基于“直径”协议的电信网络认证、授权和计费系统,该网络结构遵循互联网工程任务组制定的“直径”协议中规定的网络结构,在该结构中有网络接入服务器翻译代理(1)、本地服务器翻译代理(2、6、11)、中继代理(3、7、10)和委托代理(8、9)、网络接入服务器(5)和本地认证授权计费服务器(4);网络结构根据每个本地认证授权计费服务器所服务的区域被划分为服务域A、服务域B、服务域C,根据管辖区域划分为管理域I、管理域II;管理域I和管理域II的委托代理(8、9)之间通过互联网相互连接。根据本发明构建的AAA系统网络,不仅引入了新一代的DiameterAAA网络结构,而且完全兼容现有AAA系统。
文档编号H04L9/32GK1809072SQ200610038500
公开日2006年7月26日 申请日期2006年2月27日 优先权日2006年2月27日
发明者曹秀英, 沈平, 张岩, 陈轶群, 戚隆宁 申请人:东南大学