一种密钥检测方法、装置及电子设备与流程

文档序号:20770136发布日期:2020-05-15 19:34阅读:184来源:国知局
一种密钥检测方法、装置及电子设备与流程

本说明书涉及计算机技术领域,尤其涉及一种密钥检测方法、装置及电子设备。



背景技术:

随着互联网技术的发展,对互联网平台或互联网产品等的安全性要求也随之提高,为了保障信息或数据平台的安全性,可以通过对用户进行验证从而确认用户的权限和资质,例如可以对用户输入的敏感信息做验证处理。密钥作为敏感信息的一种,可以被用来与用户账号结合实现对用户的验证,用户在获取平台分配的账号及对应的密钥后,便可以利用密钥访问平台,因此,密钥也是比较重要的一种信息。然而由于一些原因,有很多密钥的明文被暴露在公开平台(例如,技术网站或代码平台等)中,对用户来说存在很大的风险,因此,需要及时对公开平台中的密钥进行检测,从而进一步推动公开平台的整改。

现有技术中,通过正则匹配及逻辑校验的方式对密钥进行检测时,由于密钥的种类很多,且部分密钥并没有明显的正则特征和校验逻辑,使得正则匹配及逻辑校验的检测识别准确率较低。另外,还可以通过密钥库匹配的方式进行检测,但由于密钥库作为高度敏感的数据并不容易获取,即使能够获取相关数据,一旦发生数据泄露也容易被恶意利用,因此风险也会很高。

基于现有技术,需要提供一种识别准确率高、降低检测风险的密钥检测方案。



技术实现要素:

本说明书实施例提供一种密钥检测方法、装置及电子设备,以解决现有技术存在的识别准确率低、检测风险高的问题。

为解决上述技术问题,本说明书实施例是这样实现的:

第一方面,本说明书实施例提供的一种密钥检测方法,所述方法包括:

根据预定的提取规则从文本中提取出一个或多个目标字符串,所述预定的提取规则为根据预定的密钥类型所生成的规则;

对所述目标字符串执行检测操作,以便从所述目标字符串中筛选出待确定密钥所对应的字符串;

利用预定的搜索方式对所述文本进行搜索,得到待确定账户标识所对应的字符串;

获取与所述待确定密钥以及待确定账户标识分别对应的一个或多个特征数据,所述特征数据用于表示所述待确定密钥与待确定账户标识之间的关联关系;

根据所述特征数据将所述待确定密钥与待确定账户标识进行匹配,得到所述待确定密钥的匹配分值,基于所述匹配分值确定与所述密钥类型相对应的密钥,以便实现密钥的检测。

第二方面,本说明书实施例提供的一种密钥检测装置,所述装置包括:

提取模块,用于根据预定的提取规则从文本中提取出一个或多个目标字符串,所述预定的提取规则为根据预定的密钥类型所生成的规则;

检测模块,用于对所述目标字符串执行检测操作,以便从所述目标字符串中筛选出待确定密钥所对应的字符串;

搜索模块,用于利用预定的搜索方式对所述文本进行搜索,得到待确定账户标识所对应的字符串;

获取模块,用于获取与所述待确定密钥以及待确定账户标识分别对应的一个或多个特征数据,所述特征数据用于表示所述待确定密钥与待确定账户标识之间的关联关系;

匹配模块,用于根据所述特征数据将所述待确定密钥与待确定账户标识进行匹配,得到所述待确定密钥的匹配分值,基于所述匹配分值确定与所述密钥类型相对应的密钥,以便实现密钥的检测。

第三方面,本说明书实施例提供的一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述一种密钥检测方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

通过根据预定的提取规则从文本中提取出一个或多个目标字符串,预定的提取规则为根据预定的密钥类型所生成的规则;对目标字符串执行检测操作,以便从目标字符串中筛选出待确定密钥所对应的字符串;利用预定的搜索方式对文本进行搜索,得到待确定账户标识所对应的字符串;获取与待确定密钥以及待确定账户标识分别对应的一个或多个特征数据,特征数据用于表示待确定密钥与待确定账户标识之间的关联关系;根据特征数据将待确定密钥与待确定账户标识进行匹配,得到待确定密钥的匹配分值,基于匹配分值确定与密钥类型相对应的密钥,以便实现密钥的检测。基于本方案,对于正则规律较弱、没有校验机制的密钥,提高了对其进行检测识别的准确性,并且避免了密钥库发生数据泄露的风险,提升了密钥检测的安全性。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例提供的一种密钥检测方法的流程示意图;

