数据其它保护_第1页
数据其它保护_第2页
数据其它保护_第3页
数据其它保护_第4页
数据其它保护_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

数据其它保护第一页,共44页。不用加密方法来进行的数据保护数据加密算法所需要占用的资源加密解密算法可能会降低系统的运行速度不需要数据加密的场合密码保护内存数据保护注册表保护数字水印软件版权保护等第二页,共44页。13.1数据加密的限制第三页,共44页。数据加密副作用1:数据加密算法复杂度都较高如果数据量大,所花的时间较多不太适合需要迅速响应的实时系统2:除单向加密方法之外,其它加密算法都需保存密钥额外消耗空间增加了数据本身对外界的依赖性,如果密钥被破坏,数据将面临无法解密的可能第四页,共44页。在实际项目开发中,所需要的数据保护不仅仅是简单的加密希望内存数据不被存入硬盘之后被窃取;希望注册表能够应付敌方修改攻击;希望作品保证自己的版权;希望软件只能被授权的人使用;等等。第五页,共44页。13.2密码保护与验证第六页,共44页。怎样将密码储存到数据库中?以纯文本的方式存储,势必会遇到危险如数据库中有一个表格,结构如下:

打开这个表格,看到如下结果:密码能够被以明文形式看到如果攻击者取得了管理员权限,就可以看到用户密码第七页,共44页。密码保护的目标让密码以他人看不懂的形式存入数据库密码保护的一般方法为密码生成一个唯一对应的摘要,也可以理解为密文,存入数据库用户登录验证时,再根据密码生成摘要,和数据库中的摘要比对验证“单向加密算法”就可以完成这个功能提示:本节内容实际上是单向加密的一种应用,但是由于其在密码保护方面应用较广,特别归纳为“数据的其他保护”范畴。第八页,共44页。单向加密算法的特点是:同样的明文生成的密文(摘要)相同;无法由摘要推测明文。单向加密算法有MD5、SHA等。利用Java语言,配合MD5完成这个功能首先建立一个数据库,在数据库中建立T_CUSTOMER表格然后配置数据库连接,本章使用MicrosoftSQLServer,ODBC桥接,数据源名称为CustomerDs该项工作中,数据库建立和ODBC连接建立,可以参考相应文档。

第九页,共44页。首先是由密码明文生成MD5消息摘要的代码,详细代码见MD5.java。用一个Java程序来模拟注册界面,详细代码见Register.java。运行该程序,输入账号、密码和姓名:回车,得到结果,在数据库中可以看到,密码完全以密文显示。

第十页,共44页。用一个Java程序来模拟登录界面,详细代码见Login.java。输入正确的值,显示如下:输入错误的值,显示如下:数据库管理员无法得知密码原文当用户忘记密码时,可以向管理员申请修改密码,但是无法让管理员告知其密码。第十一页,共44页。13.3内存数据的保护第十二页,共44页。数据安全的问题硬盘上的数据一般以文件的形式存在,受到攻击的可能性比较大内存里面的数据安全同样不可忽视,特别是需要重视保护内存中的敏感数据,如密码和密钥。针对敏感数据的安全性主要体现在两个方面避免敏感数据的泄露;防止敏感数据被破坏。保证内存中数据的安全使敏感数据在内存中保留的时间尽可能地短应尝试确保该数据从不写入硬盘该策略描述起来很简单,但是实现起来具有一定技巧第十三页,共44页。13.3.1避免将数据写入硬盘文件内存数据写出到硬盘,安全威胁将大大加强很多情况下,内存数据有可能和硬盘数据进行交换攻击硬盘文件有很多方法,其攻击的难度比攻击内存数据本身小得多内存的数据和硬盘数据的交换内存容量(一般若干G)无法和硬盘(一般数十G)相提并论硬盘中的所有内容都可以放到内存中运行当有限的内存要运行大量的程序时,为了保证空间足够,就将内存中一些暂时不用的数据放到硬盘中当存放在硬盘中的那部分数据需要使用时,又从硬盘中调出,放入内存这片当成内存使用的硬盘空间叫做虚拟内存第十四页,共44页。内存数据与硬盘交换的文件(或者交换分区)文件大小可以进行设置文件不能删除,这种文件叫做“虚拟内存文件”其作用就是拿一部分的硬盘空间来当作内存使用

