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

2020-02-27 其他范文 下载本文

基于STK方式的移动银行系统的设计与实现由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“移动银行支持的方式有”。

第一章 引言

研究背景和方向

近几年来,随着Internet 的迅猛发展,用户接入网络数不断增加,ISP(Internet Service Provider 服务提供商)对用户接入和计费管理变得日益重要。在其它领域,如IP 电话运营商、大规模防火墙等,对用户接入认证的要求也越来越高,原有的简 单认证方式已经不满足当前需要,迫切需要一种能够完成实时用户接入认证、实时 记账、全局漫游、多种计费方式、支持多种认证安全方式、跨越多平台的用户接入 认证系统。

RADIUS(Remote Authentication Dial-In User Service 用户远程拨号验证服 务)协议[1]作为IETF(Internet Engine Tasks Force 互联网工程任务组)定义的 标准协议已经越来越被大多数ISP、ITSP 和安全系统所认可。RADIUS 协议中所规定 的接入认证(Authentication)、用户授权(Authorization)、记账(Accounting)[2]、漫游(Roaming)和属性(Attribute)扩展方式等解决了众多ISP 所面临的问题,成为今后流行的趋势。

这样,开发符合RADIUS 协议的用户接入认证、授权和记账的软件成为构筑ISP、电信运营商、安全网络系统中的必要部分。现行的RADIUS 开发虽然部分满足了用户 的需求,但存在几个关键问题,如开发者不能利用已有存在的系统,重复劳动,开 发周期长;各种系统实现方式差异很大,不利于维护扩充;软件特定平台,不能跨 越平台使用;对协议包理解方式不同,不能互通漫游等,这样就需要一种全新的开 发方法和框架。

我们分析了国际上流行的各种RADIUS 系统实现,依照最新的协议及讨论草案,结合其它系统的先进优点,设计并实现了一个可扩充的AAA 协议栈软件包。根据这 个软件包,用户可以在协议栈的基础之上,选择自己所需要的运行模块和连接方式,编写符合自己需要的用户回调函数和全局设置接口,就可以完成一个标准的RADIUS 系统。

用户使用本协议栈开发RADIUS 系统时,可以脱离编写协议时的各种繁琐过程,无需考虑协议的语法和数据包的结构,并且使系统所覆盖的协议最多。采用这种方 法开发的RADIUS 系统具有符合国际标准协议、使用简便、开发周期短、系统灵活性 高、易于扩充和与系统间可互通漫游的特点。我们采用这种方法已被开发者实际利 用,产生极大的利用价值,具有很好的发展前景。

在本文中,首先介绍RADIUS 协议及其特性,然后给出所设计协议栈的框架原理 及其实现,协议栈所支持的功能和应用方法,最后给出结论和进一步需要完成的工

一个可扩展的AAA 协议栈 2 作。

相关工作

国际上有一个组织和我们工作类似,项目名称为“Stacks of Internet Telephony” [3],开始时间大约为2000 年6 月。以下是我们所开发的RADIUS 协议栈 和这个项目中的关于RADIUS 的栈的比较: 系统实现和功能 本协议栈 Vovida 项目组 继承系统 Livingston RADIUS Merit AAA 系统框架 进程池 单请求派生进程

验证方式 PAP、CHAP、MS-CHAP PAP、CHAP、MS-CHAP 网管接口函数 支持 不支持

用户数据 本地文件、数据库 只支持本地文件 配置管理 本地文件、数据库 只支持本地文件 日志 按时间递进、数据库 简单文本

其它部分 提供客户端和测试程序 无客户端和测试程序

第二章 RADIUS 相关协议及其特性

RADIUS 系统框架

远程拨号用户鉴别服务RADIUS 是朗讯网际互连系统中的一个基于客户端/服务 员的安全协议。在RFC2138[4]和RFC2139[5]中被IETF 定义为标准协议。用户相关信息 存储于一个中心位置,被称为RADIUS 服务员。RADIUS 客户端与RADIUS 服务员通过 通信来验证用户。服务员返回给客户端关于验证用户的操作权限。虽然RADIUS 这个 名词用来说明客户端与服务员进行通信的网络协议,但它经常被用来说明整个客户 端/服务员系统。如图2-1 所示。

