收藏 分享(赏)

《移动智能终端安全》课件第4章.pptx

上传人:bubibi 文档编号:21763036 上传时间:2024-04-23 格式:PPTX 页数:31 大小:111.94KB
下载 相关 举报
《移动智能终端安全》课件第4章.pptx_第1页
第1页 / 共31页
《移动智能终端安全》课件第4章.pptx_第2页
第2页 / 共31页
《移动智能终端安全》课件第4章.pptx_第3页
第3页 / 共31页
《移动智能终端安全》课件第4章.pptx_第4页
第4页 / 共31页
《移动智能终端安全》课件第4章.pptx_第5页
第5页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第4章 SQLite数据库及面临的安全威胁4.1SQLite数据库简介数据库简介SQLite是一个开源的嵌入式数据库引擎,没有分离的服务处理过程,它直接读写磁盘文件。在实际应用时,SQLite常被编译成动态库来使用。完整的SQLite数据库包含表、触发器和视图等内容,且仅存放在单独的磁盘文件中。数据库文件格式是基于交叉平台的,可以任意复制数据库文件从32位系统到64位系统。第4章 SQLite数据库及面临的安全威胁SQLite没有独立进程,与所服务的应用程序在应用程序进程空间内共生共存。SQLite代码嵌入到应用程序代码内部,作为托管SQLite的应用程序的一部分。SQLite支持Window

2、s/Linux/Unix等主流操作系统,能够和很多程序语言结合,具有占用资源较低、存储效率高、查询快以及可用单文件存储数据库内容等特点。SQLite具有简洁、模块化的体系结构,并引进了独特的方法进行关系型数据库管理。SQLite中的模块将查询过程分为几个独立的任务,就像在流水线上工作一样。在体系结构栈的顶部编译查询语句,在中部执行,在底部处理存储并与操作系统交互。SQLite体系结构如图4-1所示。第4章 SQLite数据库及面临的安全威胁图4-1SQLite体系结构第4章 SQLite数据库及面临的安全威胁1.接口接口接口是一个C语言库,用来接收用户指令。接口处于栈的顶端,由SQLite、C

3、、API组成。程序、脚本语言以及与SQLite交互的库文件最终都是通过接口与SQLite进行交互。2.编译器编译器编译器由三个独立的部分组成,分别为分词器、语法分析器和代码生成器。当执行一个包含SQL语句的字符串时,接口程序需要将该字符串传递给分词器。分词器的任务是把原始的字符串分割成标记,然后逐个传给语法分析器。第4章 SQLite数据库及面临的安全威胁编译过程从分词器和语法分析器开始。分词器和语法分析器协同处理文本形式的结构化查询语句(SQL),分析其语法有效性,然后转化为底层能更方便处理的层次化数据结构。SQLite开发团队编码实现了SQLite的分词器,而SQLite的语法分析器是由L

4、emon语法生成器生成的。Lemon语法生成器采取了一些特殊的预防措施来防止内存泄露,并且性能较好。语法分析的过程是:SQL语句先被分解成词法记号,经过评估后以语法树的形式重组,然后语法分析器将重组后的语法树传给代码生成器。第4章 SQLite数据库及面临的安全威胁代码生成器将语法树翻译成SQLite专用的汇编代码,这些汇编代码由最终通过虚拟机执行的指令组成。代码生成器的工作是将语法树转换为完全由该汇编语言编写的微程序并交给虚拟机处理。第4章 SQLite数据库及面临的安全威胁3.虚拟机虚拟机架构栈的中心部分是虚拟机,也叫作虚拟数据库引擎(VDBE)。VDBE是基于寄存器的虚拟机,在字节码上工