以Windows操作系统为例,在Windows中,可以在“我的电脑”——“属性”——“高级”——性能“设置”——“性能选项”——“高级”——中进行设置,如图所示:第十五页,共44页。Windows的“虚拟内存文件”在系统盘根目录(如C:\)下通常为名为page设置得当,对机器的性能会有一定程度的提高。系统休眠文件hiberfil.sys在机器休眠时,数据保存进该文件也是保证系统运行性能的一种有效措施。如果非常敏感的信息,由于没有及时在内存中清除,在换页时被写入页面文件,就有可能被敌方获取。这里以字符串为例,很多语言中的字符串都有一个池机制,用如下方法来生成一个字符串对象:在字符串池里面寻找是否有相同内容的字符串如果没有,就生成新对象放入池,否则就使用池内已经存在的字符串第十六页,共44页。隐含一个问题程序员事先无法预知一个字符串将要使用多久有可能在某个时刻,这个字符串被保存到硬盘中去特别是当这个字符串中保存着一些敏感数据,如密码时,就有可能被攻击者获得有时候程序员以为这个字符串已经被使用完毕,但是由于程序员过分依赖垃圾收集机制,结果导致字符串在内存里面多逗留了一段时间,也有可能进入硬盘空间。第十七页,共44页。解决以上问题1:如果可能的话,及时进行强制性的垃圾收集;2:如果数据量不大,将敏感数据进行加密。如果采用这种方法,必须面临两个问题:加密解密算法的使用要消耗一定时间;必须用有效的方法管理密钥。第十八页,共44页。解决以上问题3:可以对内存进行锁定,使得某些块不被交换入文件系统。在某些语言中,能够通过“锁定”数据以免交换调出。以C语言为例,可以通过如下函数进行锁定:mlock()调用锁定方法。其中,numbytes是锁定的字节数,这样,该内存范围中的所有字节都将在RAM中锁定,不会因为交换被保存到文件,直到进程通过使用munlock()来解锁为止。void*mem=malloc(numbytes);//……//锁定 mlock(mem,numbytes);第十九页,共44页。提示