一个可扩展的AAA 协议栈 3 RADIUS客户端RADIUS服务员

认证记账请求 认证记账响应

图 2-1:一个简单的RADIUS 客户端/服务员系统框架

基于 RADIUS 的远程接入环境共包括三个部分:用户、远程接入服务员和

RADIUS 服务员。每个用户是RAS 的一个客户,而每个RAS 是用户的服务员和 RADIUS 服务员的客户。结构如图2-2。

数据库本地RADIUS服务员 远端RADIUS服务员 RAS ISDN RAS MODEMS RAS FIREWALL RAS 需认证端 网络计算机 移动用户 Internet用户 请求接入者 本地认证方法 UNIX paword WinNT Domain Text 图 2-2:一个RADIUS 服务员结构说明

RAS 设备将不同连接用户的请求转换为RADIUS 认证请求或记账请求。

RADIUS 服务员可以接收来自不同RAS 设备上的请求信息,并选择预先设定的认证 方法来完成请求,并发送响应给RAS。

处于不同位置的RADIUS 服务员还可以连接在一起,组成一个RADIUS 认证环 境。每个RADIUS 可以将发给自己的请求转发给其它RADIUS 服务员来处理。结构 如图2-3。

一个可扩展的AAA 协议栈 4 RADIUS服务员 负责区域A用户 RADIUS服务员 负责区域B用户 RADIUS服务员 负责区域C用户 区域C RADIUS客户端

图 2-3:多个RADIUS 服务员的认证框架

这样就可以组成一个跨越不同地理位置的分布式认证环境,无论从认证用户数 量上,还是在用户分布上都可以实现透明的集中式管理。

RADIUS 基本功能

RADIUS 是一个在用户网络接入设备(例如拨号服务器)和用户信息存放设备 之间交换信息的标准方法。它有三个基本功能。

验证(Authentication):RADIUS 判别一个用户请求服务是否合法。用户鉴别 信息可以存放在本地users 文件,本地数据库、外部数据库中;也可以通过其它验证 方式进行鉴别如UNIX 口令文件、Windows NT 域数据库等。一个简单的典型例子如 下:

一个拨号用户通过 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 服务员首先判断该用户是否是本地用户,如果不是,根据用户特征查找代理表,看是否和用户开户地RADIUS A 有代理关系,如果有那么就转发该请求到A地RADIUS 服务员,A地RADIUS 服务员完成验证后,将响应结果发回C 地RADIUS 服务员,C 地RADIUS 再将结果发回给用户。记账签名和时间戳:记账请求/响应包必须签名。根据包的内容,使用客户端与

服务员之间的共享密钥,通过MD5 算法计算包的摘要,这样保证了记账包不被窃听 者篡改。时间戳也保证了记账记录的唯一性,保证记录的准确性,防止窃听者破环。用户自定义属性:RADIUS 协议除了规定的属性外,用户可以自行添加所需要的属性。在添加用户自定义属性时,需要注明用户ID 等标志。这样不同运营商之间 除了协议规定的属性外,还可以互通其它属性,交换信息。

地址绑定:RADIUS 协议规定可以将RADIUS 服务员与指定的IP 地址绑定,这 样可以在多宿主主机上使用RADIUS。

RADIUS 配置

RADIUS 配置主要在RADIUS 服务员部分,通过各种配置文件进行。RADIUS 服务

一个可扩展的AAA 协议栈 6 员所需要的配置文件全部放在名为 raddb 的目录下。它的组织形式如下: 图 2-4 RADIUS 目录结构

字典文件 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、RADIUS Accouting 协议:定义于RFC2139 中,主要对记账、记账包格式等 进行了规定。