图2为本说明书实施例提供的一种具体实施场景下的密钥检测流程示意图;

图3为本说明书实施例提供的一种密钥检测装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

随着互联网技术的迅速发展,基于互联网技术的服务应用及平台也日新月异,而互联网安全却一直是用户最关心的话题之一,因此对互联网安全的研究从未停止。互联网服务平台为了保障平台信息或数据的安全性,往往需要对用户的访问或登录等行为进行合法性验证,通过用户注册平台时为用户自动分配或由用户选定的id(账号)以及安全验证信息对用户进行验证的方式是比较常见的验证方式,例如:阿里云用户可以通过自己的云账号以及密钥访问阿里云平台,从而获取该账户对应的权限;其中,安全验证信息是与用户id相对应的,用户所持有的专用验证信息,因此安全验证信息是一种重要的敏感信息。由于密钥具有结构简单、生成方便、安全性高、随机性等优点,因此将密钥作为安全验证信息来对用户进行验证是一种普遍的应用。

但是,由于一些原因,有很多密钥的明文被暴露在公开平台(例如,技术网站或代码平台等)中,当互联网中的其他用户获取到该明文密钥(可认为是未加密的密钥原文,即密钥本身)后,便可能会恶意利用密钥访问用户的平台账户,对用户账户中的数据资源造成安全威胁,因此,需要及时对公开平台中的密钥进行检测,从而进一步推动公开平台的整改,例如:将公开的密钥报告给平台,以便平台对公开的密钥进行加密或隐藏处理。

现有技术中,一般是通过正则匹配及逻辑校验的方式对公开平台中的密钥进行检测,然而密钥的种类很多,且部分密钥并没有明显的正则特征和校验逻辑,由于这部分密钥的正则规律较弱,也没有校验位可供校验,因此现有的通过正则匹配及逻辑校验来识别密钥的方式,其检测识别的准确率并不高。另外,现有技术中还可以通过密钥库匹配的方式进行检测,但由于密钥库作为高度敏感的数据并不容易获取,即使能够获取相关数据,一旦发生数据泄露也容易被黑客等恶意利用,所以风险也很高,导致密钥检测的安全性降低。

因此,针对现有的密钥检测方法,需要提供一种对于正则规律较弱、没有校验机制的密钥,能够提高对其进行检测识别的准确性,避免密钥库发生数据泄露的风险,并可以提升密钥检测安全性的密钥检测方法。

需要说明的是,本说明书实施例可以针对暴露在公开平台中的密钥进行提取和检测,一般来说公开平台可以是对用户所开放的平台,即用户可以进行访问的平台,用户既可以是互联网中的任意用户,也可以是特定的用户群体,例如用户群体为后台开发人员,此时针对后台开发人员所公开的平台,也可以认为是公开平台或公共平台。其次,公开平台可以是包含有内容(如字符内容)的对用户开放的平台,该平台可以是网站、电脑客户端、手机应用、小程序等用于内容发布的平台,例如:社交网站、公众号平台、购物平台、技术网站、代码平台等。被暴露在公开平台中的密钥既可以是一些有较强正则规律的密钥(可以认为是一般密钥),也可以是一些正则规律较弱的密钥,可以将正则规律较弱、缺乏校验机制的密钥称为纯随机密钥,即这类密钥除本身具有的随机性外,密钥之间也具有较强的随机性。本说明书以下实施例是以在技术网站或代码平台中提取和检测纯随机密钥作为应用场景来描述的,当然,本说明书实施例也适用于一般密钥的检测,并且对于公开平台中既包含一般密钥又包含纯随机密钥的情形也依然适用,以上应用场景不构成对本申请技术方案的限定。

基于上述场景,下面对本说明书的方案进行详细说明。

图1为本说明书实施例提供的一种密钥检测方法的流程示意图,该方法具体可以包括以下步骤:

在步骤s110中,根据预定的提取规则从文本中提取出一个或多个目标字符串,所述预定的提取规则为根据预定的密钥类型所生成的规则。

