1 / 56

信息安全

信息安全. 第六章 数据库安全技术. 本章主要内容. 6.1 数据库系统的组成 6.2 数据库系统安全性概述 6.3 数据库的数据保护 6.4 数据库的备份与恢复 6.5 SQL Server 的安全管理与策略 6.6 应用示例:数据库加密系统. 本章学习要点. 本章介绍数据库系统的组成、安全性要求、安全特性;数据库的数据保护;数据库的备份与恢复;数据库系统的安全保护实例。 通过本章的学习,应掌握以下内容: (1) 理解数据库系统的安全性要求、面临安全威胁的类型、基本安全架构和安全特性;

baba
Download Presentation

信息安全

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 信息安全 第六章 数据库安全技术

  2. 本章主要内容 6.1 数据库系统的组成 6.2 数据库系统安全性概述 6.3 数据库的数据保护 6.4 数据库的备份与恢复 6.5 SQL Server的安全管理与策略 6.6 应用示例:数据库加密系统

  3. 本章学习要点 本章介绍数据库系统的组成、安全性要求、安全特性;数据库的数据保护;数据库的备份与恢复;数据库系统的安全保护实例。 通过本章的学习,应掌握以下内容: (1)理解数据库系统的安全性要求、面临安全威胁的类型、基本安全架构和安全特性; (2)了解数据库安全控制模型;掌握数据库的备份与恢复方法; (3)理解数据库系统安全保护应用; (4)掌握SQL Server 2000数据库的安全保护方法、策略。

  4. 6.1 数据库系统的组成 • 数据库系统是由两部分组成: • 一部分是数据库,按一定的方式存取数据; • 一部分是数据库管理系统,为用户及应用程序提供数据访问,并具有对数据库进行管理、维护等多种功能。 • 数据库组织形式的数据特征: 具有共享性、独立性、一致性、完整性和访问控制性 。

  5. 6.1 数据库系统的组成 1.数据库 数据库是若干数据的集合体。这些数据以一定的序列存在于计算机的外存储器上。 2.数据库管理系统 数据库管理系统( DBMS-Database Management System)是专门负责数据库管理和维护的计算机软件系统。它是数据库系统的核心,对数据库系统的功能和性能有着决定性影响,DBMS即负责数据库的维护工作,又要按数据库管理员的要求保证数据库的安全性和完整性。

  6. 6.1 数据库系统的组成 3.数据库特性 • 多用户 • 高可用性 • 频繁的更新 • 大文件 • 安全性与可靠性问题复杂 很多数据库应用于客户机/服务器(Client/Server)平台。在Server端,数据库由Server上的DBMS进行管理。由于Client/Server结构允许服务器有多个客户端,各个终端对于数据的完整性和一致性要求很高,这就涉及到数据库的安全性与可靠性问题。

  7. 6.2 数据库系统安全性概述 6.2.1 数据库系统的安全性要求 • 数据库的完整性 • 元素的完整性 • 可审计性 • 访问控制 • 用户认证 • 可用性   数据库系统的基本安全要求是一些基本性的问题,如访问控制,伪装数据的排除、用户的认证和可靠性。表 6‑1列出数据库系统对安全性的要求。

  8. 6.2 数据库系统安全性概述 表 6‑1 数据库系统对安全性的要求

  9. 6.2 数据库系统安全性概述 6.2.2 数据库系统的安全的含义 1.系统运行安全  系统运行安全包括:法律、政策的保护,如用户是否有合法权利,政策是否允许等;物理控制安全,如机房加锁等;硬件运行安全;操作系统安全,如数据文件是否保护等;灾害、故障恢复;死锁的避免和解除;电磁信息泄漏防止。 2.系统信息安全  系统信息安全包括:用户口令字鉴别;用户存取权限控制;数据存取权限、方式控制;审计跟踪;数据加密。

  10. 6.2 数据库系统安全性概述 6.2.3 数据库的故障类型 • 事务内部的故障 • 系统范围内的故障 • 介质故障 • 计算机病毒与黑客 其中,数据库系统故障又称为数据库软故障,是指系统突然停止运行时造成的数据库故障。如CPU故障、突然断电,操作系统故障。 介质故障又称数据库硬故障,主要指外存故障,如磁盘磁头碰撞,瞬时的强磁场干扰等。

  11. 6.2 数据库系统安全性概述 6.2.4 数据库系统的基本安全架构 1.用户分类 不同类型的用户授予不同的数据管理权限。一般将权限分为三类:数据库登录权限类、资源管理权限类和数据库管理员权限类。 2.数据分类 DBMS提供了将数据分类的功能,即建立视图。 3.审计功能 大型DBMS提供的审计功能是一个十分重要的安全措施 ,有两种方式的审计,即用户审计和系统审计。

  12. 6.2 数据库系统安全性概述 6.2.5 数据库系统的安全特性 • 数据独立性 • 数据安全性 • 数据的完整性 • 并发控制 • 故障恢复  数据库系统的数据独立性分为物理独立性和逻辑独立性;数据完整性包括数据的正确性、有效性和一致性。

  13. 6.3 数据库的数据保护 6.3.1 数据库的安全性 一般计算机系统中,安全措施是分级和分层设置的,其数据库安全控制模型如图6‑1所示。

  14. 6.3 数据库的数据保护 6.3.1 数据库的安全性 1.用户标识和鉴定   通过核对用户的名字或身份(ID),决定该用户对系统 的使用权。数据库系统不允许一个未经授权的用户对数据 库进行操作。 方法一:用户用ID和口令登录时,系统用一张用户口 令表去鉴别用户ID。特点方法简便,但保密性不是很高。 方法二:标识鉴定的方法。用户先标识自己与系统给 出一个随机数,按照某个特定的过程或函数进行计算后给 出结果值,系统同样按照这个过程或函数对随机数进行计 算,如果用户输入的相等则证明此用户合法,可为用户分 配权限。否则,是非合法用户,拒绝进入数据库系统。

  15. 6.3 数据库的数据保护 6.3.1 数据库的安全性 2.存取控制 对于存取权限的定义称为授权。这些定义经过编译后 存储在数据字典中。每当用户发出数据库的操作请求后, DBMS查找数据字典,根据用户权限进行合法权检查。若用 户的操作请求超出了定义的权限,系统拒绝此操作。授权 编译程序和合法权检查机制一起组成安全性子系统。   数据库系统中,不同的用户对象有不同的操作权力。 对数据库的操作权限一般包括查询权、记录的修改权、索 引的建立权、数据库的创建权。把这些权力按一定的规则 授予用户,以保证用户的操作在自己的权限范围之内。

  16. 6.3 数据库的数据保护 6.3.1 数据库的安全性 3.数据分类 数据库系统对安全性的处理是把数据分级。为每一数 据对象(文件,或字段等)赋予一定的保密级。 例如;绝密极、保密级、秘密级和公用级。对于用户, 成类似的级别。系统便可规定两条规则: (1)用户1只能查看比他级别低的或同级的数据。 (2)用户1只能修改和他同级的数据。

  17. 6.3 数据库的数据保护 6.3.1 数据库的安全性 4.数据库加密 (1)数据库加密的特点 1)数据库密码系统采用公开密钥; 2)多级密钥结构 ; 3)加密机制是既可加密又可解密的可逆过程 ; 4)加密算法适应数据库系统的特性。 (2)数据库加密的范围 1)索引字段不能加密 ; 2)关系运算的比较字段不能加密 ; 3)表间的连接码字段不能加密。

  18. 6.3 数据库的数据保护 6.3.1 数据库的安全性 4.数据库加密 (3)数据库加密对数据库管理系统原有功能的影响 1)无法实现对数据制约因素的定义 ; 2)失去密文数据的排序、分组和分类作用; 3)SQL语言中的内部函数将对加密数据失去作用; 4)DBMS的一些应用开发工具的使用受到限制。

  19. 6.3 数据库的数据保护 6.3.2 数据库中数据的完整性 数据的完整性指:防止数据库中存在不符合语义的数 据,防止错误信息的输入和输出。 数据完整性包括:数据正确性、有效性和一致性。   数据库中的所有数据都必须满足自己的完整性约束条 件,这些约束包括以下几种: 1.数据类型与值域的约束(字符型、整型、实型 ); 2.关键字约束(主关键字、外关键字约束 ); 3.数据联系的约束(静态约束与动态约束如,年令更新旧值不能大于新值)。

  20. 6.3 数据库的数据保护 6.3.3 数据库并发控制 • 并发控制的概念 大型多用户数据库中的数据资源必须是共享的,为了 充分利用数据库资源,应允许多个用户并行操作的数据库。 数据库对这种并行操作进行的控制即并发控制。 • 并发控制方法 并发控制的主要方法是封锁技术(Locking )。当事 务1修改数据时,将数据封锁,这样事务1读取和修改数据 时,其他事务不能对数据进行读取和修改,直到事务1解 除封锁。

  21. 6.4 数据库的备份与恢复 6.4.1 数据库的备份 数据库的备份大致有三种类型 1.冷备份:冷备份是在没有最终用户访问它的情况下关闭 数据库,并将其备份,这是保持数据完整性的最好办法。 2.热备份:热备份是在数据库正在被写入的数据更新时进 行,日志文件将需要作更新或更改的业务指令“堆起来”, 而不真正将任何数据值写入数据库记录。 3.逻辑备份:逻辑备份使用软件技术从数据库提取数据并 将结果写入一个输出文件。

  22. 6.4 数据库的备份与恢复 6.4.2 数据库的恢复 数据库的恢复技术有如下2种: (1)单纯以备份为基础的恢复技术; (2)以备份和日志为基础的恢复技术。如图6-2所示。

  23. 6.5 SQL Server的安全管理与策略 6.5.1 SQL Server的安全体系和安全认证 1.SQL Server的安全体系 SQL Server的安全性是从下面三个层次来实现的: 第一层 数据库安全管理,包括登录和用户授权、存储过程管理等,确保对服务器的访问安全性 第二层是操作系统安全管理,包括检测日志记录、管理员帐号的管理等; 第三层是网络安全管理,通过端口设置、防火墙技术等网络技术来实现数据的安全性。

  24. 6.5 SQL Server的安全管理与策略 • SQL Server的安全体系如图 6‑3所示。

  25. 6.5 SQL Server的安全管理与策略 6.5.1 SQL Server的安全体系和安全认证 2. SQL Server的安全认证 当SQL Server在Windows环境中运行时,SQL Server 2000提供了下面两种确认用户的认证模式: (1)Windows认证模式 Windows认证模式利用Windows操作系统对于用户登录 和用户帐号管理的安全机制,允许SQL Server也可以使用 Windows的用户名和口令。用户只需要通过Windows的认 证,就可以连接到SQL Server。

  26. 6.5 SQL Server的安全管理与策略 6.5.1 SQL Server的安全体系和安全认证 (2)混合认证模式 • 在混合认证模式下,SQL Server系统可以采用 Windows认证进程或SQL Server认证进程。 • 当连接服务器的用户通过信任连接协议(NP和TCP/IP) 登录系统时,SQL Server采用Windows认证进程;当用户 连接服务器时采用非信任连接协议,数据库系统就会采用 SQL Server认证进程。

  27. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 • 安全管理是数据库管理系统必须提供的功能,其中包 含两个层次: • 一是用户是否有权限登录到系统及如何登录的管理; • 二是用户能否使用数据库中的对象并执行相应操作的管理。 • SQL Server的安全管理主要包括以下四个方面: • 数据库登录管理 • 数据库用户管理 • 数据库角色管理 • 数据库权限管理

  28. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 1.数据库登录管理 用户必须提供正确的登录帐号才能访问SQL Server 系统,这些帐号包括Windows登录帐号和SQL Server登录 帐号。 SQL Server根据连接的数据库,授予用户不同的访 问权限,并保留相同的密码。用户必须有服务器的登录 或连接权限,SQL Server将密码与登录联系,没有登录 到数据库服务器的用户,将不能访问服务器中的任何数 据库。

  29. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 • 对SQL Server数据库登录的管理有两种方法: 1)企业管理器(SQL Server Enterprise Manager) 2)系统存贮过程sp 下面介绍利用系统存储过程管理登录。 (1)使用系统存储过程sp_addlogin创建登录帐号 sp_addlogin存储过程使用Transact SQL语句,语法如下: sp_addlogin ‘loginname=登录名’,‘password=密码’,‘defaultdb=数据库’,‘defaultlanguage=语言’,‘sid=安全识别编号’,‘encryptopt=加密选项’

  30. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 例 6‑1创建一个登录后连接DB1000数据库、密码为“good”的用户“song”,并指定SID。 EXEC sp_addlogin ‘song’, ‘good’, ‘DB1000’, NULL, ‘00a bcd 12345678’ 例6‑2将登录用户“song”的密码由“good1”改为“good2”。 EXEC sp_password ‘good1’, ‘good2’, ‘song’

  31. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 (2)使用系统存储过程sp_helplogins显示登录系统管理 员sa可以使用系统存储过程sp_helplogins来查看当前数 据库服务器中的登录信息,语法如下: sp_helplogins ‘loginname=登录名’ 若未提供登录名,返回结果将包括当前数据库服务器 中的所有登录信息。 (3)使用系统存储过程sp_droplogin删除登录 系统管理员sa可以使用系统存储过程sp_droplogin从数据库中删除登录。其语法如下: sp_droplogin ‘loginname=登录名’

  32. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 2.数据库用户管理 用户名实际上是访问同一服务器上的不同数据库的标 识,用户在数据库中的操作能力取决于用户的权限。 (1)使用系统存储过程sp_adduser创建用户,语法如下: sp_adduser ‘loginname=登录名’, ‘username=用户 名’,‘groupname=角色名’ • 需要注意的是:这里的登录名loginname不能无效,用户名username不能为空。

  33. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 例 6‑3在数据库DB1000的角色“secret”中创建用户“Wang”,使用“Myway”登录。 USE DB1000 EXEC sp_adduser ‘Myway’,‘Wang’,‘secret’ (2)使用系统存储过程sp_dropuser删除用户,语法如下: sp_dropuser ‘username=用户名’ 例 6‑4在数据库DB1000中删除用户“Wang” USE DB1000 EXEC sp_dropuser ‘Wang’

  34. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 3.数据库角色管理 • 数据库角色是指为管理相同权限的用户而设置的用户组,也就是说,同一角色下的用户权限都是相同的。 • 在SQL Server数据库中,把相同权限的一组用户设置为某一角色后,当对该角色进行权限设置时,这些用户就自动继承修改后的权限。 • SQL Server数据库的角色通常可以分为三类: 数据库服务器角色 数据库角色 应用程序角色

  35. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 (1)SQL Server数据库角色分类 • 数据库服务器角色:都是SQL Server内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。 • 数据库角色:是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的。 • 应用程序角色:是一种比较特殊的角色。如通过特定应用程序间接地存取数据库中的数据时,所使用的角色。

  36. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 (2)利用系统存储过程管理角色 • 管理数据库服务器角色 在SQL Server中,管理服务器角色的存储过程主要有 两个sp_addsrvrolemember,sp_dropsrvrolemember 系统存储过程sp_addsrvrolemember可以将某一登录 帐号加入到服务器角色中,使其成为该服务器角色的成员。 其语法形式如下: sp_addsrvrolemember login,role

  37. 6.5 SQL Server的安全管理与策略 • 管理数据库角色 管理数据库角色的系统存储过程见下表:

  38. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 用户在进行数据库的角色管理时,需要注意以下4点: • 固定数据库服务器角色或固定数据库角色不能被增加、修改或删除,也就是说定义角色只能是在数据库级别上。 • 只有固定数据库服务器角色才能执行系统存储过程sp_addsrvrolemember,把一个登录帐号添加为一个固定数据库服务器角色的成员。

  39. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 • 只有固定数据库服务器角色db_owner的成员才可以添 加任意成员到数据库角色中,角色所有者只能在其所拥有 的角色中添加成员。 • 应用程序角色不包括任何用户。通过应用程序角色, 各个应用程序授予的访问权是不同的。使用应用程序角色 时,必须提供密码并激活角色才能使用。

  40. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 4.数据库权限管理 • 设置用户对数据库的操作权限称为授权,SQL Server中对于未授权的用户将无法访问或存取数据库数据。 • 通常权限分为以下三种: 1)对象权限:指允许用户或角色创建、修改或删除数据库对象,以及允许备份和恢复数据库和事务日志。 2)语句权限:指允许对数据库对象(包括表、视图)进行查询、添加、修改和删除操作,以及允许执行存储过程。 3)暗示性权限:指系统预定义的固定数据库服务器角色成员、数据库拥有者(DBO)和数据库对象拥有者(DBOO)所拥有的权限。

  41. 6.5 SQL Server的安全管理与策略 6.5.2 SQL Server的安全管理 • SQL Server数据库权限的管理 权限管理主要针对对象权限和语句权限,通常权限有三种状态:授予权限、撤消权限、拒绝访问。 例 6‑5 将创建数据库和视图的权限授予DB1000数据库中的RedRole角色。 USE DB1000 GO GRANT CREATE DATABASE, CREATE TABLE TO RedRole GO

  42. 6.5 SQL Server的安全管理与策略 6.5.3 SQL Server的安全策略及常用安全工具 1.SQL Server的安全策略 采取恰当的安全策略来应对SQL Server数据库中的安全漏洞和不当配置是很重要的,下面介绍4种常用的安全策略: • 安全密码和安全帐号策略 • 日志记录检测策略 • 扩展存储过程管理策略 • 网络及协议安全管理策略

  43. 6.5 SQL Server的安全管理与策略 6.5.3 SQL Server的安全策略及常用安全工具 2.SQL Server的常用安全工具 (1)Sscheck.exe Sscheck.exe是微软发布的一种SQL Server安全检查工 具,用于定位和禁用容易受Slammer蠕虫程序攻击的SQL Server 2000和SQL Server 2000 Desktop Engine(MSDE 2000)实例。

  44. 6.5 SQL Server的安全管理与策略 6.5.3 SQL Server的安全策略及常用安全工具 2.SQL Server的常用安全工具 (2)Sqlscan.exe Sqlscan.exe是微软发布的一种SQL Server安全扫描工 具,用于定位SQL Server 2000和MSDE 2000实例。该扫 描程序还可以扫描Windows域或特定范围内的IP地址,识 别出容易受Slammer蠕虫程序攻击的SQL Server实例。

  45. 6.6 应用示例:数据库加密系统 6.6.1 数据库加密系统概述 1.数据库加密的必要性 • OS和DBMS对数据库文件本身仍然缺乏有效保护措施; • 数据库加密对内部网络安全管理是非常重要的。 2.数据库加密的基本要求 • 字段加密 • 密钥动态管理 • 合理处理数据 • 不影响合法用户操作

  46. 6.6 应用示例:数据库加密系统 6.6.1 数据库加密系统概述 3.在不同层次实现数据库加密 • OS层加密 • DBMS内核层加密 • DBMS外层加密

  47. 6.6 应用示例:数据库加密系统 6.6.1 数据库加密系统概述 4.加密系统的有关问题 • 在用户进入系统时进行两级安全控制 这种控制可以采用多种方式,包括设置数据库用户名 口令,或者利用IC卡读写器/指纹识别器进行用户认证。 • 防止非法拷贝 对于纯软件系统,可以采用软指纹技术防止非法拷 贝,每台都安装加密卡等硬部件客户机安全性会更好。 • 安全的数据抽取方式 有两种卸出和装入数据库中加密数据的方式:一是 密文方式卸出;二是明文方式卸出。

  48. 6.6 应用示例:数据库加密系统 6.6.1 数据库加密系统概述 5.系统结构 数据库加密系统分成两个功能独立的主要部件:一 个是加密字典管理程序,另一个是数据库加/解密引擎, 体系结构如图 6-6 所示。

  49. 6.6 应用示例:数据库加密系统 6.6.2 数据库加密系统的密钥管理 1.数据库密码 应用于数据库加密的加密算法称为数据库密码。加密 算法根据不同需要可分为:序列密码、分组密码、公开密 钥密码。 2.密钥管理方法 数据库加密需要实行二级密钥管理。一级密钥为主密 钥,二级密钥为工作密钥。 3.密钥的安全保护 主密钥的安全需要解决:主密钥的生成、主密钥的存 储、主密钥的更换这几个问题。

  50. 6.6 应用示例:数据库加密系统 6.6.3 加解密引擎 1.加/解密引擎体系结构 数据库加/解密引擎系统结构如图 6‑8所示。 2.加解密处理 “加解密处理模块”是数据库加密引擎的核心模块, 包括数据库加解密引擎的初始化、内部专用命令的处理加 密字典信息检索、加密字典缓冲区的管理、SQL命令的加 密变换、查询结果的解密处理及加解密算法实现等功能子 模块,另外还包括一些公用的辅助函数。

More Related