3、RADIUS Authentication Client MIB:定义于RFC2618[6]中,主要定义了用 户在RADIUS 认证客户端中SNMP 代理需要的管理信息库。

4、RADIUS Authentication Server MIB:定义于RFC2619[7]中,主要定义了用 户在RADIUS 认证服务员中SNMP 代理需要的管理信息库。

5、RADIUS Accounting Client MIB:定义于RFC2620[8]中,主要定义了用户在 RADIUS 记账客户端中SNMP 代理需要的管理信息库。

6、RADIUS Accounting Server MIB:定义于RFC2621[9]中__________,主要定义了用户在RADIUS 记账服务员中SNMP 代理需要的管理信息库。

本协议栈以TCP/IP 协议为基础,使用UDP 为主要传输手段。协议栈的核心为

RFC2138 和RFC2139 组成的RADIUS 主要系统。RFC2618-RFC2621 主要实现协议栈具 有网络管理功能,示意图如下。协议栈系统软件包

RFC2618 RFC2619 RFC2620 RFC2621 RFC2138 Authentication RFC2139 Accounting UDP IP 框图3-1 协议栈包含的协议

协议栈功能框架

本协议栈的功能框架如图3-2 所示。

一个可扩展的AAA 协议栈 8 AAA协议栈

包处理回调函数、用户全局设置、接口函数 网管模块 端口绑定监听 数据库访问模块 多种验证方式 包加密解密 包接收发送 漫游代理 配置管理

图 3-2 RADIUS 协议栈功能框架 各部分主要功能如下:

配置管理:负责从本地配置文件或数据库中读取系统的参数设置,包括地 址、端口号、认证协议、超时控制时间等。

多种验证方式:负责根据预先配置的方式对请求进行认证,包括PAP、CHAP、MS-CHAP 方式等。

包加密解密:对认证请求包的口令字段进行加密和解密,生成所需的请求 和响应验证字。

包接收发送:接收请求包,并将其组织成结构体形式;把结构体形式的数 据结构打成二进制包。

漫游代理:根据请求包内容,应用设置条件,判断其是否需要代理。如果 需要代理,则处理后转发出去。接收代理响应,并转发给RADIUS 客户端。端口绑定监听:根据配置主机和端口信息,申请socket 并绑定于指定端口。监听来自客户端以及其它RADIUS 服务员的请求和响应。

网管模块:对RADIUS 系统的各个状态和参数进行监控,并在SNMP 代理调 用时将这些参数返回给调用者。

数据库访问模块:在对用户认证和记账时访问用户数据,访问方式可以支 持多种数据库形式。

包处理回调函数、用户全局设置、接口函数:是用户使用本协议栈时需要 编写的代码部分,具体使用方法见第五章。

第四章协议栈实现

开发环境及工具

一个可扩展的AAA 协议栈 9 本协议栈的开发环境有多种,可以是 WinNT,Linux,HP-UX,Solaris 等UNIX 操作系统。如果使用专用数据库的话,还需要在所用操作系统上安装ORACLE 等数据 库服务器及客户端。工具是UNIX 上的C 编译系统或者是WINDOWS 上的VC 编译系统。本协议栈采用标准ANSI C 语言编写,因为C 语言执行速度快,兼容性和跨平台 性好。

系统逻辑流程

使用本协议栈开发的RADIUS 服务员系统在处理请求包时采用的算法如图4-1 所示。

打开预先定义端口或知名端口,申请网络数据报套接字绑定到端 口上,便于以后主动监听。

预先创建若干RADIUS子进程,并建立父子间通信的全双工管道等 待处理主进程发送给它们的处理请求。

主进程读取RADIUS代理表和RADIUS客户端表,以后检验客户端合 法性和查找远端代理地址。

将网络套接字和管道描述符全部放入一个SELECT描述字段中,该 字段中的项对应可以进行I/O的描述符。通过监控这个字段可以获 知那个I/O端口上有数据达到。求出包括网络套接字和父子进程间 管道描述字的最大值。