在本说明书一个或多个实施例中,由于被检测对象是平台或网站,因此在正式检测之前需要对平台或网站的内容进行提取,具体地,可以先从待检测的目标平台或目标网站中获取一个或多个页面,再将页面所包含的内容转换成文本,从而实现对网站内容的爬取,然后基于爬取到的文本内容对目标平台或网站中的密钥进行检测。

进一步地,在获取上述文本之后,可以根据预定的提取规则从文本中提取出一个或多个目标字符串,预定的提取规则可以为根据预定的密钥类型所生成的规则。在实际应用中,由于本说明书实施例可以针对纯随机密钥进行检测,并且对纯随机密钥进行检测依然有较高的准确性,因此预定的密钥类型可以是纯随机密钥所对应的密钥类型。所述的提取规则可以是根据预定的密钥类型生成的与密钥类型相对应的第一正则表达式,并将第一正则表达式作为密钥类型的提取规则。

密钥是由平台系统或密钥生成系统根据某些算法所生成的字符串,且一般来说一个密钥对应一个字符串,所以密钥也可以称为密钥字符串;另外,密钥是按照一定规律生成的字符串,因此,同一算法所生成的密钥之间具有一定的正则规律,且密钥本身便具备一定的正则特征,基于同一类型密钥之间的正则规律或者密钥本身的正则特征,即可生成与特定密钥类型相对应的正则表达式。正则表达式是对字符串操作的一种逻辑公式,可以采用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”可用来表达对字符串的一种过滤逻辑。

在本说明书一个或多个实施例中,可以基于密钥的类型对文本中的疑似密钥进行检测,也就是说可以按照所需要检测的密钥类型对文本进行密钥检测,因此,上述预定的密钥类型也可以是本次需要检测的密钥类型或者待检测的密钥类型。在预先确定本次需要检测的密钥类型后,便可以生成与预先确定的密钥类型相对应的正则表达式,该正则表达式可以视为第一正则表达式。在利用第一正则表达式从文本中提取目标字符串时,可以利用第一正则表达式在文本中进行搜索或匹配,将符合第一正则表达式的过滤逻辑的字符串提取出来,并将其作为进一步处理的目标字符串。

下面以一个具体应用场景为例,对利用提取规则从文本中提取目标字符串的过程进行描述,以oss系统为例,oss系统根据内部设定的生成算法生成密钥(如oss密钥),根据oss密钥所具有的正则规律或正则特征,即可生成与oss密钥相对应的正则表达式(即第一正则表达式),例如oss密钥对应的第一正则表达式为:″(^|[^a-za-z0-9]+)([a-za-z0-9]{30})([^a-za-z0-9]+|$)″,该正则表达式所包含的逻辑规则为30位的数字加英文的连续字符串;基于上述第一正则表达式对文本进行搜索,对文本中所公开的字符串进行匹配,从而将符合第一正则表达式的过滤逻辑的字符串提取出来,并将其作为待处理的目标字符串。

经过步骤s110的操作,由于使用待检测密钥类型所对应的正则表达式作为提取规则从文本中提取目标字符串,而当待检测密钥类型是纯随机密钥所对应的密钥类型时,虽然纯随机密钥也通常具有一定的位数格式,这种位数格式也可以视为是一种正则特征,但是这种正则特征不够明显,因此正则规律也较弱;此时,根据这种密钥类型所生成的正则表达式进行字符串提取时,会产生大量的误报,可能提取出一些非密钥的字符串。因此,对于纯随机密钥来说,很难利用其对应的正则表达式将其完全辨识出来,所以可以对提取出来的目标字符串执行进一步操作,以便从中筛选出疑似密钥所对应的字符串。

在步骤s120中,对所述目标字符串执行检测操作,以便从所述目标字符串中筛选出待确定密钥所对应的字符串。

在本说明书一个或多个实施例中,由于密钥本身就具有一定的随机性,因此密钥字符串也并非是有序排列的,正是基于密钥本身的这一特性,对提取出来的目标字符串进行筛选,便可以进一步排除非密钥的字符串,得到疑似密钥的字符串(也即疑似密钥),所以对目标字符串执行检测操作得到疑似密钥的过程,也可以称为随机性检测。

进一步地,在本说明书实施例中,可以采用以下方式对目标字符串进行随机性检测,具体过程可以包括以下内容:

通过对目标字符串进行计算得到目标字符串的信息熵,将信息熵大于预设阈值的目标字符串作为待确定密钥所对应的字符串。