5、作,这种特点使得它可以独立于顶层操作系统、CPU和系统体系结构进行工作。VDBE的字节代码(即虚拟机语言)由100多个被称为操作码的任务构成,这些操作码围绕数据库进行。VDBE是专为数据处理而设计的虚拟机,它的指令集中所有的指令要么用来完成具体的数据库操作(如打开表的游标、做记录、提取一列或者开始一个事务等),要么是以某种方式控制栈为完成这些操作做准备。第4章 SQLite数据库及面临的安全威胁命令集中在一起并以恰当的顺序组合,就可以满足复杂的SQL命令的要求。SQLite中的所有SQL语句从选择和更新记录到创建表、视图以及索引,都是先编译成虚拟机语言,然后形成独立的、已经定义的、可以完成给定

6、命令的指令集。VDBE是SQLite的核心,SQLite之前的所有模块都用于创建VDBE程序,之后的所有模块都用于执行VDBE程序,每次执行一条指令。第4章 SQLite数据库及面临的安全威胁4.后端后端后端由B-tree、页面高速缓存(Page cache)以及操作系统接口(OS Interface)组成。(1)B-tree:B-tree用来维护磁盘里的SQLite数据库。数据库中的每个表格和目录都使用单独的B-tree。所有的B-tree被存储在同一个磁盘文件里。B-tree的职责是排序,维护多个页之间的关系,保证快速定位并找到一切有联系的数据。第4章 SQLite数据库及面临的安全威胁(

7、2)页面高速缓存:B-tree模块要求来自磁盘的程序块大小为1024个字节,页面高速缓存负责读、写程序块并可高速缓存程序块。页面高速缓存具有重新运算和提交抽象命令的功能,负责关闭数据库文件夹。当B-tree驱动器需要修改页或重新运行时,会通报页面高速缓存。为了保证所有的需求都能被快速、安全和有效地处理,页面高速缓存会处理所有的细节。(3)操作系统接口(OS Interface):为使不同操作系统下的应用能够实现移植,SQLite操作系统的接口程序使用一个提取层。第4章 SQLite数据库及面临的安全威胁5.工具和测试代码工具和测试代码工具模块中包含各种实用的功能,如内存分配、字符串比较、Uni

8、code转换等公共服务。测试模块中包含大量回归测试用例,用来检查数据库代码的各个角落。该模块执行大量回归测试,任何人都可以运行并改进测试,使得SQLite越来越可靠。SQLite的特性和设计理念如下:(1)零配置:SQLite不需要DBA(数据库管理员),因此配置和管理SQLite非常简单,只需很少的内存即可运行。第4章 SQLite数据库及面临的安全威胁(2)移植性:SQlite既可以编译运行在各种操作系统和嵌入式平台中,也可以工作在32位和64位体系结构中,并同时适应大字节序和小字节序。(3)紧凑性:SQLite只包含一个头文件、一个库以及关系型的不需要外部数据库的服务器。(4)简单性:作

9、为程序库,SQLite的API是最简单易用的API之一。(5)灵活性:作为一款嵌入式数据库,SQLite拥有强大而灵活的关系型数据库前端和简单紧凑的B-tree后端。第4章 SQLite数据库及面临的安全威胁(6)自由授权:SQLite的全部代码保存在公共域中,并且不需要许可证。SQLite的所有内容没有附加版权要求。(7)可靠性:SQLite源代码包含大约70000行标准ANSIC代码,代码模块清晰、注释完整、易理解、易定制且方便获取。(8)易用性:SQLite具有动态类型、冲突解决、可将多个数据库“附着”到一个连接上的功能,提高了SQLite的易用性。第4章 SQLite数据库及面临的安全

10、威胁SQLite可以将外部数据库“附着”到当前的连接中。假如用户当前连接到数据库foo.db,同时需要另外一个数据库bar.db工作,则无需打开单独的连接,再在这两个数据库之间切换,而是可以简单地将感兴趣的数据库用下面的SQL语句附着到当前连接:“ATTACH databasebar.db as bar;”。现在bar.db中所有的表都可以访问,就像这些表存在于foo.db中一样。完成时也可以剥离,这使得在数据库之间的各种操作如同复制表一样容易。第4章 SQLite数据库及面临的安全威胁4.2SQLite数据库的安全机制数据库的安全机制数据库通常保存着企业、组织和政府部门的重要数据,是信息系统

