基于终端指纹的终端认证方法及系统与流程

文档序号:35926741发布日期:2023-11-04 18:35阅读:45来源:国知局
基于终端指纹的终端认证方法及系统与流程

本发明属于信息安全,具体涉及一种基于终端指纹的终端认证方法及系统。


背景技术:

1、安全认证是保证信息安全的重要技术之一。目前,认证凭据生成方案主要是传统的密码、密钥对和数字证书等方案。其中,密码是最常见的认证凭据之一,用户通过选择或设置一个用于认证的字符串作为密码;但是,密码方案往往存在弱密码、密码重用、密码管理困难等问题。密钥对认证方案,一般使用公钥和私钥对进行认证;公钥用于加密数据,私钥用于解密和签名;但是,密钥对方案的问题包括密钥管理困难、信任链问题等。而在数字证书方案中,存在数字证书颁发机构签名验证的过程;但是,数字证书也存在证书管理复杂、私钥安全性、ca信任等问题。

2、目前也存在提取终端静态属性生成认证凭据的方法,能够避免秘钥管理等问题。但大多为提取单一属性,存在安全性和可靠性的问题。安全性方面,由于终端硬件属性是静态的,因此容易受到攻击。例如,攻击者可以使用恶意软件来窃取这些信息,单一属性被成功窃取的可能性更大。可靠性方面,由于终端硬件属性是固定的,因此一旦有调整会导致原有认证凭据失效。例如,终端的某个硬件损坏进行更换或者配置变更等,而终端本体并未变更,影响可靠性。


技术实现思路

1、本发明的目的之一在于提供一种可靠性高、准确性好且安全稳定的基于终端指纹的终端认证方法。

2、本发明的目的之二在于提供一种实现所述基于终端指纹的终端认证方法的系统。

3、本发明提供的这种基于终端指纹的终端认证方法,包括如下步骤:

4、s1.选定若干终端;

5、s2.采集步骤s1选定的终端的软硬件信息,并处理得到终端软硬件指纹;

6、s3.根据步骤s2得到的终端软硬件指纹,合成终端指纹;

7、s4.基于步骤s3得到的终端指纹,训练自编码器,并根据自编码器的损失值设定阈值;

8、s5.采集待认证终端的软硬件信息,并处理得到待认证终端的软硬件指纹;

9、s6.将步骤s5得到的待认证终端的软硬件指纹,合成待认证终端的终端指纹;

10、s7.将步骤s6得到的待认证终端的终端指纹输入到训练后的自编码器中,并根据自编码器的损失值与设定的阈值之间的关系,完成待认证终端的认证判定。

11、步骤s2所述的采集步骤s1选定的终端的软硬件信息,并处理得到终端软硬件指纹,具体包括如下步骤:

12、通过编程语言中的接口,采集终端的软硬件信息;所述的接口包括platform接口、wmi接口、psutil接口和subprocess接口;

13、对于选定的终端:

14、若终端为window操作系统的终端,则采集cpu的cpu序列号、内存的uuid值、硬盘的序列号、主板的序列号和bios的uuid信息,作为终端的软硬件信息;

15、若终端为andriod操作系统的终端,则采集android id值、pseudo id值和uuid值作为终端的软硬件指纹。

16、步骤s3所述的根据步骤s2得到的终端软硬件指纹,合成终端指纹,具体包括如下步骤:

17、根据步骤s2得到的终端软硬件指纹,将终端的软硬件指纹进行拼接,得到终端指纹,创建对应的ascii字符和索引字典;具体地,创建一个空字典,用于存储每个字符对应的索引值;遍历所有可打印的ascii字符,为每个字符分配一个唯一的索引值,并将字符和索引存储到字典中;

18、遍历数据库中的硬件指纹,找到最长的硬件指纹,并记录其长度作为最大长度;创建一个形状为(指纹数量,最大长度,字符集大小)的零数组,用于存储one-hot编码。

19、对于每个硬件指纹id,将其转化为一个字符列表;遍历字符列表中的每个字符;使用字符和索引的字典查找字符对应的索引值;将零数组中相应的位置设置为1,表示该字符的one-hot编码。