SELECT监听I/O。一旦数据到达,进行一下处理

如果表中网络套接字有数据发到,则调用处理子程序,该子程序 首先判断该请求的源是否合法,是否需要漫游处理,然后选择预 先分配的一个空闲进程处理请求。

如果管道描述字有数据发到,则表示对应子进程处理请求完毕,子程序恢复空闲状态。

图 4-1 系统网络通信算法

一个可扩展的AAA 协议栈 10 使用本协议栈开发的 RADIUS 服务员系统的系统逻辑流程如下。

初 始 化 配 置(是 否 派 生 子 进 程、字 典 文 件 和 日 志 文 件 路 径、终端参数)

登记各种信号处理例程s i g n a l()读取配置文件r a d c o n f i g _ i n i t(),读入主机地址、端口号、最大请求个数、代理服务超时时间、最大请求超时时间)

读取字典文件d i c t _ i n i t(),将字典内容放入内存组织成为链 表,以后使用

派生后台进程f o r k(),退出当前会话,这样脱离命令行 关闭终端c l o s e(),显示软件版本

打开知名端口o p e n _ u d p s o c k()绑定端口 清空所有网络套接字端口F D _ C L E A R(),准备监听

派生指定个数的子进程c h i l d _ m a k e(),并监控父子进程间通 信的读写管道

申请表空间,调用T U X E D O,读取客户端列表和代理服务员列

表放入内存表中u p d a t e _ c l i e n t s()u p d a t e _ p r o x y()将监控描述符字段清零并置位F D _ Z E R O()循环非阻塞监控以上端口S E L E C T(),根据情况分别执行以下 子程序F D _ I S S E T()认证记账端口请求,调用认证处理r a d _ r e q u e s t()代理认证 记账端口请求,调用代理处理R a d _ p r o x y()子进程发送信号,处理子进程完毕。子进程空闲置位。

图4-2 系统逻辑流程

一个可扩展的AAA 协议栈 11 RADIUS 服务员中采用基于数据报的并发无连接网络通信算法、进程处理采用主 进程循环处理,子进程顺序处理算法。并且为提高效率,采用进程预分配的方法。系统运行时,由空闲子进程组成一个空闲进程池,当有请求时,主进程顺序选 择一个空闲子进程完成请求。子进程完成请求后通知父进程。示意见图4-3。RADIUS主进程 子进程池 空闲子进程

接收新请求的子进程 正在处理请求的子进程 完成子进程通知父亲

图4-3 系统运行时进程关系图

包处理逻辑流程

协议栈中的主进程在处理请求包时所作处理如图4-4 所示。

接 收 数 据 包 到 缓 冲 区 r e c v f r o m()判断包源客户端的合法性

如果是认证包系列用f i n d _ c l i e n t()如果是记账包系列用c a l c _ a c c t r e q()将缓冲区打成请求头结构r a d r e c v()判断是否需要代理h a n d l e _ p r o x y()需要代理,调用代理模块保 存漫游状态p u s h _ p r o x y()发送到远端

s e n d p r o x y 2 s e r v e r()不需要代理,判断是否是重 包

查找空闲子进程

登记包特性到子进程结构中 将请求包放入缓冲区 通过F I F O 发送给子进程

图4-4 主进程处理请求包流程

一个可扩展的AAA 协议栈 12 协议栈中对于代理漫游包的处理如图 4-5 所示。

接收数据包到缓冲区recvfrom()判断包源服务员的合法性find_server()将缓冲区打成请求头结构radrecv()找出包对应的描述符

查找发送时记的请求头pop_proxy()转发响应给最初的客户端sendproxy2client()图 4-5 漫游请求包流程

协议栈中子进程处理请求包的流程图如图 4-6 所示。

循环等待父进程发送处理消息read()将接收到的缓冲区打成请求头结构radrecv()根据不同请求包类型,调用用户自定义回调函数响应模块 如认证处理rad_authenticate()等 处理完毕,返回继续等待下一个请求