锁定,是以页面为单位执行的一旦某页上有内容被锁定,那么整个页面都被锁定,直到进程通过使用munlock()来解锁该页面中的某些内容为止过多的锁定会让系统带来性能降低特别是如果锁定大量数据时,很容易锁定大量的页实际上锁定的内容远远多于这些数据如果进程锁定的多个资源(如缓冲区)碰巧在同一个页面上,解锁时,解锁任一个资源都会导致整个页面解锁,也就是多个资源都解锁了。对于某些敏感数据,在分配内存时,尽量分配到同一个页中锁定时就直接锁定这一页,解锁时也可以直接解锁这一页第二十页,共44页。解锁函数和锁定函数的调用方式基本一致一般情况下,以上操作需要程序在管理权限下运行如果不用锁定的办法使用尽可能小的内存块,并尽快地使用和擦除它munlock(mem,numbytes); 第二十一页,共44页。13.3.2从内存擦除数据要擦除内存中的数据,可以将数据内存单元用新的值覆盖。以C语言为例,以下代码实现了这个功能:在其它语言中,擦除敏感数据可能比较困难。/*用'\0'来覆盖str*/voiderase_string(char*str){while(*s){*s++='\0';}} 第二十二页,共44页。13.4注册表安全第二十三页,共44页。13.4.1注册表简介注册表Windows中的一个重要功能注册表在底层,是一个庞大的数据库,也可以理解为一个文件,在这里面存储了一些重要内容计算机软硬件的各种配置数据;用户安装在计算机上的软件和程序的相关信息;等等。用户可以通过注册表,做一些和系统配置有关系的配置调整软件的运行性能;检测和恢复系统错误;定制系统风格;等等。第二十四页,共44页。注册表可以浏览,也可以被修改一般在注册表编辑器中进行以Win2000/XP为例,在“开始”——“运行”中输入“regedit”命令第二十五页,共44页。注册表组成键(项):相当于分支中的一个文件夹;子键(子项):子键是文件夹中的子文件夹,子键同样是一个键;值项:值项是一个键的当前定义,由名称、数据类型以及分配的值组成。对于同一个键,我们可以给它设置一个值或者多个值,不过,此时要给每个值取不同的名称;如果某个键的一个值的名称为空,则空名称下的值为该键的默认值。各主键的简单介绍HKEY_CLASSES_ROOT:是系统中控制所有数据文件的键。HKEY_CURRENT_USER:当前用户的一些信息;HKEY_LOCAL_MACHINE:包含了一些对系统和软件进行控制的键;HKEY_USERS:包含了用户的信息;HKEY_CURRENT_CONFIG:包括了系统中现有的所有配置文件的细节。第二十六页,共44页。13.4.2注册表安全如果注册表受到严重的损害硬件和软件的运行可能会受到很大的限制出现应用程序运行不稳定不能正常的运行系统不能启动第二十七页,共44页。注册表的保护1:设置对注册表键的访问控制权限,特别设置对Regedit.exe的运行限制该措施包括以下几个方面:对于本地用户,设置注册表的用户权限;有些系统中,注册表还可以远程访问,因此,对远程访问的用户也要严格控制权限;个人系统中可禁用注册表的远程访问。第二十八页,共44页。注册表的保护2:对用户对注册表的操作进行审核和监视发现有恶意用户恶意修改注册表,马上将其设置为黑名单,禁止其下一次访问;3:养成备份注册表的习惯可在注册表编辑器中,将注册表导出为文本文件必要时,可以通过导入来进行恢复也可以将注册表中的某些关键的键进行备份,必要的时候导入。第二十九页,共44页。13.5数字水印第三十页,共44页。13.5.1数字水印简介数字产品的版权保护大量的多媒体数据在进行数字化之后在网上传输网络上的数据容易拷贝,容易传播,使盗版者能以低廉的成本盗版未经授权的数字产品内容一般解决的方法是数字水印以一幅图像作品为例数字水印是永久镶嵌在这幅图像作品(宿主数据)中,具有可鉴别性的数字信号或模式不影响这幅图像作品(宿主数据)的可用性数字水印不仅仅应用于图像,也应用于音频的版权保护。第三十一页,共44页。数字水印技术应当满足的要求:1:安全性:安全性主要体现在难以篡改或伪造和较低的误检测率;2:隐蔽性:数字水印嵌入到宿主数据中,但是应该是不可知觉的如,数字水印嵌入到图像中,不应影响图像的外观视觉,嵌入到音频中,不应该影响听觉效果;总之,不应影响宿主数据的正常使用;3:表达能力:水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,这样有利于保护数字产品产权合法拥有者的利益。第三十二页,共44页。数字水印的应用领域数字作品的知识产权保护将数字水印嵌入到作品中去,作为版权标识,该标识不损害原作品,又无法被攻击者伪造;如IBM在其“数字图书馆”软件中提供的数字水印功能Adobe公司在Photoshop软件中集成了的数字水印插件等;票据防伪由于复印技术的发展,使得货币、支票等票据的伪造变得更加容易在单独的票据中加入数字水印,通过专业手段,即可快速辨识真伪第三十三页,共44页。13.5.2数字水印的实现数字水印的实现通过一定的算法将一些标志性信息直接嵌到多媒体内容嵌入水印的过程如下第三十四页,共44页。水印的检测、抽取和判断过程第三十五页,共44页。数字水印的实现时域数字水印频域数字水印较早的数字水印算法本质上都是在时域上进行操作充分利用某些像素的灰度信息存储空间、或者充分利用某些像素的彩色信息存储空间,将数字水印直接加载在数据上具有算法简单、速度快、容易实现的优点。频域数字水印通过改变频域内一些系数的值,采用频域内变换的技术来实现数字水印如离散余弦变换、小波变换等优点主要在于嵌入的质量比较好,水印信号能量可以分布到所有的数据上,编码比较方便等。第三十六页,共44页。第三十七页,共44页。第三十八页,共44页。13.6软件版权保护第三十九页,共44页。软件版权保护某些软件的作者,为了保证自己的软件的版权,或者仅仅给收费者使用通常给会给软件设置一个注册码(序列号)只有输入注册码的用户才能使用里面的全部功能序列号加密的工作原理用户从网络上下载共享软件,一般都有使用时间限制过了共享软件的试用期后,必须到这个软件的公司去注册后方能继续使用注册过程用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司软件公司会根据用户的信息计算出一个序列号在用户得到这个序列号后,按照注册需要的步骤在软件中输入注册信息和序列号注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制第四十页,共44页。保证某个软件只能在某台机器上运行,采用非对称加密体系,流程如下:1:软件作者事先生成一对公钥私钥,将公钥嵌入到软件中。在软件中携带一个插件,可以得到一个可

温馨提示

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

评论

0/150

提交评论