应用系统剩余信息保护的技术实现

应用系统剩余信息保护的技术实现

ID:38800475

大小:64.30 KB

页数:13页

时间:2019-06-19

应用系统剩余信息保护的技术实现_第1页
应用系统剩余信息保护的技术实现_第2页
应用系统剩余信息保护的技术实现_第3页
应用系统剩余信息保护的技术实现_第4页
应用系统剩余信息保护的技术实现_第5页
资源描述:

《应用系统剩余信息保护的技术实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、0.引言随着信息化的推进,信息系统的安全问题成为了世界各国都十分关心的问题。我国则推出了GB/T22239-2008《信息安全技术信息系统安全等级保护基本要求》(以下简称《基本要求》)来对信息系统进行保护。《基本要求》对三级以上信息系统提出了“剩余信息保护”的要求。中国软件评测中心作为公安部信息安全等级保护测评推荐机构,在信息系统等级保护测评的过程中发现很多被测系统在“剩余信息保护”方面做的不是十分到位。接下来,本文会较详细地介绍剩余信息保护的定义、技术实现以及检测方法。1.剩余信息保护的定义在介绍《基本要求》中对于剩余信息保护要求项的定义前

2、,先要简单介绍一下一些背景知识。1.1《基本要求》对于要求项的划分从整体上,《基本要求》为技术要求和管理要求两大类。其中,技术要求按其保护的侧重点的不同被划分为以下三类:1)  业务信息安全类(S类):主要关注的是保护数据在存储、传输、处理过程中不被泄露、破坏和免受未授权的修改。2)  系统服务安全类(A类):关注的是保护系统连续正常的原型,避免因对系统未授权修改、破坏而导致系统不可用。3)  通用安全保护类(G类):既关注保护业务信息的安全性,同时也关注保护系统的连续可用性。《基本要求》中的所有的要求项都被分为上述三类,剩余信息保护要求项是

3、在三级以上系统中才出现的,是属于S类的,一般被分为S3(适用于三级系统)或者是S4(适用于四级系统)。此外,技术要求还被划分为物理层面安全要求、网络层面安全要求、主机层面安全要求(简称“主机安全”)、应用层面安全要求(简称“应用安全”)以及数据和备份恢复层面安全要求。剩余信息保护要求项是出现在主机安全和应用安全方面的。1.2《基本要求》对于剩余信息保护安全项的定义在主机安全方面,剩余信息保护安全项(S3或S4)的要求包括:1)  应保证操作系统和数据库系统用户的鉴别信息所在的存储空间,被释放或再分配给其他用户前得到完全清除,无论这些信息是存放

4、在硬盘上还是在内存中;2) 应确保系统内的文件、目录和数据库记录等资源所在的存储空间,被释放或重新分配给其他用户前得到完全清除。在应用安全方面,剩余信息保护安全项(S3或S4)的要求包括:1)  应保证用户鉴别信息所在的存储空间被释放或再分配给其他用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中;2)  应保证系统内的文件、目录和数据库记录等资源所在的存储空间被释放或重新分配给其他用户前得到完全清除。2.应用系统剩余信息保护的技术实现从《基本要求》对于剩余信息保护要求项的描述来看,该要求项要保护的客体(也即对象)——“剩余信息”主要

5、是内存或者硬盘的存储空间,要保护的时间是被释放或重新分配给其他用户后。2.1内存中的剩余信息保护内存中剩余信息保护的重点是:在释放内存前,将内存中存储的信息删除,也即将内存清空或者写入随机的无关信息。下面以应用程序对用户的身份鉴别流程(参见图1)为例,介绍一下如何对内存中的剩余信息进行保护。假设用户甲在登录应用程序A的时候,输入了用户名和密码。一般情况下,应用程序A会先将用户输入的用户名和密码存储在两个字符串类型(也可能是数组等)变量中。通常情况下,为了防止攻击者采用自动脚本对应用程序进行攻击,应用系统会要求用户输入校验码,并优先对校验码进行

6、验证。如果用户输入的校验码错误,应用系统应要求用户重新输入校验码。在校验码验证通过后,应用系统应从数据库中读取用户身份信息表,并在其中查找是否存在用户输入的用户名。如果未查找到,则应用系统应返回“用户名不存在”(或者较模糊地返回“用户名不存在或者密码错误”)。如果在用户身份信息表中找到用户名,应用程序一般应采用一种哈希(hash)算法(通常是MD5算法)对用户输入的密码进行运算得到其哈希值,并与数据库用户身份信息表中存储的密码哈希值进行比较。这里需要说明的是,数据库中一般不明文存储用户的密码,而是存储密码的MD5值。图1应用程序对其用户的身份

7、鉴别流程图通常情况下,应用系统在使用完内存中信息后,是不会对其使用过的内存进行清理的。这些存储着信息的内存在程序的身份认证函数(或者方法)退出后,仍然存储在内存中,如果攻击者对内存进行扫描就会得到存储在其中的信息。为了达到对剩余信息进行保护的目的,需要身份认证函数在使用完用户名和密码信息后,对曾经存储过这些信息的内存空间进行重新的写入操作,将无关(或者垃圾)信息写入该内存空间,也可以对该内存空间进行清零操作。下面以C语言为例,对存储过用户名和密码的数组进行清零操作。voidIsCorrectUser(){char*pcUserName=NUL

8、L;char*pcPassword=NULL;  pcUserName=(char*)malloc(128*sizeof(char));pcPassword=(ch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。