当前位置:论文网 > 论文宝库 > 信息科技类 > 网络安全论文 > 正文

e数据库在账务管理系统中的安全策略研究_数据库

来源:UC论文网2015-10-30 23:49

摘要:

论文摘要:随着计算机及网络技术在当今各大企业的广泛应用,信息系统已经成为多数企业日常运营中不可或缺的生

论文摘要:随着计算机及网络技术在当今各大企业的广泛应用,信息系统已经成为多数企业日常运营中不可或缺的生产平台。论文对Oracle数据库安全及数据安全机制进行了研究,从不同层面和角度讨论并分析了数据库的安全策略,同时对实施安全策略涉及到的具体技术进行了论述。
论文关键词:数据库安全,数据库,安全策略
  0引言
  随着计算机及网络技术在当今各大企业的广泛应用,信息系统已经成为多数企业日常运营中不可或缺的生产平台。而按照现在信息系统的构成方式,企业的所有生产数据都集中在信息系统的后台数据库进行统一的存储及处理,从而也就决定了数据库在整个企业运营中至关重要的地位。但现在很多企业中,包括很多大中型企业,数据库并没有像操作系统和网络在安全上受到足够的重视,数据的完整性和合法读取等都受到多方面的威胁,比较常见的有数据库口令的泄密、数据库信息的篡改和破坏、系统后门及黑客攻击等。以上各种数据库安全的漏洞都有可能对一个企业的运作造成灭顶之灾。当然,有些安全问题是数据库产品本身所致,但更多的是企业的应用人员本身的疏忽所造成。所以,作为一个生产运营与数据库息息相关的企业来说,选择一个好的数据库产品、制定出一套完整的数据库安全策略并依照执行是企业信息系统建设最先考虑的事情。下面以日常所使用的Oracle数据库产品为例,依次阐述数据库安全的相关策略。众所周知,大型关系型数据库产品Oracle是目前国际上在企业应用中最广的数据库产品之一,截至2008年底,其全球市场占有率已经达到46%,位于所有企业型数据库之冠。但是一个如此成熟并被广泛应用的企业级软件在使用中也一样存在着安全隐患,仍需要依赖数据库管理人员制定完整的安全策略,以最大程度地保证数据库的完整性、保密性和可用性。在Oracle数据库中的安全策略大体上可以从数据本身到数据库管理层面,再到系统管理及使用习惯层面依次可分为4层:数据安全策略、用户安全策略、系统安全策略和审计策略。
  1数据安全策略
  数据安全策略主要包括对数据库中数据的修改权限控制以及数据加密。对于前者,现行的很多方法比如通过角色控制和视图等都可以很好地实现,而后者却一直没有得到足够的重视。下文将重点就后者进行论述。在数据库中的数据只要是以可读方式进行存放的,就可能存在潜在的威险。为了把这种危险降到最小,必须对数据库中的数据进行加密处理。数据加密就是把明文数据按照一定的规则进行处理,变为密文数据,用户自己掌握相应的密钥,从而达到提高数据安全的目的。数据库的加密技术从大类上来分主要分为两种:DBMS内核层加密和DBMS外围层加密。所谓DBMS内核层加密是在数据做物理存取之前完成加密/解密工作,其特点是加密功能强,且加密不会影响DBMS功能,可以实现加密与数据库管理系统的无缝耦合,但因为所有加密操作都集中在数据库本身,所以易降低数据库运行性能。而
  DBMS外围层加密则在算法上有多样性选择,但加密过程与数据库服务器分离,将增大整个系统的通信压力。下面以Oracle数据库为例,介绍一下数据库中对数据加密的原理。
  1.1基于数据库自身的加密软件包
  Oracle作为一个企业级软件,其自身在出厂时已经带了加密软件包,通过使用该软件包可以很好地完成对Oracle数据库加密的工作。在Oracle9i及其之前的版本里该软件包名为DBMS_OBFUSCATION_TOOLKIT,而到了Oracle10g该加密软件包更名为DBMS_CRYPTO[2]。表1列出了在Oracle不同版本下这两个软件包的对比。
  
  由表1可以看出,DBMS_CRYPTO软件包相对DBMS_OBFUSCATION_TOOLKIT而言,提供了更加丰富和强大的加密、解密(AES算法替代了DataEncryptionStandard(DES)算法)、hash函数以及生成密钥功能。这里要强调的是,DBMS_CRYPTO软件包不能使用varchar2的数据作为输入,必须借用UTL_RAW包将数据转换为raw类型,也可以通过UTL_I18N包将字符型转为raw,或者将raw转换为字符型。
  1.2密钥的安全管理
  数据加密的密钥由于数据的长期存在而无法做到随用随清,因此,密钥的管理在数据加密中处于举足轻重的地位,如果密钥管理不严,即使加密算法强度再高,一旦密钥被窃,加密也就形同虚设了。而在DBMS内核层加密策略中却并没有提供密钥存储的办法。在Oracle数据加密过程中,表密钥、数据项密钥同时也以数据表形式存放在数据库中,只要黑客进入到数据库中找到该表,就能获得该密钥并破解加密的数据。所以,通常的做法是使用多级密钥存储管理,用户密钥与数据库主密钥、数据项密钥相结合,通过用户密钥的智能卡化管理,就可以很好地保证加密数据的安全性。
  1.3建立加密函数
  下面给出使用DBMS_CRYPTO软件包构建加密函数my_encrypt的一个例子。
  首先以sys用户授权执行DBMS_CRYPTO包:GRANTEXECUTEONSYS.DBMS_CRYPTOTOusername。接着构建加密函数:
  CREATEORREPLACEFUNCTIONmy_encrypt
  (p_keyINVARCHAR2,
  p_inINVARCHAR2)
  RETURNVARCHAR2
  IS
  l_enc_valVARCHAR2(256);
  l_in_rawRAW(128):=UTL_I18N.string_to_raw(p_in);
  l_key_rawRAW(128):=UTL_I18N.string_to_raw(RPAD
  (p_key,96,'x'));
  l_modNUMBER:=
  DBMS_CRYPTO.hash_sh1+DBMS_CRYPTO.chain_ecb
  +DBMS_CRYPTO.pad_zero;
  BEGIN
  l_enc_val:=
  UTL_I18N.raw_to_char(DBMS_CRYPTO.encrypt(l_in_raw,
  l_mod,l_key_raw));
  RETURNl_enc_val;
  END
  通过采用相同方式可以建立解密函数。

核心期刊推荐