一种基于区块链的SBOM标识聚类模型实现方法技术

技术编号:37146644 阅读:17 留言:0更新日期:2023-04-06 21:58
本发明专利技术属于数据处理领域,涉及一种基于区块链的SBOM标识聚类模型实现方法:获取本地软件物料清单SBOM;构建本地软件物料清单SBOM的MerkleTrees结构体;根据本地软件物料清单SBOM中的DocumentName数据项在远端数据库中查询出相应的远端软件物料清单SBOM,构建远端软件物料清单SBOM的MerkleTrees结构体;计算本地软件物料清单SBOM的MerkleTrees结构体的各个节点,与远端软件物料清单SBOM的MerkleTrees结构体的相应的各个节点的相似度;求得本地软件物料清单SBOM的MerkleTrees结构体和远端软件物料清单SBOM的MerkleTrees结构体的整体相似度。本发明专利技术实现对软件的聚类。类。类。

【技术实现步骤摘要】
一种基于区块链的SBOM标识聚类模型实现方法


[0001]本专利技术属于数据处理
,具体涉及一种基于区块链的SBOM标识聚类模型实现方法。

技术介绍

[0002]软件是计算机系统设计的重要依据,具体指的是与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档以及数据,软件是用户与硬件之间的接口界面,主要负责用户与计算机之间的交流。一个软件通常都对应有一个SBOM清单,SBOM清单包含了软件的组件信息,由第三方开源库组件、供应商提供的软件组件和企业自己编写的专有组件构成。然而,现有技术中缺少根据软件的SBOM清单来对软件进行聚类分析的方法,由此本专利技术提出一种基于区块链的SBOM标识聚类模型实现方法。

技术实现思路

