实施例一
图1所示为本发明实施例的文件的保护方法流程图,该文件的保护方法包括以下步骤:
步骤1,利用要保护文件的原文件头生成安全文件头,所述安全文件头能在未授权时限制对其所在文件内容的访问;
上述步骤1的处理过程具体为:指定终端设备中的要保护文件,对要保护文件的原文件头进行压缩,对压缩后的文件头内容进行加密后得到加密文件头,再向所述加密文件头加入标识信息(所加入的标识信息是用于标识该文件为安全文件的信息)得到安全文件头;
步骤2,用得到的安全文件头替换要保护文件的原文件头,可将安全文件头写入要保护文件的起始位置替换该文件的原文件头,将要保护文件转换成安全文件;
上述步骤2转换后的安全文件,由于具有安全文件头,在未授权时(即无法解密后读取该安全文件头对应的原文件头的内容),通过该安全文件头可限制其它设备以及本机设备对该安全文件内容的访问。
上述方法步骤1中,从终端设备中指定的要保护文件可以是:音频文件(如歌曲、终端设备的录音机的录音等)、图片文件(如图片、终端设备的照像机拍照所生成的照片等)、视频文件(如视频、终端设备的摄像机拍摄所生成的视频等)、地图数据文件、3D模型数据文件、CAD数据文件、可执行文件中的任一种或任意几种。这类文件由于编码结构较复杂,若对其文件头部分进行加密限制后,在不能解密读取加密文件头内容(如文件起始的1024个字节内容)的情况下,则无法破解得出文件的内容。
上述方法步骤1中,对要保护文件的原文件头进行压缩可采用常用的压缩方法(如:Z77算法、Snappy算法等)。压缩可有效减小其大小,方便加入用于标识文件为安全文件的标信息。
上述方法步骤1中,对压缩后的文件头内容进行加密可采用常用的加密方法(如:MD5加密算法、Rijndael加密算法等);加密可采用下述几种密钥中的任一种,包括:
(1)由用户输入的密码对要保护文件所在的本机设备的机器唯一码加密后得到的密钥;
(2)用户输入的密码;
(3)要保护文件所在的本机设备的机器唯一码;
(4)用户输入的密码和要保护文件所在的本机设备的机器唯一码。
可将用户输入的密码及所采用的密钥均存储在要保护文件所在的本机设备的存储区中,如该终端设备为具有用户识别模块(SIM卡)的终端设备,则可将用户输入的密码及所采用的密钥均存储在该终端设备的用户识别模块(SIM卡)中。
上述方法步骤1中,可采用以下方式在加密后的文件头中加入标识信息(该标识信息是用于标识该文件为安全文件的信息):将标识信息加入到加密文件头之前,与加密文件头组成安全文件头,该安全文件头的大小与要保护文件的原文件头大小一致(如原文件头为1024字节,则由标识信息+加密文件头组成的安全文件头也为1024字节)。
为便于存储要保护文件的终端设备,可以对该要保护文件转换成的安全文件方便的进行访问操作,可在上述方法基础上,进一步包括以下步骤:
在要保护文件所在的本机设备对该文件转换成的安全文件内容进行访问操作时,对该安全文件的安全文件头处理后读取其内容,在读取成功后则允许对该安全文件内容进行访问操作(如对文件进行读、写等操作),否则不允许对该安全文件内容进行访问操作并返回不允许操作的提示信息。
上述处理步骤中,具体是先获取该文件的文件头,若判断文件头包含标识信息,则由标识信息可确认该文件为安全文件,从该安全文件的安全文件头(即之前获取的文件头)中得到加密文件头(由于安全文件头是由标识信息+加密文件头构成,因此确认标识信息后,即可从该安全文件头中获得加密文件头);
对得到的加密文件头进行解密、解压缩后得到原文件头;
其中,解密时,可采用与加密压缩后该原文件头所用的加密算法相对应的解密算法,如:MD5加密算法、Rijndael加密算法等;并且根据终端设备中是否有用户识别模块(SIM卡),在对加密文件头进行解密时可分为以下几种处理方式:
(1)终端设备中没有用户识别模块(SIM卡),则可以直接读取该终端设备存储区中存储的密钥对加密文件头进行解密;
(2)终端设备中有用户识别模块(SIM卡),可先判断该终端设备中的用户识别模块(SIM卡)是否在运营网络上注册,若已注册,则读取在用户识别模块(SIM卡)中存储的密钥,用所述密钥对加密文件头进行解密;若未注册,则返回解密失败提示信息。
上述第(2)种方式,可以充分利用终端设备与运营网络的认证机制,来保护用户识别模块(SIM卡)中存储的密钥,即使在终端设备丟失后,用户若将该终端设备中的SIM卡在运营商处挂失,则该终端设备中的SIM卡便不能在运营网络上注册,从而该终端设备也无法读取其SIM卡中的密钥,而无法解密该终端设备中的安全文件,有效保护了安全文件的内容,避免了隐私泄漏。
上述解压缩时,可采用与压缩该原文件头所用的压缩算法相对应的解压缩算法,如Z77算法、Snappy算法等。
可将读取成功后得到的该安全文件的原文件头内容替换该安全文件的安全文件头,得到可按普通方式对文件内容进行访问的原文件,从而可以直接对该原文件进行读、写等访问操作。
本实施例方法的具体操作示意如图2所示,通过本发明实施例提供的文件的保护方法,在不改变文件大小的情况下,通过压缩并加密后的安全文件头对文件内容实现很好的保护,在其它设备上不允许对文件内容进行读写等访问操作,既保证了隐私信息不会被非法泄漏,也不增加本机操作受保护安全文件的复杂度,也并不影响操作效率。
下面以运行Android操作系统的手机为例,对上述文件的保护方法作进一步说明。
Android操作系统是一个开源的手机平台,在Android系统中可以很方便地修改文件系统,从而利用本发明实施例提供的方法,在不增加手机正常使用复杂度的前提下,对运行Android操作系统的Android手机中的文件内容进行安全保护,如防止手机上的文件被非法拷贝到其它机器(如手机、平板电脑、计算机等)上进行读、写等操作。
如图3所示,在Android手机中对文件进行安全保护,即将指定文件转换为安全文件,可通过以下步骤实现:
步骤11,在Android手机中指定要保护文件;如可在Android手机的文件管理器中指定要保护文件;
步骤12,对指定后的要保护文件的文件头进行压缩,压缩可采用常用的压缩方法(如:Z77算法、Snappy算法等);
其中,要保护文件的文件头一般可选取该文件起始的1024字节内容作为文件头,这样既可保证压缩、加密后的安全性,也不影响后续解密读取时对文件的处理效率,当然也可以从该文件起始处选取任意长度的文件内容作为文件头,只要不影响后续本机对该文件转换后的安全文件的读、写处理效率即可;
步骤13,对压缩文件头后的内容进行加密得到加密文件头;
上述步骤13中的加密可采用常用的加密算法(如:MD5加密算法、Rijndael加密算法等);加密时,可采用由用户输入的密码对该Android手机的机器唯一码加密后得到的密钥(由用户第一次输入的密码(PW0)对机器唯一码(ID)加密得到的密钥(Key0)作为密钥),并将该密钥(Key0)存储在Android手机的SIM卡中(如存储在SIM卡上的Key文件中);使用中,若用户更改密码后,则由更改后的密码(PWN)对原始密码(PW0)加密得到KeyN,KeyN也保存在SIM卡上的存储Key0的Key文件中。Key文件具体结构可如下表所示:
文件内容 |
长度(Byte) |
文件版本号 |
4 |
Key个数 |
4 |
Key0 |
16 |
KeyN |
16 |
这种将加密密钥存储在SIM卡中的方式,可有效提高对文件保护的安全性,即使手机丟失,也可以通过运营商下发功能短信删除存储在SIM卡中储存密钥的Key文件,若手机更换SIM卡,Key文件也会读取不到,从而防止他人在拾得的手机上打开其存储的安全文件,可以更好的保护了当事人的隐私信息。
在Android手机中具体可通过以下方式设置对文件头加密用的密钥:
当用户第一次使用Android手机的录音机或照像机时,提示用户输入密码(PW0),提示信息可为“请输入6到16位密码,用于保护录音、像片或视频文件,在解密这些文件时需要输入该密码”。利用用户输入的密码(PW0)对机器唯一码(ID)加密,获得加密多媒体文件的密钥(Key0),并保存在Key文件中,并将Key文件存储在该手机的SIM卡中。这样在使用Android手机的录音机或照像机程序保存文件时,可直接将准备保护的音频或视频文件转换成安全文件,所有通过手机录制的音频文件、视频文件和拍下的照片都可以得到安全保护。
密钥也可采用下述中的任一种:(1)用户输入的密码;(2)Android手机的机器唯一码;(3)用户输入的密码和Android手机的机器唯一码。密钥也可存储在Android手机的安全存储区中。
步骤14,将标识该文件为安全文件的标识信息加入到步骤13加密后得到的加密文件头之前得到安全文件头,该安全文件头的大小与原文件头大小一致(如原文件头大小为1024字节,则安全文件头的大小也为1024),在该要保护文件的起始位置写入由标识信息和加密文件头组成的安全文件头替换掉原文件头,将该要保护文件转换为安全文件。
如图4所示,上述转换后得到的安全文件由于具有安全文件头,若不能对安全文件头进行解密、解压缩读取原文件头的内容,则无法获取安全文件的内容,即使将文件拷贝到其它设备上也无法获取安全文件的内容,实现保护文件内容的目的。
为使该Android手机对其内存储的安全文件方便的进行读操作,如图5所示,可采用以下步骤进行处理:
步骤201,当对文件进行读操作时,先读取该安全文件的安全文件头;
步骤202,从安全文件头中取得加密文件头(由于安全文件头是由标识信息+加密文件头构成,因此可先确认标识信息后,即可从该安全文件头中取得加密文件头);
步骤203,对取得的加密文件头进行解密;可采用以下方式对加密文件头进行解密:
先判断该Android手机中的用户识别模块(SIM卡)是否在运营网络上注册,若已注册,则读取在用户识别模块(SIM卡)中存储的密钥,用读取的密钥对加密文件头进行解密,进行步骤24;若未注册,则返回解密失败提示信息,并结束对该文件的读操作。
若密钥未存储在用户识别模块(SIM卡),而存储在该Android手机的安全存储区中,则在对加密文件头进行解密时,可以直接读取安全存储区中存储的密钥对加密文件头进行解密。
步骤204,对解密后文件头内容进行解压缩得到原文件头,并读取其内容(具体可将解密后文件头内容解压缩到Android手机内存中,再读取其内容),根据原文件头内容读取该安全文件的内容。
将上述步骤201~204的方法应用在Android手机,即实现了Android手机的文件安全读操作,可方便的直接读取安全文件的内容,不需要用户进行其它的额外操作。
为使该Android手机对打开的安全文件方便的进行写操作,可在对打开的安全文件进行写操作时,采用上述步骤11~14将打开的文件转换为安全文件后,再进行写操作。即在Android手机中可用上述步骤11~14的方法重新实现该Android手机的文件安全写操作。对
在Android手机中对安全文件的复制、剪切、删除等操作,可不做任何处理,而采用原有的复制、剪切、删除等文件操作方式。
利用上述方法在Android手机对文件进行保护时,在手机的右键菜单(如在Android手机的文件管理器程序的右键菜单中)中增加加密和解密操作菜单,对选中加密操作时将文件转换成安全文件,选中解密操作时,将安全文件转换为普通文件,解密时需要输入用户密码。
若在Android手机上更改用户密码,可通过下述操作步骤实现:
在Android手机的设置项内可增加设置安全密码的菜单,用户需要输入旧密码(PW0)和新密码(PW1),用旧密码(PW0)来解密Key0,若解密出来的ID’与机器唯一码相同,则旧密码(PW0)正确,密码修改成功;并用新密码(PW1)加密旧密码(PW0),得到Key1。把Key0和Key1同时保存在Key文件中。仍然使用Key0加密和解密安全文件。
再次修改密码时,就需要输入PW1和PW2,用PW1去解密Key1得到PW0’,再用PW0’去解密Key0得到ID’,若ID’与机器唯一码相同,则PW1正确,密码修改成功。用PW2去加密PW0,得到Key2,把Key0和Key2保存在Key文件中,Key1丢弃。
在非授权情况下,具有上述安全读、写功能的Android手机连接到电脑,将手机中的安全文件拷贝到其它设备(如:平板电脑、计算机)中,虽然安全文件可以正常拷贝出来,但在其它设备上因没有安全读、写功能,也没有解密用的密钥,因此会由于无法解读安全文件头的内容(一般长度为1024个字节),从而无法获得安全文件的有效信息。
在授权情况下,用户可以通过解密操作,将手机中的安全文件先解密转换成普通文件后,再拷贝到其它设备(如:平板电脑、计算机)上,即可正常读写。实现时可在手机上将操作设置为“解密拷贝到…”即可。
手机存储卡丢失或在非授权情况下被窃取,在其它手机或电脑上使用时,也一样无法获取安全文件的有效信息。若手机丢失后,可以及时挂失,通过运营商下发功能短信删除SIM卡上保存密钥的Key文件,从而可以阻止非授权查看手机上的安全文件内容。手机丢失后,即使没有挂失,得到手机的用户也只能在本机上查看安全文件,而因其没有解密用的用户密码,则不能将安全文件解密后拷贝到电脑或网络上使用与传播,也有效限制了因手机丢失造成的个人隐私泄露。
1利用上述方法不仅可以保护手机中的多媒体文件(各种音、视频文件和图片文件),如Android手机的录音文件(一般为AMR格式),图像文件(一般为JPG格式),视频文件(一般为3GP格式)等,也可以保护任何有复杂结构的数据文件,包含但不限于地图数据、3D模型数据、CAD数据等。由于这些文件均具有较复杂的结构,缺少了文件头信息,则很难恢复出文件的有效内容。但由于Txt、Bmp等文件无文件头也能获得有用信息的文件,保密作用不明显,并且由于对文件尺寸太小的文件,压缩后没有足够的空间加入安全文件头,因此不能进行安全保护处理。
利用本发明实施例的方法,使得Android手机等终端设备对存储的安全文件进行读、写操作时,要依赖于对应的密钥(如手机的机器唯一码和/或用户输入的密码等),使得安全文件只可以在该手机被正常读写,而未解密时在其它机器(手机、平板电脑、计算机等)上却无法正常读写,即使拷贝到其它机器上也无法打开获得安全文件的内容,起到了很好保护安全文件内容,避免手机等终端设备丢失后个人隐私信息泄露的目的。
可以知道,在运行其它操作系统的手机或终端设备上,也可以通过本发明实施例提供的方法,对文件进行保护;其实现方式与Android手机中的实现方式基本相同,在此不再重复。并且,也可以在计算机运行的各种操作系统中利用该方法实现文件保护(如可通过HOOK文件读写函数来实现安全文件的读写操作),使得受保护的安全文件只限于在本机上使用,而无法在其它设备或传到互联网上使用。
在android手机中应用本实施例方法时,可实现:(1)对用手机拍摄的录音、照片、影像自动进行加密,从而有效防止私人多媒体信息泄漏;(2)即使手机丢失的情况下,也可以安全地处理私人多媒体信息;(3)由于将指定的要保护文件转换成安全文件时,只处理文件头(如可以是文件起始处的1024字节的内容),文件操作的性能非常快,不影响操作效率;(4)所有加密过的安全文件的尺寸没有变化,对所有应用读写文件透明,不会产生其它影响。
实施例二
图6为本发明实施例提供的文件的保护装置的结构示意图,如图4所示,该文件的保护装置包括:安全文件头处理单元21和替换处理单元22;其中,
所述安全文件头处理单元21,用于生成安全文件头;
所述替换处理单元22,用于将所述安全文件头生成单元21生成的所述安全文件头替换要保护文件的原文件头,使要保护的所述文件转换成安全文件;由所述安全文件的安全文件头阻止其它外部设备对该安全文件内容进行的访问操作。
上述装置中的安全文件头处理单元包括:压缩单元211、加密单元212和标识信息加入单元213;其中,
所述压缩单元211,用于对要保护文件的原文件头进行压缩;
所述加密单元212,用于对所述压缩单元压缩后的文件头内容进行加密得到加密文件头;
所述标识信息加入单元213,用于向所述加密单元加密得到的加密文件头加入标识信息得到的安全文件头。
上述装置中的所述安全文件头处理单元还可以包括:密钥处理单元214,用于将用户输入的密码对要保护的文件所在的本机设备的机器唯一码加密后得到密钥。
上述装置中的所述安全文件头处理单元还可以包括:解密单元215和解压缩单元216;其中,
所述解密单元215,用于对安全文件的安全文件头中的加密文件头进行解密;
所述解压缩单元216,用于对所述解密单元解密后的文件头内容进行解压缩得到原文件头。
上述装置中的解密单元215,可由图7所示的模块构成,包括:判断处理模块2151和密钥读取模块2152;其中,
所述判断处理模块,用于在获取解密用的密钥时,若密钥存储在安全文件所在的本机设备的用户识别模块内,判断所述本机设备的用户识别模块在运营网络上是否注册,若注册,则向所述密钥读取模块发出允许读取密钥的指令,若未注册则返回无法获取解密密钥的提示信息,并发出停止后续处理的指令;
所述密钥读取模块,用于在收到所述判断处理模块允许读取密钥的指令后,从所述本机设备的用户识别模块内读取存储的密钥。
本实施例的文件的保护装置,可以设置在手机、计算机等各种设备中,对其中的文件进行处理,起到保护文件的作用。
综上所述,利用本发明实施例的方法,可以在Android手机等终端设备或计算机中可在不影响用户正常使用的情况下,实现对多媒体等文件进行有效保护,不允许在其它机器上打开手机上受保护的安全文件的内容,达到避免私密信息泄漏,保护个人隐私的目的。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。