20、将零数组转化为张量,以便作为自编码器的输入。使用这些编码张量来训练自编码器模型。

21、步骤s4所述的基于步骤s3得到的终端指纹,训练自编码器,并根据自编码器的损失值设定阈值,具体包括如下步骤:

22、所述的自编码器包括编码器和解码器;

23、所述的编码器用于将输入数据映射到低维度空间;编码器第一全连接层用于将输入数据进行线性变换,将输入大小由101降维度至64的中间表示空间;第一全连接层的参数包括权重和偏置,通过学习进行调整,以最大程度地捕捉输入数据的重要特征;编码器relu层用于引入非线性激活函数,以增加模型的表达能力;relu函数将负输入值设为零,并保留正输入值不变,从而使得编码器能够学习更复杂的特征表示,并提高模型的非线性拟合能力;编码器第二全连接层将中间表示空间的64维映射到编码空间12维,第二全连接层接收来自relu层的输出,并压缩为更低维度的编码表示;第二全连接层的参数通过学习进行调整,以最好地保留输入数据的特征;

24、所述的解码器用于将编码器输出的低维度空间数据恢复到原始的高维度;解码器第一全连接层用于将编码器输出的低维度编码数据进行线性变换,映射回原始的高维度空间;第一全连接层的参数与编码器第二全连接层的参数相反,第一全连接层的参数通过学习进行调整,以尽可能准确地重构输入数据;解码器relu层引入非线性激活函数,以增加模型的表达能力;解码器relu层接收来自解码器第一全连接层的输出,并将负输入值设为零,保留正输入值不变;解码器第二全连接层将relu层的输出映射回原始的高维度空间;解码器第二全连接层接收来自解码器relu层的输出,并转换为与输入数据具有相同维度的重构数据;解码器第二全连接层的参数通过学习进行调整,以最大限度地减小重构数据与原始输入数据之间的差异;

25、在训练时,设定对应的学习率、权重衰减率和迭代轮数;采用均方误差损失函数作为整体损失函数;采用adam优化算法对自编码器的模型参数进行优化;

26、根据最终得到的自编码器所对应的整体损失函数的值,设定对应的阈值。

27、步骤s5所述的采集待认证终端的软硬件信息,并处理得到待认证终端的软硬件指纹,具体包括如下步骤:

28、通过编程语言中的接口,采集待认证终端的软硬件信息;所述的接口包括platform接口、wmi接口、psutil接口和subprocess接口;

29、对于待认证终端:

30、若待认证终端为window操作系统的终端,则采集cpu的cpu序列号、内存的uuid值、硬盘的序列号、主板的序列号和bios的uuid信息,作为待认证终端的软硬件信息;

31、若待认证终端为andriod操作系统的终端,则采集android id值、pseudo id值和uuid值作为待认证终端的软硬件指纹。

32、步骤s6所述的将步骤s5得到的待认证终端的软硬件指纹,合成待认证终端的终端指纹,具体包括如下步骤:

33、对步骤s5得到的待认证终端的软硬件指纹进行判断:

34、若不存在缺失数据,则采用与步骤s3相同的技术方案,将待认证终端的软硬件指纹合成待认证终端的终端指纹;

35、若存在缺失数据,则采用基于马尔科夫链的指纹生成算法生成符合规律的指纹,并将生成后的待认证终端的软硬件指纹,采用与步骤s3相同的技术方案,合成待认证终端的终端指纹。

36、所述的基于马尔科夫链的指纹生成算法,具体包括如下步骤:

37、将步骤s5得到的待认证终端的软硬件指纹转换为数值向量表示,将采集的指纹按照特定的顺序组合成一个字符序列,使用特定的分隔符来分隔不同的特征;对于缺失的指纹信息,使用特殊字符表示;

38、构建一个马尔科夫链模型,用于描述字符之间的转移关系:

39、根据步骤s3得到的终端指纹,采集一批终端指纹建立指纹特征库,这个库包含各个指纹特征;