图 4-6 子进程处理请求包流程

从图中可以看出,协议栈的用户只需要编写用户处理请求包的回调函数,对于 其它过程则可以不用关心。

测试环境和方法

一个可扩展的AAA 协议栈 13 本协议栈的测试环境可以象开发环境一样,有多种组合。下面选取其中一种,以协议栈为基础的RADIUS 系统,如图4-7 所示。本地RADIUS服务员 ORACLE 数据库

远端RADIUS服务员 RADIUS 客户端 测试程序

图 4-7 协议栈测试环境

其中本地 RADIUS 服务员接收发自RADIUS 客户端的请求,ORACLE 数据库作为存 储用户数据和配置信息的服务器。远程RADIUS 服务员接收漫游用户的认证请求。测 试程序负责产生测试呼叫。

测试分为两个部分:功能测试和性能测试。功能测试包括对RADIUS 服务员中是 否满足RFC2138 和RFC2139 中规定功能的测试;性能测试包括在大并发用户量下系 统的响应时间和正确率。需要编写一个能完成测试要求的测试程序。此测试程序运 行于RADIUS 客户端,通过进程间通信模仿调用方程序。测试前还要编写一个模拟数 据生成程序,它负责从数据库中抽取数据,模仿呼叫数据。

接口回调函数

开发者通过回调函数来使用本协议栈,在请求包处理回调函数中,开发者可以 使用协议栈提供的各种实用函数,包括属性提取函数、加密解密函数、包发送接收 函数、打包函数和访问数据库函数。一个典型的回调函数例子的流程图如下。

一个可扩展的AAA 协议栈 14 判断用户名长度是否合法 判断是否有属性getattribute()抽取SESSION_INDEX属性放入响应链表中抽取相应请求属性 getattribute()应用客户端口令解密请求口令decrypt_paword()调TUXEDO访问数据库取口令get_paword()判断为正确,并发送响应send_accept()判断为错误,并发送响应send_reject()图 4-8 典型回调函数流程图

第五章协议栈功能特点

协议实现全、互通性较高:本协议栈基本全部实现了IETF 中关于RADIUS 的相 关协议。由于本协议栈完全遵守IEFT 的关于RADIUS 的各个协议,所以在以本协议 栈为基础开发的RADIUS 系统可以完全实现互通,在和其它标准RADIUS 系统也可以 实现较大程度上的互通。

多种验证类型:在验证过程中,RAS 和RADIUS 服务员传送口令信息,这个口令 信息通过RAS 和RADIUS 服务员之间的共享密钥加密。口令信息源于用户输入,根据 用户选择可以有以下三种:

1、PAP(Paword Authentication Protocol 口令验 证协议)非常简单,用户发送口令给RADIUS 服务员,RADIUS 服务员通过数据库或 操作系统来验证。用户发送口令给RAS 的过程中,口令以明文方式传送。RAS 传送 口令给RADIUS 的过程中,使用共享密钥加密。最后RADIUS 服务员以口令明文的方 式进行验证。

2、CHAP(Challenge Handshake Authentication Protocol 挑战握 手验证协议)避免在任何通信连接中使用口令明文。在CHAP 中,RAS 首先生成一个 随机数(称为挑战)并发送给用户,用户的PPP 端生成一个由口令和挑战组成的单 向摘要并发送给RAS,由于摘要是单向加密,RADIUS 服务员不能从摘要中恢复口令,所以它使用本地数据库中存储的用户口令用同样方法计算出摘要和接收的摘要比 较,如果相同则验证通过。

3、MS-CHAP(Microsoft Challenge Handshake 一个可扩展的AAA 协议栈 15 Authentication Protocol 微软挑战握手验证协议)是微软提出的类似于CHAP 而 整合入微软操作系统中的验证方法,它可以在操作系统之上采用不同级别:本地 用户、域用户、域组、主机用户、主机组合外部数据库等来验证用户。

