用于数据泄露防护的方法和系统的制作方法

文档序号:10489240阅读:561来源:国知局
用于数据泄露防护的方法和系统的制作方法
【专利摘要】本发明公开了用于数据泄露防护的方法和系统。包括:一种从文档中提取数据特征以得到第一数据指纹、第二数据指纹和第三数据指纹的方法,利用所提取的数据特征判断第一文档和第二文档是否相关的判断方法、以及根据相关度判断可疑文档是否包含敏感内容的方法。同时本发明也提供了相应的提取文档数据特征的设备、判断第一文档和第二文档是否相关的判断设备、以及判断可疑文档是否包含敏感内容的设备。
【专利说明】
用于数据泄露防护的方法和系统
技术领域
[0001] 本发明数据安全技术领域,尤其是用于数据泄露防护的方法和系统。
【背景技术】
[0002] 近年来,随着信息技术的飞速发展,数据安全在信息化企业的日常运作过程中显 得尤为重要。如果数据遭到恶意篡改或破坏,可能会给企业造成无法挽回的损失。为了提高 数据安全性,往往需要设定一些数据安全策略,以对数据进行监控和保护。在当前大数据的 环境下,随着企业数据量的增大,如何对不断增加的数据进行快速、有效地监控和保护,成 为当前数据安全领域面对的一个重要问题。
[0003] 目前,许多企业为了防止数据的泄漏,在内网中部署了数据泄漏防护(Data Ieakage prevention,DLP)系统,以确保敏感数据的安全。数据泄漏防护系统通过软件对敏 感数据进行监控和保护,并通过一定的技术手段,防止企业的指定数据或信息资产以违反 安全策略规定的形式流出企业,以保证敏感数据不被丢失和泄露。所以在DLP系统中,数据 特征的提取和对敏感数据的匹配是甚为关键的一步。
[0004] 传统的DLP系统中通常采用人工设置关键词或者对整个文件生成数据指纹的方式 来提取数据特征,前者无法自动完成特征提取,后者当文件很大时,提取的准确性会降低。 另外,对于敏感数据的匹配,通常会采用规则匹配和哈希匹配算法,同样地,当面对较大文 件时,算法性能和准确度都会严重下降。

【发明内容】