11、安全的关键。不论是在单机还是在网络环境下,数据库系统都可能会受到各种威胁。数据存储的安全、敏感数据的窃取和篡改问题越来越引起人们的重视。数据库安全机制是指为保护数据库和防止非法用户越权使用、窃取、更改、破坏数据而采取的技术手段。第4章 SQLite数据库及面临的安全威胁国内外针对数据库安全有不同的定义。其中,C.E Pfleeger在“Security in ComputingDatabase Security.PTR,1997”中对数据库安全的定义被广泛应用于国外的教材、培训当中,是国外关于数据库安全定义中最具权威性的一种。它主要从以下几个方面来对数据库的安全进行描述。(1)物理完整性:指数

12、据库中的数据不会被各种自然界灾害物理地破坏,如地震、水灾、火灾等造成数据存储设备的破坏。第4章 SQLite数据库及面临的安全威胁(2)逻辑完整性:指对数据库中数据结构的保护,例如对数据库中一个字段的修改不会造成对其他字段的破坏。(3)元素安全性:指保障存储在数据库中每个元素的正确性。(4)审计性:指可跟踪用户对数据库的操作步骤,从而重现这些步骤,追其故障根源。(5)用户认证:指对访问数据库的每个用户都要进行严格的身份验证。(6)权限控制:指防止用户越权操纵数据库。第4章 SQLite数据库及面临的安全威胁(7)可用性:指保证合法用户可随时对数据库进行访问。我国计算机信息系统安全保护等级划分准

13、则GB178591999中的中华人民共和国公共安全行业标准GA/T3892002对数据库安全的定义是:数据库安全是指保证数据库中数据的保密性、完整性、一致性和可用性。可以从以下几个方面来理解:第4章 SQLite数据库及面临的安全威胁(1)保密性:指保护数据库中的数据不被未授权用户获得。(2)完整性:指保护数据库中的数据不被破坏或修改。(3)一致性:指保证数据库中的数据满足实体完整性、参照完整性和用户定义完整性。(4)可用性:指保证合法用户在一定规则的控制和约束下可对数据库中的数据进行访问。第4章 SQLite数据库及面临的安全威胁为满足嵌入式系统对数据库本身的轻便性以及对数据存储效率、访问速

14、度、内存占用率等性能的要求,SQLite采取了不同于其他大型数据库的实现机制,但同时也带来了安全隐患。为了保持SQLite的优点和安全性,需要从口令认证、数据库加密、审计机制、备份和恢复机制等方面提高SQLite的安全性。1.口令认证口令认证SQLite数据库文件是普通的文本文件,对SQLite数据库文件的访问首先依赖于对文件的访问控制。第4章 SQLite数据库及面临的安全威胁2.数据库加密数据库加密数据库加密有以下两种方式:(1)在数据库管理系统(Data Base Management,DBMS)中实现加密功能:即从数据库中读数据和向数据库中写数据时执行加解密操作。(2)应用层加密:即在

15、应用程序中对数据库中的某些字段的值进行加密,DBMS管理的是加密后的密文。数据加密最重要的是加密算法,好的加密算法可以实现良好的加密效果。根据加密和解密的密钥相同与否,加密算法可分为对称加密算法和非对称加密算法。第4章 SQLite数据库及面临的安全威胁对称加密算法适用于文件和数据库的加密,有良好的安全性和较高的速度,适合应用于嵌入式系统;非对称加密算法的安全性更高,但算法复杂且速度较慢,适合应用于小数据量的加解密或者数据签名。Android手机的硬件资源有限,所以应选择复杂度低、资源消耗少、速度快且安全性好的加密算法。因此,SQLite加密算法选择对称加密算法。常用的对称加密算法有DES、3