二次开发工作量少,容易扩充:由于协议栈已经完成了开发RADIUS 系统所需的 大部分工作,用户只需要开发少量的回调函数,完成自己的特定需要,所以可以快 速开发。由于协议栈的实现是基于协议的包处理过程,所以用户可以根据协议的变 化和需求的变更,不断改进实现,而不需要太多工作量。

运行稳定:由于协议栈采用进程池的方式实现,所占用的内存一定,系统开销

最小。所以不会大量占用系统资源(CPU 处理时间和内存),不会出现因请求数量变 化而使系统资源的占用发生颠簸。更不会出现内存泄漏等错误。

性能:由于我们对协议栈的实现做到精益求精,采用高效的实现方法,优化代

码的设计,所以使用本协议栈开发的RADIUS 系统在同档次的服务器上运行效率比其 它系统要高。一般来说,在主频为300MHz 的主机上,其它系统可以实现500 个/秒 的认证速度,而使用本协议栈开发的RADIUS 系统可以实现1000 个每秒。

多种用户验证手段:本协议栈有多个模块支持多种数据库访问方式,用户数据 可以存放在以下几个形式中,文本文件、UNIX DBM、MYSQL、ORACLE、MS-SQL 等。多种日志方法:详细错误信息输出到本地日志、系统日志、数据库中。可以帮 助管理员和开发人员迅速找到错误原因,实时掌握系统状态。

跨平台运行:本协议栈可以运行在多个平台之上。由于是基于进程实现,所以

不会因为各个操作系统对线程实现不同而引发差异。本协议栈在 HP-UX 1 1.00、IBM RS6000 AIX 4.2、Redhat Linux 5.2、Slackware Linux 2.0.30、Solaris 2.7.1、Solaris x86 2.7.1、SunOS 4.1.3、WindowsNT/2000 上测试成功。

第六章 协议栈应用方法

本协议栈的应用可以分为以下几个步骤:

1、了解RADIUS 协议概况:开发者必须对RFC2138、RFC2139 有所了解,虽 然不用了解包的发送和接收、加密解密细节,但对协议的使用步骤和包 的格式定义必须了解。

2、了解协议栈和实用函数:开发者必须掌握本协议栈的逻辑流程,了解函 数的定义和调用的顺序。

3、编写用户回调接口函数:根据自定义的不同需要,对每个类型的请求进 行处理。

4、连接编译整个协议栈:选择不同运行模块,包括不同的验证方式、访问 数据库的类型等,在操作系统上运行编译器。

一个可扩展的AAA 协议栈 165、配置RADIUS 系统:在系统运行之前,需要根据不同的系统组成部分,选择适当方式来配置系统,例如:主机地址、端口、代理员的列表、客 户端的列表等。

在使用本协议栈时应注意以下几个问题:

1、字典文件和属性的定义:由于不同厂商对属性和属性值的定义值不同,所 以应注意区别,防止属性数据类型不匹配。

2、确定操作系统参数如最大打开文件数、信号灯数等符合需要。

3、尽量在用户回调函数中使用静态内存,防止动态内存使用不慎而引起的内 存泄漏和系统崩溃。

4、根据不同需要,连接不同模块,防止占用系统过多。

5、减少用户处理执行时间,以利于系统整体的运行性能。

第七章 结论

协议栈实现系统与相关系统比较

采用本协议栈编写的AAA 系统与其它典型RADIUS 实现系统比较如下表: 系统 本实现 Livingston[1] Merit[10] Ascend[11] Freeradius[12] 协议实现 全部 全部 全部 全部 全部 认证方式 一般 一般 一般 一般 多 功能 多 一般 一般 一般 多 兼容性 一般 好 一般 一般 一般 性能 好 一般 一般 一般 好 扩展性 好 一般 一般 一般 好 测试工具 全面 简单 简单 简单 简单

结论

