一种高准确性英文域名相似度检测方法与流程

文档序号:13661317阅读:1303来源:国知局

本发明涉及一种高准确性英文域名相似度检测方法,属于网络安全技术领域。



背景技术:

英文域名作为使用率最高的域名,是国际化域名的重要组成部分,针对英文域名的域名仿冒攻击日渐增多,域名的仿冒形式也日益复杂。由于英文字母、数字中存在很多形近字符,再加上人的快速阅读习惯,难免会在一定程度上造成视觉的错误判断。

levenshtein算法是一种判断字符串相似度的算法,目前被广泛应用于域名相似度检测系统中。但现有技术为了追求高效率判断,往往只是将整个域名作为输入,进而判断相似度,这样一来准确性有所降低,二来在实际应用中不够人性化。如果仿冒网站制作者将一个字符相似拆分为多个字符,或将多个字符相似合并为一个字符,则现有技术判断的准确率将大大降低。



技术实现要素:

本发明要解决的技术问题是针对现有技术的局限和不足,提供一种高准确性英文域名相似度检测方法,创新性地引入相似字符集,根据相似字符集中的相似字符给予域名字符相应的权重,对目前被广泛应用于域名相似度检测系统中的levenshtein算法进行改进,以解决现有技术为了追求高效率判断而使得准确性降低、误判率升高、实际应用中不够人性化等现象,致力于增加目前域名相似度检测算法的准确性。

本发明的技术方案是:一种高准确性英文域名相似度检测方法,具体步骤为:

(1)获取待检测域名x以及目标域名y;

(2)对待检测域名x和目标域名y以点号“.”分割,忽略网络名、域名后缀,保留域名主体,并生成域名主体的英文字符集合x:{x1,x2…xp}和y:{y1,y2…yq};

(3)根据相似字符集,若待检测域名的域名主体英文字符集合x:{x1,x2…xp}和目标域名的域名主体英文字符集合y:{y1,y2…yq}中有一个字符拆分相似于多个字符,或多个字符合并相似于一个字符,则将其统一替换为指定字符,进行归一化处理,并生成处理后待检测域名的域名主体英文字符集合x':{x1,x2…xm}和目标域名的域名主体英文字符集合y':{y1,y2…yn};

(4)将处理后待检测域名的域名主体英文字符集合x':{x1,x2…xm}和目标域名的域名主体英文字符集合y':{y1,y2…yn}作为levenshtein算法的输入,生成检测矩阵i(x,y)(m+1)×(n+1);

(5)对检测矩阵i(x,y)(m+1)×(n+1)按照公式(1)进行矩阵初始化处理:

(6)对初始化后检测矩阵i(x,y)(m+1)×(n+1)中需计算的数据d[i,j](1≤i≤m,1≤j≤n),若xi和yj相同,则按照公式(2)计算该处的编辑距离:

d[i,j]=min(d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1])(2)

若xi和yj不同,则再次根据相似字符集判断是否为相似字符,若是相似字符,则取该相似字符组相应的权重w,根据公式(3)计算该处的编辑距离:

d[i,j]=min(d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1]+w)(3)

若不是相似字符,则根据公式(4)计算该处的编辑距离:

d[i,j]=min(d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1]+1)(4)

(7)检测矩阵i(x,y)(m+1)×(n+1)中所有数据d[i,j]计算完毕后,最终待检测域名x与目标域名y的编辑距离为d[m,n],根据最终编辑距离d[m,n]和归一化处理后域名主体的最长长度l=max(m,n),由公式(5):

计算待检测域名x与目标域名y的相似度。

所述步骤(1)中的待检测域名x以及目标域名y,可以为一级域名或二级域名。

所述步骤(2)中如果待检测域名x以及目标域名y是一级域名,则只需忽略域名后缀。

所述步骤(1)中待检测域名x以及目标域名y需是符合常规的域名,即经步骤(2)初始化后,生成域名主体的英文字符集合x:{x1,x2…xp}和y:{y1,y2…yq}需满足以下要求:

p,q∈n+

同样,经步骤(3)归一化后,生成处理后域名主体的英文字符集合x':{x1,x2…xm}和y':{y1,y2…yn}理应满足以下要求:

m,n∈n+。

所述步骤(3)和步骤(6)中的相似字符集由若干组相似字符及对应的权重、归一化字符等组成,且权重w应满足以下要求:

0≤w≤1。

所述步骤(7)中计算的相似度r(x,y)理应满足以下要求:

0≤r(x,y)≤1

若不满足,则说明计算错误,需重新计算;

若满足,其值越接近1,则说明待检测域名与目标域名的相似度越高。

本发明的有益效果是:创新性地引入相似字符集,根据相似字符集中的相似字符给予域名字符相应的权重,对目前被广泛应用于域名相似度检测系统中的levenshtein算法进行改进。首先获取待检测域名和目标域名,对其初始化生成域名主体;其次根据相似字符集对域名主体进行归一化处理,并作为levenshtein算法的输入生成检测矩阵;然后再次根据相似字符集给予域名字符相应的权重计算编辑距离;最后由编辑距离和归一化处理后域名主体的最长长度计算相似度。本发明与现有技术相比,主要解决了现有技术为了追求高效率判断而使得准确性降低、误判率升高、实际应用中不够人性化等现象,致力于增加目前域名相似度检测算法的准确性。