[0003]本专利技术分别获取本地软件物料清单SBOM和远端软件物料清单SBOM,并且又分别构建本地软件物料清单SBOM的MerkleTrees结构体,以及远端软件物料清单SBOM的MerkleTrees结构体,从而计算二者的整体相似度,当整体相似度大于一定值时,将本地软件物料清单SBOM和远端软件物料清单SBOM判定为是同一类别,旨在根据软件物料清单SBOM信息对软件进行聚类处理。
[0004]为了达到上述的专利技术目的,本专利技术给出如下所述的一种基于区块链的SBOM标识聚类模型实现方法,主要包括以下的步骤:
[0005]从本地数据库获取软件的SPDX文档格式的本地软件物料清单SBOM;
[0006]基于本地软件物料清单SBOM,获取<Package>结构体的内容信息,结构体的内容信息,以及结构体的内容信息,从而构建本地软件物料清单SBOM的MerkleTrees结构体;
[0007]从本地软件物料清单SBOM读取数据项的内容信息,并且根据数据项的内容信息在远端数据库中查询出相应的远端软件物料清单SBOM,还检查本地软件物料清单SBOM的数据项的内容信息与远端软件物料清单SBOM的数据项的内容信息是否一致,若二者一致,结束步骤,若二者不一致,获取远端软件物料清单SBOM中的<Package>结构体的内容信息,结构体的内容信息,以及结构体的内容信息,从而构建远端软件物料清单SBOM的MerkleTrees结构体;
[0008]遍历本地软件物料清单SBOM的MerkleTrees结构体的各个节点,同时以相同的方法遍历远端软件物料清单SBOM的MerkleTrees结构体的相应的各个节点,若本地软件物料清单SBOM的MerkleTrees结构体的节点对应的数据项的内容信息与远端软件物料清单SBOM的MerkleTrees结构体的相应的节点对应的数据项的内容信息一致,则将两个节点的相似度设为1,若不一致,则计算两个节点的相似度;
[0009]在遍历完成本地软件物料清单SBOM的MerkleTrees结构体的各个节点,和远端软件物料清单SBOM的MerkleTrees结构体的相应的各个节点之后,针对若干个相似度采用加权求和法得到本地软件物料清单SBOM的MerkleTrees结构体和远端软件物料清单SBOM的MerkleTrees结构体的整体相似度,若整体相似度大于80%,则将本地软件物料清单SBOM和远端软件物料清单SBOM归为一类,并且将整体相似度以及远端软件物料清单SBOM的数据项的内容信息写入本地软件物料清单SBOM中的数据项。
[0010]作为本专利技术的一种优选技术方案,将整体相似度以及远端软件物料清单SBOM的数据项的内容信息写入本地软件物料清单SBOM中的数据项之后,还包括将本地软件物料清单SBOM中的不同的<Package>结构体的内容信息分别作为数据区块以形成Package的区块链进行存储,以及将本地软件物料清单SBOM中的不同的结构体的内容信息分别作为数据区块以形成File的区块链进行存储。
[0011]作为本专利技术的一种优选技术方案,向Package的区块链写入信息的值的过程,包括如下步骤:
[0012]对于Package的区块链,在需要写入信息的值的情况下,新建一个数据区块,并且将信息的值写入新的数据区块的第一数据区域和第二数据区域;
[0013]Package的区块链将其中原来的全部数据区块的二进制哈希值组成一个输入数据,并且将这个输入数据输入预设的哈希函数,并且得到哈希函数的二进制输出值,同时将哈希函数的二进制输出值等分为长度相等的若干个二进制数值;
[0014]Package的区块链统计其中原来的全部数据区块的总数量,同时使用总数量乘以预设的比例值得到固定数量,从若干个二进制数值中随机选择固定数量的二进制数值,还从File的区块链中确定出编号与被选择的二进制数值相同的数据区块,仅在Package的区块链中原来的全部数据区块,以及确定的File的区块链中的数据区块都针对新的数据区块验证通过时,把前一个数据区块的全部内容输入预设的哈希函数得到的输出结果作为新的数据区块的第一哈希值的内容,同时把前一个数据区块的除第一数据区域的内容之外的内容输入预设的哈希函数得到的输出结果作为新的数据区块的第二哈希值的内容,以将新的数据区块连接到Package的区块链上。
[0015]作为本专利技术的一种优选技术方案,向File的区块链写入信息的值的过程,包括如下步骤:
[0016]对于File的区块链,在需要写入信息的值的情况下,新建一个数据区块,并且将信息的值写入新的数据区块的第一数据区域和第二数据区域;
[0017]File的区块链将其中原来的全部数据区块的二进制哈希值组成一个输入数据,并且将这个输入数据输入预设的哈希函数,并且得到哈希函数的二进制输出值,同时将哈希函数的二进制输出值等分为长度相等的若干个二进制数值;
[0018]File的区块链统计其中原来的全部数据区块的总数量,同时使用总数量乘以预设的比例值得到固定数量,从若干个二进制数值中随机选择固定数量的二进制数值,还从Package的区块链中确定出编号与被选择的二进制数值相同的数据区块,仅在File的区块链中原来的全部数据区块,以及确定的Package的区块链中的数据区块都针对新的数据区块验证通过时,把前一个数据区块的全部内容输入预设的哈希函数得到的输出结果作为新的数据区块的第一哈希值的内容,同时把前一个数据区块的除第一数据区域的内容之外的
内容输入预设的哈希函数得到的输出结果作为新的数据区块的第二哈希值的内容,以将新的数据区块连接到File的区块链上。
[0019]作为本专利技术的一种优选技术方案,在结束向Package的区块链写入信息的值之后,还包括如下步骤:
[0020]对于Package的区块链中的数据区块,将第一数据区域的内容进行加密处理,并且把这个数据区块的全部内容输入预设的哈希函数得到第一输出结果,还把这个数据区块的除第一数据区域的内容之外的内容输入预设的哈希函数得到第二输出结果;
[0021]确定下一个数据区块,同时获取下一个数据区块的第一哈希值的内容和第二哈希值的内容,当第一输出结果与第一哈希值的内容本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的SBOM标识聚类模型实现方法,其特征在于,包括如下步骤:从本地数据库获取软件的SPDX文档格式的本地软件物料清单SBOM;基于本地软件物料清单SBOM,获取Package结构体的内容信息,File Infomation结构体的内容信息,以及Relationships结构体的内容信息,从而构建本地软件物料清单SBOM的MerkleTrees结构体;从本地软件物料清单SBOM读取DocumentName数据项的内容信息,并且根据DocumentName数据项的内容信息在远端数据库中查询出相应的远端软件物料清单SBOM,还检查本地软件物料清单SBOM的SPDXID数据项的内容信息与远端软件物料清单SBOM的SPDXID数据项的内容信息是否一致,若二者一致,结束步骤,若二者不一致,获取远端软件物料清单SBOM中的Package结构体的内容信息,File Infomation结构体的内容信息,以及Relationships结构体的内容信息,从而构建远端软件物料清单SBOM的MerkleTrees结构体;遍历本地软件物料清单SBOM的MerkleTrees结构体的各个节点,同时以相同的方法遍历远端软件物料清单SBOM的MerkleTrees结构体的相应的各个节点,若本地软件物料清单SBOM的MerkleTrees结构体的节点对应的SPDXID数据项的内容信息与远端软件物料清单SBOM的MerkleTrees结构体的相应的节点对应的SPDXID数据项的内容信息一致,则将两个节点的相似度设为1,若不一致,则计算两个节点的相似度;在遍历完成本地软件物料清单SBOM的MerkleTrees结构体的各个节点,和远端软件物料清单SBOM的MerkleTrees结构体的相应的各个节点之后,针对若干个相似度采用加权求和法得到本地软件物料清单SBOM的MerkleTrees结构体和远端软件物料清单SBOM的MerkleTrees结构体的整体相似度,若整体相似度大于80%,则将本地软件物料清单SBOM和远端软件物料清单SBOM归为一类,并且将整体相似度以及远端软件物料清单SBOM的SPDXID数据项的内容信息写入本地软件物料清单SBOM中的Annotation数据项。2.根据权利要求1所述的一种基于区块链的SBOM标识聚类模型实现方法,其特征在于,将整体相似度以及远端软件物料清单SBOM的SPDXID数据项的内容信息写入本地软件物料清单SBOM中的Annotation数据项之后,还包括将本地软件物料清单SBOM中的不同的Package结构体的内容信息分别作为数据区块以形成Package的区块链进行存储,以及将本地软件物料清单SBOM中的不同的File Infomation结构体的内容信息分别作为数据区块以形成File的区块链进行存储。3.根据权利要求2所述的一种基于区块链的SBOM标识聚类模型实现方法,其特征在于,Package的区块链中的数据区块和File的区块链中的数据区块包括第一哈希值、第二哈希值、第一数据区域、第二数据区域的内容,其中,第一哈希值是将前一个数据区块的全部内容输入预设的哈希函数的输出结果,第二哈希值是将前一个数据区块的除第一数据区域的内容之外的内容输入预设的哈希函数的输出结果,第一数据区域用来存储需要加密存储的数据,第二数据区域用来存储普通的数据。4.根据权利要求3所述的一种基于区块链的SBOM标识聚类模型实现方法,其特征在于,向Package的区块链写入信息的值的过程,包括如下步骤:对于Package的区块链,在需要写入信息的值的情况下,新建一个数据区块,并且将信息的值写入新的数据区块的第一数据区域和第二数据区域;
Package的区块链将其中原来的全部数据区块的二进制哈希值组成一个输入数据,并且将这个输入数据输入预设的哈希...

【专利技术属性】
技术研发人员:王勇
申请(专利权)人:云加速北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1