CN1770051A - 一种文件安全检测方法 - Google Patents
一种文件安全检测方法 Download PDFInfo
- Publication number
- CN1770051A CN1770051A CN 200410092002 CN200410092002A CN1770051A CN 1770051 A CN1770051 A CN 1770051A CN 200410092002 CN200410092002 CN 200410092002 CN 200410092002 A CN200410092002 A CN 200410092002A CN 1770051 A CN1770051 A CN 1770051A
- Authority
- CN
- China
- Prior art keywords
- file
- check code
- header
- attribute information
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件安全检测方法,包括步骤:给文件添加文件头,将文件的属性信息加入该文件头中并随文件保存;系统打开文件时,读取文件头中保存的属性信息,同该文件的当前属性信息进行比较,如果一致,则报告当前文件未被修改;否则,报告文件已被修改。运用本发明的方法,可以在不同平台系统中准确检测出文件是否被非法修改过,确保文件稳定、安全。
Description
技术领域
本发明涉及计算机安全领域,尤指一种文件安全检测方法。
背景技术
文件是计算机系统中数据的宿主,几乎所有的软件项目都离不开文件。因此,文件系统的安全、稳定非常重要。对于文件安全,就当前各个文件系统而言,不同平台的系统实现方式各不相同,都不能同时、统一地满足文件的安全要求。现有技术中,程序员一般根据文件所在系统平台的特性给予不同的实现方法,比如,在Windows2000下,应用程序的相关数据、配置文件如果不是放在“My document”下面,一般Guest用户都可以对文件进行读、写操作。UNIX操作系统对文件的权限进行了严格的规定,但是往往程序员必须为应用程序添加多个有读写权限的使用者,随着多用户对文件的操作,程序员不能得知程序是否被误破坏过。
每个操作系统对每个文件都有相关的“文件描述块”来记录文件的基本属性,比如:文件的读写属性、文件长度、文件名。根据这些,我们只能获取当前的文件属性,但不能知道文件是否被修改、破坏过。例如,当文件发生下列情况时,一般不会察觉:文件破损(文件长度发生变化)、文件被意外破坏(文件长度内容发生变化)、文件属性变动(可读可写属性)以及文件非授权读写访问等。这些情况往往会使软件项目变得不安全,但是我们却无法察觉。
由于“文件描述块”存在于文件系统描述文件的数据结构中,各个文件系统存在差异,文件系统通过读取这些数据结构来获取文件的属性。这些文件属性不是存放在具体的文件当中,而是存在于文件所在的文件系统中,当一个文件被拷贝到另外一个文件系统时,这些属性将要丢失掉。因为不同的操作系统有不同的文件系统,而不同的文件系统对文件安全的实现是不同的。基本上,这些文件系统不能提供统一、相对完整的文件安全解决方案。
发明内容
本发明提供一种文件安全检测方法,可以在不同平台系统中检测出文件是否被非法修改过。
本发明方法包括:
A:给文件添加文件头,将文件的属性信息加入该文件头中并随文件保存;
B:系统打开文件时,读取文件头中保存的属性信息,同该文件的当前属性信息进行比较,如果一致,则报告当前文件未被修改;否则,报告文件已被修改。
所述属性信息包括随文件内容修改而变化的一项或多项文件属性。
所述属性信息还包括不随文件内容修改而变化的一项或多项文件属性。
所述步骤B中读取文件头中保存的属性信息是通过标准的文件读取函数来实现的。
根据本发明的上述方法,还在所述文件头中加入与文件属性和/或文件内容相关的校验码。
在文件头中加入校验码包括如下步骤:
a:对文件数据部分进行计算得出数据部分校验码,加入到文件头中;
b:对加入了数据部分校验码的文件头中内容进行计算,得出文件头部分的校验码,加入到文件头中。
系统打开文件时,使用与生成校验码所采用方法相对应的方法计算出当前文件的校验码,并同文件头中保存的校验码进行比较。
所述校验码生成方法为累计校验和方法或循环冗余校验方法。
根据本发明的上述方法,还包括在文件保存后进行加密的步骤;系统打开该文件时,进行相应的解密操作。
根据本发明的上述方法,还包括对加密文件进行压缩的步骤;系统打开该文件时,进行相应的解压缩操作。
采用本发明的方法,可以在不同平台系统中准确检测出文件是否被非法修改过;另外,本发明通过在文件属性信息中加入校验码,系统打开文件时,需要使用相同的校验方法对当前文件计算出相应的校验码来进一步确保文件的安全性。
附图说明
图1是本发明方法的流程图;
图2是本发明文件头及文件数据示意图。
具体实施方式
下面结合附图对本发明的方法做进一步阐述。参见图1,本发明方法包括如下步骤:
步骤1:在初始文件数据内容确定后,给文件添加一文件头(例如:使用C++程序语言编写),将文件的属性信息加入到文件头中,将文件头随文件保存。所述属性信息包括随文件内容修改而变化的一项或多项文件属性或不随文件内容修改而变化的一项或多项文件属性,如图2所示,以下属性信息可以加入到文件头中:
文件类型:用以检测文件是否是非本程序类型;
文件名长度及文件名:检测文件名有没有被修改;
文件读写执行属性:用以检测文件可读写属性的变化;
文件头版本:文件头可以根据需要而升级;
文件中数据版本:程序员可以根据需要而升级;
数据长度:文件数据有没有被修改过。
步骤2:为了更加准确的判断文件是否被非法修改过,文件头中还可以包括文件数据部分的校验码和文件头部分的校验码,分别用来检测文件数据部分和文件头部分是否被非法修改过。
在进行校验码计算时,由程序员指定使用的校验码生成方法。如:累计校验和方法、CRC(循环冗余校验)方法等。默认的校验码是累计校验和方法,程序员可以选择是否使用累计校验和方法或者CRC校验方法。当然也可以提供自己的校验方法。但是需要传入校验方法的函数指针。例如:
As:void GetlongCheckSum(void*pBuf,unsigned long Len,unsignedlong*pCheckSum);
声明类型是typedef void Func Type_CheckSum(void*,unsigned long,unsigned long*);
参数1表示需要算校验和的buf指针,参数2表示需要算校验和的字节长度,参数3是校验和结果。程序员可以使用下面的函数,从而实现文件头不包括校验码:
void GetlongCheckSum(void*pBuf,unsigned long Len,unsigned long*pCheckSum){pCheckSum=0;}。
在进行校验计算时,由于文件数据部分的校验码是文件头的一部分,应先算出文件数据部分的校验码,然后再算文件头部分的校验码。
当文件头中的信息添加完后,将文件头作为文件的一部分同文件一起保存。这样,不管在哪个操作系统平台下,都能够获取该文件头的信息。
步骤3:文件保存后,还可以指定是否对文件进行加密。加密方法可以用E1、E2加密方法,也可以根据公共的接口,扩展、使用自己的加密方法。加密完成后,可以对该文件进行压缩,缩小文件占用的存储空间,也作为文件保密的一种手段。压缩可以使用常用压缩方法,当然,程序员也可以扩展自己的压缩方法。
步骤4:程序员再次打开该文件时,如果想检测该文件是否被非法修改过,若文件经过了加密和压缩的话,先是解压缩和解密。打开文件的解压缩、解密方法必须和原先的压缩方法和加密方法对应,否则无法打开该文件。
步骤5:获取文件头中保存的文件属性信息和文件的当前属性信息。实现获取文件头中的属性信息的时候,应使用strict ANSI C/C++、Use the iostreamlibrary from the ANSI Standard C++library、Use the Standard template library fromthe ANSI Standard C++library(严格的美国国家标准化组织提供的标准化C++语法、标准输入输出流函数库、标准模板库),否则是不能实现跨平台目的的。例如使用int_cdecl stat(const char*,struct stat*);获取文件属性。
若该文件头中包括校验码,则打开文件时还应该指定曾使用过的校验码方法,分别算出文件数据部分校验码和文件头部分校验码。
步骤6:然后将文件的当前属性信息和计算出的校验码同文件头中记载的历史属性信息一一进行比较,如果比较结果一致,则判定文件没有被修改过,否则,报告文件已经被修改。
当然,程序员本人如果需要修改文件,在完成文件内容的修改后,需要重新生成文件头信息。
以下是1.0版本文件C++文件头程序结构举例:
struct S_T2100_BCKUP_FILE_HEAD
{
unsigned char a_ucMagicSign[16];
unsigned long ulHeadChecksum;
unsigned long ulFileVer;
unsigned long ulDateLen;
unsigned long ulDataChecksum;
unsigned long ulFileAttrib;
unsigned short usHeadVer;
unsigned short usFileNameLen;
unsigned char ucReserved[12];
}
通过本发明的方法,可以在不同平台系统中准确检测出文件是否被非法修改过,从而确保文件在跨平台中的稳定、安全。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1、一种文件安全检测方法,其特征在于包括以下步骤:
A:给文件添加文件头,将文件的属性信息加入该文件头中并随文件保存;
B:系统打开文件时,读取文件头中保存的属性信息,同该文件的当前属性信息进行比较,如果一致,则报告当前文件未被修改;否则,报告文件已被修改。
2、如权利要求1所述的方法,其特征在于:所述属性信息包括随文件内容修改而变化的一项或多项文件属性。
3、如权利要求2所述的方法,其特征在于:所述属性信息还包括不随文件内容修改而变化的一项或多项文件属性。
4、如权利要求1所述的方法,其特征在于:所述步骤B中读取文件头中保存的属性信息是通过标准的文件读取函数来实现的。
5、如权利要求1所述的方法,其特征在于:还在所述文件头中加入与文件属性和/或文件内容相关的校验码。
6、如权利要求5所述的方法,其特征在于:在文件头中加入校验码包括如下步骤:
a:对文件数据部分进行计算得出数据部分校验码,加入到文件头中;
b:对加入了数据部分校验码的文件头中内容进行计算,得出文件头部分的校验码,加入到文件头中。
7、如权利要求6所述的方法,其特征在于:系统打开文件时,使用与生成校验码所采用方法相对应的方法计算出当前文件的校验码,并同文件头中保存的校验码进行比较。
8、如权利要求6所述的方法,其特征在于:所述校验码生成方法为累计校验和方法或循环冗余校验方法。
9、如权利要求1所述的方法,其特征在于:还包括在文件保存后进行加密的步骤;系统打开该文件时,进行相应的解密操作。
10、如权利要求9所述的方法,其特征在于:还包括对加密文件进行压缩的步骤;系统打开该文件时,进行相应的解压缩操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100920024A CN100340938C (zh) | 2004-11-04 | 2004-11-04 | 一种文件安全检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100920024A CN100340938C (zh) | 2004-11-04 | 2004-11-04 | 一种文件安全检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1770051A true CN1770051A (zh) | 2006-05-10 |
CN100340938C CN100340938C (zh) | 2007-10-03 |
Family
ID=36751388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100920024A Expired - Fee Related CN100340938C (zh) | 2004-11-04 | 2004-11-04 | 一种文件安全检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100340938C (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011157242A3 (zh) * | 2011-08-15 | 2012-06-21 | 华为终端有限公司 | 文件的保护方法及装置 |
CN102609644A (zh) * | 2012-01-11 | 2012-07-25 | 杭州东信北邮信息技术有限公司 | 一种文件保护方法 |
CN102622551A (zh) * | 2012-04-11 | 2012-08-01 | 无锡华御信息技术有限公司 | 一种文档安全防护方法 |
CN102662789A (zh) * | 2012-03-27 | 2012-09-12 | 株洲南车时代电气股份有限公司 | 一种elf文件添加crc校验的方法 |
CN102902732A (zh) * | 2012-09-11 | 2013-01-30 | 南车株洲电力机车研究所有限公司 | 一种在xml配置文件中添加校验的方法 |
CN103034815A (zh) * | 2011-09-30 | 2013-04-10 | 北大方正集团有限公司 | 用于pdf文件的检测方法和装置 |
CN103368963A (zh) * | 2013-07-15 | 2013-10-23 | 网宿科技股份有限公司 | 内容分发网络中的http报文防篡改方法 |
CN103400064A (zh) * | 2013-08-20 | 2013-11-20 | 北京网秦天下科技有限公司 | 用于文件加密和解密的方法和设备 |
CN103745166A (zh) * | 2013-12-27 | 2014-04-23 | 曙光云计算技术有限公司 | 文件属性值的检验方法和装置 |
CN106126367A (zh) * | 2016-06-28 | 2016-11-16 | 湖北锐世数字医学影像科技有限公司 | 一种文件的自校验方法及系统 |
CN107133120A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 一种文件数据的校验方法、装置 |
CN107608639A (zh) * | 2017-10-20 | 2018-01-19 | 深圳益邦阳光有限公司 | 基于闪存的队列式循环存储方法、电子设备和存储介质 |
CN109657465A (zh) * | 2018-11-07 | 2019-04-19 | 深圳竹云科技有限公司 | 一种基于文件损坏度的软件检测方法 |
CN110929110A (zh) * | 2019-11-13 | 2020-03-27 | 北京北信源软件股份有限公司 | 一种电子文档检测方法、装置、设备及存储介质 |
CN111753518A (zh) * | 2020-08-12 | 2020-10-09 | 深圳潮数软件科技有限公司 | 一种自主的文件一致性检验方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520948B (zh) * | 2011-12-09 | 2015-08-12 | 福建联迪商用设备有限公司 | 应用程序维护更新方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7152047B1 (en) * | 2000-05-24 | 2006-12-19 | Esecure.Biz, Inc. | System and method for production and authentication of original documents |
CN1290038C (zh) * | 2000-05-25 | 2006-12-13 | 英业达股份有限公司 | 一种即时生成文件版本的方法 |
US7240209B2 (en) * | 2001-06-12 | 2007-07-03 | International Business Machines Corporation | Methods of invisibly embedding and hiding data into soft-copy text documents |
-
2004
- 2004-11-04 CN CNB2004100920024A patent/CN100340938C/zh not_active Expired - Fee Related
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011157242A3 (zh) * | 2011-08-15 | 2012-06-21 | 华为终端有限公司 | 文件的保护方法及装置 |
CN103034815B (zh) * | 2011-09-30 | 2015-07-22 | 北大方正集团有限公司 | 用于pdf文件的检测方法和装置 |
CN103034815A (zh) * | 2011-09-30 | 2013-04-10 | 北大方正集团有限公司 | 用于pdf文件的检测方法和装置 |
CN102609644A (zh) * | 2012-01-11 | 2012-07-25 | 杭州东信北邮信息技术有限公司 | 一种文件保护方法 |
CN102609644B (zh) * | 2012-01-11 | 2015-05-13 | 杭州东信北邮信息技术有限公司 | 一种文件保护方法 |
CN102662789A (zh) * | 2012-03-27 | 2012-09-12 | 株洲南车时代电气股份有限公司 | 一种elf文件添加crc校验的方法 |
CN102622551A (zh) * | 2012-04-11 | 2012-08-01 | 无锡华御信息技术有限公司 | 一种文档安全防护方法 |
CN102902732B (zh) * | 2012-09-11 | 2015-09-02 | 南车株洲电力机车研究所有限公司 | 一种在xml配置文件中添加校验的方法 |
CN102902732A (zh) * | 2012-09-11 | 2013-01-30 | 南车株洲电力机车研究所有限公司 | 一种在xml配置文件中添加校验的方法 |
CN103368963A (zh) * | 2013-07-15 | 2013-10-23 | 网宿科技股份有限公司 | 内容分发网络中的http报文防篡改方法 |
CN103400064A (zh) * | 2013-08-20 | 2013-11-20 | 北京网秦天下科技有限公司 | 用于文件加密和解密的方法和设备 |
CN103400064B (zh) * | 2013-08-20 | 2016-08-24 | 北京网秦天下科技有限公司 | 用于文件加密和解密的方法和设备 |
CN103745166A (zh) * | 2013-12-27 | 2014-04-23 | 曙光云计算技术有限公司 | 文件属性值的检验方法和装置 |
CN107133120A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 一种文件数据的校验方法、装置 |
CN106126367A (zh) * | 2016-06-28 | 2016-11-16 | 湖北锐世数字医学影像科技有限公司 | 一种文件的自校验方法及系统 |
CN106126367B (zh) * | 2016-06-28 | 2019-09-20 | 湖北锐世数字医学影像科技有限公司 | 一种文件的自校验方法及系统 |
CN107608639A (zh) * | 2017-10-20 | 2018-01-19 | 深圳益邦阳光有限公司 | 基于闪存的队列式循环存储方法、电子设备和存储介质 |
CN109657465A (zh) * | 2018-11-07 | 2019-04-19 | 深圳竹云科技有限公司 | 一种基于文件损坏度的软件检测方法 |
CN110929110A (zh) * | 2019-11-13 | 2020-03-27 | 北京北信源软件股份有限公司 | 一种电子文档检测方法、装置、设备及存储介质 |
CN110929110B (zh) * | 2019-11-13 | 2023-02-21 | 北京北信源软件股份有限公司 | 一种电子文档检测方法、装置、设备及存储介质 |
CN111753518A (zh) * | 2020-08-12 | 2020-10-09 | 深圳潮数软件科技有限公司 | 一种自主的文件一致性检验方法 |
CN111753518B (zh) * | 2020-08-12 | 2021-03-12 | 深圳潮数软件科技有限公司 | 一种自主的文件一致性检验方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100340938C (zh) | 2007-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100340938C (zh) | 一种文件安全检测方法 | |
CA2441620C (en) | Data stream header object protection | |
KR100949855B1 (ko) | 파일 시스템 이미지를 디퍼런싱하기 위한 장치, 시스템, 방법 및 컴퓨터 판독가능형 매체 | |
US8121993B2 (en) | Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting | |
US7877567B2 (en) | Transporting image files | |
US8429643B2 (en) | Secure upgrade of firmware update in constrained memory | |
US8458144B2 (en) | Data deduplication method using file system constructs | |
US7818532B2 (en) | Method and system for creating and restoring an image file | |
US7363275B2 (en) | Access right contradiction detection apparatus and analysis rule creation apparatus | |
US7533291B2 (en) | System and method for storing a data file backup | |
US8839446B2 (en) | Protecting archive structure with directory verifiers | |
Seward | bzip2 and libbzip2 | |
US20070124302A1 (en) | Mapping a Source File From a Source System To a Target System | |
CN111506578A (zh) | 业务数据的校验方法、装置、设备及存储介质 | |
Aronson et al. | Towards an engineering approach to file carver construction | |
US20130067180A1 (en) | Retaining verifiability of extracted data from signed archives | |
CN113704180A (zh) | 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法 | |
CN116560914B (zh) | 虚拟机cbt失效下的增量备份方法、系统及存储介质 | |
US20070250540A1 (en) | A Computer System with File Attribute Extension | |
CN112632536B (zh) | 基于pe文件改造的内存加载方法 | |
US7634521B1 (en) | Technique for scanning stealthed, locked, and encrypted files | |
CN111460436B (zh) | 一种基于区块链的非结构化数据操作方法和系统 | |
CN108664796B (zh) | 一种so文件保护方法及装置 | |
Tibor et al. | Development of Multi-Platform Steganographic Software Based on Random-LSB | |
CN116842512A (zh) | 一种恶意文件的脱壳方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071003 Termination date: 20161104 |
|
CF01 | Termination of patent right due to non-payment of annual fee |