40、统计转移频次:利用指纹特征库中的数据,统计每个字符与其后继字符之间的转移频次,包括缺失信息的转移;记录每个字符作为当前状态,转移到下一个字符的频次;

41、补充缺失信息:对于缺失的指纹信息,随机选择指纹特征库中同类型指纹的第一个字符来进行补充;对于其他缺失的字符,使用转移概率矩阵生成;

42、构建转移概率矩阵:根据转移频次,计算每个字符作为当前状态,转移到下一个字符的概率;将得到的概率组织成一个转移概率矩阵,其中每一行代表当前状态,每一列代表下一个可能的状态,矩阵中的元素表示从当前状态转移到下一个状态的概率;

43、生成指纹数据:选择一个初始状态作为起点;根据转移概率矩阵,从当前状态转移到下一个状态的概率分布中随机选择一个状态作为下一个字符;如果选择的字符是缺失信息的特殊字符,则使用补充的字符进行替换;将选择的字符添加到生成的指纹数据中,并将其作为新的当前状态,重复这个过程,直至生成所需长度的指纹数据。

44、步骤s7所述的将步骤s6得到的待认证终端的终端指纹输入到训练后的自编码器中,并根据自编码器的损失值与设定的阈值之间的关系,完成待认证终端的认证判定,具体包括如下步骤:

45、将步骤s6得到的待认证终端的终端指纹输入到训练后的自编码器中,并计算自编码器的损失值;

46、对损失值和阈值进行大小判定:

47、若损失值小于或等于阈值,则认定待认证终端的终端指纹为已有指纹,认证通过;

48、若损失值大于阈值,则认定待认证终端的终端指纹为新指纹,认证失败。

49、本发明还提供了一种实现所述基于终端指纹的终端认证方法的系统,包括数据获取模块、指纹获取模块、指纹合成模块、阈值设定模块、指纹采集模块、指纹处理模块和指纹认证模块;数据获取模块、指纹获取模块、指纹合成模块、阈值设定模块、指纹采集模块、指纹处理模块和指纹认证模块依次串联;数据获取模块用于选定若干终端,并将数据上传指纹获取模块;指纹获取模块用于根据获取的数据,采集选定的终端的软硬件信息,并处理得到终端软硬件指纹,并将数据上传指纹合成模块;指纹合成模块用于根据获取的数据,合成终端指纹,并将数据上传阈值设定模块;阈值设定模块用于根据获取的数据,基于得到的终端指纹训练自编码器,并根据自编码器的损失值设定阈值,并将数据上传指纹采集模块;指纹采集模块用于根据获取的数据,采集待认证终端的软硬件信息,并处理得到待认证终端的软硬件指纹,并将数据上传指纹处理模块;指纹处理模块用于根据获取的数据,将得到的待认证终端的软硬件指纹,合成待认证终端的终端指纹,并将数据上传指纹认证模块;指纹认证模块用于根据获取的数据,将得到的待认证终端的终端指纹输入到训练后的自编码器中,并根据自编码器的损失值与设定的阈值之间的关系,完成待认证终端的认证判定。

50、本发明提供的这种基于终端指纹的终端认证方法及系统,采集终端的多种软硬件信息,并综合生成终端指纹,能够更全面地描述终端特征;通过自编码器对指纹进行训练和认证,可以有效捕捉指纹中的特征,提高了认证的准确性;综合多种软硬件信息生成的终端指纹具有较高的唯一性和稳定性,避免了单一属性重复带来的问题,能够减少误认及无法认证情况的发生;同时,引入马尔科夫链生成相似规律的属性指纹,解决了部分属性采集失败无法认证的问题,提升了可靠性;采用one-hot编码将终端指纹转换为数值向量并存储,能够有效防止指纹信息的篡改和伪造;通过设置阈值进行认证判断,可以减少对伪造指纹的容忍度,增加了系统的安全性;因此本发明不仅能够完成终端设备的认证,而且可靠性高、准确性好且安全稳定。

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