身份认证与访问控制系统总体设计方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
身份认证及访问控制总体设计方案
卫士通信息产业股份有限公司
应用安全产品事业部
2003年5月
目录
1.设计目标 (1)
2.系统设计 (1)
2.1.系统组成 (2)
2.2.工作原理 (3)
2.3.网络拓朴 (5)
2.4.系统结构 (6)
2.5.运行环境 (6)
3.安全性设计 (7)
3.1.密钥管理 (7)
3.2.系统自身安全 (7)
4.关键技术 (7)
4.1.访问控制 (7)
4.1.1.系统结构 (7)
4.1.2.权限的设置与裁决 (8)
4.2.身份认证 (9)
4.2.1.客户端认证流程 (9)
4.2.2.客户获取令牌流程 (10)
4.2.3.代理服务器认证 (11)
4.2.4.身份鉴别 (12)
4.3.负载均衡 (13)
4.3.1.集群技术 (13)
4.4.代理技术 (13)
4.4.1.应用协议代理 (13)
4.4.2.SOCKS代理 (14)
4.5.统一接口 (14)
5.系统特点 (14)
6.性能指标 (14)
7.系统功能 (15)
7.1.证书及密钥管理系统 (15)
7.2.客户安全代理 (15)
7.3.认证服务器 (15)
7.4.代理服务器 (15)
7.5.访问控制服务器 (16)
7.6.管理系统 (16)
7.7.负载均衡与集群 (17)
8.进度计划 (17)
9.人员安排 (17)
1.设计目标
使用证书认证方式实现网络用户与服务器之间的双向身份认证,对通信的数据进行加密性、完整性和不可否认性保护,将访问控制技术溶入到网络代理中,对访问网络的用户实施访问控制。
同时,因为系统代理了应用系统的网络协议,并代理用户访问系统的提供的服务,因而,可对网络用户的行为进行全面的审计,大大的提高了系统的安全性。
主要目标如下:
1.实现安全设备统一接口,支持系列化配置的认证设备(USB-Key电子钥匙、智能IC卡等硬件);
2.基于PKI和Kerberos思想的认证方式,支持可配置的单,双向身份认证。
3.支持数据通信的加密保护,支持标准、商密和普密算法。
4.支持常用的网络协议。
(HTTP等)
5.对网络资源(如文件、目录)实现基于角色的访问控制。
6.提供完善的审计功能,提供数据的备份与恢复。
7.系统的负载均载和集群技术。
8.SOCKS协议支持。
9.SSL算法扩充与标准化。
10.认证服务器的二次开发接口。
11.实现系统内证书及设备的管理,支持自带CA 。
2.系统设计
在原有网络应用软件的环境中,给客户和服务器加上安全代理模块和访问控制模块,为应用系统提供身份认证、数据安全和访问控制等方面的安全保障。
系统由管理系统、代理服务器、访问控制服务器、认证服务器、后台应用服务器、安全客户端组成。
3.系统组成
1)客户端
➢硬件认证令牌系统设备(可选择的计算机安全模块系列和第三方安全设备等)
➢客户端安全认证软件
2)服务器端
➢认证服务器
➢代理服务器
➢服务器密码机
➢RBAC服务器
➢系统管理中心
➢证书及密钥管理系统
➢数据库服务器
●管理系统
➢系统管理软件完成安全系统代理服务的配置、系统服务器的网络配置、系统审计与监控等。
➢证书及密钥管理系统具有CA的基本功能,为系统中的用户签发证书及密钥,并将这些信息存放在安全访问设备中。
➢RBAC管理软件为应用系统创建相关的角色,将定义的角色与证书及密钥管理系系统中的所产生的用户进行关联,赋予角色对应用系统的资源的访问
权限。
●代理服务器
➢与认证服务器进行身份认证和密钥协商,验证用户的访问令牌,代理后台服务器的协议,完成发送/接收数据的加/解密,并对用户的访问请求进行
权限裁决。
●客户端代理软件
➢使用指定认证设备,完成客户与认证服务器之间的身份认证,并接收认证
服务器返回的访问令牌。
客户端代理软件因访问令牌超时而被代理服务器
拒绝访问时,将与认证服务器重新进行认证,获取新的访问令牌。
●认证服务器
➢采用PKI体系与Kerberos思想相结合的认证方式,对系统中的用户及设备进行身份认证及密钥颁发。
通过认证的用户将获取一个指定代理服务服务
器的访问令牌,访问令牌含有超时时限等信息。
用户将使用该令牌访问代
理服务器。
●访问控制服务器
➢从数据库取得最新的数据信息,接收代理服务器的访问裁决请求,从访问控制信息中决定用户是否有权进行操作,将判定结果返回给代理服务器。
3.1.工作原理
证书及密钥管理系统为系统中的用户签发安全访问设备,并负责系统中的用户管理。
设备中有包含用户信息的证书及密钥等信息,并将生成的用户信息记录到数据库服务器。
RBAC管理软件为应用系统创建相关的角色,根据用户系统的实际组织结构,指定角色之间的继承、互斥等关系,并为角色赋予对应用系统的资源的访问权限。
同时,从数据库服务器取得用户信息,为用户分配与之对应的角色。
系统管理负责系统的参数配置、信息查询等。
如:为整个系统的网络地址配置;安全认证服务器配置对外提供的网络服务;审计信息的查询等。
认证服务器采用分布式身份认证方式,使用X509证书完成与用户、代理服务器之间的身份认证,为系统中的用户和代理服务器提供认证和密钥颁发功能。
代理服务器在启动后,需与身份认证服务器进行认证,注册其提供的服务。
并协商出代理服务器的保护密钥,该密钥用于保护颁发给用户的代理服务器访问令牌。
用户在访问协议代理服务器时,需先与身份认证服务器进行认证,协商出与认证服务器之间的通信密钥,该密钥用于保护与认证服务器通信的后续数据。
然后,获取欲访问代理服务器的访问令牌、提供的网络服务和保护密钥。
令牌中也含有代理服务器的保护密钥,用于解密用户发送的数据。
客户端代理利用安全设备完成与认证服务器的身份认证。
安全设备完成对数据的签名、加密。
客户端代理在本地进行网络侦听,当接收到应用系统的发来的连接后,便检查该网络连接属于哪个代理服务器,然后检查是否已经取得了该代理服务器的访问令牌,以及该令牌是否还有效。
如果尚未取得令牌,则与认证服务器进行身份认证,并申请欲访问代理服务器的访问令牌;如令牌已经失效,则无须重新认证,仅需重新申请访问令牌。
获取令牌后,客户端代理软件将生成一通信密钥,用代理服务器的保护密钥对其保护后,与访问令牌一起发送给代理服务器。
代理服务器对访问令牌进行验证,通过后使用保护密钥解开用户发来的通信密钥。
以后用户与代理服务器之间的通信均使用该通信密钥进行保护。
代理服务器实现应用协议的代理和访问控制,协议代理是为了实现更细粒度的访问控制。
代理服务器接受到用户的访问请求后,从其访问令处牌中取出用户的身份信息,如用户ID。
通过用户ID确定用户的角色,再将用户角色信息、用户访问的网络资源及其对网络资源的操作,这三个要素进行RBAC的访问裁决。
通过裁决,系统将代理用户访问网络资源。
反之,拒绝用户的访问请求。
同时,代理服务器将用户的连接状态、每一请求和操作,均记录在数据库中,为实现审计和监控提供详尽的数据依据。
代理服务器可根据服务器的要求对网络中传送的数据信息进行数据机密性和完整性保护。
RBAC服务器裁决用户访问请求,由信息下载和访问裁决两部份组成。
信息下载周期性的从数据库服务器下载最新的角色授权信息,为裁决模块提供有效的信息。
裁决模块接收外部的裁决请求,根据用户名从授权信息中确定用户的角色,从访问控制信息中决定用户是否有权进行操作。
3.2.网络拓朴
3.3.系统结构
3.4.运行环境
客户端认证代理:Windows98/2000。
认证服务器:TCP/IP网络
安全服务器:TCP/IP网络
RBAC服务器:TCP/IP网络
服务器密码机:TCP/IP网络
证书及密钥管理系统: Windows 98/2000。
系统管理中心:Windows 2000。
4.安全性设计
4.1.密钥管理
综合运用对称、非对称密码体制,实现身份认证、密码颁发、数据机密等安全功能。
系统中所有数据的加、解密功能均通过安全设备实现,加密密钥存放在安全设备中,不以明文方式出现在安全设备以外。
用户的私钥和主密钥均存放在客户端安全设备中,只有通过安全设备的口令认证,才能够使用,且不能读出。
协商的通信密钥均用对方的公钥和主密钥进行保护后,发送给对方。
4.2.系统自身安全
系统各模块均需通过认证方可使用,对存放在数据库以外的系统数据均做机密性和完整性保护。
提供数据的备份与恢复,使系统更加安全可靠。
5.关键技术
➢R BAC(基于角色的访问控制)技术。
➢网络应用协议的分析与代理模。
➢身份认证机制的研究与实现;
➢S SL算法扩展。
➢系统服务器之间的负载均衡。
5.1.访问控制
5.1.1.系统结构
系统采用RBAC技术实现对应用系统对象的访问控制。
其思想为将一类用户归结为一个角色,角色之间可以继承和互斥,通过对角色进行权限控制,达到对用户权限的管理。
其结构如下:
上图表现了角色的继承的关系系统,角色类型3继承角色类型2的权限,角色类型2继承角色类型1的权限。
由于角色类型3与角色类型5不存在互斥关系,用户31同时拥有角色类型3和角色类型5的权限。
由于角色类型3与角色类型4存在互斥关系,用户41只能选择拥有角色类型4或角色类型3的权限,不能同时拥有角色类型4或角色类型3的权限。
5.1.2.权限的设置与裁决
为应用系统的每一个访问对象设置相关的访问控制权限,并将其与某个角色相关。
访问裁决的思想是通过用户ID确定用户所属的角色,从用户的访问请求中取得欲访问的资源和操作。
通过访问控制列表,检查用户角色有无此权限,实现对用户的访问行为的访问控制。
本系统中用户的ID从用户证书中取得。
其流程如下:
5.2. 身份认证
为了提高系统身份认证的效率,在认证中采用了两种认证方式:分布式认证和基于证书的认证。
分布式认证运用于客户端与代理服务器之间。
证书认证用于与认证服务器相关的认证,如客户与认证服务器和代理服务器与认证服务器。
5.2.1. 客户端认证流程
客户端(用户端、代理服务器) 服务器(身份认证服务器)
1. 客户端连接服务器。
2. 服务器发送R1(随机数)。
R1
<--------------------------------------------------------
3. 认证类型标志(用户认证) (1字节) +客户的证书+私钥签名(R1) +R2,R2
为零表示不需要认证服务器,否则需认证。
认证类型标志(用户认证) +证书+私钥签名
(R1) +R2
-------------------------------------------------------->
4.服务器验证客户证书及其签名,如果通过认证,则从证书中取出用户信息。
否则,断开连接。
如果客户端不需要认证服务器,则发送服务器加密证书,并转至7。
否则执行5。
加密证书
<---------------------------------------------------------
5.服务器发送签名证书+私钥签名(R2) +加密证书。
签名证书+私钥签名(R2) +加密证书
<---------------------------------------------------------
6.客户端验证服务器签名证书及其签名。
如果通过认证,则继续。
否则,断
开连接。
7.客户端验证服务器加密证书,如果通过,则从服务器加密证书中取出服务
器公钥,产生用服务器公钥加密的工作密钥,并对工作密钥用私钥签名发送给服务器。
否则,断开连接。
RSA Kus(key)+私钥签名(RSA Kus(key))
-------------------------------------------------------->
8.服务器验证客户端私钥签名的(RSA Kus(key)),如果验证通过,将key导入
加密设备,并置返回结果为成功,否则,置返回结果为失败。
返回结果(成功或失败)
<--------------------------------------------------------
9.客户端接收返回结果。
断开连接。
5.2.2.客户获取令牌流程
未认证的用户,可发送一个特殊的ID(表示该用户是匿名用户),认证服务器为它颁发公共的令牌。
客户端(用户端) 服务器(身份认证服务器)
1.客户端连接服务器。
2.客户端发送用户ID。
用户ID
------------------------------------------------------------->
3.服务器根据ID C检查该用户是否是公共用户,如果是,则为用户颁发公共
服务的令牌。
如果不是公共用户,则验证该用户是否已认证,如果该用户未认证,则将返回结构置为客户未认证。
否则,服务器为客户端颁发访问所有服务的令牌,将返回结果置为获取令牌成功。
返回信息(认证未成功或(所有代理服务器信息+与代理服务器对应的令牌+所有后台服务的信息)
<------------------------------------------------------------
4.客户端检查服务器发送的信息,如果发现未认证,执行认证操作。
否则,
将令牌保存起来。
5.断开连接。
5.2.3.代理服务器认证
代理服务器身份认证服务器
1.代理服务器连接身份认证服务器。
2.身份认证服务器发送R1(随机数)。
R1
<-------------------------------------------------------------
3.代理服务器发送认证类型标志(代理服务器认证)(1字节) +代理服务器的证
书+私钥签名(R1) +R2,R2为零表示不需要认证服务器,否则需认证。
认证类型标志(代理服务器认证) +证书+私钥签名(R1) +R2
--------------------------------------------------------------->
4.身份认证服务器验证代理服务器证书及其签名,如果通过认证,则从证书
中取出代理服务器信息。
否则,断开连接。
如果代理服务器不需要认证服务器,则发送身份认证服务器加密证书,并转至7。
否则执行5。
加密证书
<-------------------------------------------------------------
5.身份认证服务器发送签名证书+私钥签名(R2) +加密证书。
签名证书+私钥签名(R2) +加密证书
<-------------------------------------------------------------
6.代理服务器验证身份认证服务器签名证书及其签名。
如果通过认证,则继
续。
否则,断开连接。
7.代理服务器验证身份认证服务器加密证书,如果通过,则从身份认证服务
器加密证书中取出公钥,产生用身份认证服务器公钥加密的工作密钥,并对工作密钥用私钥签名发送给身份认证服务器。
否则,断开连接。
RSA Kus(key)+私钥签名(RSA Kus(key))
-------------------------------------------------------->
8.身份认证服务器验证代理服务器私钥签名的(RSA Kus(key)),如果验证通过,
将key导入加密设备,并发送身份认证服务器的时钟。
否则,断开连接。
E key(TIME AS)
<------------------------------------------------------------
9.代理服务器接收身份认证服务器的时钟,将自己的时钟调到与身份认证服
务器一致。
10.代理服务器发送自己目前所代理的服务信息给身份认证服务器。
服务信息
------------------------------------------------------------->
11.身份认证服务器更新代理服务器的服务信息。
并返回认证是否成功的信息
给代理服务器。
认证是否成功的信息
<------------------------------------------------------------
12.断开连接。
5.2.4.身份鉴别
客户端在访问代理服务器时,其间需要在做一次身份鉴别,其鉴别方式为“挑战――应答”方式。
其流程如下:
客户端(用户端) 代理服务器
1.客户端连接代理服务器,并发送验证类型,表示自己是匿名用户还是经认
证后的用户
用户类型
-------------------------------------------------------->
2.代理服务器检查用户的类型,如果是匿名用户,则发送是否允许匿名用户
访问的结果;否则,发送验证客户的随机数R1
结果| R1
<--------------------------------------------------------
3.如果客户端是匿名用户,则检查是否允许访问,如果不允许,则断开连接;
否则,则鉴别已完成;如果客户端不是匿名用户,则客户端发送访问令牌和R1的HMAC和验证服务器随机数R2。
访问令牌+HMAC(R1)+R2
-------------------------------------------------------->
4.服务器验证用户发送的访问令牌,然后从令牌中取出密钥,对R1作HMAC,
并发送
验证结果+是否加解密(1字节)+HMAC(R2)
<--------------------------------------------------------
5.如果验证通过,客户端与服务器进行数据交换,否则,断开连接。
5.3.负载均衡
5.3.1.集群技术
负载均衡集群,目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问量的Web服务。
在集群中有一个主控节点,称为高级流量管理器(ATM)。
用户对于代理服务器的请求全部发送到ATM上,因为ATM上绑定了这项服务对外的IP地址。
ATM把接受到的请求再平均发送到各服务节点上,服务节点接收到请求之后,直接把相应的结果发送给用户。
这样一来,假如在1秒内有1000个请求,而集群中有10个服务节点,则每个节点将处理100个请求。
5.4.代理技术
5.4.1.应用协议代理
应用协议进行代理,并对其进行解析,使面向应用的访问控制成为可能。
同时使安全系统可无缝的嵌入到应用系统中,无需对应用系统进行改造。
对HTTP
协议的代理可实现对WEB服务器上的文件进行访问控制;对TELNET协议的代理可实现对系统操作的访问控制。
5.4.2.SOCKS代理
SOCKS代理技术可实现同一端口对多个应用系统的代理,其优点是大大降低安全系统客户端的开发工作,更好与应用系统协同工作。
当用户系统有增加应用系统时,仅需进行简单的配置,无需对代理软件进行扩展开发,便可将新的应用系统纳入安全系统的保护中。
5.5.统一接口
系统模块间的统一接口,使各模块的开发更容易,系统适应力更高。
安全设备的统一接口,使设备的替换、升级更简单,可实现安全设备的系列化。
可采用CSP、PKCS#11等技术。
6.系统特点
➢数据加密支持多种专用算法,这些专用算法均通过国密办鉴定。
由于采用了模块组件的设计思想,算法的更换更加容易。
➢身份认证将PKI的证书认证与传统的Kerberos思想相结合,大大提高了身份认证的安全性、可靠性和灵活性。
➢RBAC(基于角色的访问控制)技术的引入是系统的核心,该技术常用于操作系统和数据库系统。
将其应用于信息安全领域,是项目的最大创新。
➢系统负载均衡和集群技术的使用,使安全系统不再成为应用系统的瓶颈,提高了系统的吞吐能力,更好的服务与应用系统。
➢系统将数据加密、身份认证、访问控制和协议代理等多种信息安全技术有机的结合在一起,尤其是将PKI、RBAC等先进的信息技术的引入,更
使系统与众不同、出类拔萃,建立了信息安全的一个全新的概念。
7.性能指标
1.协议代理服务器:并发支持1000个访问请求。
8.系统功能
8.1.证书及密钥管理系统
1.证书管理
证书、私钥的生成、注销和挂失。
2.设备管理
客户安全认证设备和认证服务器管理卡的签发与废止。
3.用户管理
用户信息录入、修改、删除和查询。
4.备份与恢复
8.2.客户安全代理
1.支持系列化的安全设备,包括计算机安全模块系列和第三方厂商的设备;
2.系统参数的可视化配置;包括安全设备的选择、认证服务器IP地址、本机侦听等)
3.双向身份认证方式;
4.SOCKS服务端接口;
5.应用协议的代理;
6.通信数据的机密性和完整性保护;
7.超时自动重新认证。
8.3.认证服务器
1.基于证书的身份认证;
2.为认证对象分发代理服务器的访问令牌和密钥;
3.接收代理服务器所提供的服务注册;
4.提供二次开发接口。
8.4.代理服务器
1.访问令牌的验证;
2.网络服务的注册
3.代理系统对外开放的相关的网络服务(如HTTP等)。
4.连接RABC服务器对用户请求进行访问决定。
5.用户访问的审计记录。
6.通信数据的加密
8.5.访问控制服务器
1.定时获取角色信息;
2.实现访问请求的裁决。
8.6.管理系统
1.证书及密钥管理系统
a)系统用户信息的管理,包括用户信息的创建、删除、修改和查询。
b)统一安全设备接口,支持多种安全设备的无缝接入。
c)支持第三方CA的无缝接入。
d)系统信息的备份与恢复。
e)提供与访问控制模块相关数据的接口。
2.系统管理
a)进程管理:启动和终止服务器上运行的进程。
b)资源管理:检查服务器的内存、存储介质的使用情况。
c)网络管理:对服务器的网卡地址、网关等进行配置。
d)审计监控:查看和终止用户对的网络资源访问,对网络访问进行实
时监控和事后审计。
3.RBAC管理
a)用户角色的创建。
b)角色权限的继承与互斥。
c)增加、删除角色的权限。
d)用户与角色的关联。
e)用户、角色信息的加密存储与发布。
8.7.负载均衡与集群
采用集群技术可实现多台代理服务器之间的负载均衡。
9.进度计划
5月在已有的基础上,增加客户端代理功能,实现HTTP协议。
客户代理与服务器代理间运行HMAC实现相互的身份认证。
6月COM技术研究,实现统一设备接口,支持安全设备的自动配置。
7月按统一设备接口对公司SSF33算法的硬件设备进行封装。
Socks协议客户端与服务端模块的开发。
8-9月 SSL算法扩展和标准化。
同时支持专用算法(SSF33)和标准算法。
集成Socks、SSL和RBAC,完成加密版的开发。
10-11月完成独立的身份认证服务器
12月将负载均衡技术集成到本系统中。
10.人员安排。