附图说明

图1是本发明的流程示意图;

具体实施方式

下面结合附图和具体实施方式,对本发明作进一步说明。

实施例1:如图1所示,一种高准确性英文域名相似度检测方法,具体步骤为:

(1)获取待检测域名x以及目标域名y;

(2)对待检测域名x和目标域名y以点号“.”分割,忽略网络名、域名后缀,保留域名主体,并生成域名主体的英文字符集合x:{x1,x2…xp}和y:{y1,y2…yq};

(3)根据相似字符集,若待检测域名的域名主体英文字符集合x:{x1,x2…xp}和目标域名的域名主体英文字符集合y:{y1,y2…yq}中有一个字符拆分相似于多个字符,或多个字符合并相似于一个字符,则将其统一替换为指定字符,进行归一化处理,并生成处理后待检测域名的域名主体英文字符集合x':{x1,x2…xm}和目标域名的域名主体英文字符集合y':{y1,y2…yn};

(4)将处理后待检测域名的域名主体英文字符集合x':{x1,x2…xm}和目标域名的域名主体英文字符集合y':{y1,y2…yn}作为levenshtein算法的输入,生成检测矩阵i(x,y)(m+1)×(n+1);

(5)对检测矩阵i(x,y)(m+1)×(n+1)按照公式(1)进行矩阵初始化处理:

(6)对初始化后检测矩阵i(x,y)(m+1)×(n+1)中需计算的数据d[i,j](1≤i≤m,1≤j≤n),若xi和yj相同,则按照公式(2)计算该处的编辑距离:

d[i,j]=min(d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1])(2)

若xi和yj不同,则再次根据相似字符集判断是否为相似字符,若是相似字符,则取该相似字符组相应的权重w,根据公式(3)计算该处的编辑距离:

d[i,j]=min(d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1]+w)(3)

若不是相似字符,则根据公式(4)计算该处的编辑距离:

d[i,j]=min(d[i-1,j]+1,d[i,j-1]+1,d[i-1,j-1]+1)(4)

(7)检测矩阵i(x,y)(m+1)×(n+1)中所有数据d[i,j]计算完毕后,最终待检测域名x与目标域名y的编辑距离为d[m,n],根据最终编辑距离d[m,n]和归一化处理后域名主体的最长长度l=max(m,n),由公式(5):

计算待检测域名x与目标域名y的相似度。

所述步骤(1)中的待检测域名x以及目标域名y,可以为一级域名或二级域名。

所述步骤(2)中如果待检测域名x以及目标域名y是一级域名,则只需忽略域名后缀。

所述步骤(1)中待检测域名x以及目标域名y需是符合常规的域名,即经步骤(2)初始化后,生成域名主体的英文字符集合x:{x1,x2…xp}和y:{y1,y2…yq}需满足以下要求:

p,q∈n+

同样,经步骤(3)归一化后,生成处理后域名主体的英文字符集合x':{x1,x2…xm}和y':{y1,y2…yn}理应满足以下要求:

m,n∈n+。

所述步骤(3)和步骤(6)中的相似字符集由若干组相似字符及对应的权重、归一化字符等组成,且权重w应满足以下要求:

0≤w≤1。

所述步骤(7)中计算的相似度r(x,y)理应满足以下要求:

0≤r(x,y)≤1

若不满足,则说明计算错误,需重新计算;

若满足,其值越接近1,则说明待检测域名与目标域名的相似度越高。

实施例2:如图1所示,在实施例1的基础上,假设经上述步骤(1)获取的待检测域名为x="www.ba1olu.com",目标域名为y="www.baidu.com",由上述步骤(2)初始化处理后,生成域名主体的英文字符集合为x:{b,a,1,o,l,u}和y:{b,a,i,d,u}。

假设相似字符集(第一列为相似字符,第二列为权重,第三列为归一化字符)为:

经上述步骤(3)归一化处理后,生成处理后待检测域名的域名主体英文字符集合x':{b,a,1,d,u}和目标域名的域名主体英文字符集合y':{b,a,i,d,u}。

经上述步骤(4)将处理后待检测域名的域名主体英文字符集合x':{b,a,1,d,u}和目标域名的域名主体英文字符集合y':{b,a,i,d,u}作为levenshtein算法的输入,生成检测矩阵i(x,y)6×6,并按上述步骤(5)进行矩阵初始化,结果如下所示。

再由步骤(6)中的计算规则对其编辑距离d[i,j](1≤i≤5,1≤j≤5)计算,经查阅相似字符集,“i”与“1”的权重为0,关键的计算过程d[3,3]及最终生成的检测矩阵如下所示。

d[3,3]=min(d[2,3]+1,d[3,2]+1,d[2,2]+0)

=min(2,2,0)

=0

最后,由步骤(7)中的计算规则对相似度r(x,y)进行计算,计算结果如下所述。

结果表明,虽然待检测域名x和目标域名y长度不一致,但检测所得的相似度为1。也就是说,按照本发明的计算原则,待检测域名x和目标域名y为相似域名,且相似度为1,有效地预防了如果仿冒网站制作者将一个字符相似拆分为多个字符,或将多个字符相似合并为一个字符,现有技术判断的准确率低的缺点,实际应用中也较人性化。

以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1