基于STK方式的移动银行系统的设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章引言研究背景和方向近几年来,随着Internet的迅猛发展,用户接入网络数不断增加,ISP(InternetServiceProvider服务提供商)对用户接入和计费管理变得日益重要。在其它领域,如IP电话运营商、大规模防火墙等,对用户接入认证的要求也越来越高,原有的简单认证方式已经不满足当前需要,迫切需要一种能够完成实时用户接入认证、实时记账、全局漫游、多种计费方式、支持多种认证安全方式、跨越多平台的用户接入认证系统。RADIUS(RemoteAuthenticationDial-InUserService用户远程拨号验证服务)协议[1]作为IETF(InternetEngineTasksForce互联网工程任务组)定义的标准协议已经越来越被大多数ISP、ITSP和安全系统所认可。RADIUS协议中所规定的接入认证(Authentication)、用户授权(Authorization)、记账(Accounting)[2]、漫游(Roaming)和属性(Attribute)扩展方式等解决了众多ISP所面临的问题,成为今后流行的趋势。这样,开发符合RADIUS协议的用户接入认证、授权和记账的软件成为构筑ISP、电信运营商、安全网络系统中的必要部分。现行的RADIUS开发虽然部分满足了用户的需求,但存在几个关键问题,如开发者不能利用已有存在的系统,重复劳动,开发周期长;各种系统实现方式差异很大,不利于维护扩充;软件特定平台,不能跨越平台使用;对协议包理解方式不同,不能互通漫游等,这样就需要一种全新的开发方法和框架。我们分析了国际上流行的各种RADIUS系统实现,依照最新的协议及讨论草案,结合其它系统的先进优点,设计并实现了一个可扩充的AAA协议栈软件包。根据这个软件包,用户可以在协议栈的基础之上,选择自己所需要的运行模块和连接方式,编写符合自己需要的用户回调函数和全局设置接口,就可以完成一个标准的RADIUS系统。用户使用本协议栈开发RADIUS系统时,可以脱离编写协议时的各种繁琐过程,无需考虑协议的语法和数据包的结构,并且使系统所覆盖的协议最多。采用这种方法开发的RADIUS系统具有符合国际标准协议、使用简便、开发周期短、系统灵活性高、易于扩充和与系统间可互通漫游的特点。我们采用这种方法已被开发者实际利用,产生极大的利用价值,具有很好的发展前景。在本文中,首先介绍RADIUS协议及其特性,然后给出所设计协议栈的框架原理及其实现,协议栈所支持的功能和应用方法,最后给出结论和进一步需要完成的工一个可扩展的AAA协议栈2作。相关工作国际上有一个组织和我们工作类似,项目名称为“StacksofInternetTelephony”[3],开始时间大约为2000年6月。以下是我们所开发的RADIUS协议栈和这个项目中的关于RADIUS的栈的比较:系统实现和功能本协议栈Vovida项目组继承系统LivingstonRADIUSMeritAAA系统框架进程池单请求派生进程验证方式PAP、CHAP、MS-CHAPPAP、CHAP、MS-CHAP网管接口函数支持不支持用户数据本地文件、数据库只支持本地文件配置管理本地文件、数据库只支持本地文件日志按时间递进、数据库简单文本其它部分提供客户端和测试程序无客户端和测试程序第二章RADIUS相关协议及其特性RADIUS系统框架远程拨号用户鉴别服务RADIUS是朗讯网际互连系统中的一个基于客户端/服务员的安全协议。在RFC2138[4]和RFC2139[5]中被IETF定义为标准协议。用户相关信息存储于一个中心位置,被称为RADIUS服务员。RADIUS客户端与RADIUS服务员通过通信来验证用户。服务员返回给客户端关于验证用户的操作权限。虽然RADIUS这个名词用来说明客户端与服务员进行通信的网络协议,但它经常被用来说明整个客户端/服务员系统。如图2-1所示。一个可扩展的AAA协议栈3RADIUS客户端RADIUS服务员认证记账请求认证记账响应图2-1:一个简单的RADIUS客户端/服务员系统框架基于RADIUS的远程接入环境共包括三个部分:用户、远程接入服务员和RADIUS服务员。每个用户是RAS的一个客户,而每个RAS是用户的服务员和RADIUS服务员的客户。结构如图2-2。数据库本地RADIUS服务员远端RADIUS服务员RASISDNRASMODEMSRASFIREWALLRAS需认证端网络计算机移动用户Internet用户请求接入者本地认证方法UNIXpasswordWinNTDomainText图2-2:一个RADIUS服务员结构说明RAS设备将不同连接用户的请求转换为RADIUS认证请求或记账请求。RADIUS服务员可以接收来自不同RAS设备上的请求信息,并选择预先设定的认证方法来完成请求,并发送响应给RAS。处于不同位置的RADIUS服务员还可以连接在一起,组成一个RADIUS认证环境。每个RADIUS可以将发给自己的请求转发给其它RADIUS服务员来处理。结构如图2-3。一个可扩展的AAA协议栈4RADIUS服务员负责区域A用户RADIUS服务员负责区域B用户RADIUS服务员负责区域C用户区域CRADIUS客户端图2-3:多个RADIUS服务员的认证框架这样就可以组成一个跨越不同地理位置的分布式认证环境,无论从认证用户数量上,还是在用户分布上都可以实现透明的集中式管理。RADIUS基本功能RADIUS是一个在用户网络接入设备(例如拨号服务器)和用户信息存放设备之间交换信息的标准方法。它有三个基本功能。验证(Authentication):RADIUS判别一个用户请求服务是否合法。用户鉴别信息可以存放在本地users文件,本地数据库、外部数据库中;也可以通过其它验证方式进行鉴别如UNIX口令文件、WindowsNT域数据库等。一个简单的典型例子如下:一个拨号用户通过RADIUS协议试图接入网络的过程如下:1、用户拨号进入一个远程接入服务员(MODEM池)并开始一个PPP会话;2、远程接入服务员把从PPP会话中得到的用户验证信息经过处理,打成RADIUS协议请求包,传送给RADIUS服务员;3、如果RADIUS服务员通过了这个验证,它将发送接受响应给RAS,并附加上其它信息包括用户建立连接所需要的IP地址、最大连接时间等等;如果RADIUS不能验证这个请求或验证没有通过,它将发送拒绝响应给RAS以及错误的原因;4、使用这些信息,RAS如果受到接受响应包,则它允许用户开始操作网络,如果拒绝则断掉连接并给出错误信息。授权(Authorization):RADIUS协议可以控制用户会话中使用特定的网络设备服务。在RAS发送的验证请求信息中,除基本信息外,还可以有用户期望连接类型等,RADIUS服务员可以根据请求完成验证。RADIUS服务员可以将验证通过的其它参数发送给RAS以规定用户连接。所有的属性交换由用户配置文件控制。配置文件中包括两种属性:检查属性和返回属性。检查属性定义了一些连接所需请求。RAS在向RADIUS服务员发送验证请求时必须具备这些属性,否则验证不会成功。返回一个可扩展的AAA协议栈5属性为验证成功后RADIUS服务员发送给RAS的附加信息,例如定义连接的一些参数。一旦用户通过认证,RADIUS服务员根据系统预先设置的用户配置文件,附加用户可以使用的资源能力,如IP地址、连接协议、连接速率等。通过这种方式,可以集中管理用户的不同访问能力,比如用户普通电话拨号接入网络时应该获取的速率和连接方式和通过ISDN拨入网络的速率和连接方式,以及两种方式的口令可以是不同的。记账(Accounting):RADIUS协议可以记录会话开始记录、会话结束记录。包括本次连接的用户名、开始连接时间、结束连接时间、用户使用协议、用户使用带宽、传输数据量、连接断开原因和出错信息等。RADIUS客户端在连接开始的时候向RADIUS服务员发送会话开始记录,在连接结束的时候发送会话结束记录。通常情况下RADIUS服务员只记录会话结束记录;对于会话开始记录一般用于用户超时监测和切断控制。RADIUS扩充功能RADIUS协议除了基本功能以外,为了适应Internet的不断扩大,增强了几个功能:代理(漫游):为了能够使用户能在异地通过认证使用服务,RADIUS协议支持服务员之间转发代理请求和响应。请求和响应的转发根据RADIUS服务员存放在本地的proxy文件或数据库中存放的外部RADIUS服务员信息进行。如图2-3,当一个用户在C地要求使用服务时,C地RADIUS服务员首先判断该用户是否是本地用户,如果不是,根据用户特征查找代理表,看是否和用户开户地RADIUSA有代理关系,如果有那么就转发该请求到A地RADIUS服务员,A地RADIUS服务员完成验证后,将响应结果发回C地RADIUS服务员,C地RADIUS再将结果发回给用户。记账签名和时间戳:记账请求/响应包必须签名。根据包的内容,使用客户端与服务员之间的共享密钥,通过MD5算法计算包的摘要,这样保证了记账包不被窃听者篡改。时间戳也保证了记账记录的唯一性,保证记录的准确性,防止窃听者破环。用户自定义属性:RADIUS协议除了规定的属性外,用户可以自行添加所需要的属性。在添加用户自定义属性时,需要注明用户ID等标志。这样不同运营商之间除了协议规定的属性外,还可以互通其它属性,交换信息。地址绑定:RADIUS协议规定可以将RADIUS服务员与指定的IP地址绑定,这样可以在多宿主主机上使用RADIUS。RADIUS配置RADIUS配置主要在RADIUS服务员部分,通过各种配置文件进行。RADIUS服务一个可扩展的AAA协议栈6员所需要的配置文件全部放在名为raddb的目录下。它的组织形式如下:图2-4RADIUS目录结构字典文件dictionary:RADIUS服务员使用字典文件来建立检查属性列表和返回属性列表。字典文件包括可能用到的属性名称、属性号、属性值等。用户文件users:存储用户的配置信息,包括鉴别和授权信息。客户文件clients:存储RADIUS所有的本服务员对应的客户端地址及共享密钥。代理文件proxy:存储所有远程RADIUS服务员的地址和共享密钥等。菜单文件menus:存储各种用户通过认证后可以选择的服务类型。RADIUS特性基于RADIUS协议的接入认证/计费系统提供以下特性:客户机/服务员模式:要求对用户进行认证的设备被称为客户端,要求RADIUS服务员进行服务,而一个RADIUS服务员也可以是其它服务员的客户端。安全:在大型网络中,安全信息分散于网络不同设备上。RADIUS协议可以允许用户信息保存于一台主机之上,最小化安全漏洞的危险。RADIUS服务员管理所有鉴别和接入网络服务的功能。RADIUS服务员与客户端之间使用共享密钥进行通信。可适应性:RADIUS软件可以安装在任何通信环境之中。也可以和其它安全系统和协议融合为一体。对用户可以使用多种验证方法。可扩展性:所有传输的信息被组织为称为三元组(属性、长度、值)中,新的属性可以随时添加。管理简便:RADIUS服务员将安全信息存储于中心位置,只需要维护这一处信息即可。对不同厂商的远程接入设备可以按统一的安全模式维护和管理。广泛的审计能力:RADIUS提供一种审计跟踪能力,称为RADIUS记账。收集来的信息可以用来分析安全效果和计费。一个可扩展的AAA协议栈7第三章协议栈框架协议栈包含协议框架本协议栈所覆盖的协议主要有以下几个。1、RADIUS协议:定义于RFC2138中,是RADIUS体系的主要部分,主要对验证和授权、包格式、语法和漫游等进行了规定。2、RADIUSAccouting协议:定义于RFC2139中,主要对记账、记账包格式等进行了规定。3、RADIUSAuthenticationClientMIB:定义于RFC2618[6]中,主要定义了用户在RADIUS认证客户端中SNMP代理需要的管理信息库。4、RADIUSAuthenticationServerMI

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功