发明内容
本发明提供一种敏感内容数据信息防护方法和系统,用以解决现有技术中通过安全字库加密技术防止数据泄密方面存在的安全性相对较低的问题;进一步地,通过使用标准字库中的字符标准编码的多个映射,既达到计算机文档中的敏感内容数据信息加密保护的目的,还可以额外隐藏秘密信息;进而解决了敏感内容数据信息通过电脑屏幕拍照或打印输出方式泄密后的溯源追踪技术难题。
本发明的构思在于:首先,设计基因字库文件,包括字符和字符的安全编码,其中标准字库中每个字符的标准编码和基因字库中的安全编码是一对多的关系,即每一个标准编码对应一组(个数多于一个,即至少为两个)安全编码,每个安全编码分别对应不同的字形轮廓曲线拓扑结构,两两之间不同,并和标准字符的字形轮廓曲线的拓扑结构也都不相同,但是字符识读的语义结果是一样的,也就是说用户看到的安全编码对应的字符显示效果和标准编码对应的字符显示效果是一样的。基因字库设置为禁止嵌入模式,文字处理软件系统不能够将基因字库嵌入到文档内容本身进行存储或者传输,防止加密的电子文件不通过基因字库也可以正常显示。基因字库不安装到操作系统的Fonts目录下,而是采用动态调用方式加载和释放,降低了字库文件外泄的风险。增加打印监控功能,防止经过加密后的电子文件通过打印的方式将敏感数据信息输出为其他电子格式文件或者纸质文件发生泄密事件。通过手机或数码相机将电脑屏幕拍照后进行敏感内容数据信息泄密时,通过拍照后的图片文件可以快速进行信息泄密源头追踪。进而得到了一种敏感内容数据信息防护的方法和系统。
本发明提供了一种敏感内容数据信息防护方法,包括如下步骤:
步骤一,首先,设计基因字库文件,所述的基因字库包括字符和字符的安全编码,所述的基因字库中每个字符的安全编码与该字符在标准字库中的标准编码形成多对一的映射关系;
步骤二,将设计好的基因字库文件设置为禁止嵌入模式,并进行整体加密后保存在服务器上,不直接在客户端的操作系统中安装;
步骤三,将标准字库中的标准编码转换为基因字库中相应字符的安全编码,并将需要保护的敏感内容数据对应的标准编码的字符转换为安全编码的字符后存储;
步骤四,在客户端安装部署打印监控服务程序,实时截获打印文档的内容数据,并过滤受保护的敏感内容数据。
较佳地,所述的基因字库中,由标准字库中字符的同一个标准编码对应的一组安全编码分别对应不同拓扑结构的字形轮廓曲线;
较佳地,所述的同一个标准编码对应的一组安全编码,所对应的字形轮廓曲线的拓扑结构两两之间都是不同的,并和标准字库中相应的标准编码对应的字形轮廓曲线的拓扑结构也不相同;
较佳地,所述的安全编码经过加密处理后保存在基因字库中;
较佳地,所述的基因字库使用时,通过动态调用的方式将字体资源加载到内存空间进行解密,然后再调用系统的API函数AddFontResource将解密后的字体资源加载到系统字体表,文档显示完毕后,调用RemoveFontResource函数进行字体资源卸载;
较佳地,步骤3)中,当计算机上文档中的字符在输入时或文档内容转换时,将标准字库中的字符的标准编码转换为安全编码;
较佳地,步骤3)将读取的标准编码进行加密后得到安全编码;
较佳地,所述的打印监控服务程序,通过系统HOOK钩子机制,截获系统的打印操作命令,进而截获打印文档的内容数据,过滤其中包含的敏感内容数据信息,防止信息泄露;
本发明提供了一种敏感内容数据信息防护系统,包括如下部分:
字库设计模块:设计基因字库文件,所述的基因字库包括字符和字符的安全编码,所述的基因字库每个字符的安全编码与所述字符在标准字库中的标准编码形成多对一的映射关系;
字库加载模块:将字符设计模块中设计好的基因字库文件设置为禁止嵌入模式,并进行整体加密后保存在服务器上,不直接在客户端的操作系统中安装,同时通过动态调用的方式将基因字库字体资源加载到系统字体表,供加密文档显示;
编码转换模块:负责将标准字库中的字符的标准编码转换为基因字库中相应字符的安全编码,并将需要保护的敏感内容数据对应的标准编码转换为安全编码后存储;
打印监控模块:在客户端安装部署打印监控服务程序,当经过编码转换模块处理后的计算机文档经过打印输出时,打印监控服务程序实时截获打印文档的内容数据,并过滤受保护的敏感内容数据。
本发明提供了一种网站敏感内容数据信息防护方法,包括如下步骤:
步骤一,设计基因字库文件,并进行加密后保存在网站服务器上;
步骤二,在网页显示内容数据时,通过字符编码转换模块将待显示的敏感数据所对应字符的标准编码转换为安全编码;
步骤三,客户端不安装基因字库文件,通过网页嵌入字体的方式显示敏感内容数据;
步骤四,将显示敏感内容数据的网页设置为不可复制文本模式,防止通过常规的拷贝粘贴方式复制网页文本信息。
本发明有益效果如下:
本发明所述的敏感内容数据信息防护方法的安全性更高,主要体现在以下几个方面:1)由于本发明中,在显示敏感内容数据的客户端不安装基因字库,而是根据显示需要动态加载和卸载基因字库文件资源,相应地,字库文件资源泄露的风险大大降低;2)基因字库文件不允许设置字体嵌入,防止通过虚拟打印等方式将包含敏感内容数据的信息嵌入到其他电子格式文件中,而不需要基因字库就可以显示文档内容;3)基因字库文件在电脑硬盘中存储时处于密文状态,即使拿到字库文件也无法正常解析;4)标准字库中的标准编码与基因字库中的安全编码之间是一对多的关系,并且在将标准编码转换为安全编码时,可以针对某一个标准编码从相应的安全编码组中随机选择一个,因此,即使知道了屏幕显示的字符所对应的标准编码信息,也很难找到相对应的唯一安全编码,这大大降低了安全编码被破解的风险。
由于本发明中,对于某一特定字符的标准编码而言,相对应的安全编码组中的所有编码所对应的字形轮廓曲线拓扑结构是互不相同,并将不同字形进行编码。当选择不同的字形结构进行字符显示时,可以额外隐藏必要的水印信息,比如将登陆用户的身份信息和浏览电子文档的时间信息进行隐藏,一方面可以嵌入更多的加密信息,同时也可以作为敏感内容数据信息泄密后的溯源追踪。比如屏幕显示的文档内容被非法拍照或者电脑切屏后,从屏幕拍照或者屏幕切屏后的图片文件中,通过分析每个字符的拓扑结构判断出其所代表的编码信息,进而追溯到敏感内容数据信息泄密的源头,即什么时间从哪台机器的电脑屏幕上泄密。另一方面,如果加密保护后的文档作为隐秘通信的载体进行传输时,从文档内容显示的隐秘信息外,还可以隐藏更大的信息量。
具体实施方式
本下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种文件敏感内容数据信息防护方法,主要包括如下步骤:
S101:首先,设计基因字库文件,所述的基因字库包括字符和字符的安全编码,所述的基因字库中每个字符的安全编码与所述字符在标准字库中的标准编码形成多对一的映射关系。
较佳地,所述的基因字库中,由标准字库中字符的同一个标准编码对应的一组安全编码分别对应不同拓扑结构的字形轮廓曲线。
根据字符模式识别理论,人们对字符的识别过程是一种视觉的刺激信息与记忆信息匹配的过程。在此过程中,人们对字符的结构变化有很好的调节功能。因此,同一字符的不同字形结构不会改变人们对字符的语义识别。在中文字符中,存在着大量具有特殊结构的特征点。通过修改特征点处的笔画连接数目、笔画之间角度以及特征点的有无等属性后生成新的字库,称之为基因字库,这样同一个汉字字符具有了不同的字形结构。
汉字字符的笔画之间形成的特征点主要包括交叉点、顶点和拐点三种情况。
1.交叉点:在字符结构图像中,不连续的两个笔画在组成字形的过程中,其中一个笔画与另一个笔画在非端点处连接的交汇点,其满足以下条件:
1)从该点出发具有三条或三条以上的连通笔画分支;
2)每一条连通笔画分支的长度大于阈值N1。N1一般为10个像素值。
2.顶点:在字符结构图像中笔画的端点处,从该点出发只有一个连通分支。
3.拐点:在字符结构图像中,一条笔画走向发生突变的局部点,从该点向两个相反方向延伸的直线段之间的夹角小于θ(0<θ<180°)。
具体的字形轮廓曲线修改方法为:通过修改一个字符结构图像中的特征点实现特殊基因字库的制作,比如图2所示的仿宋“顶”字,左侧的图是原始的字符结构点阵图像,右侧图是特征点修改后的示意图。其中矩形区域中表示的是一个交叉点处的笔画断开后退化为顶点情况,即所谓的交叉点去除;五边形区域表示的一个交叉点退化为拐点的情况;圆形区域表示顶点处的笔画通过延伸与其他笔画相交形成交叉点的情况,即交叉点的构造。将修改后的字符图像做归一化处理,并将四元组(T,x,y,n)保存在数据库文件中,其中T为该字符的Unicode编码,(x,y)是原始交叉点O在归一化图像块中的相对位置坐标,n为修改后的交叉点的笔画分支数目,当交叉点去除后,n=0。
经过上述方法修改后,在标准字库中的字符“顶”,在基因字库中就有了三种不同的字形结构,相对应三个不同的安全编码,但是在语义识别上来讲,都是对应标准字符“顶”。每个字符的字形结构至少有一种变形,所以此处的映射关系是一对多的。根据汉字结构复杂程度的不同,设计的字形轮廓曲线的变形数目也不同。
较佳地,所述的同一组安全编码,所对应的字形轮廓曲线的拓扑结构两两之间都是不同的,并和标准字库中相应的标准编码对应的字形轮廓曲线的拓扑结构也不相同。
通过适当改变字符或者字符串的拓扑结构,设计出语义上相同的字符(串)的多种字形,每种字形赋予不同的字符编码,即安全编码。
如图3所示,楷体的中文字符“垦”,在基因字库中对应三种不同的字形结构(具体参见图中圆圈所识别部分的结构修改),分别设定不同的安全编码。每一种安全编码可以代表不同的水印信息位串,比如标准字库中的字符代表“00”,其他三种安全编码分别对应“01”、“10”和“11”。当在文档内容中分别使用上述四种字符编码时,除了正常显示“垦”字信息外,还可以代表额外的2bits的隐秘信息,比如编码文档浏览者的用户身份和时间等信息,一旦电子文件被屏幕拍照或屏幕切屏的方式泄密后,可以快速地追溯泄密源头。
较佳地,所述的安全编码经过加密处理后保存在基因字库中。
比如“垦”字的Unicode码为“57A6”,安全编码的分配有两种方式:
1)随机分配法。对于“垦字”,随机生成三个不同的Unicode码值,然后把标准和安全编码对应关系以及每个安全编码字符所代表的水印信息位串一起保存在S103的编码转换模块中。
2)加密置乱法。这里,“垦”有三种不同的变形,则新生成三个不同编码为“57A61”、“57A62”和“57A63”,然后再分别经过相同密钥进行加密置乱,将加密后的密文作为安全编码信息存储在基因字库中。加密置乱方法只需要将每个安全编码所表示的水印信息位串保存在编码转换模块中,在使用时,编码对应关系可以通过加密方式动态得到。
经过上述两种方式为所有标准字符分配安全编码后,再将所有的安全编码和相应字形(与标准字符的字形结构不同)经过随机置乱,保存在基因字库文件中。这样可以保证同一个标准字符所对应的一组安全编码字符在基因字库中出现的位置不连续,从而降低通过基因字库文件破解映射关系的风险。
S102:将设计好的基因字库文件设置为禁止嵌入模式(可采用现有技术实现),并进行整体加密后保存在服务器上,不直接在客户端的操作系统中安装。
客户端不直接安装字库文件,一般用户很难通过基因字库文件本身获取标准编码和安全编码之间的映射关系,或者直接字库资源文件外泄。
较佳地,所述的基因字库使用时,通过动态调用的方式将字体资源加载到内存空间进行解密,然后再调用系统的API函数AddFontResource将解密后的字体资源加载到系统字体表,文档显示完毕后,调用RemoveFontResource函数进行字体资源卸载。
由于在服务器上保存的字库文件本身是加密的,即使非法用户获得字库文件,也无法正常分析字库中的字符编码和字形结构的映射关系,进一步提高基因字库文件的安全性。
S103:通过编码转换模块将标准字库中的字符转换为基因字库中相应的字符的安全编码,并将需要保护的敏感内容数据对应的字符转换为安全编码字符后存储。
较佳地,所述的编码转换模块,当计算机上文档中的字符在输入时或文档转换时,将标准字库中的字符标准编码转换为安全编码。
较佳地,所述的编码转换模块,通过将读取的标准编码进行加密后得到安全编码。
当用户打开新文档,启动系统自带的输入法发送标准编码至文档内容录入装置后,编码转换模块根据S101中的安全编码分配规则分别采用以下两种方法获得编码信息:
1)如果采用随机分配法,则直接从保存的映射关系表中查询获得;
2)如果采用加密置乱方法,则采用相同密钥将录入装置接收的标准编码加密后,获得密文编码信息,直接从基因字库中读取安全编码显示。
在已有技术中,标准编码和安全编码是一一映射的关系,而在本方案中,该映射关系是一对多的。因此,无论采用哪种方法都会面临从一组安全编码中选择特定编码进行屏幕显示的问题,处理方法也分为两种:
a)建立标准编码和安全编码的映射关系后,随机从一组安全编码中选择一个进行屏幕显示。由于每一个字符都有不同的安全编码,因此对于同一篇文档在不同的时间打开时,所转换的安全编码序列都是不一样的,这样既保证了屏幕显示的效果一致(不同安全编码的字形结构不同,但是语义相同),同时增加了破解标准编码和安全编码之间对应关系的难度。
b)在正常加密文档内容的同时,额外隐藏文档溯源追踪信息。根据需要嵌入的水印信息位串的不同,在一组安全编码内选择相应的字形结构。比如在图3中,需要嵌入水印信息位串“11”时,则选择第四种字形结构对应的安全编码。当然为了保证在不同时段打开文档时安全编码序列的随机性,可以在文档溯源追踪信息中加入可变的时间信息,或者在待嵌入的水印信息位串尾部再次追加额外的随机数字段,每次用随机数字段去异或加密水印信息,同样可以达到整体水印信息的随机性。
比如,图4为实施例中加载基因字库前后的文档显示效果对比示意图:(a)为加载了基因字库的文档显示效果,(b)为卸载了基因字库的文档显示效果。其中身份证号和手机号码为敏感内容数据信息(仅用于示意和举例,非真实信息),其他为正常显示内容。
S104:在客户端安装部署打印监控服务程序,实时截获打印文档的内容数据,并过滤受保护的敏感内容数据。
较佳地,所述的打印监控模块,通过系统HOOK钩子机制,截获系统的打印操作命令,进而截获打印文档的内容数据,过滤其中包含的敏感内容数据信息,防止信息泄露。
比如,用户在正常的打印操作时,会选择实际的目标打印机进行打印输出,此时采用HOOK技术截获系统所有的打印操作消息,强制将用户待打印的文档内容先发送至虚拟的EMF打印机,获得EMF格式文件;进而读取每个EMF格式文件中记录的所有GDI函数及其参数信息得到所有的文本对象数据;分析文本对象中是否包含基因字库中的安全编码信息,如果存在,则表示该文档页面中包含敏感信息,直接将该文字对象过滤掉,否则为标准编码信息,直接正常输出;最后将修改后的EMF文件转换为其他电子格式文档,或者通过调用操作系统的API函数将EMF文件发送至实际物理打印机输出,而打印输出的文档内容是不完整的。从而达到对文档页面内容的敏感内容数据信息的过滤,从而防止重要信息通过计算机终端输出的方式进行非法泄露。
一旦发生通过屏幕拍照等方式进行泄密输出后,从拍照后的图片文件中提取识别文档溯源追踪信息,从而进行责任划定。具体的水印信息提取识别方法为:
Step1:首先调用OCR(Optical Character Recognition,光学字符识别)模块获取字符图像的字符编码,保存切分后的每个字符图像数据,并记录其外接矩形框区域为[RTop,RLeft,RBottom,RRight],其中RTop,RLeft,RBottom和RRight分别为矩形的上、左、下、右四个边界;
Step2:接着将字符图像数据[RTop,RLeft,RBottom,RRight]进行二值化处理;
Step3:对字符图像进行相同的归一化处理,并采用经典的Hilditch算法进行字符图像细线化处理;
Step4:根据OCR得到的字符编码读取数据库中存储的四元组(T,x,y,n),判断在(x,y)所示的点周围是否存在一个交叉点,并检查该点处的笔画分支数目是否为n。若相符,则判断其为修改后的字形结构,代表水印信息位串“1”,否则代表水印信息位串“0”,从而提取所有的水印信息。
图5为实施例中一种文件敏感内容数据信息防护系统的结构示意图,主要包括如下部分:
S501:字库设计模块:设计基因字库文件,所述的基因字库包括字符和字符的安全编码,所述的基因字库中每个字符的安全编码与所述字符在标准字库中的标准编码形成多对一的映射关系。
S502:字库加载模块:将字符设计模块中设计好的基因字库文件设置为禁止嵌入模式,并进行整体加密后保存在服务器上,不直接在客户端的操作系统中安装,同时通过动态调用的方式将基因字库字体资源加载到系统字体表,供加密文档显示。
S503:编码转换模块:负责将标准字库中的字符转换为基因字库中相应的字符的安全编码,并将需要保护的敏感内容数据对应的字符转换为安全编码字符后存储。
S504:打印监控模块:在客户端安装部署打印监控服务程序,当经过编码转换模块处理后的计算机文档经过打印输出时,打印监控服务程序实时截获打印文档的内容数据,并过滤受保护的敏感内容数据。
如图6所示,提供了一种网站敏感内容数据信息防护的方法,包括如下步骤:
S601:设计基因字库文件,并进行加密后保存在网站服务器上。
S602:在网页显示内容数据时,通过字符编码转换模块将待显示的敏感数据所对应字符的标准编码转换为安全编码。
S603:客户端不安装基因字库文件,通过网页嵌入字体的方式显示敏感内容数据。
由于不在客户端安装基因字库文件,需要采用网页嵌入字体(Web Embed Font)方式将需要显示的敏感内容数据推送到客户端的网页浏览器中。第一次嵌入字体时,需要将其他类型的字体转换为OpenType类型;并且在嵌入时,不需要全部嵌入完备的字符集,而是根据实际需要选择嵌入某个字符集的部分字体信息。
S604:将显示敏感内容数据的网页设置为不可复制文本模式,防止通过常规的拷贝粘贴方式复制网页文本信息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
比如,基于本发明所述的方法,修改后的基因字库不经过加密直接安装在电脑客户端上,标准编码和安全编码之间的一对多的映射关系,在一定程度上增加字库文件破解难度。
比如,基于本发明所述的方法,开发专门的文字处理软件,集成编码转换模块,在文档编辑过程中动态加载基因字库文件资源,实现只有在特定软件系统中显示加密文件,通过其他软件无法正常浏览。
比如,基于本发明所述的方法,不是通过编码转换模块实现标准编码和安全编码之间的映射,而是开发专门的安全编码输入法,直接在文档编辑过程中输入安全编码信息。