您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页基于Java技术的异构平台数据库安全传输模型

基于Java技术的异构平台数据库安全传输模型

来源:华佗小知识
维普资讯 http://www.cqvip.com 2002年 1O月 装备指挥技术学院学报 Journal of the Academy of Equipment Command&Technology 0ctober 2002 Vo1.13 NO.5 第13卷第5期 基于Java技术的异构平台 数据库安全传输模型 邹红霞 李勇奇 (装备指挥技术学院电子T程系,北京101416) 摘 要:针对异构平台数据库数据传输中的安全问题,结合Java技术的 JDBC及RIM机制,采用对象序列化技术,利用数据库数据加密原理,提出了一种对 异构数据库进行透明访问并保证数据库安全性的方法。文章基于Java技术设计实 现了异构分布式数据库应用系统安全传输模型。该模型是对传统Client/Server体 系结构的一种改进,是数据库安全领域中一种良好的应用模式。 关 键 词:客户/服务器;JDBC;数据库安全;分布式数据库互操作 中图分类号:TP 311.133.1 文献标识码:A 文章编号:CN11—3987/G3(2002)05—0063—05 信息系统安全已成为当前计算机技术主要关 注的焦点之一。信息系统的核心之一是数据库, 因而,数据库的安全变得越来越重要。目前,多平 用户 用户标识和鉴别 DBMS 存取控制 OS os安全保护 数据库 数据密码存储 图1计算机系统的安全模型 台集成的分布式信息系统,以及集中分布相结合 的处理方式已成为流行的处理模式。如何在In- ternet环境下,基于不同厂家的网络产品、硬件平 由图1知:对于一个信息系统,用户标识与鉴 别、存取控制、操作系统的安全、加密等是系统安 全性需要考虑的4个方面;每一级都有一系列解 决方案及需要解决的技术问题,任何一级的疏漏 都会影响到系统的安全性。异构平台的数据库具 有数据分布的透明性,节点的自治性,数据性 等特点,使各个平台之间数据的互操作存在很大 的安全隐患。因此,在对异构平台之间数据互操 作时,要考虑到数据的安全性。简单而有效的解 决方法是采用数据加密技术,并要考虑身份鉴别、 台、网络协议等异构环境下实现对异构数据库的 安全访问控制,是信息系统安全方面需要解决的 问题。要实现服务器与数据库的连接,通常基于 3种方案:即基于Java的JDBC,通用网关接口技 术(CGI),应用编程接口(API:Application Pro— gramming Interface)。由于Java有编程规范,接 口清晰,开发效率高等良好特性,以及其代码的可 移植性、安全性和可靠性等方面的显著优势,利用 Java的多线程控制技术可大大提高程序的执行 效率,已成为开发网络数据库应用的理想工具之 存取控制、审计等安全措施。 2 JDBC工作原理 数 … 。安 Ja设置典型的模型如图 所示 :奠 篓 篓 是一级一级层层 一…Nq"J…N…/IJ J DBU JLJC , ̄一J  任何商用数据库。 .。,。数va蒸 。 葛 ;磊 二 言 收稿日期:2002一O1—22 作者简介:邹红霞(1968一),女,讲师 维普资讯 http://www.cqvip.com 64 装备指挥技术学院学报 2002年 个使用JDBC API程序,就可以将SQL查询语句 送往合适的数据库,如ORACLE,SYBASE,IN— FORMIX,SQL SERVER等数据库。采用Java 语言编写应用程序,具有平台无关性,不需要为不 JDBC访问数据库的原理是:Internet/Intra— net用户使用浏览器连接到本地或异地的Web服 务器上,下载含有Java小程序的HTML文档。 如果Java小程序使用了JDBC,浏览器运行的小 程序可以直接与数据库建立连接(如图2所示)。 同的平台编写不同的应用程序,大大提高了开发 效率及可用性。 客户机GUI (事务)服务器 图2通过JDBC访问数据库 JDBC提供给程序员的编程接口由2部分组 在与远程对象的通信过程中,RMI使用标准 机制:stub和skeleton。在RMI中,远程对象的 成:①面向应用程序的编程接口JDBC API;②供 底层开发的驱动程序接口JDBC Driver API。 JDBC API提供了应用程序到JDBC Driver Man— ager的通信接口;JDBC Driver API提供了JDBC stub与该远程对象所实现的远程接口集相同。 调用stub的方法时将执行下列操作:①初始化 与包含远程对象的远程虚拟机的连接;②对远程 Driver Manager到数据库驱动程序的通信接口。 在开发数据库安全方面,这2个接口均可以实现 虚拟机的参数进行编组(写入并传输);③等待方 法调用结果;④解编(读取)返回值或返回的异 常;⑤将值返回给调用程序。为了向调用程序展 示比较简单的调用机制,stub将参数的序列化和 网络级通信等细节隐藏了起来。在远程虚拟机 中,每个远程对象都可以有相应的skeleton(在 对数据库安全访问控制传输的目的,但各有优缺 点:利用Java API编程简单,实现起来容易,但会 降低对异构平台数据互操作的性能,比如数据分 布透明性等;利用JDBC Driver API开发数据库 安全,由于从底层进行设计,系统性能会很好,但 实现起来难度较大。 JDK1.2环境中无需使用skeleton)。Skeleton负 责将调用分配给实际的远程对象实现。它在接收 方法调用时执行下列操作:①解编(读取)远程方 3 Java中远程方法调用与多线程工 作原理 3.1 Java中RIM机制 法的参数;②调用实际远程对象实现上的方法; ③将结果(返回值或异常)编组(写入并传输)给调 用程序。stub和skeleton由rmic编译器生成。 利用RMI编写分布式对象应用程序需要完 成以下工作:①定位远程对象。应用程序可使用 两种机制中的一种得到对远程对象的引用。它既 可用RMI的简单命名工具rmiregistry来注册它 的远程对象,也可将远程对象引用作为常规操作 的一部分来进行传递和返回;②与远程对象通信。 远程对象间通信的细节由RMI处理,对于程序员 Java远程方法调用(RMI:Remote Method Invocation)是用Java在JDK1.1中实现的,它大 大增强了Java开发分布式应用的能力。Java RMI是开发纯Java的网络分布式应用系统的核 心解决方案之一。传统RPC不能很好地应用于 分布式对象系统,Java RMI则支持存储于不同地 址空间的程序级对象间彼此进行通信,实现远程 对象间的无缝远程调用。RMI应用程序通常包 括2个的程序:服务器程序和客户机程序。 典型服务器应用程序将创建多个远程对象,使这 来说,远程通信看起来就像标准的Java方法调 用;③给作为参数或返回值传递的对象加载类字 节码。因为RMI允许调用程序将纯Java对象传 些远程对象能够被引用,然后等待客户机调用这 些远程对象的方法。典型客户机程序则从服务器 中得到一个或多个远程对象的引用,然后调用远 程对象的方法。RMI为服务器和客户机进行通 给远程对象,所以,RMI将提供必要的机制,既可 以加载对象的代码又可以传输对象的数据。在 RM1分布式应用程序运行时,服务器调用注册服 务程序以使名字与远程对象相关联。客户机在服 务器上的注册服务程序中用远程对象的名字查找 信和信息传递提供了一种机制。 维普资讯 http://www.cqvip.com 第5期 邹红霞,等:基于JAVA技术的异构平台数据库安全传输模型 65 该远程对象,然后调用它的方法。 3.2对象序列化 户的指令作出反应。在一些较复杂的系统中,可 以为每个数据库查询指令生成单独的线程,并行 对数据库进行操作。实践证明,采用多线程设计 可以很好的改善系统的响应,并保证用户指令执 行的性。由于Java本身是“线程安全”的,因 此有一条编程原则是:能够在一个线程中完 成的操作就应该开辟一个新的线程。 在RM1分布式应用系统中,服务器与客户机 间传递的Java对象必须是可序列化的对象,不可 序列化的对象不能在对象流中进行传递。对象序 列化扩展了核心Java输入/输出类,同时也支持 对象。对象序列化支持把对象编码以及将通过它 们可访问到的对象编码变成字节流;同时,它也支 持流中对象图形的互补重构造。为编写应用程 4 基于Java的异构平台数据库安 全传输模型 4.1模型的总体结构 序,除多数瞬态应用程序外,都必须具备存储和检 索Java对象的能力。以序列化方式存储和检索 对象的关键在于提供重新构造该对象所需的足够 对象状态。存储到流的对象可能会支持serializ— able(可序列化)或externalizable(可外部化)接 口。序列化Java对象的目的是:提供一种简单但 可扩充的机制,以序列化方式维护Java对象的类 JDBC异构数据库之间互操作功能及性能是 良好的,但数据传输的安全性却无法保证,需采用 进一步的方案。一个简单可行的方法就是利用服 务器代理保证客户与服务器之间数据传输的安全 性,利用Java的RIM机制,在客户与数据库服务 器之间建立一条转发通道(即相当于一个服务器 代理),其主要功能是接管客户与服务器之间的所 有数据传输。通过这种处理方式给应用开发者提 型及安全属性;具有支持编组和解编的扩展能力 以满足远程对象需要;具有可扩展性以支持Java 对象的简单持久性;只有在自定义时,才需要对每 个类提供序列化自实现;允许对象定义其外部格 式。 3.3 Java多线程机制 供了可进行安全管理的空间,比如:在服务器传送 数据给客户之前,可先对所传数据进行加密,然后 再传输,对于客户端一方,接收数据时先要进行解 Java的多线程是Java编程的精华之一,运用 得当可以极大地改善程序的响应时间,提高程序 的并行性。在服务器程序中,由于往往要接收不 密操作才能使用。当然服务器代理程序除具有上 述的主要功能外,还要具有管理对象、管理协议等 功能。异构平台数据库安全传输模型如图3所 示。 同客户机的同时请求或命令,因此可以对每个客 户机的请求生成一个命令处理线程,同时对各用 图3异构平台数据库安全控制模型 4.2模型的安全机制 4.2.1层次结构的安全通道 控制的有效方法是采用对象的序列化。Java对 象的寿命通常随生成该对象的程序终止而终止, 对象也可能在运行期间通过内存单元回收删除, 如果应用程序的对象运行环境终止则对象也随之 消失。在这种情况下,持续就是对象记录自己的 状态,以便将来再生的能力(比如在另一环境中)。 为保证服务器代理从数据库中取出的数据正 确且安全的传送给客户,需要有一个良好的安全 通道,与数据通道的逻辑结构关系如图4所示。 在JDBC中服务器代理从数据库中取出的数据是 以结果集的形式表现出来的,对结果集进行安全 例如:持续对象可能将其状态保存在另一个文件 维普资讯 http://www.cqvip.com 66 装备指挥技术学院学报 2002年 中,该文件可以用于在不同运行环境中恢复这个 别时,系统构建一个身份鉴别框架。该框架通过 的配置模块决定具体的身份鉴别模块。常见 的身份鉴别模块包括Kerberos(对称密码的身份 鉴别系统)和XPKI(基于X509的PKI公钥基础 对象。对象本身并不持续,而是构成对象复制品 所要的信息持续。数据通道的数据只在安全通道 中传输,以确保数据的保密性。序列化涉及将对 象数据存放在磁盘文件或在网络上发送数据时, 就会产生安全问题。因为数据位于Java运行环 境之外,不在Java安全机制的控制之中。为保证 设施)。为了简化实施和管理,身份鉴别框架还包 括各种数据库平台特定的身份鉴别模块。可插入 的身份鉴别机制示意图如图6所示。 这部分数据传输的安全,将序列化的数据进行加 密后再传输,在客户端接收数据时先进行解密再 反序列化恢复对象。 数据传输 (对象序列化) 数据通道 数据传输 (对象序列化) 图6 可插入身份鉴别机制不意图 安全传输层 安全通道 安全传输层 身份鉴别框架仅仅可插入不同的身份鉴别模 块是不够的,可叠加的身份鉴别机制还允许不同 的身份鉴别模块同时叠加使用,比如系统同时支 持生物鉴别、PKIX身份鉴别和特定数据库平台 网络通道 图4安全通信结构不意图 的身份鉴别,以满足高安全性的要求。可叠加的 身份鉴别机制示意图如图7所示。 身份鉴别 为保障数据的完整性,安全通道在做加密处 理时还作Hash处理。为了满足诸如压缩、流量 计算、Qos等其他需要,安全通道采用了层次结 构,如图5所示。安全通道的层次结构可根据需 要,让用户或开发者配置不同的传输策略,在不同 I PKIX I l数据库平台的身份鉴别 的层上作特定的处理。如为了充分利用带宽,可 以在压缩层中将数据进行压缩,或者为了不同的 qos需要,在qos层进行qos处理。另外,还可 I 身份鉴别框架 以根据特定的需要自定义层和层中的数据处理方 式。需要指出的是,数据压缩处理层是位于加密 处理层的上面,这是因为加密会增加数据的熵。 4.2.3自定义层 图 可叠加的身份鉴别机制示意图 其他安全问题 1)访问控制。安全通道完成身份鉴别后,需 要进行访问控制。它同样存在与异构数据库本身 访问控制的协调问题。模型中采用将安全通道的 访问控制于数据库平台的访问控制,因为安 数据压缩层 自定义层 加密层 Qos层 自定义层 图5安全通道层次结构图 全传输的主要目的是保障数据传输的安全,对于 到数据库的访问控制可以不考虑。安全通道的访 问控制也相对简单,只增加了对入侵检测的控制, 它是对通道的访问控制,而不是对数据库资源的 访问控制。 2)审计。详细的审计是一个完整的安全系统 所必须的组成部分。安全通道的审计模块对应于 4.2.2 可插入和可叠加的鉴别机帝l 安全通道的建立首先会涉及到身份鉴别问 题。对于异构数据库传输而言,因其本身存在身 份鉴别,且不同数据库管理系统之间还存在很大 的差异,因此增加了安全通道中身份鉴别问题的 复杂性。下面提出一个可插入和可叠加的鉴别机 不同的身份鉴别和安全通道的访问控制而定制 的,基本上属于一一对应的关系,但统一设计结构 制来解决身份鉴别问题。 在可插入的身份鉴别机制中,当需要身份鉴 和处理模式,以确保在不同身份鉴别和访问控制 配置下完成完整的审计功能。 维普资讯 http://www.cqvip.com 第5期 邹红霞,等:基于JAVA技术的异构平台数据库安全传输模型 67 4.3 JDBC对异构数据库互操作性的实现 方案,但比较简单的是设计一个关于全局数据的 地址分布表。其上记录了与它相连的服务器地 址,客户每次查询的数据根据表名从地址分布表 在JDBC中要实现对各种异构数据库的访 问,可以采用2种方法:①利用ODBC,ODBC是 目前较成熟的数据库应用技术,它提供了各种异 构数据库的统一的访问接口,因此,只需要通过 中找出其所在的服务器位置,代理服务程序自动 进行数据的定位,这样保证了所有客户机都能透 明访问所有服务器上的数据库,从而实现数据分 布的透明性。 JDBC-ODBC桥驱动程序,就可以实现对各种关 系数据库的访问;②直接利用JDBC驱动程序访 问数据库,目前绝大多数商用数据库均提供了 JDBC驱动程序,直接从Java的相关站点下载驱 5 结 论 利用JDBC和Java RIM机制实现异构平台 数据库互操作及安全控制,是应用Java技术的一 个尝试,也是对传统Client/Server体系结构的一 种改进。它具有简单、高效的优点,结合Java的 各种良好特性,特别是JDBC和对象序列化技术, 是数据库安全领域中一种良好的应用模式。 参 考 文 献 [1]Martin Rennhanckkamp.Database security[EB/OL].ht— tp://ww.dbmsmag.corn/serverside.htm,1999一O1—22. 动程序可满足对异构数据库的访问。无论哪种方 法,应用程序都可以实现对各种关系数据库的透 明访问。 4.4采用多线程保证数据库的并发控制 在安全模型中采用多线程服务器程序的构 架,即通过把多任务的原理用到程序的最低层,使 单个程序能同时执行多个任务,以实现多个用户 对数据库的并发控制。可以在此基础上对命令进 行扩充。如果在线程运行中需要根据用户指令对 数据库进行更新操作,则应注意线程间的同步问 题,使同一更新方法一次只能由一个线程调用。 线程是用run()来执行的。启动服务器程序后, 可用telnet machine port命令连接,其中machine 为本机名或地址,port为程序中指定的端口。也 可以编写特定的客户机软件通过TCP的Socket 套接字建立连接。 4.5 采用数据地址表保证数据的透明性 E23萨师煊,数据库系统概论[M].北京:高等教育出版社,2001. [3]Yaylor A.JDBC developer's resource[EB/0L].Prentice Hall PTR,http://www.preh al1.com,1999. [4]宋辉,江锋.JAVA服务器程序设计[M].北京:清华大 学出版社,2000. [5][美]Cay S Horstmann Gary Cornel1.JAVA核心技术I-M]. 北京:机械工业出版社,2000. [63周夕崇.利用RMI实现JAVA分布式应用[EB/OL].ht— tp://www.yesky.corn/,2001. 模型的设计是基于分布式的数据库,必须考 虑数据的透明性,为实现这个目标,可以采用多种 A Security Transmission Model for HeterOgeneOus Database Systems Based on Java Techno l ogy ZOU Hong —xia LI Yong —qi (Department of Electronic Engieering,The Academy of Equipment Command 8L Technology,Beijing 101416,China) Abstract:Dealing with the security problem of data transmission of database systems 0n different platforms,a method is presented to resolve transparent access to heterogeneous database svsterns and ensure database security,which combines with Java JDBC,RIM,object serialization techniques and data encryptlon theory.This paper also gives the security transmission model based on Java technology for heterogeneous distributed database systems.The model improves the traditiona1 Client/Server . structure,and is a effective model on the application of the database systems securitvKey words:client/server;JDBC;database security;distributed databases interoperability (责任编校:傅鸿吉) 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务