由于Internet 不断发展,用户的接入越来越为人们关注。而防火墙和VPN 中的 不断使用,使RADIUS 协议也日益成为工业事实标准。

随着网络协议不断增多,使用协议栈来开发网络通信程序是近年来流行的趋势。开发一个可供快速组建RADIUS 系统的协议栈是一个必不可少的基础工具。

一个可扩展的AAA 协议栈 17 本文通过集成关于 RADIUS 的若干协议,实现一个AAA 协议栈,使得开发基于 RADIUS 协议的安全认证系统变得更加容易。

通过测试,本协议栈在同等环境条件下,系统的功能和性能达到相近系统的前 列。

不足之处和进一步的工作

虽然我们做了大量工作,但在以下几个方面还存在着不足:

1、对不同系统的各种属性的处理还不够全面。

2、认证中的验证类型还需扩充。

3、与其它安全认证系统的互通性有待提高。今后进一步的工作是:

1、实现最新的RADIUS 协议RFC2865[13]、RFC2866[14]。

2、改进协议栈,使之能运行于集群之上,提高系统性能。

3、对数据库的访问中增加LDAP(轻型目录访问协议)的支持。

4、加入负载平衡算法,使系统不同进程能发挥更大效率。

5、增强与其它RADIUS 系统的互通性。

6、支持TACACS+协议[15],TACACS 终端访问控制器接入控制系统协议。定义于 RFC1492 中。TACACS+增强型。类似于RADIUS 的AAA 协议,与RADIUS 不同 之处在于:传输协议使用TCP 而不是UDP。RADIUS 只加密口令字段,而 TACACS+加密整个包净荷。TACACS+允许验证和授权分离,而RADIUS 中验证 和授权是集成的。

7、支持Diameter 协议[16]。IETF 着眼的下一代AAA 协议。一个全新轻量级的,基于端点的。提供可扩展的基础来引进新策略和AAA 服务。继承RADIUS 的 机能。突破RADIUS 协议限制,允许服务员向客户端发送统一消息。使用重 传和失败恢复算法。提供端到端的安全机制。支持漫游和移动IP 网络。

参考文献

[1].Lucent, “Remote Authentication Dial-In User Service”, http://www.daodoc.com/.[3].“Stacks of Internet Telephony”, http://www.daodoc.com, 2000 [4].C.Rigney, A.Rubens, W.Simpson, and S.Willens, “Remote Authentication Dial In User Service”, IETF Network Working Group, April 1997.RFC2138.[5].C.Rigney, “RADIUS Accounting”, IETF Network Working Group, April 1997.RFC2139.[6].B.Aboba, G.Zorn “RADIUS Authentication Client MIB”, IETF Network Working Group, June 1999.RFC2618.[7].B.Aboba, G.Zorn “RADIUS Authentication Server MIB”, IETF Network Working Group, June 1999.RFC2619.[8].B.Aboba, G.Zorn “ RADIUS Accounting Client MIB”, IETF Network Working Group, June 1999.RFC2620.[9].B.Aboba, G.Zorn “ RADIUS Accounting Server MIB”, IETF Network Working Group, June 1999.RFC2621.[10].University of Michigan and Merit Network, Inc.“Merit AAA Server”, 1992 [11].Ascend Communications, Inc.“Ascend RADIUS”, 1996 [12].“Free RADIUS Project”, http://www.daodoc.com, 2000 [13].C.Rigney, A.Rubens, W.Simpson, and S.Willens, “Remote Authentication Dial In User Service”, IETF Network Working Group, June 2000.RFC2865.[14].C.Rigney, “RADIUS Accounting”, IETF Network Working Group, June 2000.RFC2866.[15].C.Finseth, “An Acce Control Protocol, Sometimes Called TACACS,” IETF RFC 1492, July 1993;available at ftp://ftp.isi.edu/in-notes/rfc1492.txt.[16].P.R.Calhoun, A.C.Rubens, and H.Akhtar, “Diameter Base Protocol,” IETF AAA Working Group, Internet draft, Oct.1999, work in progre.一个可扩展的AAA 协议栈 19 致谢

