一种基于交换数据流的文件标密方法_2

文档序号:8339924阅读:来源:国知局
重新形成数据流(ADS),再通过步骤7)重新进行标密。步骤7)中,形成的ADS数据流 包括了标密人、密级和自动获取的标密时间。
[0030] 本发明的有益效果是:
[0031] 利用本发明提供的技术方案,可以对NTFS文件系统进行密级划分,并且可以进一 步扩展或应用到其它应用中。本发明将文件密级标识(包括标密人信息、标密等级和标密 时间)放到了交换数据流中,密级标识不会影响原有文件内容,因此也不会影响到其它程 序对文件的正常操作,利用ADS标密文件具有操作简捷方便的优势。
【附图说明】
[0032] 图1为本发明实施例中NTFS文件系统下文件的组成结构图。
[0033] 图2本发明标密方法的流程框图。
[0034] 图3为本发明实施例中通过文件右键菜单功能扩展进行标密的方法流程框图。
[0035] 图4为本发明典型应用实施例的流程框图。
【具体实施方式】
[0036] 下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范 围。
[0037] 图1为本发明实施例中NTFS文件系统下文件的组成结构图。本发明基于Windows 的NTFS磁盘上的文件存储方式,以及NTFS文件系统的交换数据流(Alternate Data Streams,ADS)特性,根据建立ADS时所使用的名称(Unicode),将密级标识(标密人、密级、 标密时间)添加到备用流(ADS)中。
[0038] ADS也是一种特殊的文件类型,它是"寄宿"在宿主文件上的看不到的文件,本发明 是调用CreateFile创建ADS类型的"文件",再用WriteFile将内容写到ADS中。本实施例 中,可以直接在用户层创建NTFS交换数据流(ADS),具体通过调用Windows提供的API函数 CreateFile,来创建NTFS交换数据流(ADS)文件,之后再调用WriteFile函数将要标密的 内容写入所创建的交换数据流文件中,即完成文件标密。
[0039] 在NTFS文件系统中,宿主文件或目录可通过以下方法确定:位于$MFT中第23号 记录以后的记录是用户的文件或目录的记录。因此,从偏移量:$MFT起始LCNX卷因子 +1024 X 23处开始读入数据,每次读入1024字节数据(即一个文件记录的大小),在这一个 文件记录中判读是否是要寻找的宿主文件/目录,需要用到文件或目录的名称属性$FILE_ NAME。根据文件或目录的$FILE_NAME属性的数据结构,可以找到该文件或目录的名称。尽 管命名空间的不同,一个文件或目录可能存在多个$FILE_NAME属性,然而,总是能在若干 个$FILE_NAME属性中找到与宿主文件名相同的字符串(Unicode),这样就可以确定该记录 为宿主文件/目录。在文件或目录中寻找$Data属性与寻找$FILE_NAME属性类似。在$DATA 数据结构中,可以通过NameLength和NameOffset找到ADS的名称,通过RunListOffset找 到运行列表。
[0040] NTFS文件的每个非常驻属性都维护一个运行列表(Run List),运行列表是由一系 列的运行定位组成的,每个定位存储一个相对于上一定位中LCN的偏移量(可正可负)和 该运行的簇数。NTFS数据区管理采用索引存储,实际上,一个运行就是若干个连续的簇。根 据文件的数据流运行列表可以分析出运行列表的结构。
[0041] 本发明通过添加目录文件备用流(Alternate Stream),实现添加文件扩展数据。 因此,在宿主文件或目录的记录中可以寻找标密文件所在的ADS头结构及其运行列表,从 而实现文件标密。图2为本发明标密方法的流程框图,具体步骤如下:
[0042] 1)选定需要标密的文件,为该文件创建扩展ADS数据流,设置标密;
[0043] 2)调用文件1/0,读取步骤1)中为该文件创建的扩展数据流(ADS);
[0044] 3)判断ADS数据流中是否已经存在标密标识,如果已经存在标密标识,则进入步 骤4);如果不存在标密标识,则进入步骤5);
[0045] 4)提示输入验证口令,验证通过后显示加密标识信息,也可重新设置密级标识信 息,包括标密人和密级,并自动获取标密时间,再转入步骤7);如果验证不通过则继续步骤 4);
[0046] 5)设置文件密级标识信息,包括标密人和密级,并自动获取标密时间;
[0047] 6)提示输入标密标识口令,作为验证口令;
[0048] 7)调用文件1/0,将设置的文件密级标识信息写入文件扩展数据流(ADS),完成标 tM I_Lj 〇
[0049] 设置文件密级的核心代码如下:
[0050]
【主权项】
1. 一种基于交换数据流的文件标密方法,所述文件标密方法通过交换数据流将要标密 的文件数据写到NTFS卷上,从而实现文件标密,具体包括如下步骤: 1) 选定需要标密的文件,为该文件创建扩展交换数据流,设置标密; 2)通过调用文件1/0,读取步骤1)中为该文件创建的扩展交换数据流; 3) 判断交换数据流中是否已经存在标密标识,如果已经存在标密标识,则进入步骤 4);如果不存在标密标识,则进入步骤5); 4) 提示输入验证口令,验证通过后显示加密标识信息或重新设置文件密级标识信息, 再转入步骤7);如果验证不通过则继续步骤4)提示输入验证口令; 5) 设置文件密级标识信息; 6) 提示输入标密标识口令,作为验证口令; 7) 通过调用文件1/0,将设置的文件密级标识信息写入文件的扩展交换数据流,完成 标密。
2. 如权利要求1所述文件标密方法,其特征是,所述文件密级标识信息包括标密人、密 级和标密时间。
3. 如权利要求1所述文件标密方法,其特征是,所述文件标密方法应用于邮件系统和 用户管理系统中对文件进行标密。
【专利摘要】本发明公布了一种基于交换数据流的文件标密方法,通过交换数据流将要标密的文件数据写到NTFS卷上,从而实现文件标密,包括为该文件创建的扩展数据流;设置文件密级标识信息,包括标密人和密级,并自动获取标密时间;输入标密标识口令,作为验证口令;调用文件I/O,将设置的文件密级标识信息写入文件扩展数据流,完成标密。本发明方法中,密级标识不会影响原有文件内容,因此也不会影响到其它程序对文件的正常操作,利用交换数据流标密文件具有操作简捷方便的优势。
【IPC分类】G06F21-62
【公开号】CN104657677
【申请号】CN201510098032
【发明人】张涛, 李 浩, 王东艳
【申请人】北京安普诺信息技术有限公司
【公开日】2015年5月27日
【申请日】2015年3月5日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1