具体地,可以基于香农信息熵的计算公式对由步骤s110提取出来的目标字符串分别计算其各自对应的信息熵,信息熵是用于度量信息量的一个概念,可以用它来描述信息的不确定度或随机性,一个系统越是有序,其信息熵就越低。所以通过计算目标字符串的信息熵,并将信息熵与预设阈值进行比较,从而判断目标字符串的随机性,当目标字符串的信息熵大于预设阈值时,说明对应目标字符串的随机性就越大,目标字符串属于密钥的可能性也就更高,因此,可以将信息熵大于预设阈值的目标字符串作为疑似密钥字符串,即待确定密钥(疑似密钥)所对应的字符串。

需要说明的是,本说明书具体实施例是通过对目标字符串的信息熵进行比较实现目标字符串的随机性检测,但是本说明书实施例不限于这一种检测方式,其他基于随机性判断的检测方法也同样适用于本方案,例如通过计算困惑度ppl或者是通过神经网络模型来检测。

在步骤s130中,利用预定的搜索方式对所述文本进行搜索,得到待确定账户标识所对应的字符串。

在本说明书一个或多个实施例中,虽然密钥属于敏感信息,其公开后容易被恶意利用,并且对于部分密钥(纯随机密钥)来说,本身的正则规律较弱,因此很难通过正则匹配的方式准确地识别出来,密钥库匹配的方式风险很高。然而对于账户标识来说,一般是可公开的信息且普遍具有较强的正则特征,因此对于账户标识可以通过正则匹配和/或id库扫描的搜索方式,从文本中提取出待确定账户标识(即疑似id)所对应的字符串。上述账户标识可用于标识某个用户,即账户标识包括用户id,为便于描述可用id表示账户标识。

下面对上述两种搜索方式进行详细描述,具体地:

方式一:利用预定的第二正则表达式对文本进行搜索,其中,第二正则表达式为确定密钥类型所对应的账户标识类型,并根据账户标识类型所生成的正则表达式;

方式二:利用预定的账户标识库对文本进行检测,其中,账户标识库由账户标识所依赖的系统产生的账户标识组成。

进一步地,在第一种方式中,通过生成的第二正则表达式在文本中进行搜索,将符合第二正则表达式的过滤逻辑的字符串提取出来,并将提取出来的字符串作为待确定账户标识所对应的字符串;其中,第二正则表达式是根据账户标识的类型所生成的,由于不同类型的密钥对应着不同类型的id,而本说明书实施例又是基于预定的密钥类型进行检测的,因此为生成第二正则表达式,需要根据密钥类型确定与之相关的id所对应的类型,并根据id类型生成第二正则表达式,例如根据id类型所生成的第二正则表达式为ltai[0-9a-za-z]{12}。

在第二种方式中,由于id和密钥是其所依赖的系统生成的,因此可以从生成id的系统中获取其中的id组成id库,利用id库扫描文本,从文本中检测出已有的id,例如:当用户注册阿里云平台时,系统会为该用户自动分配一个id及密钥,将所有或部分阿里云平台中的用户id组成id库。

需要说明的是,现实应用中可以采用上述任意一种或两种相结合的搜索方式对文本进行搜索,至于采取何种方式,可根据预先设置的搜索条件进行判断,例如对于正则特征比较多的id来说可以采用正则匹配的方式进行搜索,对于正则特征比较少的id可以采用id库扫描的方式进行搜索。

在步骤s140中,获取与所述待确定密钥以及待确定账户标识分别对应的一个或多个特征数据,所述特征数据用于表示所述待确定密钥与待确定账户标识之间的关联关系。

在本说明书一个或多个实施例中,由于id和密钥需要结合在一起才能使用,因而id和密钥之间会存在着一定的关联性,通过分析id与密钥之间的关联性,获取与id、密钥相对应的用于表示关联性的数据(即特征数据),从而表示id与密钥之间的关联关系,即id与密钥能否结合使用。

进一步地,在本说明书实施例中,可以用来表示id与密钥之间关联关系的关联特征所对应的特征数据,均可以作为本说明书实施例中的特征数据来应用。在实际应用中,特征数据包括但不限于:位置特征数据、文本特征数据、文档的标题、代码里的注释;id及密钥所对应的特征数据可以是上述特征数据中的一种或几种。下面以特征数据包括位置特征数据和文本特征数据中的至少一种作为应用场景来详细描述,具体地:

获取与待确定密钥以及待确定账户标识分别对应的位置特征数据;和/或,获取与待确定密钥以及待确定账户标识分别对应的文本特征数据。

其中,对于位置特征数据来说,可采用以下方式获取与待确定密钥以及待确定账户标识分别对应的位置特征数据,具体地:

在根据预定的提取规则从文本中提取出一个或多个目标字符串时,获取目标字符串的位置特征数据,并在利用预定的搜索方式对文本进行搜索时,获取待确定账户标识的位置特征数据。

进一步地,可以将文本中距离最近的两个字符串认为是一套id和密钥的组合,文本中的id与密钥之间的距离可以表示id、密钥在文本中的位置关系,因此这种位置关系可以作为id、密钥之间的位置关联特征,位置关联特征所对应的数据即作为位置特征数据,位置特征数据包括但不限于待确定密钥以及待确定账户标识在文本中的具体位置的数据,以及待确定密钥与待确定账户标识在文本中的距离数据,例如:id1与密钥a在文本中间隔的字符数量最少或者在文本中的位置最接近,便可以认为id1与密钥a之间能够组成id、密钥对的可能性较大。

在现实应用中,可以在正则匹配的时候将位置特征数据直接提取出来,因此在利用正则表达式从文本中提取或搜索字符串时,可以分别将疑似密钥以及疑似id的位置特征数据提取出来,例如:在步骤s110中利用第一正则表达式从文本中提取目标字符串时,提取目标字符串对应的位置特征数据,其中也包括了疑似密钥对应的位置特征数据;在步骤s130中利用第二正则表达式对文本进行搜索时,提取疑似id所对应字符串的位置特征数据。

另外,对于文本特征数据来说,可采用以下方式获取与待确定密钥以及待确定账户标识分别对应的文本特征数据,具体地:

获取待确定密钥以及待确定账户标识在文本中的位置,根据待确定密钥的位置利用预定的第三正则表达式提取待确定密钥的上下文字符串,并根据待确定账户标识的位置利用预定的第四正则表达式提取待确定账户标识的上下文字符串;分别计算待确定密钥的上下文字符串与待确定账户标识的上下文字符串之间的编辑距离,将编辑距离作为待确定密钥或待确定账户标识的文本特征数据。

进一步地,除了利用位置关联特征表示文本中id与密钥之间的关联关系外,还可以通过上下文语义来判断它们之间的关联关系,即可以认为上下文语义相当的id与密钥之间组成id、密钥对的可能性较大。因此,可以将上下文关联特征所对应的数据作为文本特征数据,文本特征数据包括但不限于上下文字符串的编辑距离,例如:获取文本中疑似id和疑似密钥分别对应的上下文字符串为accessid=、accesskey=;通过计算字符串“accessid=”与“accesskey=”之间的编辑距离(即计算字符串的相似度),从而得到疑似id和疑似密钥的文本特征数据。

在本说明书一具体实施例中,上下文字符串可以指文本中疑似id或疑似密钥的前方(上文)或后方(下文)连续的若干个字符所组成的字符串;因此,在获取疑似id或疑似密钥的上下文字符串时,需要确定疑似id或疑似密钥在文本中的位置,即对疑似id或疑似密钥进行定位,比如某疑似密钥在文本的第l行中第n到m个字符之间。由于前述实施例中的位置特征数据包含疑似id或疑似密钥在文本中的具体位置,因此可以基于前述的位置特征数据来确定疑似id或疑似密钥在文本中的位置,也可以单独获取疑似id或疑似密钥在文本中的位置。在确定了疑似id或疑似密钥在文本中的位置后,可以在其对应位置前后的上下文中利用正则表达式去进行匹配,以便提取疑似id或疑似密钥对应的上下文字符串,例如可以利用以下正则表达式提取:″^([^-a-za-z0-9.]+)([-_a-za-z0-9.]{1,70})([^-_a-za-z0-9.]+|$)″。

值得说明的是,本说明书以上实施例中的第一正则表达式、第二正则表达式、第三正则表达式以及第四正则表达式,仅用于区分针对不同处理对象时所采取的特定表达式,既不表示它们之间的顺序或主次,也不必然表示差异,以上正则表达式既可以相同也可以不同。

