[发明专利]一种源码编译验证方法、系统、设备和储存介质在审
申请号: | 202110028999.0 | 申请日: | 2021-01-11 |
公开(公告)号: | CN112948827A | 公开(公告)日: | 2021-06-11 |
发明(设计)人: | 应秋敏;郑基玲;王志文;吴思进 | 申请(专利权)人: | 杭州复杂美科技有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/64;G06F8/41;G06F8/52 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市西湖*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 源码 编译 验证 方法 系统 设备 储存 介质 | ||
本发明公开了一种源码编译验证方法、系统、设备和储存介质,属于计算机技术领域。本发明所公开的源码编译验证方法确定验证编译记录的请求,验证编译记录内容,上传编译记录至区块链,通过引入区块链的分布式信任机制,建立二进制文件与其源码之间的对应关系,验证二进制文件的来源,确保了二进制文件到其起源的源代码的可追溯性,同时也规避了直接使用预编译文件的安全风险,避免了编译后的二进制文件被篡改的风险。
技术领域
本发明属于计算机技术领域,尤其涉及一种源码编译验证方法、系统、设备和储存介质。
背景技术
目前,存在非常多的开源流行软件(包含开源库),它们一起组成了当今繁荣的网络世界的技术基础。如Linux、OpenSSL、gcc等开源流行软件深入到了软件世界的每一个角落。在使用这些开源软件时,一般有两种方式获取源代码的编译文件,第一种是下载源码,自行编译出二进制文件;第二种是直接使用官方提供的二进制文件。第一种方式,费时费力,需要非常深入的了解项目的编译过程,所以大部分人会选择第二种方式。然而,这样就会存在一个安全隐患:如何验证开源软件提供商发布的二进制文件就是由其代码仓库中的代码编译出来的。上述安全隐患会造成以下几种可能的风险:
1.开源项目官方的编译环境被恶意控制,导致其工具链自动的往编译好的二进制文件中插入恶意代码;
2.开源项目官方为了其自身利益,故意发布经过篡改的二进制文件。
由于每个人都可以看到开源项目的源码,所以人们往往忽视其中存在的安全风险。如此则会导致问题变得更加的严重。使用开源软件安全的方法是不直接使用预编译软件包,而是选择下载源码,自行编译。但是如上所述会花费大量时间来搭建编译环境、处理编译的依赖、解决编译中的出现的问题,效率非常低。因此,现在亟需一种能够验证源码与其二进制文件之间对应关系的方法。
发明内容
1.发明要解决的技术问题
为克服上述技术问题,本发明提供一种源码编译验证方法、系统、设备和储存介质,通过引入区块链的分布式信任机制,建立二进制文件与其源码之间的对应关系,验证二进制文件的来源。
2.技术方案
为解决上述问题本发明提供的技术方案为:
第一方面,一种源码编译验证方法,包括如下步骤:
S100、确定验证编译记录的请求,其中,所述编译记录包括编号、软件名称、软件版本、源代码地址、源代码hash值、用于存储编译结果hash值的编译结果列表、编译环境和工具链列表;
S201、读取编译记录内容;
S202、根据源代码地址下载源代码,并进行hash运算,得到第一源代码hash值;
S203、验证第一源代码hash值与编译记录中的源代码hash值是否一致,若一致则进行下一步,否则不作处理;
S204、根据编译环境和工具链列表构建编译环境;
S204、对所述源代码进行编译,得到所述源代码的二进制文件;
S205、对所述二进制文件进行hash运算,运算结果存入第一编译结果列表;
S206、验证第一编译结果列表内容与编译记录中的编译结果列表内容是否一致,若一致则向其他节点广播所述编译记录,否则不进行处理;
在步骤S206之后,区块链网络对编译记录进行共识,共识完成后将所述编译记录储存在区块链上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州复杂美科技有限公司,未经杭州复杂美科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110028999.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种市政工程用可调型道路施工警示架
- 下一篇:水处理在线监测预警系统