一种中文仿冒域名检测方法及系统与流程

文档序号:11811932阅读:351来源:国知局
一种中文仿冒域名检测方法及系统与流程
本发明属于网络安全
技术领域
,具体涉及一种中文仿冒域名的检测方法及系统。
背景技术
:近年来随着在线金融、电子商务的发展,钓鱼网站呈爆发式增长,严重威胁公共财产安全和信息安全。域名仿冒是网络钓鱼中一种常见的技术,攻击者通过注册一个与目标域名相似的域名来欺骗用户,进而盗取用户的个人敏感信息。传统的域名系统只能使用63个ASCII字符("a-z","A-Z","0-9","-")。随着互联网在非英语国家的迅速发展,国际化域名日渐兴起,域名可使用的字符集已扩展到上百种语言字符。中文域名是国际化域名的重要组成部分。汉字作为一种象形文字,其笔画类型及书写顺序可表征该文字的视觉特征,特殊的造字规则使其产生了大量的形近字。但目前的仿冒域名检测方法主要针对英文域名,难以适用于字形复杂多变的中文域名。技术实现要素:本发明针对利用中文形近字在视觉上的相似性进行的域名仿冒,提出一种中文仿冒域名检测方法及系统,基于汉字的笔画顺序字符串的相似度计算单个汉字的相似度,并基于单字相似度计算整体域名相似度,从而能够有效地检测出被仿冒的中文域名。为了实现上述目的,本发明采用以下技术方案:一种中文仿冒域名检测方法,包括以下步骤:1)分别统计待测域名Domaindet和目标域名集合DomainSet1中每个域名的域名长度和总笔画数;2)通过对比待测域名与目标域名集合DomainSet1中每个目标域名的域名长度和总笔画数,过滤出与待测域名长度相同且总笔画数差值百分比小于设定阈值T1的可能被仿冒的目标域名集合DomainSet2;3)将待测域名与可能被仿冒的目标域名集合DomainSet2中的每个目标域名分别对应拆分为单个汉字,将单个汉字按照其书写的笔画顺序转化为字符串,并基于该字符串的编辑距离计算单字相似度;4)基于步骤3)得到的单字相似度计算对应的整体域名的相似度,判定与待测域名相似度最高且相似度值超过设定阈值T2的目标域名为被仿冒域名,输出被仿冒域名。进一步地,步骤1)中,通过从汉字笔画数据库中请求每个域名中每个汉字的笔画数,求和得每个域名的总笔画数。进一步地,步骤2)中,总笔画数差值百分比(Dpct)的计算方法如下:Dpct=abs(StrokeTotalNumdet,StrokeTotalNumtarget)StrokeTotalNumdet]]>其中,StrokeTotalNumdet为待测域名的总笔画数,StrokeTotalNumtarget为目标域名的总笔画数。进一步地,步骤2)中,阈值T1设置得越小,则在该步骤中被过滤掉的目标域名数量越多,后续的计算量越小。但若该阈值设置过小,可能导致最终检测结果的漏报率增大,即被仿冒域名在该步骤中直接被过滤掉。因此,该阈值的设定可根据实际需要设定,例如统计当前已知的仿冒域名与目标域名的总笔画数差值百分比,将阈值设置为统计结果的均值或最大值。进一步地,步骤3)中首先去除待测域名与可能被仿冒的目标域名集合DomainSet2中的每个目标域名中的非汉字字符,再将待测域名与可能被仿冒的目标域名集合DomainSet2中的每个目标域名分别对应拆分为单个汉字。进一步地,步骤3)中所述字符串使用英文字符表示汉字的每个基本笔画类别。进一步地,步骤3)中,计算单字相似度(CharSim(c1,c2))的方法为:CharSim(c1,c2)=1-EditDis(c1,c2)StrokeNum1+StrokeNum2]]>其中c1,c2为待计算的两单字对应的笔画顺序字符串,EditDis(c1,c2)为字符串c1,c2的编辑距离,StrokeNum1,StrokeNum2为单字的笔画数,即字符串c1,c2的长度。进一步地,步骤4)中,基于单字的相似度(CharSim(c1,c2))计算整体域名的相似度(DomainSim(s1,s2))的方法为:DomainSim(s1,s2)=1nΣ1nCharSimi]]>其中待测域名与目标域名的长度均为n,CharSimi表示域名对应的单字字符的相似度,i为1~n的整数。即CharSimi依次为CharSim1,CharSim2,…,CharSimn。进一步地,步骤4)中,阈值T2设置过大,将导致最终检测结果的漏报率增加,若设置过小,将导致误报率增加。因此,该阈值的设定可根据实际需要设定,例如统计当前已知的仿冒域名与目标域名的相似度值,将阈值设置为统计结果的均值或最小值。一种中文仿冒域名检测系统,包括:域名预处理模块,用于统计输入的待测域名Domaindet和目标域名集合DomainSet1中每个域名的域名长度和总笔画数;目标域名过滤模块,用于通过对比待测域名和目标域名集合DomainSet1中每个目标域名的域名长度和总笔画数,过滤出与待测域名长度相同且总笔画数差值百分比小于设定阈值T1的可能被仿冒的目标域名集合DomainSet2;域名拆分模块,用于将待测域名与可能被仿冒的目标域名集合DomainSet2中的每个目标域名分别对应拆分为单个汉字;单字相似度计算模块,用于将单个汉字按照其书写的笔画顺序转化为字符串,并基于该字符串的编辑距离计算单字相似度;域名相似度计算模块,用于根据单字相似度计算对应的整体域名的相似度;仿冒域名决策模块,用于将与待测域名相似度最高且相似度值超过设定阈值T2的目标域名判定为被仿冒域名并输出被仿冒域名。进一步地,所述域名预处理模块又包括:域名长度统计子模块,用于统计输入的待测域名Domaindet和目标域名集合DomainSet1中每个域名的域名长度,即每个域名包含的汉字个数。域名总笔画数统计子模块,用于统计输入的待测域名和目标域名集合DomainSet1中每个域名的总笔画数。该子模块从汉字笔画数据库中请求域名中每个汉字的笔画数,求和得域名的总笔画数。进一步地,所述可能被仿冒的目标域名集合DomainSet2的元素个数小于等于DomainSet1的元素个数。进一步地,所述目标域名过滤模块又包括:长度过滤子模块,用于依次对比待测域名和目标域名集合DomainSet1中各域名的长度,输出包含与待测域名长度相同的所有目标域名的集合DomainSettmp。总笔画数过滤子模块,用于依次对比待测域名和经长度过滤得到的集合DomainSettmp中各域名的总笔画数,输出包含与待测域名的域名总笔画数的差值百分比小于设定阈值T1的所有目标域名的集合DomainSet2。总笔画数的差值百分比Dpct的计算方法如下:Dpct=abs(StrokeTotalNumdet,StrokeTotalNumtarget)StrokeTotalNumdet]]>其中,StrokeTotalNumdet为待测域名的总笔画数,StrokeTotalNumtarget为目标域名的总笔画数。进一步地,所述域名拆分模块用于先去除待测域名与目标域名中的非汉字字符,再将待测域名与目标域名分别对应拆分为单个汉字。由于DomainSet2中各域名的长度与待测域名的长度相同,故拆分后的汉字可一一对应以作为单字相似度计算模块的输入。进一步地,所述单字相似度计算模块又包括:单字转换笔画子模块,用于输入一个汉字,输出其对应的笔画顺序字符串,该字符串使用英文字符表示汉字的每个基本笔画类别。字符串相似度计算子模块,用于根据单字笔画顺序字符串的编辑距离计算单字相似度,单字相似度CharSim(c1,c2)具体计算方法为:CharSim(c1,c2)=1-EditDis(c1,c2)StrokeNum1+StrokeNum2]]>其中c1,c2为待计算的两单字对应的笔画顺序字符串,EditDis(c1,c2)为字符串c1,c2的编辑距离,StrokeNum1,StrokeNum2为单字的笔画数,即字符串c1,c2的长度。进一步地,所述域名相似度计算模块用于根据单字的相似度计算整体域名的相似度,域名相似度DomainSim(s1,s2)的具体计算方法为:DomainSim(s1,s2)=1nΣ1nCharSimi]]>其中待测域名与目标域名的长度均为n,对应字符的相似度依次为CharSim1,CharSim2,…,CharSimn。本发明的有益效果在于:本发明针对利用形近字构造中文仿冒域名,提出了基于汉字笔画判断单字相似度,并基于单字相似度计算整体域名相似度的检测方法。本发明的核心是利用组成汉字的笔画基本类型及其书写顺序来计算单个汉字的相似度。该中文域名仿冒检测方法通过实验验证,表明了其有效性。该中文域名仿冒检测系统易于通过计算机实现,其中所需汉字笔画数、笔顺字符串可直接从现有的汉字笔画数据库获取。附图说明图1为本发明的流程示意图;图2为所述域名预处理模块结构示意图;图3为目标域名过滤模块结构示意图;图4为单字相似度计算模块结构示意图。具体实施方式下面结合附图和实施示例,对本发明的具体实施方式作进一步详细描述。以下实施示例用于说明本发明,但不限制本发明的范围。本发明首先对中文域名仿冒可能出现的方式进行了研究和分类,共分三大类十小类,如表1。表1中文域名仿冒方式分类本发明针对的是视觉仿冒中的形近字仿冒。如图1,本发明包括域名预处理模块10、目标域名过滤模块20、域名拆分模块30、单字相似度计算模块40、域名相似度计算模块50和仿冒域名决策模块60。所述域名预处理模块10的输入为待测域名Domaindet和目标域名集合DomainSet1,该模块统计输入的每个域名的域名长度和每个域名的总笔画数。如图2,所述域名预处理模块10包含域名长度统计子模块11和域名总笔画数统计子模块12。所述域名长度统计子模块11,统计输入的待测域名和目标域名集合中每个域名的域名长度,即每个域名包含的汉字个数。所述域名总笔画数统计子模块12,统计输入的待测域名和目标域名集合中每个域名的总笔画数。该子模块从汉字笔画数据库中请求域名中每个汉字的笔画数,求和得域名的总笔画数。例如:待测域名Domaindet=“屈臣氏”,目标域名集合DomainSet1={“洽洽香瓜子”,“中国移动”,“屈臣氏”,“心相印”}。统计结果如表2:表2域名预处理结果所述目标域名过滤模块20输出可能被仿冒的目标域名集合DomainSet2,DomainSet2的元素个数小于等于DomainSet1的元素个数。如图3,所述目标域名过滤模块20包括长度过滤子模块21和总笔画数过滤子模块22。所述长度过滤子模块21,依次对比待测域名和目标域名集合中各域名的长度,将与待测域名的域名长度相同的目标域名写入集合DomainSettmp,最后输出DomainSettmp。所述总笔画数过滤了模块22,依次对比待测域名和集合DomainSettmp中各域名的总笔画数,将与待测域名的域名总笔画数的差值百分比小于阈值T1的目标域名写入集合DomainSet2,最后输出DomainSet2。其中差值百分比的计算方法如下:Dpct=abs(StrokeTotalNumdet,StrokeTotalNumtarget)StrokeTotalNumdet]]>其中,StrokeTotalNumdet为待测域名的总笔画数,StrokeTotalNumtarget为目标域名的总笔画数。例如:差值百分比阈值T1设置为0.5,则经目标域名过滤模块处理可得DomainSet2={“屈臣氏”,“心相印”}所述域名拆分模块30,首光去除待测域名与目标域名集合DomainSet2中的非汉字字符,如“.”、“-”等;再将待测域名与目标域名拆分为单个汉字并一一对应。例如:待测域名Domaindet=“屈巨氏”,目标域名集合DomainSet2={“屈臣氏”,“心相印”}。将待测域名与目标域名对应拆分,即分别拆分得(“屈屈”、“巨臣”、“氏氏”)、(“屈心”、“巨相”、“氏印”)。所述单字相似度计算模块40,将汉字按照其书写的笔画顺序转化为字符串,并基于该字符串的编辑距离计算单字相似度。如图4,所述单字相似度计算模块40包括单字转换笔画子模块41和字符串相似度计算子模块42。所述单字转换笔画子模块41,该子模块输入一个汉字,输出其对应的笔画顺序字符串,该字符串使用英文字符表示汉字的每个基本笔画类别。笔画作为汉字的最小构成单位,可分为横、竖、撇、点、捺、提、折共七个基本类别,并可对应使用英文字符表示各类别名,具体对应规则如表3。表3笔画基本类别名与字符的对应关系表基本类别名横竖撇点捺提折英文字符ABCDEFG例如“巨”的笔画顺序为“横–折–横–折”,“臣”的笔画顺序为“横–竖–折–横–竖–折”。则根据表3,“巨”可转换为字符串“AGAG”,“臣”可转换为字符串“ABGABG”。在具体实施时,可直接通过查询汉字笔画数据库获取每个汉字对应的笔画字符串。所述字符串相似度计算子模块42,该子模块基于单字笔画顺序字符串的编辑距离计算单字相似度,具体计算方法为:CharSim(c1,c2)=1-EditDis(c1,c2)StrokeNum1+StrokeNum2]]>其中c1,c2为待计算的两单字对应的笔画顺序字符串,EditDis(c1,c2)为字符串c1,c2的编辑距离,StrokeNum1,StrokeNum2为单字的笔画数,即字符串c1,c2的长度。例如:示例计算结果如表4。表4单字相似度所述域名相似度计算模块50,基于单字的相似度计算整体域名的相似度,具体计算方法为:DomainSim(s1,s2)=1nΣ1nCharSimi]]>其中待测域名与目标域名的长度均为n,对应字符的相似度依次为CharSim1,CharSim2,…,CharSimn。例如:示例计算结果如表5。表5整体域名相似度所述仿冒域名决策模块60,该模块判定与待检测相似度最高且相似度值超过阈值的目标域名为被仿冒域名。例如:预设相似度阈值为0.8,则可判定目标域名“屈臣氏”被待测域名“屈巨氏”仿冒,输出被仿冒域名“屈臣氏”。综上所述,本发明针对利用形近字构造中文仿冒域名,提出了基于汉字笔画判断单字相似度,并基于单字相似度计算整体域名相似度的检测方法。该方法通过实验验证,表明了其有效性。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关
技术领域
的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1