在步骤s150中,根据所述特征数据将所述待确定密钥与待确定账户标识进行匹配,得到所述待确定密钥的匹配分值,基于所述匹配分值确定与所述密钥类型相对应的密钥,以便实现密钥的检测。

在本说明书一个或多个实施例中,通过执行步骤s110-步骤s140的操作后,可获取文本中疑似id、疑似密钥以及其各自分别对应的特征数据,由于特征数据可用于表示疑似id和疑似密钥之间的关联性,因此通过将疑似id和疑似密钥进行特征数据之间的匹配,即可判断疑似id与疑似密钥之间构成id、密钥对的概率,从而间接判断疑似密钥是否为真实密钥。根据特征数据将待确定密钥与待确定账户标识进行匹配,也可以认为是将待确定密钥与待确定账户标识各自对应的特征数据之间进行匹配。

进一步地,在本说明书实施例中,可以直接按照顺序进行特征数据之间的匹配,也可以采取穷举解空间的方式进行匹配,另外,为了提升匹配结果的准确性和匹配效率,还可以通过密钥、id检测模型(即匹配模型)、匹配算法或者策略算法判断某疑似id和某疑似密钥能够组成id、密钥对的概率,并产出最优的id、密钥对的结果。下面对采取匹配模型或匹配算法对疑似id和疑似密钥进行匹配实现密钥判断的过程进行说明如下:

将待确定密钥、待确定账户标识以及各自分别对应的特征数据输入到预定的匹配模型或匹配算法中,得到待确定密钥的匹配分值,将匹配分值与预设分值进行比较,将大于预设分值的匹配分值所对应的待确定密钥作为与密钥类型相对应的密钥。

在实际应用中,可以采用不同的匹配模型或匹配算法,能够实现目标匹配的算法或模型均可以作为本说明书实施例中的匹配模型或匹配算法,比如采用的匹配算法为gale-shapley算法。通过将获取到的疑似密钥、疑似id以及其分别对应的特征数据(如位置特征数据和/或文本特征数据)作为gale-shapley算法的输入,经过gale-shapley中采用的算法策略,输出得到疑似密钥与疑似id的匹配结果及匹配分值(或者配对概率),其中匹配结果包括id、密钥对,将匹配分值或配对概率与预设分值或概率进行比较,将匹配分值或配对概率较高的id、密钥对中的密钥视为与预定的密钥类型相对应的密钥,即视为真实密钥。

下面以一个具体应用场景为例,对本说明书实施例中基于疑似密钥、疑似id以及其分别对应特征数据之间的匹配来实现密钥检测的过程进行描述,参见图2,该图示出了本说明书实施例提供的一种具体实施场景下的密钥检测流程示意图,主要包括以下内容:

首先,从目标平台或网站中提取文本,之后一方面,从文本中进一步提取出目标字符串并计算目标字符串的信息熵,将信息熵大于预设阈值的目标字符串作为疑似密钥对应的字符串,从而筛选出疑似密钥,例如筛选出疑似密钥a、疑似密钥b和疑似密钥c;另一方面,采用正则匹配和/或id库扫描的方式对文本进行搜索得到疑似id,例如包括疑似id1、疑似id2和疑似id3;进一步地,获取疑似密钥a、疑似密钥b、疑似密钥c以及疑似id1、疑似id2、疑似id3分别对应的位置特征数据和文本特征数据,将上述疑似密钥、疑似id以及各自对应的位置特征数据和文本特征数据输入到密钥、id检测模型中,输出得到id、密钥的配对结果,例如配对结果为:(疑似id1、疑似密钥a),(疑似id2、疑似密钥b),(疑似id3、疑似密钥c);最后,通过将各id、密钥对的配对概率与预设概率进行比较,从而判断哪些疑似密钥可能为真实密钥,例如经过判断确定疑似密钥c为真实密钥,输出被公开密钥为密钥c的检测结果。

通过本说明书以上实施例内容,利用随机性检测的方式初步筛选出疑似密钥,并采用正则匹配及id库扫描的方式提取出疑似id,因此对于缺乏正则特征和校验逻辑的密钥,也能够保持较高的检测识别准确性;而且由于采用的是id库扫描的方式,因而不需要获取密钥库,避免了密钥库发生数据泄露的风险,提升了密钥检测的安全性;另外,通过对疑似密钥和疑似id的关联性分析所得到的特征数据,根据所述特征数据对疑似密钥与疑似id之间进行配对,并根据配对概率判断疑似密钥是否为真实密钥,从而进一步提升了密钥检测的准确性。

