(计算机系统结构专业论文)网络身份认证安全模型的设计与实现.pdf_第1页
(计算机系统结构专业论文)网络身份认证安全模型的设计与实现.pdf_第2页
(计算机系统结构专业论文)网络身份认证安全模型的设计与实现.pdf_第3页
(计算机系统结构专业论文)网络身份认证安全模型的设计与实现.pdf_第4页
(计算机系统结构专业论文)网络身份认证安全模型的设计与实现.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(计算机系统结构专业论文)网络身份认证安全模型的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 摘 要 随着网络的快速发展和广泛应用,网络安全问题变得越来越重要,而身份认证作 为网络安全体系的基础,一直是网络安全领域的研究热点。虽然基于 usb key (universal serial bus key)的身份认证能够解决安全性与易用性之间的矛盾,但如 何保证其对各种应用更广泛的适应性,还有不少问题需要解决。 通过分析 usb key的应用特征,采用 c/s(client/server)结构,在现有的基于 冲击- 响应的双因子认证方式基础上,提出了一个网络身份认证安全模型,并论述了 模型的实现机理。结合应用需求,综合运用了数据加密、访问控制、权限鉴别和网络 数据包的过滤技术,以确保安全易用的身份认证为原则设计了模型的体系结构,描述 了具体的工作流程,详细地划分了系统的功能模块,并讨论了 usb key管理模块、 认证通信模块、身份认证及访问控制模块、包过滤模块和加/解密模块间交互的基本 操作流程。 基于所给模型, 具体设计了基于角色的身份信息和基于角色应用映射关系的访问 控制数据库的结构,并定义了完善的认证通信消息格式。同时采用完成端口机制实现 了客户端和认证服务器间的通信,提高了对大并发量客户端 i/o(input/output)请求 的处理性能。采用 ndis(network driver interface specification)中间层驱动程序在 osi(open system interconnection)七层模型的网络层按不同的用户应用策略完成对 网络数据包的过滤,细化了每个应用与访问者的安全管理粒度,保证了模型保护的网 络系统仅向合法用户提供相应的应用服务, 大大提高了模型所服务的各种应用系统的 信息安全性。 实验结果表明,所建立的模型拓展了 usb key的用途,具有性能稳定的身份认 证功能,还能提供对具体网络应用的无缝嵌入和访问控制功能,增强了网络应用的安 全性,具有较好的实用性。 关键词:身份认证,访问控制,完成端口,中间层驱动程序,包过滤 ii abstract network development gives more importance to security research. as the base of network security system, identity authentication is the research focus. although the authentication based on usb key (universal serial bus key) is secure and user- friendly, many problems exist in the adaptability to various applications. after analyzing the characters of usb key, a secure network identity authentication model based on impact- response mode is proposed, which adopts c/s ( client/server) architecture. several technologies, such as encryption, access control, authentication and packet filter, are employed in this model. furthermore, more details about the model s functions and modules are designed. based on the proposed model, the relationship between identity and application is defined in several tables and the structure of every authentication message is also introduced. the communication between client and server which is implemented by using completion port can be very effective when more i/o (input/output) requests come from client. the adopted ndis (network driver interface specification) intermediate driver works on osi (open system interconnection) network layer and filter every packet according to the access control rules, which protects the network system to supply the specific applications to authenticated users. experiments on the established model show the identity authentication function based on usb key is very steady and the seamless embedded access control function is provided to the applications running on it. in a word, the security of network is enhanced. key words: identity authentication,access control,completion port,intermediate driver,packet filter 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集 体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中 以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保 留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_ _年解密后适用本授权书。 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 1 1 绪论 1.1 本课题研究背景 当前高速发展的互联网已经深入到社会生活的各个方面。对个人而言,互联网已 使人们的生活方式发生了翻天覆地的变化;对企业而言,互联网改变了企业传统的营 销方式及其内部管理机制。但是,在享受信息的高度网络化带来的各种便利时,信息 安全方面的挑战也随之而来,比如黑客入侵、计算机病毒和拒绝服务攻击等。没有安 全保障的网络可以说是一座空中楼阁,安全性已逐渐成为网络建设的第一要素。 网络安全是一个综合性的交叉学科领域,广泛涉及计算机技术、网络技术、通 信技术、密码技术、信息安全、人工智能、应用数学、数论、信息论和人文科学等诸 多学科,是近几年迅速发展的一个热点学科领域1。它的研究和发展又将刺激、推动 和促进相关学科的研究与发展。 网络安全通常是指计算机网络系统的硬件、 软件和系统中的数据不因偶然的或者 恶意的原因而遭到破坏、更改和泄露,系统能够连续可靠地正常运行,网络服务不中 断。网络安全的目标就是保护网络的设备、程序和数据,使其免受非授权的使用或访 问2,3。网络安全要求:保护个人隐私,控制对网络资源的访问,保障商业秘密在网 络上传输的保密性、完整性和真实性;控制不健康的内容或危害社会稳定的言论;避 免国家机密泄漏4。从广义上来说,凡是涉及到网络上信息的保密性、完整性、可用 性、真实性和可控性的相关技术和理论都是网络安全的研究领域5,6。 1.2 国内外发展现状 目前国内外网络安全技术虽然种类繁多,但可以分为被动和主动两种7。被动安 全技术大多是静态防御型的,如认证系统、口令8、密码协议、散列函数加密、数字 签名、信息伪装、防火墙和 vpn 等技术,使用也较为广泛。主动安全技术能主动地 2 检测出网络的薄弱环节,实时监视入侵行为并予以反击,包括入侵检测9、网络安全 评估、动态响应和审计分析等技术。 在谈及信息安全时, 很多人往往以为只要加上防火墙和杀毒软件或最多再加上入 侵检测就很安全了。这些都是重要的安全措施,但远远不是信息安全的全部内容10。 在国际标准化组织iso的网络安全体系设计标准(iso7498- 2)中,提出了层次型的安 全体系结构,定义了五大安全服务功能:身份认证服务,访问控制服务,数据保密服 务,数据完整性服务,不可否认服务。其中身份认证是网络安全体系的基础。没有有 效的身份认证手段,各种安全堡垒都形同虚设。下面重点介绍与分析各种网络身份认 证技术。 1.2.1 传统网络身份认证及其问题 传统网络身份认证技术按照是否需要第三方的参与可分为ttp型和p2p型11。 网络中常需要在随机发生联系的实体间进行身份认证, 这种联系的建立是随机短 时的, 很难实现安全可靠的身份认证。 为此可依靠ttp来解决此问题。 实体首先在ttp 注册并获取身份证明信息,在认证时将其提交并验证即可确认其合法有效身份。这种 基于对ttp的信任方式被称为ttp型的网络身份认证。比较流行的有pki/ca12,13, kerberos技术14等。 而有些应用中通信双方只需进行单向认证, 通常发生在为已注册用户提供服务的 网络应用中,如电子邮件服务、bbs等。由于服务器与用户已提前建立了信任关系并 保存有认证信息(如口令、公钥等),并不需要ttp的支持,所以称这种类型的网络 身份认证为p2p型,如ssh协议。 以上简单介绍了传统的网络身份认证技术,存在的主要问题有: (1)口令、密钥或信用卡等身份标识容易遗忘、丢失、泄露和截获。 (2)密钥的管理和分发都十分困难,直接影响到认证体系的安全性。 (3)特别是对于ttp方式而言,ttp数量众多,安全强度、公正性和实现技术都 不同,存在可信度及兼容性的问题。如果太依赖ttp自身的安全性,一旦ttp出现故 3 障则不能提供正常服务。 1.2.2 生物特征识别 传统的身份认证技术一般基于身份标识或物品,容易遗忘、丢失或被窃取。而且 这些“标识”与用户的关系是分离的,一旦拥有了这些“标识”就可拥有完整的权限。 人体有一些惟一的特征:生理特征(指纹、虹膜和掌纹等),行为特征(签名、声音 和步态等)。它们都可以用于标识个体身份。这种利用人的生理或行为特征来进行身 份识别的技术被称为生物特征识别技术15,16,它具有不易遗忘、防伪性能好、不易伪 造或被盗、便于携带和随时随地可用等优点。 近些年生物特征识别技术与网络身份认证技术的融合逐渐成为商业研究的热点, 更因其在提高国家的信息安全、 物理安全和金融安全层面上具有战略意义被各国政府 高度重视。这两种技术有很大的互补性和许多融合点。一方面,生物特征信息必须被 保护以避免遭到未授权的修改或替换。 然而网络的开放性使得生物特征识别系统遭受 到极大的安全威胁,成熟的des、rsa、pki等技术都可被用来加强生物特征识别系 统的安全性。 另一方面, 不管是私钥密码还是公钥密码体制, 或者二者相结合的方式, 都需要安全稳妥地保存密钥。然而kerberos协议、pki技术等都存在密钥交换、密钥 存储以及密钥管理的困难。 可将生物特征识别技术应用到加密技术中关键密钥的分发 与管理中,提高密码体系的安全强度。 当前正在进行许多网络身份认证技术与生物特征认证技术相结合的研究。 1.2.3 分布式认证技术 传统的单一系统的集中认证模式在可靠性和安全性上都存在不小的缺陷, 不仅会 因为网络故障而无法提供认证服务,也很难在开放的网络中免遭恶意攻击。一个解决 办法就是采用分布式认证技术17,将认证操作分散到多个服务器上,整合多数系统的 判决结果来进行网络身份认证,降低单一模式的脆弱性。 分布式认证中使用的分布式加密技术通常是阈值密码技术。 有两种常用的阈值密 4 码策略:阈值公钥密码体系18和阈值签名19。阈值公钥密码体系和通常的公钥密码 体系很类似,只是它采用了分布式解密的策略。加密时共用同一公钥,而每个主体都 拥有一个部分私钥用于解密。对某个密文进行解密时,每个主体都用各自的私钥进行 运算得到一个输出,并附上证明其有效性的信息。一旦获得约定个数以上的主体的有 效输出结果,就可以通过算法构建出完整的解密结果。而对阈值签名,各个分布主体 都拥有一个部分签名私钥,并可以各自对某个信息生成一个部分签名。在获得了多个 有效的部分签名后,可以由算法合成完整的数字签名,进而使用公钥验证其有效性。 对计算能力有限的攻击者而言, 计算出各个部分签名并合成完整的数字签名是不太可 能的。 需要注意的是,分布的各个主体使用的安全策略需要具有多样性,否则一次有效 攻击就可以攻破所有的系统,则分布式策略带来的安全性也就不复存在。 1.2.4 usb key 技术 基于usb key的身份认证方式结合了现代密码学技术、 智能卡技术和usb技术, 很好地解决了安全性与易用性之间的矛盾。usb key是一种 usb接口的硬件设备, 具有体积小、重量轻和便于携带的优点。它内置单片机或智能卡芯片,可以存储用户 的密钥或数字证书,利用 usb key内置的密码算法实现身份认证20。 基于 usb key的身份认证具有以下特点: (1)usb key具有安全可靠的数据存储空间,可以存储数字证书、用户密钥等 秘密数据,用户无法直接进行读写操作,也不可导出私钥等私密信息。 (2)usb key内置硬件运算单元,可以实现各种数据摘要、数据加/解密和签名 算法。 基于usb key的身份认证系统目前主要有基于冲击- 响应和基于pki体系的认证 模式: (1)基于冲击- 响应的双因子认证方式 预先在 usb key和服务器中存储一个证明用户身份的密钥,当服务器收到客户 5 端发出的身份验证请求后,生成一个随机数并通过网络传输给客户端,这个过程称为 冲击。客户端将收到的随机数提供给插在客户端上的 usb key,由 usb key使用该 随机数与存储在 usb key中的密钥进行单向散列运算,得到一个响应结果作为认证 证据传送给服务器。而服务器端也进行相同的运算,如果运算结果与传回的响应结果 相同,则认为客户端是一个合法用户21。 (2)基于数字证书的认证方式 基于 pki 构架的数字证书认证方式可以有效保证用户的身份安全和数据安全, 但 是数字证书存在被复制的危险。使用 usb key,所有密钥运算由 usb key实现,只 有其持有人才能够对数字证书进行操作,保证数字证书不被复制22。 可以对基于 usb key的认证技术、生物特征识别技术以及网络身份认证技术进 行融合,以获取更高的安全性,如利用指纹作为开启 usb key的口令,或者将生物 特征作为用户的密钥保存到 usb key中23。 未来,身份认证技术将朝着更加安全易用,多种技术手段相结合的方向发展。 usb key会成为身份认证硬件的主要发展方向,usb key的运算能力及易用性也将不 断提高。 1.3 本课题研究的主要意义、内容及目标 1.3.1 研究意义和内容 身份认证是整个信息安全体系的基础,是信息安全的第一道关隘,其安全性和方 便性都是不可缺少的。 但是在目前的实现模式中, 这两项要求都没有得到很好的满足。 国内的网络终端大多是 pc 机,运行 windows 操作系统。然而 windows 系统并不是 一个足够安全的系统,系统级的缺陷使得在它上面运行的软件的安全性大打折扣。为 了克服这一缺点,用户不得不在 pc 机上安装尽可能复杂的加密软件,采用尽可能多 的认证程序,虽然这样能稍微增强一些系统的安全性,但是方便性却受到了极大的影 响。最明显的便是,用户无法随意选择要使用的 pc 机,因为用户必须确保自己使用 6 的网络终端上已经安装了完善的加密软件和具有足够的数据安全性。 windows系统不是国产软件,提高它的安全性也不是能轻易做到的。唯一的解决 办法便是借助于硬件的支持, 将身份认证过程中的关键部分从pc 机移植到硬件中去。 目前最常用的硬件设备按功能分为两类: 一是用于加密, 例如 pc 机内安装的加密卡, 网络中安装的安全网关等等;二是用于个人数据存储,例如 ic 卡,磁卡等,在银行 系统使用十分广泛。pc 机内安装的加密卡等硬件虽然大大地增强了系统的安全性, 但它们价格昂贵,安装、使用不方便,是普通的 pc 机用户无法接受的;而 ic 卡、 磁卡等存储卡则需要在 pc 机上安装读卡器,读卡器价格较贵,兼容性差,也不是任 意一台 pc 机就能轻易安装得上的。在这种情况下,具有体积小、兼容性好、使用方 便、价格便宜等特点的 usb key逐渐成为研究热点。 通过对基于 usb key的身份认证方式的研究,针对日常工作、生活中实际网络 的特点,综合运用其他技术,构建满足安全性和易用性要求的网络安全模型,也为解 决相似应用问题提供一条可供参考的技术途径。 主要的工作集中在以下几个方面: (1)usb key的运用模式。 (2)数据加密技术的应用。 (3)网络数据通讯信息的截取。 (4)访问控制策略的实施。 (5)网络数据通信系统的实现。 1.3.2 研究目标 本课题研究要实现以下目标: (1)以基于 usb key的身份认证为基础,以数据安全为核心,全面保护信息的 交换通道。 (2)易于实现。 (3)具有一定的通用性。 7 2 网络身份认证中的相关技术分析 本章将分析构建网络身份认证安全模型的相关技术,包括数据加密技术、访问控 制技术、基于 windows 的网络数据包过滤技术和数据通讯系统的实现等内容,论述 各技术在网络身份认证中的作用、基本工作原理和实现方式。 2.1 数据加密技术 2.1.1 数据加密算法 数据加密作为一项基本技术是所有通信安全的基石。 数据加密过程是由形形色色 的加密算法来具体实施,它以较小的代价提供较大的安全保护。在多数情况下,数据 加密是保证信息机密性的唯一方法。进一步,数据加密可以应用于数字签名、身份认 证和信息鉴定,这些应用对于资源存取控制以及其他安全措施是必须而且有效的24。 如果按照收发双方密钥是否相同来分类,可以将加密算法分为对称密码算法25 和公钥密码算法26,27。虽然公钥密码的优点是可以适应网络的开放性要求,且密钥管 理问题也较为简单,尤其可方便地实现数字签名和验证,但其算法复杂,加密数据的 效率较低。所以从成本与效率的角度考虑,在模型的设计与实现中选择了 aes 密码 算法28,29。 aes 是新一代对称加密标准,为取代已经不安全的 des30和慢速的 3des 而制 定。在设计 aes 时就考虑到了 3 个原则:抵抗已知的密码攻击方法,兼顾速度和代 码大小以适应各种平台的需求,设计思想简单。aes 将成为未来数十年最重要的对 称密码算法31。 aes算法属于迭代的分组密码算法,支持128、192、256比特的三种密钥长度, 并且用128位(16字节)分组加密和解密数据,其核心是对状态矩阵进行nr次轮操作。 加密算法中每一次轮操作都由字节代换、行移位、列混淆和轮密钥加四个函数组成, 8 第nr次轮操作不包含列混淆函数,解密算法为加密算法的逆运算32,其流程如图2.1。 1 2 8 b i t 明文 轮密钥加 位变换 行移位 列混淆 轮密钥加 第1 轮 位变换 行移位 轮密钥加 第nr轮 1 2 8 b i t 密文 加密 1 2 8 b i t 明文 轮密钥加 反位变换 反行移位 反列混淆 第n r 轮 反位变换 反行移位 轮密钥加 第1 轮 1 2 8 b i t 密文 解密 轮密钥1 轮密钥2 轮密钥n r 轮密钥加 轮密钥加 图2.1 aes算法的加/ 解密的流程图 2.1.2 数据加密层次 数据加密可以在通信的三个层次中实现:链路加密、节点加密和端到端加密33。 其中端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。 采 用端到端加密,消息在被传输时到达终点之前不进行解密。因为消息在整个传输过程 中均受到保护,所以即使有中间节点被损坏也不会使消息泄露。 而且端到端加密系统的价格便宜,与链路加密和节点加密相比更可靠,更容易设 计、实现和维护。端到端加密还避免了其它加密系统所固有的同步问题,因为每个数 据包均是独立被加密的,所以一个数据包所发生的传输错误不会影响后续的数据包。 此外,从用户对安全需求的直觉上讲,端到端加密更自然些。 9 2.2 访问控制 访问控制是网络安全防范和保护的主要核心策略, 它的主要任务是保证网络资源 不被非法使用和访问。访问控制规定了主体对客体访问的限制,并在身份识别的基础 上,根据身份对提出资源访问的请求加以控制。 2.2.1 访问控制的基本概念 (1)主体 主体是指主动的实体, 是访问的发起者, 它造成了信息的流动和系统状态的改变, 主体通常包括人、进程和设备。 (2)客体 客体是指包含或接受信息的被动实体,客体在信息流动中的地位是被动的,是处 于主体的作用之下,对客体的访问意味着对其中所包含信息的访问。客体通常包括文 件、设备、信号量和网络节点等。 (3)访问 访问是使信息在主体和客体之间流动的一种交互方式。 (4)访问许可 访问控制决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资 源。适当的访问控制能够阻止未经允许的用户有意或无意地获取数据。访问控制的手 段包括用户识别代码、口令、登录控制、资源授权、授权核查、日志和审计等等。 2.2.2 访问控制策略 通常访问控制策略可以划分为自主访问控制、 强制访问控制和基于角色的访问控 制34,35三种。 但是这些访问控制策略都是从系统的角度出发保护资源, 这样的控制原理没有将 执行操作所处的环境考虑在内, 是被动的安全策略, 不能记录主体对客体权限的使用, 10 权限没有时间限制,容易造成安全隐患。而且,大型企业系统通常有着大量的角色、 用户和信息资源,管理这些角色、用户、信息资源和它们之间的相互关系对于安全管 理员来说是非常困难的。现在的企业,特别是it企业,用户通常是围绕一个项目进行 任务分配, 一旦项目结束, 任务也随之结束, 在新的项目中重新分配权限给新的任务, 这就要保证策略具有动态授权的功能。 t- rbac是一种新的访问控制策略36,37, 是从基于任务的角度来实现访问控制的, 从任务的角度来建立安全模型和实现安全机制, 在任务处理的过程中提供动态实时的 安全管理。在这个策略中,任务具有权限,即根据具体的执行任务要求和权限约束, 任务具有相应的权限,不同的任务拥有不同的权限,权限随着任务的执行而变动。这 真正实现了权限的按需和动态分配,角色只有在执行任务时才具有权限,当角色不执 行任务时不具有权限; 权限的分配和回收是动态进行的, 任务根据流程动态到达角色, 权限随之赋予角色,当任务完成时,角色的权限也随之收回;角色在工作流中不需要 赋予权限。这样,不仅使角色的操作、维护和任务的管理变得简单方便,也使得系统 变得更为安全。 2.3 windows 网络数据包过滤 既然是设计网络安全模型,就不得不考虑如何过滤网络数据包,这就是如何放行 有用或可信的数据,而对可疑或不允许通过网络的数据予以阻止。另外,前述的端到 端层次的数据加密也将用到这项技术。 2.3.1 网络协议在 windows 中的实现 unix、 linux和 windows 这些支持网络连接的操作系统都用到了 osi 网络 7 层协 议模型。 在图 2.2 给出的概略映射关系中, spi 负责连接核心层驱动程序和高层应用程序; tdi 负责对信息进行检索、分类和重新组织,tcp 协议的封包处理就是在这一层; ndis 的重要功能是提供网络层接口, 一方面通过网卡驱动程序向网卡传递上层数据, 11 另一方面将来自网卡驱动程序的数据传输至 tdi。 这些概念性的东西都对应有真正的 程序,如 ndis 对应的文件是 ndis.sys38。 7 . 应用层( a p l i c a t i o n l a y e r ) 6 . 表示层( p r e s e n t a t i o n l a y e r ) 5 . 会话层( s e s s i o n l a y e r ) 4 . 传输层( t r a n s p o r t l a y e r ) 3 . 网络层( n e t w o r k l a y e r ) 2 . 数据链路层( d a t a l i n k l a y e r ) 1 . 物理层( p h y s i c a l l a y e r ) 7 . 应用程序( . e x e ) 6 . w i n s o c k a p i ( . d l l ) 5 . s p i ( . d l l ) 4 . t d i ( . v x d , . s y s ) 3 . n d i s ( . v x d , . s y s ) 2 . 网卡驱动程序( . v x d , . s y s ) 1 . 网卡 o s i 7 层协议模型w i n d o w s 结构 用户层 核心层 图 2.2 osi 7 层协议与 windows 结构的概略映射 2.3.2 网络数据包过滤方法 总的来说,要过滤 windows 下的网络数据包可以在两个层面进行:用户层和核 心层。 在用户层进行数据包过滤最致命的缺点就是只能在 winsock 层次进行, 而对于网 络协议栈中底层协议的数据包无法进行处理。 所以通常是在核心层进行网络数据包的 过滤与后续处理,具体方法有 tdi 过滤驱动程序、ndis 中间层驱动程序、win2k 过 滤钩子驱动程序和 ndis 过滤钩子驱动程序39。 在这些方法中,重点分析 ndis 中间层驱动程序。 ndis 中间层驱动程序介于协议层驱动和微端口驱动之间,对上面的协议层提供 一个虚拟的微端口网卡驱动接口,而对下面的链路层则提供一个协议驱动接口。它能 够截获所有的网络数据包。中间层驱动程序的应用很广泛,不仅仅可以用来实现个人 防火墙,还可以用来实现 vpn、nat 和 vlan。中间层驱动程序的概念是在 window nt sp4之后才有的, 因此对于windows9x来说无法直接利用中间层驱动程序的功能。 windows ddk 提供了两个著名的中间层驱动程序例子:passthru以及 mux。开发人 12 员可以在 passthru的基础上开发防火墙和 vpn,mux 则实现了 vlan 功能。中间层 驱动程序功能强大,应该是今后网络数据包过滤技术的趋势所在,特别是一些附加功 能的实现40。 2.4 windows 网络通信机制 在网络安全模型的设计中,由于要完成身份认证等功能,必不可少的要建立一种 网络通信机制,通过该机制来完成身份验证和访问控制的管理与维护功能。 2.4.1 winsock 接口概述 在 windows 环境下构建网络通讯平台的最常用的方法就是使用 winsock 接口。 winsock 是一种标准 api,建立在套接字概念基础之上。winsock 允许两个或多个应 用程序(或进程)在同一台机器或通过网络相互通信。需要注意的是,winsock 接口 不是协议,但应用程序可以使用 winsock 通过普通网络协议如 tcp/ip 或 ipx协议建 立通信41。 在 tcp 应用中,为了建立一个简单的网络连接实例的服务器端,只需设置本地 服务端口号,然后服务器调用方法 listen进入阻塞状态,等待来自客户的连接请求。 与此对应的客户端不但要将winsock的属性 remotehost置为服务器ip地址或网络代 号,还应设置服务器所监听的相应服务的端口号,如 ftp 服务在 21 号端口,http 在 80 号端口等。然后调用方法 winsock.connect向服务器发出请求。服务器接收到客 户请求时, 事件connectionrequest将被触发。 如服务器愿意提供服务, 则可调用accept 方法接受连接。 一旦连接建立,两端均可使用 senddata 或 getdata 进行数据的发送或接收。事 件 dataarrival将在另一端数据准备就绪时被触发。 udp 协议的实现与 tcp 不同的是,调用 sockets 的两端无需建立连接便可进行 数据的传输。因此,一个 udp 应用可以同时担任服务器或客户的角色。 13 2.4.2 winsock 的 i/o 模型 winsock 分别提供了套接字模式和套接字 i/o 模型,可对一个套接字上的 i/o 行 为加以控制。其中,套接字模式用于决定 winsock 函数随套接字调用的行为,套接字 模型描述了一个应用程序如何对套接字上的 i/o 进行管理及操作42。 winsock 提供了两种套接字模式:阻塞模式和非阻塞模式。在阻塞模式下,i/o 操作完成前,执行操作的 winsock调用,例如 send 和 recv会一直等候下去,不会立 即将控制权交还给程序。而在非阻塞模式下,winsock 函数无论如何都会立即返回。 阻塞和非阻塞套接字模型都存在优点和缺点。 从概念的角度说, 阻塞套接字易于使用, 但在应付建立连接的多个套接字时,或在数据的收发量不均、时间不定时,显得极难 管理;非阻塞套接字则需要编写更多的代码。此时,使用套接字 i/o 模型,将帮助应 用程序通过一种异步方式,同时对一个或多个套接字上进行的通信加以管理。 共有 6 种类型的套接字 i/o 模型,它们包括:阻塞、选择、异步选择、事件选择、 重叠和完成端口。若打算开发服务器应用程序,预计到服务器在任何给定的时间都会 为大量的 i/o 请求提供服务,应考虑使用完成端口模型43;若开发的是一个客户机应 用程序,令其同时管理一个或多个套接字,则采用重叠或事件选择模型,以便在一定 程度上提升性能。 2.5 小结 本章主要对网络身份认证安全模型中的数据加密、访问控制、网络数据包的过滤 以及网络通信系统的实现进行了描述,讨论了各项问题在现有技术下的解决办法,为 第三章的论述提供了理论基础。 14 3 网络身份认证安全模型的总体设计 本章将在第二章相关技术分析的基础上,结合数据组织和处理的特点,给出基于 usb key的网络身份认证安全模型的总体设计。首先,给出该模型的需求分析和设计 原则。然后,结合需求分析和设计原则,确定模型设计的技术方案,给出模型的总体 结构和各组成部分的功能构成。 3.1 模型需求分析 3.1.1 基本需求 第一章中描述了目前基于usb key的身份认证系统主要有两种认证模式,即基于 冲击- 响应和基于pki体系的认证模式。 这两种方式虽然在理论上能够确保身份认证的 安全性,但放眼到网络这个巨大的应用环境中,存在的首要问题是它们如何嵌入到多 种多样的应用系统中,或者说如何使用基于usb key的身份认证系统来调度和管理对 应用程序的访问和控制。如果大至企业内,小至个人的每个网络应用程序都要编码实 现身份认证功能,那么花费的代价就太大了。所以本文设计的安全模型除了要实现上 述的认证模式外,还应该做到基于usb key的身份认证系统与具体网络应用之间在编 码上的无关性。换句话说,该安全模型就是一个基础平台,能够对在其上运行的网络 应用程序提供身份认证和访问控制服务。 在现实世界中,用户的唯一身份往往并不重要,关键是其承担的职能角色,如需 要确定他是普通职员、或是部门经理、或是总经理等等,更复杂的情况在于,个体身 份往往会担任多种角色,而且随时会发生角色变化。如果只是简单搬用前述的两种认 证模式到本文设计的网络安全模型中, 是无法适应现实世界中身份体系很强的动态变 化要求的。 所以面临的第二个问题是使身份认证这个基础功能一定要配套较强的访问 授权管理功能。解决这一问题的基本思想是采用t- rbac,即实现用户权限的按需求 15 动态分配,用户所代表的角色只有在执行任务时才具有权限,当角色不执行任务时不 具有权限。 此外由于对usb key的研究只是最近几年的事情,虽然在实际应用中取得了一些 成就,相应的应用模型也在慢慢形成,但对usb key的应用功能的挖掘还远远不够, 如果只是将usb key局限在身份认证这一单一功能上,这就大大限制了usb key作为 安全产品的通用性。因此,在未来应致力于研究出具有通用功能,更高安全强度和实 用价值的usb key安全产品,力争实现多种功能集成。 3.1.2 模型体系结构 在图3.1概括的模型体系结构中, 认证服务器负责管理usb key, 比如对usb key 初始化、写入用户信息等,然后人工分发到用户手中使用,由椭圆实线圈住的部分负 责完成。此外,认证服务器还要实现对用户身份的认证,并控制应用服务器与主机之 间的网络通信,这由主机、internet、认证服务器和应用服务器共同参与完成。 图 3.1 模型的体系结构 16 3.1.3 子系统功能需求 首先约定每个 usb key都具有唯一的 key id 号,该号码存在于 usb key芯片 中,不可更改,以防止不法者假冒;每个 usb key具有内置的运算单元,能完成诸 如散列函数和对数据加密之类的计算。另外,选择基于冲击- 响应的身份认证模式。 下面就针对前述的体系结构分别详细描述模型中各个子系统的功能流程。 (1)由 usb key和认证服务器构成的子系统,其功能主要是认证服务器初始化 usb key,并向 usb key中写入 pin 码、用户的身份信息、密钥和权限控制信息等, 并且在服务器端按照 key id 备份这些信息。 (2)由主机、usb key、internet、认证服务器和应用服务器构成的子系统,其功 能是由认证服务器完成用户的身份认证, 取得对该用户预先设定的权限信息及访问控 制策略,控制其对应用服务器的访问。 图 3.2 是基于冲击- 响应认证模式的身份认证协议图。 认证服务器 pc usb key 应用服务器 图 3.2 基于冲击-响应认证模式的身份认证协议图 图 3.2 对应的功能流程如下: 插入 usb key到用户 pc 机上。 17 用户 pc 机发送身份验证请求至认证服务器。 认证服务器收到请求后,生成一个随机数 n 并传输给用户 pc 机。 用户 pc 机将收到的随机数 n 供给插在客户端上的 usb key。 由usb key使用该随机数n 与usb key中存储的身份密钥pu进行单向散列 运算,得到的结果 f 作为认证证据传送给服务器。 认证服务器端也进行相同的运算,得到结果 r。 认证服务器端对比 r 与 f,两者一致,则认为客户端是一个合法用户。 认证服务器通知应用服务器可以向该用户提供服务。 应用服务器和用户 pc 机之间按照预定的规则进行加密通信。 对以上功能流程所表达的身份认证协议的安全性分析如下: 有效地防止密码被盗窃 网络上传输的只是一个随机数, 用户的身份密钥pu安全地存储在usb key和服务 器中,网上传输的中间结果f是由usb key使用内置单向散列函数计算得出,确保攻 击者不能由f逆推出用户密钥pu。 有效地防止重放攻击 在身份认证过程中,对随机数n的使用保证了中间结果f动态变化,决不重复, 攻击者通过重放截获的信息是无法通过认证的。 保证了数据传输的安全性 应用服务器和用户pc机之间进行了加密通信,网络上并不传输明文数据,大大 提高了应用服务的安全性。 方案是有效的 方案的执行不涉及第三方, 身份认证过程由通信双方完成, 不需要第三方的协助, 而且只需三次通信,因而协议结构简单。同时双方的计算量都很少,算法实现简单。 3.2 模型设计原则 (1)体现需求的原则,尽可能实现需求中描述的各种功能流程。 18 (2)系统设计要突出性能和稳定性要求,兼顾开发难度的原则,在开发工具、 平台和技术的选择上要优先保证性能。 (3)分段优化与综合考虑相结合的原则,注重消除性能瓶颈,也不因过分注重 优化而失去逻辑上的简洁性,影响工程的开发进度。 3.3 模型总体设计 3.3.1 软硬件环境和开发平台的选择 根据实际应用的需要,服务器硬件采用普通 pc 机,操作系统采用 windows 2000 advanced server版本,信息备份数据库采用 access。客户端硬件采用普通 pc 机,操 作系统采用 windows 2000 professional版本。usb key采用第三方提供的产品,配套 有专用的驱动程序和控制接口。软件的开发工具采用 vc6.0。 3.3.2 总体架构 模型采用 c/s 架构,其结构见图 3.3。 服务器端 客户端 u s b k e y 使用模块 认证通信模块 u s b k e y 加/ 解密模块 身份及访问策略管理 备份数据库 具体应用 u s b k e y 管理模块 具体应用服务 截包模块 截包模块加/ 解密模块 认证通信模块 u s b k e y 数据访问模块 图 3.3 模型总体结构图 从降低系统设计复杂性和提高开发效率的角度出发,在图 3.3 中,实际的认证服 19 务器软件与应用服务器软件共处于同一服务器硬件中, 实线部分表明的主要是身份认 证过程中的数据通信过程及涉及的模块,虚线部分表明的是具体应用的数据通信过 程。可以通过过滤客户端与服务器之间的网络数据包来控制客户端对应用服务的访 问。在具体实现上,服务器端认证通信模块发送合法用户的信息给包过滤模块,包过 滤模块据此决定放行还是丢弃经过它的网络数据包。 所以具体的应用通信过程和认证 通信过程要共用同一包过滤模块。此外,加载在包过滤模块上的加/解密模块也属于 应用通信过程和认证通信过程共用模块,对进出网络的所有正常通信数据进行加/解 密处理,以保证数据在网上传输时的安全性。 3.4 模块说明 服务器端各模块及其功能是: (1)usb key管理模块 认证服务器要为系统中的每一个用户分配一个 usb key, 所以设计该模块以负责 将每个用户的身份及访问控制信息写入 usb key。主要任务是: 自动安装 usb key驱动程序,这一过程对使用者完全透明。 初始化usb key,分配唯一的key id值。 从usb key中读取身份及访问控制信息,该项操作需要获得授权,无授权者 不能读取。 向 usb key中写入身份及访问控制信息,该项操作需要获得授权,无授权者 不能写入。 (2)身份及访问策略管理模块 为每个用户建立身份及访问控制策略。主要任务是: 提供程序界面,以便于服务器端身份管理员输入身份信息及访问策略。 在对输入的身份信息及访问策略按照预定规则校验后,一方面提交至数据访 问模块,存储在备份数据库中;一方面提交给 usb key管理模块以写入对应的 usb key。 20 组合查询条件,传递至数据访问模块。 (3)数据访问模块 实现与备份数据库的通信,对身份及访问策略管理模块隔离数据库操作的复杂 性。主要任务是: 管理系统中使用的全部身份及访问策略数据。当数据源不存在时,引导服务 器管理者创建数据源并保存。 创建和维护数据库连接。 执行 sql 语句,创建、更新、删除数据库中的相关纪录;查询匹配特定信息, 并返回结果到身份及访问策略管理模块。 对数据库中存储的数据进行优化处理,以提高身份及访问策略管理模块的工 作效率。 (4)认证通信模块 负责与客户端认证通信模块之间的通信,当客户端的用户身份得到确认后,还要 按照该身份对应的访问控制策略通知包过滤模块如何过滤网络数据包。主要任务是: 建立和维持与客户端的连接。定时检查客户端发送的信标,当信标超时未到, 认为客户端已断开连接,回收资源,通知其他模块做清理工作。 接收和解析客户端发送来的消息,并驱动身份及访问策略管理模块完成相应 的操作。 根据身份及访问策略管理模块反馈的结果发送消息至客户端。 管理和维护登录的合法用户列表, 并将列表信息通知包过滤模块做过滤操作。 创建连接日志,记录所有连接工作情况。 (5)包过滤模块 依据服务端认证通信模块发送的合法用户信息对客户端与应用服务之间的网络 数据包进行过滤。主要任务是: 判断网络数据包是否是客户端的身份认证请求消息,如果是,则予以放行, 由服务端认证通信模块做进一步的分析处理。 接收服务器端认证通信模块发送的合法用户信息,并且对于符合这些信息的 21 具体应用数据包予以放行。 放行服务器端认证通信模块与合法用户之间各种通信数据包。 丢弃前面三点中并未提及的各种数据包。 如果被放行通过的数据包属于需要进行加/解密处理的类型, 则先交由加/解密 模块处理,然后再放行处理后的数据包。 (6)加/解密模块 对发送的网络通信数据包进行加密处理,对接收的网络通信数据包进行解密处 理。主要任务是: 客户端的身份认证过程结束之后,加密服务器端认证通信模块发送给合法客 户端的网络通信数据包; 解密合法客户端发送给服务器端认证通信模块的网络通信数 据包。 加密服务器端具体应用服务发送给合法客户端的网络通信数据包;解密合法 客户端具体应用发送给服务器端对应应用服务的网络通信数据包。 客户端各模块及其功能是: (1)usb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论