[0005] 为此,本发明提供了用于数据泄露防护的方法和系统,以力图解决或者至少缓解 上面存在的至少一个问题。
[0006] 根据本发明的一个方面,提供了一种从文档中提取数据特征的方法,其中提取的 数据特征包括第一数据指纹、第二数据指纹和第三数据指纹,包括步骤:从文档中提取第一 预定数目个词语,计算每个词语对应的数据特征串,并基于这第一预定数目个数据特征串 来构造文档的第一数据指纹;按照顺序对文档中的数据进行分块,基于每个数据块中的数 据内容来计算该数据块的数据特征串,再组合每个数据块的数据特征串来构造该文档的第 二数据指纹;按照顺序对文档的词序列进行分块,基于每个词块中的数据内容来计算该词 块的数据特征串,再组合每个词块的数据特征串来构造该文档的第三数据指纹。
[0007] 根据本发明的另一方面,提供了一种判断第一文档和第二文档是否相关的判断方 法,包括步骤:对第一文档执行如上所述的数据特征提取方法,提取文档的数据特征得到第 一特征集合;对第二文档执行如上所述的数据特征提取方法,提取文档的数据特征得到第 二特征集合;以及计算第一特征集合与第二特征集合的相似度,若相似度达到预定范围,则 认为该第一文档和第二文档相关。
[0008] 根据本发明的另一方面,提供了一种判断可疑文档是否包含敏感内容的方法,包 括步骤:对受保护文档执行如上所述的数据特征提取方法,提取该文档的数据特征,建立特 征库;再提取可疑文档的数据特征,执行上述判断文档是否相关的判断方法,判断可疑文档 与特征库中的受保护文档是否相关:若判断可疑文档与受保护文档相关,则认为可疑文档 包含敏感内容;若判断可疑文档与受保护文档不相关,则认为可疑文档不包含敏感内容。
[0009] 相应地,本发明还提供了从文档中提取数据特征的设备、判断第一文档和第二文 档是否相关的判断设备、判断可疑文档是否包含敏感内容的设备。
[0010] 根据本发明的再一方面,提供了一种数据泄露防护系统,包括:计算设备,与数据 安全防护设备相连;以及数据安全防护设备,包括:文档获取设备、如上所述的敏感内容判 断设备、控制策略获取设备和控制设备。
[0011] 基于上文的描述,本方案采用自动提取文档关键词、以及提取数据块和词块的数 据指纹的方式,来提取文档的数据特征。一方面,通过计算表征词语重要性的特征值来选取 出文档的关键词,这样就不用依靠人工设置关键词;另一方面,将文档进行分块处理,基于 数据块和词块分别计算每个分块的数据指纹,并且采用局部敏感哈希(LSH)算法来生成数 据指纹,能够有效地防止相似数据的泄露,另外当文档很大时,也能保证特征提取的准确 性。
[0012] 在特征匹配方面,本方案采用单一匹配数据特征串的相似度(即,单一匹配)或者 计算相似数据特征串比重(即,基准匹配)的方式,对文档中的相似内容进行匹配判断,可选 地,可以用汉明距离或Jaccard系数表征文档间的相似度。这样,能更加全方位地进行敏感 数据匹配,防止敏感数据泄露,进而有效避免各种文档外泄手段。
【附图说明】
[0013] 为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方 面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面 旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述 以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的 部件或元素。
[0014] 图1示出了根据本发明一个实施例的数据泄露防护系统100的示意图;
[0015] 图2A示出了根据本发明一个实施例的从文档中提取数据特征的方法200的流程 图;
[0016] 图2B示出了根据本发明另一个实施例的从文档中提取数据特征的方法200的流程 图;
[0017] 图2C示出了根据本发明又一个实施例的从文档中提取数据特征的方法200的流程 图;
[0018] 图3A示出了根据本发明一个实施例的从文档中提取数据特征的设备300的示意 图;
[0019] 图3B示出了根据本发明另一个实施例的从文档中提取数据特征的设备300的示意 图;
[0020] 图3C示出了根据本发明又一个实施例的从文档中提取数据特征的设备300的示意 图;
[0021] 图4示出了根据本发明一个实施例的判断第一文档和第二文档是否相关的判断方 法400的流程图;
[0022]图5示出了根据本发明一个实施例的判断第一文档和第二文档是否相关的判断设 备500的不意图;
[0023]图6示出了根据本发明一个实施例的判断可疑文档是否包含敏感内容的方法600 的流程图;
[0024]图7示出了根据本发明一个实施例的判断可疑文档是否包含敏感内容的设备700 的不意图;以及
[0025]图8示例性地示出了分块处理的示意图。
【具体实施方式】
[0026] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0027] 图1示出了根据本发明一个实施例的数据泄露防护系统100的示意图。在企业内 部,计算设备110之间通过局域网相连接,这里,计算设备110的组件可以包括但不限于:一 个或者多个处理器或者处理单元、系统存储器、连接不同系统组件(包括系统存储器和处理 单元)的总线。同时要注意的是,除了传统的计算设备(例如,电脑),适于用来实现本发明实 施例的计算设备110还包括移动电子设备,包括但不限于移动电话、PDA、平板电脑等,以及 处于企业办公环境中的服务器、打印机、⑶/DVD等。
[0028] 用于数据泄露防护的数据安全防护设备120布置在该局域网中,通过局域网与所 有计算设备11 〇相连接。如图1所示,该防护设备120包括:文档获取设备122、敏感内容判断 设备700、控制策略获取设备124、和控制设备126。
[0029] 文档获取设备122适于实时监控处于局域网中的所有计算设备110,当监测到计算 设备110发送文档时,获取计算设备110发送的文档内容。这里,文档可以是即时通信的聊天 信息,和/或,即时通信传输的图片/文档。
[0030] 敏感内容判断设备700适于判断获取的文档是否包含敏感内容,对于该设备700会 在下文进行详细介绍。
[0031] 控制策略获取设备124适于在判断文档是否包含敏感内容的同时,获取与该文档 相关的进程对应的控制策略。可选地,控制策略可以有:当指定进程为打印时采取禁止打印 的策略,当指定进程为发送文件时采取乱码字符串的策略。
[0032] 控制设备126适于当判断可疑文档包含敏感内容时,根据所获取的控制策略对所 述文档的操作行为进行控制。例如,用标识乱码的字符串替换所述文档中需要传输的数据 内容中的敏感数据。
[0033] 基于上文对系统100的描述,在本系统中,如何准确地匹配到敏感内容是实现数据 安全防护的关键所在,也就是敏感内容判断设备700所要执行的操作。简单来说,敏感内容 判断设备700中应该包含有(但不限于)存储模块(用于存储受保护文档的所有数据特征)、 提取文档数据特征的设备(用于提取可疑文档中的数据特征)、文档相关性判断设备(用于 根据提取的数据特征判断可疑文档与存储的受保护文档之间是否相关)、以及确定模块(用 于依据相关性判断结果确定可疑文档是否包含敏感内容)。
[0034] 下面将对上述各模块的组成、以及它们执行的流程进行阐述。
[0035] 图2A示出了根据本发明一个实施例的从文档中提取数据特征的方法200的流程 图。如图2A所示,该方法始于步骤S210。在步骤S210中,先对文档进行分词处理,去掉停用 词、标点符号、回车换行等无用信息,以便获得词序列。根据本发明的实施例,在该方法200 中,采用基于词典的分词算法进行分词处理,例如MMSEG(A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm),MMSEG是中文分词中一个常见的、基于词典的分词算法,具有简易直观,实现不 复杂,运行速度快的优点。简单来讲,该分词算法包含"匹配算法"和"消除歧义规则",其中 匹配算法指如何根据词典里保存的词语,对要切分的语句进行匹配;"消除歧义规则"是说 当一句话可以这样分,也可以那样分的时候,用什么规则来判定使用哪种分法,比如"设施 和服务"这个短语,可以分成"设施/和服/务",也可以分成"设施/和/服务",选择哪个分词 结果,就是"消除歧义规则"的功能。在MMSEG算法中,定义匹配算法有两种:简单最大匹配和 复杂最大匹配;定义的消除歧义的规则有四种:最大匹配(Maximum matching,对应上述两 种匹配算法)、最大平均词语长度(Largest average word length)、词语长度的最小变化 率(Smallest variance of word lengths)、计算词组中的所有单字词词频的自然对数,然 后将得到的值相加,取总和最大的词组(Largest sum of degree of morphemic freedom of one-character words)〇
[0036] 例如对于如下的文档A,经过分词处理后,得到文档B。
[0037] 文档 A:
[0038] "团体人身意外伤害保险实惠计划
[0039]意外伤害:指遭受外来的、突发的、非本意的、非疾病的使身体受到伤害的客观事 件。
[0040] 如交通事故被撞、发生火灾被烧伤、受到高空坠物打击致伤、被歹徒袭击受伤、液 化气、煤气爆炸、
[0041] 厨师被沸腾的油烫伤等等都属意外伤害事件。
[0042] 推荐两种组合方案,供单位结合实际情况选用:
[0043] 1、意外伤害保险:保险费150元/人(1、2级职业)
[0044] (1)保险期间:一年
[0045] (2)保险责任:因意外伤害身故,给付10万元;或因意外伤害全残、意外烧伤,给付 10万元(部分残疾按比例给付);意外伤害医疗1万元。
[0046] 2、意外伤害及医疗保险:保险费100元/人(1、2级职业)
[0047] (1)保险期间:一年
[0048] (2)保险责任:因意外伤害身故,给付5万元;或因意外伤害全残或烧伤,给付5万元 (部分残疾按比例给付);意外伤害医疗1万元。
[0049] 注:我公司可按贵单位的具体情况设计保险方案
[0050] 出钱不多,保障不少;投保方便,理赔迅速。"
[0051] 文档B(即分词处理后得到的词序列):
[0052] [团体,人身,意外,伤害,保险,实惠,计划,意外,伤害,指,遭受,外来,突发,非本 意,非,疾病,身体,伤害,客观,事件,交通,事故,撞,发生,火灾,烧伤,高空,坠,物,打击,致 伤,歹徒,袭击,受伤,液化气,煤气,爆炸,厨师,沸腾,油,烫伤,属意,外,伤害,事件,推荐, 两种,组合,方案,文案,供,单位,结合,实际情况,选用,意外,伤害,保险,保险费,150元, 级,职业,保险,期间,一年,保险,责任,意外,伤害,身故,付,10,万元,或因,意外,伤害,全, 残,意外,烧伤,付,10,万元,部分,残疾,按比例,付,意外,伤害,医疗,1,万元,意外,伤害, 医疗保险,保险费,100元,级,职业,保险,期间,一年,保险,责任,意外,伤害,身故,付,5,万 元,或因,意外,伤害,全,残,烧伤,付,5,万元,部分,残疾,按比例,付,意外,伤害,医疗,1, 万元,注,公司,可按,贵单位,具体,情况,设计,保险,方案,文案,出钱,不多,保障,不少,投 保,方便,理赔,迅速]
[0053]应当注意的是,本发明不受限于具体的分词方法,所有可以对文档进行分词处理 以获得该文档中的有意义词语的方法都在本发明的保护范围之内。
[0054]随后在步骤S220中,对该词序列中的每个词语,计算表征该词语在本文档中的重 要性的特征值,并基于特征值的大小从词序列中选取第一预定数目个词语。
[0055]根据本发明的一个实施例,采用TF-IDF值表征词语在文档中的重要性,计算TF-IDF值的过程如下:
[0056]①计算该词语在该文档中的出现频率作为该词语的词频TF: ΓΛΛΜ 抓I个同文档Φ???见β勺?欠类女 _7] , ^文档顿总次数^
[0058]②计算文档库中的文档总数与文档库中包含该词语的文档数目之间的比例作为 该词语的逆文档频率IDF: rnn.01 ,文档库的文档总数、 _ 包含该词的文档数+1}
[0060] ③根据词语的词频TF和逆文档频率IDF计算TF-IDF:
[0061] TF-IDF = TFX IDF
[0062]对于一个词语,其TF-IDF值越大,对该文档的重要性就越大,因此根据TF-IDF值的 大小,选择排在前面的第一预定数目个(例如,5个)词语作为这篇文档的关键词。
[0063]传统的DLP系统中,主要是通过人工设置关键词的方式来提取关键词的特征,显然 这种方法费时费力,本方案通过计算TF-IDF值自动选取文档的关键词,在节省人力的同时 还保证了提取的准确度。
[0064] 随后在步骤S230中,对于所选择的第一预定数目个词语中的每个词语,计算该词 语对应的数据特征串,并基于数据特征串来构造该文档的第一数据指纹来作为文档的数据 特征。具体地,对于所选取的每个关键词,通过普通哈希算法将其散列成第五预定长度的数 字串作为该词语对应的数据特征串,然后组合所获得的数据特征串以获得第一数据指纹来 作为该文档的数据特征。
[0065] 如下示出了对于一个文档提取关键词生成第一数据指纹的示例:
[0066] doc_size:2278
[0067] word_num:284
[0068] keyword_num: 5 //第一预定数目
[0069] word:伤害 word_hash:4229635582offset: 18
[0070] word:意外word_hash:424898618offset: 12 [0071 ] word:保险 word_hash: 802497295offset: 24
[0072] word:给付word_hash:3684743136offset: 1594
[0073] word:文案 word_hash: 1412961926offset: 1051
[0074] 对于一篇2278字节,含有284个词语的文档生成5个关键词(伤害、意外、保险、给 付、文案),再通过普通哈希算法将这5个关键词分别生成1个数据特征串,在本实施例中,第 五预定长度的数据特征串是32位无符号整型数字,将这5个数据特征串连起来就是该文档 的第一数据指纹。根据一种实现方式,第一数据指纹中还包括这5个关键词中每个词语在文 档中的偏移位置信息offset ,offset用于记录关键词在文档中第一次出现的位置,记录 offset主要用于敏感数据(也就是关键词)的溯源,当发现敏感数据泄露后向用户发出的告 警可以携带off set信息。当然,为了节省内存,第一数据指纹也可以不包含off set信息,本 发明对此并不做限制。
[0075] 为了保证特征提取得足够精确,根据本发明的实施方式,除了提取文档的第一数 据指纹,还可以提取第二数据指纹作为文档的数据特征,如图2B示出了根据本发明另一个 实施方式的、从文档中提取第二数据指纹的方法的流程图,该方法的步骤如下:
[0076] 首先在步骤S240中,按照顺序对文档中的数据进行分块,以得到一个或者多个第 一预定长度的数据块,其中相邻数据块之间相互重叠第二预定长度。换言之,将一个第一预 定长度大小的滑动窗口沿文档滑动,每次滑动第二预定长度的位移,这样,就将文档划分成 了多个第一预定长度大小的数据块。根据本发明的一个实施例,设置第一预定长度是512字 节,第二预定长度是256字节。
[0077] 然后在步骤S250中,对于所得到的一个或者多个数据块,基于每个数据块中的数 据内容来计算该数据块的数据特征串,可选地,利用局部敏感哈希(LSH)算法对每个数据块 的数据内容生成一个数据签名。
[0078] 在步骤S260中,再组合每个数据块的数据特征串来构造该文档的第二数据指纹以 作为该文档的数据特征。
[0079] 如果是对整个文档生成数据指纹,当文档很大时,算法的性能会严重下降并且准 确性也会降低,所以本方案采用先对文档进行数据分块,再提取每个分块的数据特征作为 整个文档的数据特征。同时,常用的哈希算法如MD5,如果2个数据签名相等,则表明原始数 据在一定概率下是相等的,但是如果不相等,除了表明原始数据是不同的外,不提供任何信 息,传统的哈希算法显然不能很好地防御相似数据的泄漏,因此本方法中采用的是局部敏 感哈希算法,LSH算法的优点在于,对于相似的数据内容能产生相同或者相似的数据签名, 能够提升后续特征匹配的效果。
[0080] 在步骤S250中计算每个数据块的数据特征串的步骤又可以细分为如下几步:
[0081] 先依次选择数据块中第六预定长度的数据子块,其中相邻数据子块之间相互重叠 第七预定长度。同样地,在实现中,可以用一个第六预定长度(例如,5字节)大小的滑动窗口 沿着数据块滑动,每次滑动第七预定长度(如1个字节)大小的位移。如图8所示,其中Dl代表 了第六预定长度,D2代表了第七预定长度,每两个相邻的Dl之间重合有一个D2。
[0082]再根据数据子块的内容计算第八预定长度(如,32字节,即256位)的特征值列表。 [0083]最后基于所有数据子块的特征值列表以构造该数据块的数据特征串。
[0084] 具体地,根据数据子块的内容计算第八预定长度的特征值列表的步骤如下:
[0085] 1)提取由数据子块中的部分内容构成的一个或者多个内容子集,换句话说,提取 每个数据子块中的所有三元组;
[0086] 2)再利用哈希算法将每个三元组散列到(0,256);
[0087] 3)根据与每个内容子集对应的值,设置特征值列表中的相应值,例如对于一个三 元组igr,假设hash值为15,那么在特征值列表中的第15个位置处累加1。
[0088] 当将一个数据块中的所有的三元组都计算完时,该特征值列表中的每个位置都会 有一个累加值,计算所有累加值的平均值作为阈值,若某个位置对应处的累加值(也就是特 征值列表中某个单元的值)大于该平均值,则该单元值设为1,相反就设为〇,通过这样二元 化的处理,得到一个第八预定长度的二值化的特征值列表,将这个第八预定长度的特征值 列表转化为第八预定长度的数字串,以作为该数据块的数据特征串。
[0089] 如下示出了对于一个文档生成第二数据指纹的示例:
[0090] doc_size:2278
[0091 ] sig_num:9 //数据块个数
[0092] bin_block_size:512 //第一预定长度
[0093] bin_step_size:256 //第二预定长度
[0094] threshold: 75 //执行LSH算法时的阈值
[0095] LSH:4f2745a4400f311cab5843643a9771299c9c5f4d81el669ce3554e4d75fed43a offset:0
[0096] LSH:ef2205c4808533748bda836571976d2196b81dec8dal54d6aad5366dfcb9d6d9 〇 ffset:256
[0097] LSH:ade326d490a64b77bbd349f0c0bced2096f874e9ad42dc7d24bef279ea05c5d9 〇 ffset:512
[0098] LSH:3b276695d8c63bdfebl340c0c450c0c096ea6e79cdc2bc596ce7e35cea28e7be offset:768
[0099] LSH:2faded8472873999e9154bcc684270ec92a67a7cc9c02cd8eae742dc2a58c21e offset:1024
[0100] LSH:afalf584d0a733a7a3559bc8530b78688aa473fclbe06df5aa23469clb78c28a offset:1280
[0101] LSH:8fa4f5cd80e533b6abcl964b520f306088b073f081616df52803461f2af9c78a offset:1536
[0102] LSH:lfa56499c0a7333ca05046cl520420608a9577a093fl2d586all4c3fl2e8e3ce offset:1792
[0103] LSH:180d2cba6027725c0010468030c08142c857e7808a91275e2a51097b9300a34e offset:2048
[0104] 在本实施例中,对于一篇2278字节的文档,第一预定长度是512字节,第二预定长 度是256字节,生成了9个数据块,利用LSH算法分别生成9个数据块的数据特征串(设置第六 预定长度是5字节,第七预定长度是1字节,第八预定长度是32字节),将这9个数据特征串连 起来就是该文档的第二数据指纹。同第一数据指纹中所描述的那样,第二数据指纹也可以 包括数据块在文档中的偏移位置信息offset。
[0105] 本发明还提供了一种提取文档数据指纹的方法,即提取文档的词块特征作为第三 数据指纹,如图2C所示,词块特征与图2B示出的数据块特征的提取流程较为类似,但是对文 档的分块方式不同。第三数据指纹的提取步骤包括:
[0106] 在步骤S210中先对文档进行分词处理得到词序列。
[0107]随后在步骤S270中,按照顺序对文档中的词序列进行分块,以得到一个或者多个 第三预定长度的词块,其中相邻词块之间相互重叠第四预定长度。也就是说,将一个第三预 定长度大小的滑动窗口沿词序列滑动,每次滑动第四预定长度的位移,这样,就将词序列划 分成了多个第三预定长度大小的词块。根据本发明的一个实施例,设置第三预定长度是64 个词语,第四预定长度是32个词语。
[0108] 例如,对上述文档B的词序列进行分块操作,得到如下4个词块:
[0109] 词块1:[团体人身意外伤害保险实惠计划意外伤害指遭受外来突发非本意非疾病 身体伤害客观事件交通事故撞发生火灾烧伤高空坠物打击致伤歹徒袭击受伤液化气煤气 爆炸厨师沸腾油烫伤属意外伤害事件推荐两种组合方案文案供单位结合实际情况选用意 外伤害保险保险费150元级职业保险期间]
[0110] 词块2:[袭击受伤液化气煤气爆炸厨师沸腾油烫伤属意外伤害事件推荐两种组合 方案文案供单位结合实际情况选用意外伤害保险保险费150元级职业保险期间一年保险责 任意外伤害身故付10万元或因意外伤害全残意外烧伤付10万元部分残疾按比例付意外伤 害医疗1万元意外伤害医疗保险保险费]
[0111 ]词块3:[-年保险责任意外伤害身故付10万元或因意外伤害全残意外烧伤付10万 元部分残疾按比例付意外伤害医疗1万元意外伤害医疗保险保险费100元级职业保险期间 一年保险责任意外伤害身故付5万元或因意外伤害全残烧伤付5万元部分残疾按比例付意 外伤害医疗1万元]
[0112]词块4:[万元部分残疾按比例付意外伤害医疗1万元意外伤害医疗保险保险费100 元级职业保险期间一年保险责任意外伤害身故付5万元或因意外伤害全残烧伤付5万元部 分残疾按比例付意外伤害医疗1万元注公司可按贵单位具体情况设计保险方案文案出钱不 多保障不少投保方便理赔迅速]
[0113]随后在步骤S280中,对于所得到的一个或者多个词块,基于每个词块中的数据内 容来计算该词块的数据特征串。
[0114] 可选地,利用局部敏感哈希(LSH)算法对每个词块的数据内容生成一个数据签名 作为该词块的数据特征串。根据本发明的一个实施例,可以采用相同的LSH算法处理词块和 数据块,以得到数据签名。故计算每个词块的数据特征串的步骤可以参考上文中计算每个 数据块的数据特征串的步骤,此处不再赘述。
[0115] 若对上面的4个词块进行LSH算法生成的4个数据特征串分别为:
[0116] LSHl:3f26258da0a5310d6b5203845ab0784eb29acff9814564946ce458fc086ac2a8
[0117] LSH2:2f2465c480a3312f215d80ce53863000a0ad6b78a3616595ae4c56bc00e9c2ba
[0118] LSH3:0fa077e500a531bfa95dd08e53862020a0896b58a362659d2a484ebf00e9cbaa
[0119] LSH4:0fa467edl0a5331da959d40e53802000b0897310al616d592a4844bb02a9c7ea
[0120] 随后在步骤S290中,组合每个词块的数据特征串来构造该文档的第三数据指纹以 作为该文档的数据特征。
[0121 ]如下示出了对于一个文档生成第二数据指纹的示例:
[0122] doc-size:2278
[0123] word_num: 284 //词语个数
[0124] sig_num:8 //词块个数
[0125] word_block_size:64 //第三预定长度
[0126] word_step_size: 32 //第四预定长度
[0127] LSH:bf32258f90e5390da35083045a83630ab6be5fe9al0577102dc40acd286bd2a8 〇 ffset:0
[0128] LSH:0f2205c490d01f2fa3d000904a87630896f83fa0al47d79424e446adfc5b50aa offset:254
[0129] LSH:b92355848cfa3b6fab5744fl4c92ad4892d86e89al43f4bee4a852386e09e2e8 〇 ffset:554
[0130] LSH:3baf75807cda31ede317c6c4745321ccd2966efd89422598ec62f3dca2f9e39a offset:840
[0131] LSH:2fafe588e0bl31ade3559a46f31b30c4929e6b7c89d2671cae66f2dc02e9caca offset:1080
[0132] LSH:2f2475cc40a731bd2155d0ce53a83000b88d7b5883d06594aa4244be04ebe2ca offset:1326
[0133] LSH:0fa467cd00a433bcaldld48f53a42021b889735481e241bd2a4844bf8ce9c78a offset:1594
[0134] LSH:07af6fbde0a5317c61dl544a02802142f29b730c93602cbe2e4ae83b83c9c7ee offset:1797
[0135] 对于一篇2278字节、含有284个词语的文档,利用LSH算法分别生成8个词块的数据 特征串(设置第六预定长度是5字节,第七预定长度是1字节,第八预定长度是32字节),将这 8个数据特征串连起来就是该文档的第三数据指纹。同第一、二数据指纹中所描述的那样, 第三数据指纹也可以包括词块在文档中的偏移位置信息offset。
[0136] 应当注意的是,在方法200执行的过程中,可以根据文档的重要程度设置第一预定 数目、第一预定长度、第二预定长度、第三预定长度和第四预定长度,以区分特征提取的精 细程度。也就是说,文档的重要程度越高,提取的关键词数目(第一预定数目)就越多,分块 时每个分块的大小(第一预定长度、第三预定长度)和位移的步进(第二预定长度、第四预定 长度)就越小。
[0137] 从文档中提取数据特征的步骤至此结束,通过方法200,从文档中提取了第一数据 指纹、第二数据指纹和第三数据指纹作为文档的数据特征。相应地,图3A到3C示出了根据本 发明实施例用于实现方法200的从文档中提取第一、第二、第三数据特征的设备300的示意 图。
[0138] 如图3A所示,特征提取设备300包括:分词模块310、计算模块320、选取模块330、和 特征提取模块340。
[0139] 分词模块310适于对文档进行分词处理,以获得词序列。根据本发明的实施例,采 用基于词典的分词算法(例如,MMSEG)对文档完成分词处理。
[0140] 计算模块320适于对词序列中的每个词语,计算表征该词语在文档中的重要性的 特征值(例如,TF-IDF值)。
[0141] 选取模块330适于基于特征值从词序列中选取第一预定数目个词语,例如按特征 值从高到低的顺序选取5个词语,再交由与之耦接的计算模块320,由其计算所选取的每个 词语对应的数据特征串,可选地,计算模块320适于通过普通哈希算法将每个词语散列成第 五预定长度的数字串作为该词语对应的数据特征串。
[0142] 特征提取模块340适于基于计算得到的数据特征串来构造文档的第一数据指纹来 作为所述文档的数据特征,可选地,特征提取模块340适于组合所获得的数据特征串以获得 第一数据指纹来作为该文档的数据特征。
[0143] 其中,分词算法和表征词语在文档中的重要性的特征值(以TF-IDF值为例)的计 算,在基于图2A的步骤描述中已经详细公开,此处不再赘述。
[0144] 根据一种实现方式,特征提取设备300还适于提取文档的第二数据指纹,如图3B所 示。此时,特征提取设备300除了计算模块320和特征提取模块340外,还包括分块模块350, 分块模块350适于按照顺序对文档中的数据进行分块,以得到一个或者多个第一预定长度 的数据块,其中相邻数据块之间相互重叠第二预定长度。
[0145] 同时,计算模块320还适于对所得到的一个或者多个数据块,基于每个数据块中的 数据内容来计算该数据块的数据特征串。特征提取模块340还适于组合每个数据块的数据 特征串来构造该文档的第二数据指纹以作为该文档的数据特征。
[0146] 参照上文关于计算每个数据块的数据特征串的步骤描述,计算模块320还包括分 块单元322和计算单元324。
[0147] 分块单元322适于依次选择数据块中第六预定长度的数据子块,其中相邻数据子 块之间相互重叠第七预定长度。
[0148] 计算单元324适于根据所述数据子块的内容计算第八预定长度的特征值列表。可 选地,计算单元中可以包括提取子单元,适于提取数据子块中的部分内容构成的一个或者 多个内容子集。再由计算单元324利用哈希算法将每个内容子集散列为在0到第八预定长度 之间的一个值,根据与每个内容子集对应的值,设置第八预定长度特征值列表中的相应值。 计算单元324还可以包括计数子单元,适于通过将每个数据子块相对应的特征值列表中相 应位置的值进行叠加而进行合并,以获得对应该数据块的特征值列表、以及二元化子单元, 适于对该特征值列表中每个单元的值进行二元化处理,而获得每个单元值为〇或者1的特征 值列表。计算单元324还适于将这个第八预定长度的特征值列表转化为第八预定长度位的 数字串,以作为该数据块的数据特征串。
[0149] 其中,二元化子单元适于计算特征值列表中所有单元值的平均值、以及比较每个 单元的值与该平均值的大小,若某个单元的值大于平均值,则该单元的值为1,若某个单元 的值不大于平均值,则该单元的值为〇。
[0150] 根据一个实施例,选取第一预定长度为512字节,第二预定长度为256字节,第六预 定长度是5字节,第七预定长度是1字节,第八预定长度是32字节。
[0151]根据一种实现方式,特征提取设备300还适于提取文档的第三数据指纹,如图3C所 示。此时,特征提取设备300包含分词模块310、分块模块350、计算模块320和特征提取模块 340〇
[0152] 分词模块310同图3Α中所描述的,适于对文档进行分词处理,以获得词序列。
[0153] 分块模块350还适于按照顺序对文档中的词序列进行分块,以得到一个或者多个 第三预定长度的词块,其中相邻词块之间相互重叠第四预定长度。同时,计算模块320还适 于对所得到的一个或者多个词块,基于每个词块中的数据内容来计算该词块的数据特征 串。特征提取模块340还适于组合每个词块的数据特征串来构造该文档的第三数据指纹以 作为该文档的数据特征。
[0154]参照上文关于计算每个词块的数据特征串的步骤描述,计算模块320除了包含分 块单元322和计算单元324外,还包括字符转换单元326。
[0155] 字符转换单元326适于将每个第三预定长度的词块中的词语转换为字符,得到相 应的字符串作为词块。分块单元322还适于依次选择词块中第六预定长度的子词块,其中相 邻子词块之间相互重叠第七预定长度。计算单元324还适于根据子词块的内容计算第八预 定长度的特征值列表。可选地,计算单元324采用与数据块同样的LSH算法计算词块的数据 特征串,此处不再赘述。
[0156] 同方法200中所描述的一样,可以根据文档的重要程度设置第一预定数目、第一预 定长度、第二预定长度、第三预定长度和第四预定长度,以区分特征提取的精细程度。也就 是说,文档的重要程度越高,提取的关键词数目(第一预定数目)就越多,分块时每个分块的 大小(第一预定长度、第三预定长度)和位移的步进(第二预定长度、第四预定长度)就越小。
[0157] 可选地,特征提取模块340还适于提取第一预定数目个词语中每个词语在文档中 的偏移位置信息,以包含在第一数据指纹中,以及提取数据块/词块在文档中的偏移位置信 息,以包含在第二数据指纹/第三数据指纹中。
[0158] 综上,本方案采用自动提取文档关键词、以及提取数据块、词块的数据指纹的方 式,来提取文档的数据特征。一方面,通过计算表征词语重要性的特征值来选取出文档的关 键词,这样就不用依靠人工设置关键词;另一方面,将文档进行分块处理,基于数据块和词 块分别计算每个分块的数据指纹,并且采用局部敏感哈希(LSH)算法来生成数据指纹,能够 有效地防止相似数据的泄露,并且当文档很大时,也能保证特征提取的准确性。
[0159] 图4示出了根据本发明一个实施例的判断第一文档和第二文档是否相关的判断方 法400的流程图。
[0160]如图4所示,该方法始于步骤S410,对第一文档执行方法200的步骤,提取文档的数 据特征得到第一特征集合,其中所述第一特征集合包括:第一文档的第一数据指纹、第二数 据指纹和第三数据指纹中的至少一个。
[0161]随后在步骤S420中,对第二文档同样执行方法200的步骤,提取文档的数据特征得 到第二特征集合,其中第二特征集合包括:第二文档的第一数据指纹、第二数据指纹和第三 数据指纹中的至少一个。
[0162] 随后在步骤S430中,计算第一特征集合与第二特征集合的相似度,若相似度达到 预定范围,则认为该第一文档和第二文档相关。
[0163] 步骤S430中对特征进行匹配、计算文档间相似度的过程又可以分为如下3种。
[0164] ?第一种是单一匹配:
[0165] 计算第一特征集合中每个数据指纹的数据特征串与第二特征集合中对应数据指 纹的数据特征串的汉明距离。
[0166] 其中,汉明距离(Hamming distance)指两个(相同长度)数据特征串对应二进制位 不同的数量。以d(x,y)表示两个数据特征串x,y之间的汉明距离,对两个数据特征串进行异 或运算,并统计结果为1的个数,得到的值就是汉明距离,当汉明距离大于第一阀值时,就判 定这两个数据特征串相似。例如:
[0167] 1011101与1001001之间的汉明距离是2;
[0168] "t one d"与"r 〇 s e s"之间的汉明距离是3 〇
[0169] 对于单一匹配,计算第一文档的第二数据指纹或第三数据指纹中的数据特征串与 第二文档的对应第二数据指纹或第三数据指纹中的数据特征串的汉明距离,当第二数据指 纹或第三数据指纹中的任一个数据特征串被判定为相似时,则认为第一特征集合与第二特 征集合的相似度达到预定范围。也就是说,只要有任何一个数据块或者词块相似,文档都有 泄漏数据的嫌疑。
[0170]以下是对两个文档的第二数据指纹做单一匹配并返回是否相关的伪代码,分别用 signature_base和signature_cmp代表第一特征集合和第二特征集合,其中nilsima_base 和ni I s ima_cmp分别表示两个文档(也就是两个特征集合)的第二数据指纹中的数据特征 串:
[0171] for nilsima_base in signature_base
[0172] for nilsima_cmp in signature_cmp
[0173] ham_dist = hamming_distance(nilsima_base,nilsima_cmp)
[0174] if(ham_dist>threshold)
[0175] {
[0176] return I
[0177] break
[0178] }
[0179] return 0
[0180] ?第二种是基准匹配:
[0181] 同样先计算第一特征集合中每个数据指纹的数据特征串与第二特征集合中对应 数据指纹的数据特征串的汉明距离,以判定两个数据特征串是否相似;然后统计第一特征 集合中与第二特征集合相似的数据特征串的数目,计算该数目占第一特征集合中数据特征 串总数目的比值,若该比值达到第二阈值,则认为第一特征集合与第二特征集合的相似度 达到预定范围。
[0182] 以下是对两个文档的第一数据指纹做基准匹配并返回是否相关的伪代码,W〇rd_ hash_base和word_hash_cmp分别表示两个文档的第一数据指纹中的数据特征串,keyword_ base_num表示第一特征集合中数据特征串总数目。
[0183] keyword_base_num = signature_base .keyword_num
[0184] simlar_num = 0
[0185] for word-hash-base in signature-base
[0186] for word-hash_cmp in signature_cmp
[0187] if (word-hash_cmp = =word-hash-base)
[0188] {
[0189] simlar_num+ = I
[0190] }
[0191 ] return(simlar_num/keyword_base_num)
[0192] ?第三种是整体匹配:
[0193] 计算第一特征集合的所有数据特征串与第二特征集合中所有数据特征串的 Jaccard系数,当Jaccard系数达到第三阈值时,认为第一特征集合与第二特征集合的相似 度达到预定范围,第一文档和第二文档相关。
[0194] 其中Jaccard系数是指两个集合的交集与两个集合的并集的比值:
[0195] Jaccard= I SnT|/| SUT|,
[0196] 其中,S表示第一特征集合,T表示第二特征集合。
[0197] 以下是对两个文档的第一数据指纹做整体匹配并返回是否相关的伪代码, keyword_base_num和keyword_cmp_num分别表示两个特征集合中数据特征串总数目,word_ hash_base和word_hash_cmp分别表示两个文档的第一数据指纹中的数据特征串。
[0198] keyword_base_num = signature_base .keyword_num
[0199] keyword_cmp_num = s i gnature_cmp. keyword_num
[0200] simlar_num = 0
[0201] for word_hash_base in signature_base
[0202] for word_hash_cmp in signature_cmp
[0203] if(word_hash_cmp= =word_hash_base)
[0204] {
[0205] simlar_num+ = l
[0206] }
[0207] return(simlar_num/(keyword_base_num+keyword_cmp_num-simlar_num))
[0208] 方法400设计了 3种方式对两个文档中的相似内容进行匹配判断,可选地,可以用 汉明距离或Jaccard系数表征文档间的相似度。这样,能更加全方位地进行敏感数据匹配, 为防止敏感数据泄露提供有力保障。
[0209] 相应地,图5示出了根据本发明一个实施例的用于实现方法400的判断第一文档和 第二文档是否相关的判断设备500的示意图。如图5所示,该文档相关性判断设备500包括: 特征提取设备300、相似度计算模块510和相似度判断模块520,其中相似度计算模块510分 别与特征提取设备300和相似度判断模块520相耦接。
[0210] 特征提取设备300适于分别提取出第一文档和第二文档的第一特征集合和第二特 征集合,其中第一特征集合包括:第一文档的第一数据指纹、第二数据指纹和第三数据指纹 中的至少一个;第二特征集合包括:第二文档的第一数据指纹、第二数据指纹和第三数据指 纹中的至少一个。
[0211]相似度计算模块510适于计算第一特征集合与第二特征集合的相似度。
[0212] 相似度判断模块520适于在判断相似度达到预定范围时,认为第一文档和第二文 档相关。
[0213] 根据本发明的一个实施例,相似度计算模块510还包括:相似度计算单元,用于计 算第一特征集合中每个数据指纹的数据特征串与第二特征集合中对应数据指纹的数据特 征串的汉明距离。
[0214] 相似度判断模块520还适于当汉明距离大于第一阈值时,判定两个对应数据指纹 相似。具体地,对于单一匹配方式,相似度判断模块520适于当第二数据指纹或第三数据指 纹中的任一个数据特征串被判定为相似时,认为第一特征集合与第二特征集合的相似度达 到预定范围。
[0215] 对于基准匹配方式,相似度判断模块520还可以包括统计单元,用于统计第一特征 集合中与第二特征集合相似的数据特征串的数目、并计算该数目占第一特征集合中数据特 征串总数目的比值,相似度判断模块还适于当该比值达到第二阈值时,认为第一特征集合 与第二特征集合的相似度达到预定范围。
[0216] 根据本发明的又一个实施例,在整体匹配模式下,相似度计算单元还适于计算第 一特征集合的所有数据特征串与第二特征集合中所有数据特征串的Jaccard系数,当所述 Jaccard系数达到第三阈值时,相似度判断模块520认定第一特征集合与第二特征集合的相 似度达到预定范围。Jaccard系数被用来表征两个集合的相关度:
[0217] Jaccard= I SnT|/| SUT|,
[0218] 其中,S表示第一特征集合,T表示第二特征集合。
[0219] 图6示出了根据本发明一个实施例的判断可疑文档是否包含敏感内容的方法600 的流程图。如图6所示,该方法始于步骤S610,对受保护文档执行方法200的步骤,提取该文 档的数据特征,并建立特征库,其中特征库中包含:所有受保护文档的第一数据指纹、第二 数据指纹和第三数据指纹。
[0220] 随后在步骤S620中,对可疑文档执行方法400的步骤,在执行方法400的过程中,提 取可疑文档的数据特征作为第二特征集合,并将上一步中得到的特征库作为第一特征集 合,也就是判断可疑文档与受保护文档是否相关;
[0221] 随后在步骤S630中,若判断可疑文档与受保护文档相关,则认为该可疑文档中包 含敏感内容;若判断可疑文档与受保护文档不相关,则认为该可疑文档不包含敏感内容。
[0222] 相应地,图7示出了根据本发明一个实施例的用于实现方法600的判断可疑文档是 否包含敏感内容的设备,也就是图1中所述的敏感内容判断设备700的示意图。该设备700包 括:特征提取设备300、存储模块710、文档相关性判断设备500、以及确定模块720。根据本发 明的一个实施例,特征提取设备300也可以布置在文档相关性判断设备500中。
[0223] 如前文所述,特征提取设备300适于对受保护文档提取数据特征、还适于提取可疑 文档的数据特征作为第二特征集合。
[0224] 存储模块710适于存储受保护文档的数据特征,作为特征库,其中特征库中包含: 受保护文档的第一数据指纹和第二数据指纹。
[0225] 文档相关性判断设备500适于判断可疑文档与特征库中的受保护文档是否相关; 以及
[0226] 确定模块720适于当判断可疑文档与受保护文档相关时,确定可疑文档包含敏感 内容、和当判断可疑文档与受保护文档不相关时,确定该可疑文档不包含敏感内容。
[0227] 综上,根据本发明的用于数据泄露防护的方法和系统,所提供的文档特征提取方 法能够更便捷地提取出文档的数据特征,并尽可能包含更多的数据特征信息;另外,设计了 单一匹配、基准匹配、整体匹配3种方式全方位地进行敏感数据匹配,可以有效避免各种文 档外泄手段。
[0228]应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对 本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或 者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发 明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求 书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实 施方式的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发 明的单独实施例。
[0229] 本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组 件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备 不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个 子模块。
[0230] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何 组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任 何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权 利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代 替。
[0231] A5、如A4所述的方法,其中表征该词语在文档中重要性的特征值TF-IDF被定义为: TF-IDF = TF X IDF,其中,TF是该词语的词频,IDF是该词语的逆文档频率,TF和IDF分别为: Γ0〇ο〇1 F _針雕対当43 is删凝 - 文档中的总次数 rn〇〇〇1 I ,文档库的文档总数、M M
[0233] IDF - Iogf- - -~-);以及
[0234] 基于所述特征值从所述词序列中选取第一预定数目个词语的步骤包括:按照所计 算得的TF-IDF值从高到低的顺序选取第一预定数目个词语。A6、如A1-5中任一项所述的方 法,其中基于所选择的第一预定数目个词语来构造所述文档的第一数据指纹来作为文档的 数据特征的步骤包括:对于第一预定数目词语中的每个词语,通过普通哈希算法散列成第 五预定长度的数字串作为该词语对应的数据特征串;组合所获得的数据特征串以获得第一 数据指纹来作为该文档的数据特征。A7、如A1-6中任一项所述的方法,其中对文档进行分词 处理的步骤包括:采用基于词典的分词算法进行分词处理,其中分词算法包含一个词典、两 种匹配算法和四个消除歧义的规则。A8、如A2-7中任一项所述的方法,其中基于数据块中的 数据内容来计算该数据块的数据特征串的步骤包括:依次选择数据块中第六预定长度的数 据子块,其中相邻数据子块之间相互重叠第七预定长度;对于每个数据子块,根据数据子块 的内容计算第八预定长度的特征值列表;以及基于所有数据子块的特征值列表以构造该数 据块的数据特征串。A9、如A3-8中任一项所述的方法,其中基于词块中的数据内容来计算该 词块的数据特征串的步骤包括:将每个第三预定长度的词块中的词语转换为字符,得到相 应的字符串作为词块;依次选择词块中第六预定长度的子词块,其中相邻子词块之间相互 重叠第七预定长度;对于每个子词块,根据子词块的内容计算第八预定长度的特征值列表; 以及基于所有子词块的特征值列表以构造该词块的数据特征串。A10、如A8或9所述的方法, 其中根据数据子块或子词块的内容计算第八预定长度的特征值列表的步骤包括:提取由数 据子块或子词块中的部分内容构成的一个或者多个内容子集;利用哈希算法将每个内容子 集散列为在〇到第八预定长度之间的一个值;根据与每个内容子集对应的值,设置第八预定 长度特征值列表中的相应值。All、如AlO所述的方法,其中基于所有数据子块或子词块的特 征值列表以构造该数据块或词块的数据特征串的步骤包括:通过将每个数据子块或子词块 相对应的特征值列表中相应位置的值进行叠加而进行合并,以获得对应该数据块或词块的 特征值列表;对该特征值列表中每个单元的值进行二元化处理,而获得每个单元值为〇或者 1的特征值列表;以及将第八预定长度的特征值列表转化为第八预定长度的数字串,以作为 该数据块的数据特征串。A12、如All所述的方法,其中对该特征值列表中每个单元的值进行 二元化处理的步骤包括:计算特征值列表中所有单元值的平均值;比较每个单元的值与该 平均值的大小;以及若某个单元的值大于平均值,则该单元的值为1,若某个单元的值不大 于平均值,则该单元的值为LA13、如A1-12中任一项所述的方法,其中第一预定数目是5;第 一预定长度是512字节,第二预定长度是256字节;第三预定长度是64个词语,第四预定长度 是32个词语;第五预定长度是32位;和第六预定长度是5字节,第七预定长度是1字节,第八 预定长度是32字节。A14、如A1-13中任一项所述的方法,其中第一数据指纹还包括第一预定 数目个词语中每个词语在文档中的偏移位置信息。A15、如A2-14中任一项所述的方法,其中 第二数据指纹还包括数据块在文档中的偏移位置信息。A16、如A3-15中任一项所述的方法, 其中第三数据指纹还包括所述词块在文档中的偏移位置信息。
[0235] B18、如B17所述的设备,设备还包括:分块模块,适于按照顺序对文档中的数据进 行分块,以得到一个或者多个第一预定长度的数据块,其中相邻数据块之间相互重叠第二 预定长度;以及计算模块还适于对所得到的一个或者多个数据块,基于每个数据块中的数 据内容来计算该数据块的数据特征串;特征提取模块还适于组合每个数据块的数据特征串 来构造该文档的第二数据指纹以作为该文档的数据特征。B19、如B17或18所述的设备,其中 分块模块还适于按照顺序对分词模块得到的词序列进行分块,以得到一个或者多个第三预 定长度的词块,其中相邻词块之间相互重叠第四预定长度;计算模块还适于对所得到的一 个或者多个词块,基于每个词块中的数据内容来计算该词块的数据特征串;以及特征提取 模块还适于组合每个词块的数据特征串来构造该文档的第三数据指纹以作为该文档的数 据特征。B20、如B17-19中任一项所述的设备,其中计算模块还适于:计算该词语在该文档中 的出现频率作为该词语的词频;计算文档库中的文档总数与文档库中包含该词语的文档数 目之间的比例作为该词语的逆文档频率;以及根据词语的词频和逆文档频率计算表征该词 语在文档中重要性的特征值。B21、如B20所述的设备,其中表征该词语在文档中重要性的特 征值TF-IDF被定义为:TF-IDF = TFX IDF,其中TF是该词语的词频,IDF是该词语的逆文档频 率,TF和IDF分别为: 邮-某州(6:文丰当柳麵次数 [_ .-文档中的总次数^ rno"n ,,文档库的文档总数、
[0237] IDF = l〇g( ^ ?Α, .) ° 包含该词的义档数+ 1
[0238] Β22、如Β21所述的设备,其中选取模块还适于按照所计算得的TF-IDF值从高到低 的顺序选取第一预定数目个词语。Β23、如Β17-22中任一项所述的设备,其中计算模块还适 于对所选取的第一预定数目个词语中的每个词语,通过普通哈希算法散列成第五预定长度 的数字串作为该词语对应的数据特征串;以及特征提取模块还适于组合所获得的数据特征 串以获得第一数据指纹来作为该文档的数据特征。Β24、如Β17-23中任一项所述的设备,其 中分词模块还适于用基于词典的分词算法进行分词处理,其中分词算法包含一个词典、两 种匹配算法和四个消除歧义的规则。25、如Β18-24中任一项所述的设备,其中计算模块还包 括:分块单元,适于依次选择所述数据块中第六预定长度的数据子块,其中相邻数据子块之 间相互重叠第七预定长度;计算单元,适于对于每个数据子块,根据数据子块的内容计算第 八预定长度的特征值列表、以及基于所有数据子块的特征值列表以构造该数据块的数据特 征串。Β26、如Β19-25中任一项所述的装置,其中计算模块还包括:字符转换单元,适于将每 个第三预定长度的词块中的词语转换为字符,得到相应的字符串作为词块;分块单元还适 于依次选择词块中第六预定长度的子词块,其中相邻子词块之间相互重叠第七预定长度; 以及计算单元还适于对每个子词块,根据子词块的内容计算第八预定长度的特征值列表、 以及基于所有子词块的特征值列表以构造该词块的数据特征串。Β27、如Β25或26所述的设 备,其中计算单元还包括:提取子单元,适于提取由数据子块或子词块中的部分内容构成的 一个或者多个内容子集;以及计算单元还适于利用哈希算法将每个内容子集散列为在〇到 第八预定长度之间的一个值、以及根据与每个内容子集对应的值,设置第八预定长度特征 值列表中的相应值。Β28、如Β27所述的设备,其中计算单元还包括:计数子单元,适于通过将 每个数据子块或子词块相对应的特征值列表中相应位置的值进行叠加而进行合并,以获得 对应该数据块或词块的特征值列表;二元化子单元,适于对该特征值列表中每个单元的值 进行二元化处理,而获得每个单元值为0或者1的特征值列表;以及计算单元还适于将第八 预定长度的特征值列表转化为第八预定长度的数字串,以作为该数据块或词块的数据特征 串。Β29、如Β28所述的设备,其中二元化子单元还适于计算特征值列表中所有单元值的平均 值、以及比较每个单元的值与该平均值的大小,若某个单元的值大于平均值,则该单元的值 为1,若某个单元的值不大于平均值,则该单元的值为LB30、如Β17-29中任一项所述的设 备,其中第一预定数目是5;第一预定长度是512字节,第二预定长度是256字节;第三预定长 度是64个词语,第四预定长度是32个词语;第五预定长度是32位;和第六预定长度是5字节, 第七预定长度是1字节,第八预定长度是32字节。Β31、如Β17-30中任一项所述的设备,其中 特征提取模块还适于提取第一预定数目个词语中每个词语在文档中的偏移位置信息,以包 含在第一数据指纹中。Β32、如Β18-31中任一项所述的设备,其中特征提取模块还适于提取 数据块在文档中的偏移位置信息,以包含在第二数据指纹中。Β33、如Β19-32中任一项所述 的设备,其中特征提取模块还适于提取词块在文档中的偏移位置信息,以包含在第三数据 指纹中。
[0239] C35、如C34所述的判断方法,其中计算第一特征集合与第二特征集合相似度的步 骤包括:计算第一特征集合中每个数据指纹的数据特征串与第二特征集合中对应数据指纹 的数据特征串的汉明距离;当汉明距离大于第一阈值时,判定两个对应数据特征串相似。 C36、如C35所述的方法,还包括步骤:当第二数据指纹或第三数据指纹中的任一个数据特征 串被判定为相似时,则认为第一特征集合与第二特征集合的相似度达到预定范围。C37、如 C35所述的方法,还包括步骤:统计第一特征集合中与第二特征集合相似的数据特征串的数 目;计算该数目占第一特征集合中数据特征串总数目的比值;若比值达到第二阈值,则认为 第一特征集合与第二特征集合的相似度达到预定范围。C38、如C34所述的方法,其中计算第 一特征集合与第二特征集合相似度的步骤还包括:计算第一特征集合的所有数据特征串与 第二特征集合中所有数据特征串的Jaccard系数;以及当Jaccard系数达到第三阈值时,认 为第一特征集合与第二特征集合的相似度达到预定范围。C39、如C38所述的方法,其中 Jaccard系数是:Jaccard= I S Π T I / I S U T I,其中,S表示第一特征集合,T表示第二特征集 合。
[0240] D41、如D40所述的判断设备,其中相似度计算模块还包括:相似度计算单元,适于 计算第一特征集合中每个数据指纹的数据特征串与第二特征集合中对应数据指纹的数据 特征串的汉明距离;以及相似度判断模块还适于当汉明距离大于第一阈值时,判定两个对 应数据特征串相似。D42、如D41所述的判断设备,其中相似度判断模块还适于当第二数据指 纹或第三数据指纹中的任一个数据特征串被判定为相似时,认为第一特征集合与第二特征 集合的相似度达到预定范围。D43、如D41所述的判断设备,其中相似度判断模块还包括:统 计单元,适于统计第一特征集合中与第二特征集合相似的数据特征串的数目、并计算该数 目占第一特征集合中数据特征串总数目的比值;以及相似度判断模块还适于当比值达到第 二阈值,认为第一特征集合与第二特征集合的相似度达到预定范围。D44、如D41所述的判断 设备,其中相似度计算单元还适于计算第一特征集合的所有数据特征串与第二特征集合中 所有数据特征串的Jaccard系数;以及相似度判断模块还适于当Jaccard系数达到第三阈值 时,认为第一特征集合与第二特征集合的相似度达到预定范围。D45、如D44所述的判断设 备,其中Jaccard系数是:Jaccard= |snT|/|SUT|,其中,S表示第一特征集合,T表示第二 特征集合。
[0241] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任 意之一都可以以任意的组合方式来使用。
[0242] 此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行 所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法 元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在 此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行 的功能。
[0243] 如在此所使用的那样,除非另行规定,使用序数词"第一"、"第二"、"第三"等等来 描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必 须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0244] 尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域 内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意, 本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限
【主权项】
1. 一种从文档中提取数据特征的方法,包括步骤: 对所述文档进行分词处理,以便获得词序列; 对于所述词序列中的每个词语,计算表征该词语在所述文档中的重要性的特征值,并 基于所述特征值从所述词序列中选取第一预定数目个词语;以及 对于所选择的第一预定数目个词语中的每个词语,计算该词语对应的数据特征串,并 基于所述数据特征串来构造所述文档的第一数据指纹来作为所述文档的数据特征。2. 如权利要求1所述的方法,还包括步骤: 按照顺序对所述文档中的数据进行分块,以得到一个或者多个第一预定长度的数据 块,其中相邻数据块之间相互重叠第二预定长度; 对于所得到的一个或者多个数据块,基于所述每个数据块中的数据内容来计算该数据 块的数据特征串;以及 组合每个数据块的数据特征串来构造该文档的第二数据指纹以作为该文档的数据特 征。3. 如权利要求1或2所述的方法,还包括步骤: 按照顺序对所述文档中的词序列进行分块,以得到一个或者多个第三预定长度的词 块,其中相邻词块之间相互重叠第四预定长度; 对于所得到的一个或者多个词块,基于所述每个词块中的数据内容来计算该词块的数 据特征串;以及 组合每个词块的数据特征串来构造该文档的第三数据指纹以作为该文档的数据特征。4. 如权利要求1-3中任一项所述的方法,其中所述计算表征该词语在所述文档中的重 要性的特征值的步骤包括: 计算该词语在该文档中的出现频率作为该词语的词频; 计算文档库中的文档总数与文档库中包含该词语的文档数目之间的比例作为该词语 的逆文档频率;以及 根据所述词语的词频和逆文档频率计算所述表征该词语在文档中重要性的特征值。5. -种从文档中提取数据特征的设备,所述设备包括: 分词模块,适于对所述文档进行分词处理,以便获得词序列; 计算模块,适于对所述词序列中的每个词语,计算表征该词语在所述文档中的重要性 的特征值、还适于对所选择的第一预定数目个词语中的每个词语,计算该词语对应的数据 特征串; 选取模块,适于基于所述特征值从所述词序列中选取第一预定数目个词语;以及 特征提取模块,适于基于所述数据特征串来构造所述文档的第一数据指纹来作为所述 文档的数据特征。6. -种判断第一文档和第二文档是否相关的判断方法,所述方法包括步骤: 对所述第一文档执行如权利要求1-4中任一项所述的方法,提取文档的数据特征得到 第一特征集合,其中所述第一特征集合包括:第一文档的第一数据指纹、第二数据指纹、和 第三数据指纹中的至少一个; 对所述第二文档执行如权利要求1-4中任一项所述的方法,提取文档的数据特征得到 第二特征集合,其中所述第二特征集合包括:第二文档的第一数据指纹、第二数据指纹和第 三数据指纹中的至少一个;以及 计算第一特征集合与第二特征集合的相似度,若相似度达到预定范围,则认为该第一 文档和第二文档相关。7. -种判断第一文档和第二文档是否相关的判断设备,所述设备包括: 如权利要求5所述的从文档中提取数据特征的设备,适于分别提取出所述第一文档和 第二文档的第一特征集合和第二特征集合,其中, 所述第一特征集合包括:第一文档的第一数据指纹、第二数据指纹和第三数据指纹中 的至少一个; 所述第二特征集合包括:第二文档的第一数据指纹、第二数据指纹和第三数据指纹中 的至少一个; 相似度计算模块,适于计算第一特征集合与第二特征集合的相似度;以及 相似度判断模块,适于在判断相似度达到预定范围时,认为该第一文档和第二文档相 关。8. -种判断可疑文档是否包含敏感内容的方法,所述方法包括步骤: 对受保护文档执行如权利要求1-4中任一项所述的方法,提取该文档的数据特征,建立 特征库,其中特征库中包含:受保护文档的第一数据指纹、第二数据指纹和第三数据指纹; 对可疑文档执行如权利要求6所述的判断方法,其中,提取所述可疑文档的数据特征作 为第二特征集合,将所述特征库作为第一特征集合; 若判断所述可疑文档与受保护文档相关,则认为所述可疑文档包含敏感内容;以及 若判断所述可疑文档与受保护文档不相关,则认为所述可疑文档不包含敏感内容。9. 一种判断可疑文档是否包含敏感内容的设备,所述设备包括: 如权利要求5所述的从文档中提取数据特征的设备,适于对受保护文档提取数据特征、 还适于提取可疑文档的数据特征作为第二特征集合; 存储模块,适于存储所述受保护文档的数据特征,作为特征库,其中特征库中包含:受 保护文档的第一数据指纹、第二数据指纹和第三数据指纹; 如权利要求7所述的判断设备,适于判断可疑文档与特征库中的受保护文档是否相关; 以及 确定模块,适于当判断所述可疑文档与受保护文档相关时,确定所述可疑文档包含敏 感内容、和当判断所述可疑文档与受保护文档不相关时,确定所述可疑文档不包含敏感内 容。10. -种数据泄露防护系统,包括: 计算设备,与数据安全防护设备相连;以及 数据安全防护设备,包括: 文档获取设备,适于获取计算设备发送的文档内容; 如权利要求9所述的敏感内容判断设备,适于判断获取的文档是否包含敏感内容; 控制策略获取设备,适于在判断文档是否包含敏感内容时,获取与文档相关的进程对 应的控制策略;和 控制设备,适于当判断可疑文档包含敏感内容时,根据所获取的控制策略对所述文档 的操作行为进行控制。
【文档编号】G06F21/62GK105844118SQ201610236750
【公开日】2016年8月10日
【申请日】2016年4月15日
【发明人】李唱, 康靖, 陈虎
【申请人】宝利九章(北京)数据技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1