值得说明的是,在本说明书上述公开实施例的基础上,在考虑实际解决技术问题时,可将步骤s110-步骤s120组成一个完整的技术方案,此时,由步骤s120从目标字符串中筛选出的待确定密钥所对应的字符串,将所述待确定密钥所对应的字符串作为密钥字符串(即作为真实密钥),并输出真实密钥。该技术方案所对应实施例与上述步骤中的实施例内容相同,因此不再赘述。

基于同样的思路,本说明书实施例还提供了一种密钥检测装置,如图3为本说明书实施例提供的一种密钥检测装置,该装置300主要包括:

提取模块301,用于根据预定的提取规则从文本中提取出一个或多个目标字符串,所述预定的提取规则为根据预定的密钥类型所生成的规则;

检测模块302,用于对所述目标字符串执行检测操作,以便从所述目标字符串中筛选出待确定密钥所对应的字符串;

搜索模块303,用于利用预定的搜索方式对所述文本进行搜索,得到待确定账户标识所对应的字符串;

获取模块304,用于获取与所述待确定密钥以及待确定账户标识分别对应的一个或多个特征数据,所述特征数据用于表示所述待确定密钥与待确定账户标识之间的关联关系;

匹配模块305,用于根据所述特征数据将所述待确定密钥与待确定账户标识进行匹配,得到所述待确定密钥的匹配分值,基于所述匹配分值确定与所述密钥类型相对应的密钥,以便实现密钥的检测。

根据本申请的实施例,在所述装置中,所述提取模块301还用于:

根据预定的提取规则从文本中提取出一个或多个目标字符串之前,从目标平台或目标网站中获取一个或多个页面,并将所述页面中的内容转换成文本。

根据本申请的实施例,在所述装置中,所述检测模块302具体用于:

通过对所述目标字符串进行计算得到所述目标字符串的信息熵,将所述信息熵大于预设阈值的目标字符串作为待确定密钥所对应的字符串。

根据本申请的实施例,在所述装置中,所述搜索模块303还用于:

利用预定的第二正则表达式对所述文本进行搜索,其中,所述第二正则表达式为确定所述密钥类型所对应的账户标识类型,并根据所述账户标识类型所生成的正则表达式;

和/或,

利用预定的账户标识库对所述文本进行检测,其中,所述账户标识库由账户标识所依赖的系统产生的账户标识组成。

根据本申请的实施例,在所述装置中,所述特征数据包括位置特征数据和文本特征数据中的至少一种,所述获取模块304具体用于:

获取所述待确定密钥以及待确定账户标识的位置特征数据;和/或,获取所述待确定密钥以及待确定账户标识的文本特征数据。

根据本申请的实施例,在所述装置中,所述获取模块304进一步用于:

在根据预定的提取规则从文本中提取出一个或多个目标字符串时,获取所述目标字符串的位置特征数据,并在利用预定的搜索方式对所述文本进行搜索时,获取所述待确定账户标识的位置特征数据。

根据本申请的实施例,在所述装置中,所述获取模块304进一步用于:

确定所述待确定密钥以及待确定账户标识在所述文本中的位置,根据所述待确定密钥的位置利用预定的第三正则表达式获取所述待确定密钥的上下文字符串,并根据所述待确定账户标识的位置利用预定的第四正则表达式获取所述待确定账户标识的上下文字符串;

分别计算所述待确定密钥的上下文字符串与所述待确定账户标识的上下文字符串之间的编辑距离,将所述编辑距离作为所述待确定密钥或待确定账户标识的文本特征数据。

根据本申请的实施例,在所述装置中,所述匹配模块305具体用于:

将所述待确定密钥、待确定账户标识以及各自分别对应的特征数据输入到预定的匹配模型或匹配算法中,得到所述待确定密钥的匹配分值,将所述匹配分值与预设分值进行比较,将大于预设分值的匹配分值所对应的待确定密钥作为与所述密钥类型相对应的密钥。

本说明书实施例还提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述一种密钥检测方法。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书实施例提供的装置、电子设备、非易失性计算机存储介质与方法是对应的,因此,装置、电子设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、电子设备、非易失性计算机存储介质的有益技术效果。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(comelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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