在此,首先向我的导师鞠九滨教授表示深深的谢意!从本科论文开始,鞠九滨 教授以他严谨的治学态度、渊博的学识、敏锐的思维和孜孜不倦的工作作风对我进 行了悉心的教诲,使我受益终生。

同时还要向李春阳高级工程师表示感谢,李老师一丝不苟的工作作风非常值得 我的学习。

向师兄张钶、张猛表示衷心的感谢。他们在科研上帮我攻克难关,给了我许多 无私的关心和帮助。

感谢研究小组成员刘静、张广艳、于海超,是他们使我在团结协作中不断成长。特别感谢于秀峰老师、胡成全老师、胡亮老师和房至一老师对我的帮助。

一个可扩展的AAA 协议栈 20 论文摘要 认证(Authentication)、授权(Authorization)、记账(Accounting)是网络接入 的三个重要需求。满足这些要求的RADIUS(Remote Authentication Dial-In User Service 用户远程拨号验证服务)协议作为IETF(Internet Engine Tasks Force 互联网工程任务组)定义的标准协议已经越来越被大多数ISP、ITSP 和安全系统所 认可。

这样,开发符合RADIUS 协议的用户接入认证、授权和记账的软件成为构筑ISP、电信运营商、安全网络系统中的必要部分。现行的RADIUS 开发虽然部分满足了用户 的需求,但存在几个关键问题,如开发者不能利用已有存在的系统,重复劳动,开 发周期长;各种系统实现方式差异很大,不利于维护扩充;软件特定平台,不能跨 越平台使用;对协议包理解方式不同,不能互通漫游。

作为一个可扩充的AAA 协议栈软件包,用户可以在AAA 协议栈的基础之上,选 择自己所需要的运行模块和连接方式,编写符合自己需要的用户回调函数和全局设 置接口,就可以完成一个标准的RADIUS 系统。用户使用本协议栈开发AAA 系统时,可以脱离编写协议时的各种繁琐过程,无需考虑协议的语法和数据包的结构,并且 使系统所覆盖的协议最多。采用这种方法开发的RADIUS 系统具有符合国际标准协 议、使用简便、开发周期短、系统灵活性高、易于扩充和与系统间可互通漫游的特 点。

一个可扩展的AAA 协议栈 21 Abstract Authentication, Authorization and Accounting are three crucial requirements for network acce.To meet those requirements, RADIUS is introduced.As a standard protocol specified by IETF(Internet Engine Tasks Force), RADIUS(Remote Authentication Dial-In User Service)is widely accepted by most ISP, ITSP and security systems.Hence, developing RADIUS-compliant software for user acce Authentication, Authorization and Accounting becomes a must-solve problem for constructing ISP, telecommunication commerce and secured network system.Though the present RADIUS development techniques satisfy the user demand to some extent, there still exist several critical undesired points, such as impoibility to reuse some existing systems, recursive labor, too long developing life cycle.Additionally, the difficulty in system maintenances and expansion due to the big difference in system implementation, software platform dependence, as well as inconvenience for inter-roaming because of various interpretation for a protocol packet.Our package is an extendable AAA protocol stack package, on which users could select their own modules and linking approaches, write their own user-defined routines and global configuration interface, thus finish a well-defined RADIUS system on the fly.Using our protocol stack package, users are able to get rid of the tedious procees of writing protocols, without considering protocol syntax or the frame structure of the packet, and are even able to cover more underlying protocols.The systems built by the means of this will have superior features such as complying with international standard, simpler manipulation, shorter developing life cycle, higher system flexibility, easier extendibility and facilitating system inter-roaming.__

《基于STK方式的移动银行系统的设计与实现.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
基于STK方式的移动银行系统的设计与实现
点击下载文档
相关专题 移动银行支持的方式有 银行 设计 方式 移动银行支持的方式有 银行 设计 方式
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文