16、DES和AES算法,这三种算法的比较如表4-1所示。其中,AES加密算法的加密速度快、安全性高、资源消耗少并且密钥长度较长,不易被破解。第4章 SQLite数据库及面临的安全威胁第4章 SQLite数据库及面临的安全威胁3.审计机制审计机制作为可移植的嵌入式数据库,SQLite不宜调用系统日志来执行审计功能。而且,由于SQLite没有用户管理功能,所以也不需要详细的审计功能。4.备份和恢复机制备份和恢复机制按备份方式可以将数据的备份分为逻辑备份和物理备份。逻辑备份得到的是原数据库数据内容的映像,只能对数据库进行逻辑恢复;而物理备份通过拷贝物理数据的方式对数据进行备份,可以实现数据库的完整恢复,

17、物理备份又分为冷备份和热备份。第4章 SQLite数据库及面临的安全威胁1)冷备份冷备份又称为离线备份,是指在关闭数据库且数据库不能更新的状况下进行的数据库完整备份。冷备份的优点是:备份速度快(只需要拷贝文件)、容易归档(简单拷贝即可)、容易恢复到某个时间点上(只需将文件再拷贝回去)、能与归档方法相结合从而做到数据库“最佳状态”的恢复。缺点是:单独使用时,只能提供到“某一时间点上”的恢复。第4章 SQLite数据库及面临的安全威胁2)热备份热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法,是系统处于正常运转状态下的备份。热备份要求数据库在archivelog

18、方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以开始备份了。热备份的优点是:可在表空间或数据库文件级备份,备份的时间短,备份时数据库仍可使用,可达到秒级恢复(恢复到某一时间点上),可对几乎所有数据库实体进行快速恢复,大多数情况下在数据库仍工作时恢复。第4章 SQLite数据库及面临的安全威胁缺点是:不能出错,否则后果严重。若热备份不成功,所得结果不可用于时间点的恢复,因此难以维护,所以需要特别仔细,不允许“以失败告终”。第4章 SQLite数据库及面临的安全威胁4.3面临的安全威胁面临的安全威胁在Android操作系统中,绝大多数的应用程序使用数据库作为其数

19、据持久化的工具。但作为Android操作系统底层依赖的数据库管理系统,SQLite数据库的安全机制十分薄弱。因此,不法分子会利用SQLite数据库的漏洞肆意获取用户的隐私数据,特别是由于Android设备的便捷性,入侵者极容易通过物理方式接触设备并且对SQLite数据库直接发出攻击。由于Android设备中的SQLite数据库文件存放在设备上,所以在攻击者物理接触设备后该数据块极容易受到攻击。第4章 SQLite数据库及面临的安全威胁虽然部分密钥管理措施负责密钥的生成和记录,但是密钥和数据库文件存放在同一台设备上,也会带来安全性问题。SQLite的安全隐患可以从以下四方面来说明。(1)SQLi

20、te不提供网络访问服务,它使用单一文件存储数据库的结构和内容,这使得数据库非常轻便且容易移植。数据库没有用户管理、访问控制和授权机制,它利用操作系统对文件的访问控制能力实施文件级别的访问控制,即只要是操作系统的合法用户,并且只要该用户对数据库文件具有读/写权限,就可以直接访问数据库文件。第4章 SQLite数据库及面临的安全威胁(2)开源的SQLite数据库不提供加密机制,因此不提供数据级的保密性。一旦存有用户个人信息的数据库文件被人获取,通过SQLite数据库管理工具很容易读取或修改这些数据库文件,造成用户个人隐私的泄露。(3)SQLite的存储格式简单,无需专门的工具,使用任何文本编辑器都可以查看文件内容。(4)由于不提供多用户机制,所以SQLite数据库没有审计机制,而且SQLite数据库的备份和恢复只能依赖于对数据库文件的手工拷贝完成。第4章 SQLite数据库及面临的安全威胁小结小结本章主要从SQLite的产生背景、安全机制和面临的安全威胁三方面介绍了SQLite的基础知识及其特点。由于SQLite迎合了嵌入式设备和移动智能终端的应用场景,因此该数据库管理系统与其他典型的数据库管理系统在安全机制方面有很大不同。这些特点也给SQLite带来了安全机制脆弱的缺陷,因此本章在最后介绍了SQLite所面临的安全威胁。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高等教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报