CN111787116B - 一种基于区块链技术的容器镜像可信认证的***与方法 - Google Patents

一种基于区块链技术的容器镜像可信认证的***与方法 Download PDF

Info

Publication number
CN111787116B
CN111787116B CN202010644383.1A CN202010644383A CN111787116B CN 111787116 B CN111787116 B CN 111787116B CN 202010644383 A CN202010644383 A CN 202010644383A CN 111787116 B CN111787116 B CN 111787116B
Authority
CN
China
Prior art keywords
mirror image
signature
image
component
block chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010644383.1A
Other languages
English (en)
Other versions
CN111787116A (zh
Inventor
潘远航
颜开
张潇
徐俊杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Daoke Digital Technology Co ltd
Original Assignee
Shanghai Daoke Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Daoke Network Technology Co ltd filed Critical Shanghai Daoke Network Technology Co ltd
Priority to CN202010644383.1A priority Critical patent/CN111787116B/zh
Publication of CN111787116A publication Critical patent/CN111787116A/zh
Application granted granted Critical
Publication of CN111787116B publication Critical patent/CN111787116B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于区块链技术的容器镜像可信认证的***与方法,***包含镜像签名注册组件、去中心化的镜像可信认证组件、镜像签名验证组件、镜像仓库;方法包含:步骤1:原作者上传镜像至镜像签名注册组件,镜像签名注册组件根据镜像计算出镜像作者信息、数字签名、镜像名称、镜像ID并整合成可信认证信息后与镜像写入去中心化的镜像可信认证组件中后将镜像与可信认证信息组合成智能合约写入区块链网络中,将镜像上传至镜像仓库内;步骤2:下载者从镜像仓库下载镜像,对镜像进行数字签名计算,并从去中心化的镜像可信认证组件中获取镜像与数字签名;步骤3:将两个数字签名进行对比验证,若相同允许镜像被使用,若不相同拒绝镜像被使用。

Description

一种基于区块链技术的容器镜像可信认证的***与方法
技术领域
本发明涉及云原生领域中,具体涉及一种基于区块链技术的容器镜像可信认证的***与方法。
背景技术
在云原生领域中,基于容器技术的应用开发和应用部署,都需要基于从远程下载的容器镜像,但是所下载的镜像的可信度认证就一个重要的安全问题,也是一个知识产权保护的问题,目前针对从镜像上传到服务器之后,到某用户下载使用该镜像之间,需要解决如何防止镜像被篡改的问题,因此本专利申请提出一种基于区块链的智能合约技术的去中心化技术,对容器镜像进行认证,该方法能够很好解决上述问题,同样的技术,同样可以对容器编排脚本也进行相应的可信认证;
Docker(应用容器引擎)镜像分发是通过远端仓库(registry)分发数据实现的,镜像发布者在本地计算机上构建容器镜像,然后将镜像推送到远程仓库,然后其他用户可以通过网络拉取镜像;
在现存的镜像仓库技术中,有如下几种安全机制来保证镜像不被篡改/进行可信认证:
1.镜像仓库提供商的镜像操作都需要用户名/密码登陆,避免镜像被人随意篡改;
2.容器镜像签名技术(Docker Content Trust),通过对镜像进行数字签名,并在镜像仓库保障镜像签名的认证;
3.镜像仓库提供商的上传/下载是通过HTTPS协议加密传输;
4.部分镜像仓库提供商也会提供基本的镜像安全扫描机制,在某种程度上能提前发现有非法植入安全风险的恶意镜像,并提示给用户;
5.镜像下载页面上,一般会有标注镜像上传的用户名,并按照例如下载量排序等,以保证最热门的镜像排列在前面;
但是现有技术方法并不是完全可靠的,对上述的安全机制,其缺点为:
1.用户名密码:弱用户名密码常容易被破解,并且仓库服务提供商的服务器也可能被恶意入侵,无法保证下载的镜像就是原始作者最开始时所上传的镜像;
2.镜像签名技术:镜像发布可以对其容器镜像进行数字签名,镜像使用者可以通过远程服务器来检验签名的完整性和发布者,首先该技术需要一个中心化的认证服务器(Docker Notary服务器)来验证,签名的公钥是被添加到Notary服务器(公证服务器),这个中心化的服务器地址有可能被恶意劫持或者被伪造,所以即使镜像内容被签名,也无法保证签名本身不被篡改;
3.HTTPS的协议在一些场景下会受到“中间人攻击”,也非绝对安全;
4.如果不被信任的、含有恶意代码的镜像被上传,虽然镜像仓库供应商有安全扫描功能,并且无法保证第一时间发现所有的恶意程序,也无法保障镜像内容的可信任和可靠性;
5.有些恶意攻击者,会上传一个与现有热门镜像同名的镜像,通过“鱼目混珠”的方式让使用者下载其镜像,因为仓库页面一般通过下载热门程度排序,剽窃者很容易通过伪造热门状况,将所剽窃的镜像排在前面位置,窃取镜像的冠名权;
关于安全信任问题:在云原生领域中,基于kubernetes或docker的应用开发和部署过程中,都需要去远端下载镜像,安全性非常重要,而镜像的可信度从根本上决定应用的安全性,但是基于容器的安全领域,在业界尚未成熟;
应用开发阶段:基于容器化的开发过程中,都会基于从云上的镜像仓库中获取的基础镜像,在其之上迭加业务逻辑,当未被信任的镜像跟随着应用一同上线,对企业安全造成严重影响;
应用部署阶段:现代的部署过程,都是通过容器化部署,以减少环境差异,但是由于应用部署上线所在的生产服务器,一般跟开发测试的环境独立,所以基本上都需要生产服务器从远程镜像仓库获取镜像,下载到本地后部署。但是镜像在原始作者上传到镜像仓库之后,有可能被黑客恶意替换,导致后续下载用户都下载到恶意镜像,也可能在镜像传输过程中,被黑客劫持,替换为恶意镜像,这些都会造成巨大的安全风险;
关于知识产权问题:
容器镜像也是基于程序代码构建而出,本质上也是科技工作者的劳动产出和知识产权,但是如果镜像上传到公共仓库上,很容易被他人下载后,以其名义重新发布,反而容易使得原始作者失去知识产权;
Docker镜像分发是通过远端镜像仓库(registry)分发数据实现的,镜像发布者在本地计算机上构建映像,然后将镜像推送到远程仓库,然后其他用户可以通过网络拉取镜像;
在此过程中,如何确保拉取的镜像是发布者发布的原始版本
Figure DEST_PATH_IMAGE001
如何确保仓库服务器提供商没有修改,如何标记镜像所有权
Figure 3002DEST_PATH_IMAGE001
如何保证镜像的数字签名没被篡改和认证签名的中心服务器没有被劫持
Figure 920143DEST_PATH_IMAGE001
众所周知,集中式网络是不安全的,镜像的下载通道可能通过DNS劫持、中间人劫持等方式被恶意入侵,即便有认证机制,如果认证签发/检验机制是在一个集中式服务器实现,仍然有被劫持的可能,如图3下情况描述一种容器镜像被黑客劫持,植入恶意程序的场景:
1. 原作者上传镜像到某镜像仓库(假设该镜像记为X);
2.黑客恶意篡改了该镜像,将镜像X替换为Y;
3. 某用户,本意是下载镜像X,实际下载了有安全风险的恶意镜像Y。
如图4,又描述另外一种侵犯知识产权的情况,原作者在某公开仓库发表上传了某镜像,被剽窃者修改镜像作者(容器镜像中有一个属性author(作者),是可以更改的)后,重新上传到其他仓库,窃取该镜像的名义归属和知识产权;
1.原作者上传镜像到仓库1 ;
2/3/4:某恶意抄袭者将镜像下载,篡改镜像中的作者属性,然后以自己名义上传到仓库2。
发明内容
本发明要解决的技术问题是现有各种镜像信任保证机制都或多或少有缺陷,比如依赖于中心化服务器等,现有的容器镜像分发技术中,无法保证镜像仓库中的镜像是原作者上传的原始版本,无法保证不被中途篡改,如果被篡改,会带来例如镜像安全隐患问题和知识产权问题,容器镜像签名技术仍然依赖于中心化的认证,依旧存在风险,本***提出一种基于区块链的去中心化的可信认证机制,加强和解决镜像安全认证,本发明提供一种基于区块链技术的容器镜像可信认证的***,镜像发布者计算本地计算机上镜像的数字签名,然后将包含数字签名在内的镜像可信认证信息写入基于区块链技术的可信认证组件中,区块链上的分布式的密码学算法能够保证在此过程中不会伪造,因此发布者可以安全地在公开的镜像仓库上共享镜像,用以解决现有技术导致的缺陷。
本发明还提供一种基于区块链技术的容器镜像可信认证的方法。
为解决上述技术问题本发明提供以下的技术方案:
第一方面,一种基于区块链技术的容器镜像可信认证的***,其中,包含镜像签名注册组件、去中心化的镜像可信认证组件、镜像签名验证组件、镜像仓库;
所述镜像签名注册组件用于原作者上传镜像,并将所述镜像传输至所述镜像仓库,还用于计算所述镜像的内容得到可信认证信息,并将所述镜像与所述可信认证信息传输至所述去中心化的镜像可信认证组件,所述可信认证信息包含镜像作者信息、数字签名、镜像名称、镜像ID;
所述去中心化的镜像可信认证组件用于获取的所述镜像与所述可信认证信息,并将所述镜像与所述可信认证信息组合成智能合约写入区块链网络中,所述区块链网络提取所述可信认证信息中的所述数字签名;
所述镜像签名验证组件用于从所述镜像仓库获取所述镜像后计算所述镜像的所述数字签名,还用于从所述去中心化的镜像可信认证组件中获取提取的所述数字签名,还用于验证对比上述两个数字签名是否一致,若不一致则拒绝下载者使用所述镜像,若一致则接受下载者使用所述镜像。
上述的一种基于区块链技术的容器镜像可信认证的***,其中,所述数字签名为所述镜像签名注册组件计算所述镜像的内容得到的哈希值。
上述的一种基于区块链技术的容器镜像可信认证的***,其中,所述镜像签名注册组件计算所述镜像的内容得到所述哈希值的计算方法为安全散列算法128或安全散列算法224或安全散列算法256或安全散列算法384或安全散列算法512或信息摘要算法或哈希算法。
上述的一种基于区块链技术的容器镜像可信认证的***,其中,所述区块链网络为通过互联网两两互联的多个客户端,所述客户端内部安装有所述一种基于区块链技术的容器镜像可信认证的***,多个所述客户端形成一个分布式的星型结构,所述区块链网络具有去中心化的特质,对镜像的信息和数字签名进行了可信认证,避免了集中式***的集中式认证或集中式证书签发的安全问题 。
上述的一种基于区块链技术的容器镜像可信认证的***,其中,所述客户端为可信任认证***,所述可信任认证***包含镜像签名注册组件、镜像签名验证组件;
所述镜像签名注册组件用于在上传所述镜像时进行签名计算和注册到所述区块链网络中;
所述镜像签名验证组件用于在下载所述镜像时签名的校验。
第二方面,一种基于区块链技术的容器镜像可信认证的方法,其中,包含以下步骤:
步骤1:原作者上传镜像至镜像签名注册组件,镜像签名注册组件根据镜像计算出镜像作者信息、数字签名、镜像名称、镜像ID,并将所述镜像作者信息、所述数字签名、所述镜像名称、所述镜像ID整合成可信认证信息后与镜像一起写入去中心化的镜像可信认证组件中,所述去中心化的镜像可信认证组件将所述镜像与所述可信认证信息组合成智能合约写入区块链网络中,随后将镜像上传至镜像仓库内,镜像仓库将镜像与可信认证信息进行关联;
步骤2:下载或使用该镜像的下载者从镜像仓库下载镜像至镜像签名验证组件,镜像签名验证组件对镜像进行数字签名计算,并从去中心化的镜像可信认证组件中获取镜像与数字签名;
步骤3:将镜像签名验证组件计算的数字签名与从去中心化的镜像可信认证组件中获取的数字签名进行对比验证,若两个数字签名相同,则镜像签名验证组件允许镜像被使用,若两个数字签名不相同,则镜像签名验证组件拒绝镜像被使用。
具体使用时的实现是基于以太坊(Ethereum)实现的智能合约:
在“镜像签名注册组件”中,采用Solidity语言实现了以太坊(Ethereum)智能合约,并采用如下数据结构实现智能合约:ownerIdImageMap[msg.sender][repoTag] =Image(imageHash, msg.sender, repoTag, imageId);
其中:
ownerIdImageMap是交易的记录;
msg.sender是合约发起者(就是镜像的原作者);
repoTag就是镜像名称;
imageHash就是镜像的数字签名;
imageId是镜像的ID值;
实现上,基于以太坊,每个合约交易上(以太坊的概念)记录着镜像的名称,镜像文件的数字签名,交易提交者,镜像ID;
镜像的“数字签名”的具体实现:可以通过”docker save”命令,将镜像保存为.tar文件,然后通过操作***的工具计算该.tar文件的安全散列算法256(SHA256)哈希值(采用安全散列算法256计算镜像数据的哈希值只是数字签名生成方式的一个示例,本技术方案的数字签名计算方式包括但不限于安全散列算法256);
另外,在实践中,一般镜像上传下载多通过docker引擎(一种开源容器引擎)实现(docker push做上传,docker pull做下载),所以,本***的一个实现方式如下:
将上传过程中镜像签名验证组件的逻辑,植入到docker引擎中,在docker push中实现,在执行docker push(上传)命令时,引擎后台自动触发到区块链网络上的签名注册;
将下载过程中镜像签名验证组件的逻辑,植入到docker引擎中,在docker pull中实现,在执行docker pull(下载)命令时,引擎后台自动触发到区块链上拉取签名和本地文件校验。
上述的一种基于区块链技术的容器镜像可信认证的方法,其中,所述数字签名为所述镜像签名注册组件计算所述镜像的内容得到的哈希值;
所述镜像签名注册组件计算所述镜像的内容得到所述哈希值的计算方法为安全散列算法128或安全散列算法224或安全散列算法256或安全散列算法384或安全散列算法512或信息摘要算法或哈希算法。
上述的一种基于区块链技术的容器镜像可信认证的方法,其中,所述区块链网络为通过互联网两两互联的多个客户端,所述客户端内部安装有所述一种基于区块链技术的容器镜像可信认证的***,多个所述客户端形成分布式网络***。
上述的一种基于区块链技术的容器镜像可信认证的方法,其中,所述客户端为可信任认证***,所述可信任认证***包含镜像签名注册组件、镜像签名验证组件;
在上传所述镜像时通过所述镜像签名注册组件进行签名计算和注册到所述区块链网络中;
在下载所述镜像时通过所述镜像签名验证组件对签名进行校验。
本发明一种基于区块链技术的容器镜像可信认证的***与方法提供的技术方案具有以下技术效果:
通过区块链网络技术维护一个基于区块链的镜像可信认证网络,进行镜像认证和鉴定,镜像从源头便得到了唯一性保证和无法被篡改,从而保障了用户使用镜像的安全性和可信度,也保障了原作者的著作权;
本本发提供的一种基于区块链技术的容器镜像可信认证的***将这个实现机制自动化纳入到容器镜像引擎中,使得签名和鉴定动作对于上传者或下载者来说无需任何额外操作,简单便捷。
附图说明
图1为本发明一种基于区块链技术的容器镜像可信认证的***的结构示意图;
图2为本发明一种基于区块链技术的容器镜像可信认证的***中区块链网络的结构示意图;
图3为本发明一种基于区块链技术的容器镜像可信认证的***的一个实施例图;
图4为一种容器镜像被黑客劫持植入恶意程序的场景图;
图5为一种侵犯知识产权情况的场景图。
具体实施方式
为了使发明实现的技术手段、创造特征、达成目的和功效易于明白了解,下结合具体图示,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本发明的第一实施例是提供一种基于区块链技术的容器镜像可信认证的***,目的是通过区块链网络技术维护一个基于区块链的镜像可信认证网络,进行镜像认证和鉴定,镜像从源头便得到了唯一性保证和无法被篡改,从而保障了用户使用镜像的安全性和可信度,也保障了原作者的著作权;
本发明提供的一种基于区块链技术的容器镜像可信认证的***,并将这个实现机制自动化纳入到容器镜像引擎中,使得签名和鉴定动作对于上传者或下载者来说无需任何额外操作,简单便捷。
如图1所示,第一方面,一种基于区块链技术的容器镜像可信认证的***,其中,包含镜像签名注册组件、去中心化的镜像可信认证组件、镜像签名验证组件、镜像仓库;
镜像签名注册组件用于原作者上传镜像,并将镜像传输至镜像仓库,还用于计算镜像的内容得到可信认证信息,并将镜像与可信认证信息传输至去中心化的镜像可信认证组件,可信认证信息包含镜像作者信息、数字签名、镜像名称、镜像ID;
去中心化的镜像可信认证组件用于获取的镜像与可信认证信息,并将镜像与可信认证信息组合成智能合约写入区块链网络中,区块链网络提取可信认证信息中的数字签名;
镜像签名验证组件用于从镜像仓库获取镜像后计算镜像的数字签名,还用于从去中心化的镜像可信认证组件中获取提取的数字签名,还用于验证对比上述两个数字签名是否一致,若不一致则拒绝下载者使用镜像,若一致则接受下载者使用镜像。
其中,数字签名为镜像签名注册组件计算镜像的内容得到的哈希值。
其中,镜像签名注册组件计算镜像的内容得到哈希值的计算方法为安全散列算法128或安全散列算法224或安全散列算法256或安全散列算法384或安全散列算法512或信息摘要算法或哈希算法。
如图2所示,上述的一种基于区块链技术的容器镜像可信认证的***,其中,区块链网络为通过互联网两两互联的多个客户端,客户端内部安装有一种基于区块链技术的容器镜像可信认证的***,多个客户端形成一个分布式的星型结构,区块链网络具有去中心化的特质,对镜像的信息和数字签名进行了可信认证,避免了集中式***的集中式认证或集中式证书签发的安全问题。
其中,客户端为可信任认证***,可信任认证***包含镜像签名注册组件、镜像签名验证组件;
镜像签名注册组件用于在上传镜像时进行签名计算和注册到区块链网络中;
镜像签名验证组件用于在下载镜像时签名的校验。
而众所周知,区块链技术很好解决了集中式网络的上述可信问题;
区块链最开始应用在数字货币领域,后来逐渐扩展到其他领域,作为去中心化的可信认证的绝佳技术;
本专利通过将镜像信息存储在去中心化的区块链网络上,可以消除在集中式网络中轻易篡改数据的可能性,通过离线签名和验证,使数据发布和获取更加方便和安全;(如图3所示)
1.原作者上传镜像X到镜像仓库;
2.同时在区块链中注册该镜像的签名;
3.某黑客侵入镜像仓库,恶意篡改镜像,将X改为Y;
4.某用户下载镜像X(实际下载的是镜像Y);
5.下载完成后,计算下载镜像的签名,并立刻去区块链进行校验比对;
6.在区块链上获取该镜像的签名(是X的签名),发现跟本地下载的镜像签名不符合,发出警告。
第二方面,一种基于区块链技术的容器镜像可信认证的方法,其中,包含以下步骤:
步骤1:原作者上传镜像至镜像签名注册组件,镜像签名注册组件根据镜像计算出镜像作者信息、数字签名、镜像名称、镜像ID,并将镜像作者信息、数字签名、镜像名称、镜像ID整合成可信认证信息后与镜像一起写入去中心化的镜像可信认证组件中,去中心化的镜像可信认证组件将镜像与可信认证信息组合成智能合约写入区块链网络中,随后将镜像上传至镜像仓库内,镜像仓库将镜像与可信认证信息进行关联;
步骤2:下载或使用该镜像的下载者从镜像仓库下载镜像至镜像签名验证组件,镜像签名验证组件对镜像进行数字签名计算,并从去中心化的镜像可信认证组件中获取镜像与数字签名;
步骤3:将镜像签名验证组件计算的数字签名与从去中心化的镜像可信认证组件中获取的数字签名进行对比验证,若两个数字签名相同,则镜像签名验证组件允许镜像被使用,若两个数字签名不相同,则镜像签名验证组件拒绝镜像被使用。
具体使用时的实现是基于以太坊(Ethereum)实现的智能合约:
在“镜像签名注册组件”中,采用Solidity语言实现了以太坊(Ethereum)智能合约,并采用如下数据结构实现智能合约:ownerIdImageMap[msg.sender][repoTag] =Image(imageHash, msg.sender, repoTag, imageId);
其中:
ownerIdImageMap是交易的记录;
msg.sender是合约发起者(就是镜像的原作者);
repoTag就是镜像名称;
imageHash就是镜像的数字签名;
imageId是镜像的ID值;
实现上,基于以太坊,每个合约交易上(以太坊的概念)记录着镜像的名称,镜像文件的数字签名,交易提交者,镜像ID;
镜像的“数字签名”的具体实现:可以通过”docker save”命令,将镜像保存为.tar文件,然后通过操作***的工具计算该.tar文件的安全散列算法256哈希值(采用安全散列算法256计算镜像数据的哈希值只是数字签名生成方式的一个示例,本技术方案的数字签名计算方式包括但不限于安全散列算法256);
另外,在实践中,一般镜像上传下载多通过docker引擎(一种开源容器引擎)实现(docker push(通过docker引擎的一个命令)做上传,docker pull(docker引擎的另一个命令)做下载),所以,本***的一个实现方式如下:
将上传过程中镜像签名验证组件的逻辑,植入到docker引擎中,在docker push中实现,在执行docker push(上传)命令时,引擎后台自动触发到区块链网络上的签名注册;
将下载过程中镜像签名验证组件的逻辑,植入到docker引擎中,在docker pull中实现,在执行docker pull(下载)命令时,引擎后台自动触发到区块链上拉取签名和本地文件校验。
其中,数字签名为镜像签名注册组件计算镜像的内容得到的哈希值;
镜像签名注册组件计算镜像的内容得到哈希值的计算方法为安全散列算法128或安全散列算法224或安全散列算法256或安全散列算法384或安全散列算法512或信息摘要算法或哈希算法。
其中,区块链网络为通过互联网两两互联的多个客户端,客户端内部安装有一种基于区块链技术的容器镜像可信认证的***,多个客户端形成分布式网络***。
其中,客户端为可信任认证***,可信任认证***包含镜像签名注册组件、镜像签名验证组件;
在上传镜像时通过镜像签名注册组件进行签名计算和注册到区块链网络中;
在下载镜像时通过镜像签名验证组件对签名进行校验。
综上,本发明的一种基于区块链技术的容器镜像可信认证的***与方法,能够通过区块链网络技术维护一个基于区块链的镜像可信认证网络,进行镜像认证和鉴定,镜像从源头便得到了唯一性保证和无法被篡改,从而保障了用户使用镜像的安全性和可信度,也保障了原作者的著作权;
本本发提供的一种基于区块链技术的容器镜像可信认证的***将这个实现机制自动化纳入到容器镜像引擎中,使得签名和鉴定动作对于上传者或下载者来说无需任何额外操作,简单便捷。
以上对发明的具体实施例进行了描述。需要理解的是,发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;本领域技术人员可以在权利要求的范围内做出各种变形或修改做出若干简单推演、变形或替换,这并不影响发明的实质内容。

Claims (6)

1.一种基于区块链技术的容器镜像可信认证的***,其特征在于,包含镜像签名注册组件、去中心化的镜像可信认证组件、镜像签名验证组件、镜像仓库;
所述镜像签名注册组件用于原作者上传镜像,并将所述镜像传输至所述镜像仓库,还用于计算所述镜像的内容得到可信认证信息,并将所述镜像与所述可信认证信息传输至所述去中心化的镜像可信认证组件,所述可信认证信息包含镜像作者信息、数字签名、镜像名称、镜像ID;所述数字签名为所述镜像签名注册组件根据所述镜像的内容计算得到的哈希值;所述数字签名的具体实现:通过“docker save”命令,将所述镜像保存为.tar文件,然后通过操作***的工具计算该.tar文件的安全散列算法256哈希值;
所述去中心化的镜像可信认证组件用于获取的所述镜像与所述可信认证信息,并将所述镜像与所述可信认证信息组合成智能合约写入区块链网络中,所述区块链网络提取所述可信认证信息中的所述数字签名;
所述镜像签名验证组件用于从所述镜像仓库获取所述镜像后计算所述镜像的所述数字签名,还用于从所述去中心化的镜像可信认证组件中获取提取的所述数字签名,还用于验证对比上述两个数字签名是否一致,若不一致则拒绝下载者使用所述镜像,若一致则接受下载者使用所述镜像;
所述***的实现方式如下:
将上传过程中所述镜像签名验证组件的逻辑,植入到docker引擎中,在docker push中实现,在执行上传命令时,引擎后台自动触发到所述区块链网络上的签名注册;
将下载过程中所述镜像签名验证组件的逻辑,植入到docker引擎中,在docker pull中实现,在执行下载命令时,引擎后台自动触发到区块链上拉取签名和本地文件校验。
2.如权利要求1所述的一种基于区块链技术的容器镜像可信认证的***,其特征在于,所述区块链网络为通过互联网两两互联的多个客户端,所述客户端内部安装有所述一种基于区块链技术的容器镜像可信认证的***。
3.如权利要求2所述的一种基于区块链技术的容器镜像可信认证的***,其特征在于,所述客户端为可信任认证***,所述可信任认证***包含镜像签名注册组件、镜像签名验证组件;
所述镜像签名注册组件用于在上传所述镜像时进行签名计算和注册到所述区块链网络中;
所述镜像签名验证组件用于在下载所述镜像时签名的校验。
4.一种基于区块链技术的容器镜像可信认证的方法,其特征在于,包含以下步骤:
步骤1:原作者上传镜像至镜像签名注册组件,镜像签名注册组件根据镜像计算出镜像作者信息、数字签名、镜像名称、镜像ID,并将所述镜像作者信息、所述数字签名、所述镜像名称、所述镜像ID整合成可信认证信息后与镜像一起写入去中心化的镜像可信认证组件中,所述去中心化的镜像可信认证组件将所述镜像与所述可信认证信息组合成智能合约写入区块链网络中,随后将镜像上传至镜像仓库内,镜像仓库将镜像与可信认证信息进行关联;所述数字签名为所述镜像签名注册组件计算所述镜像的内容得到的哈希值;所述数字签名的具体实现:通过“docker save”命令,将所述镜像保存为.tar文件,然后通过操作***的工具计算该.tar文件的安全散列算法256哈希值;
步骤2:下载或使用该镜像的下载者从镜像仓库下载镜像至镜像签名验证组件,镜像签名验证组件对镜像进行数字签名计算,并从去中心化的镜像可信认证组件中获取镜像与数字签名;
步骤3:将镜像签名验证组件计算的数字签名与从去中心化的镜像可信认证组件中获取的数字签名进行对比验证,若两个数字签名相同,则镜像签名验证组件允许镜像被使用,若两个数字签名不相同,则镜像签名验证组件拒绝镜像被使用;
其中,将上传过程中所述镜像签名验证组件的逻辑,植入到docker引擎中,在dockerpush中实现,在执行上传命令时,引擎后台自动触发到所述区块链网络上的签名注册;将下载过程中所述镜像签名验证组件的逻辑,植入到docker引擎中,在docker pull中实现,在执行下载命令时,引擎后台自动触发到区块链上拉取签名和本地文件校验。
5.如权利要求4所述的一种基于区块链技术的容器镜像可信认证的方法,其特征在于,所述区块链网络为通过互联网两两互联的多个客户端,所述客户端内部安装有所述一种基于区块链技术的容器镜像可信认证的***。
6.如权利要求5所述的一种基于区块链技术的容器镜像可信认证的方法,其特征在于,所述客户端为可信任认证***,所述可信任认证***包含镜像签名注册组件、镜像签名验证组件;
在上传所述镜像时通过所述镜像签名注册组件进行签名计算和注册到所述区块链网络中;
在下载所述镜像时通过所述镜像签名验证组件对签名进行校验。
CN202010644383.1A 2020-07-07 2020-07-07 一种基于区块链技术的容器镜像可信认证的***与方法 Active CN111787116B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010644383.1A CN111787116B (zh) 2020-07-07 2020-07-07 一种基于区块链技术的容器镜像可信认证的***与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010644383.1A CN111787116B (zh) 2020-07-07 2020-07-07 一种基于区块链技术的容器镜像可信认证的***与方法

Publications (2)

Publication Number Publication Date
CN111787116A CN111787116A (zh) 2020-10-16
CN111787116B true CN111787116B (zh) 2021-08-20

Family

ID=72758842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010644383.1A Active CN111787116B (zh) 2020-07-07 2020-07-07 一种基于区块链技术的容器镜像可信认证的***与方法

Country Status (1)

Country Link
CN (1) CN111787116B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491548B (zh) * 2020-12-07 2022-12-09 苏州浪潮智能科技有限公司 一种云平台签名镜像上传删除方法及装置
CN113391880B (zh) * 2021-06-21 2023-04-07 超越科技股份有限公司 一种分层双重哈希验证的可信镜像传输方法
CN113572619B (zh) * 2021-09-22 2021-12-07 银河麒麟软件(长沙)有限公司 一种基于notary的容器云镜像可信实现方法及***
CN115550375B (zh) * 2022-08-31 2024-03-15 云南电网有限责任公司信息中心 基于容器化技术实现区块链轻量化的***、方法及设备
CN117353922B (zh) * 2023-12-06 2024-03-22 南京中孚信息技术有限公司 离线状态下的容器镜像签名验证方法、***、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407814A (zh) * 2016-08-31 2017-02-15 福建联迪商用设备有限公司 烧片镜像签名认证方法与终端以及烧录方法与***
CN108170590A (zh) * 2017-12-12 2018-06-15 北京大学深圳研究生院 一种区块链***的测试***和方法
CN109634619A (zh) * 2018-11-23 2019-04-16 试金石信用服务有限公司 可信执行环境实现方法及装置、终端设备、可读存储介质
CN109788032A (zh) * 2018-12-17 2019-05-21 深圳壹账通智能科技有限公司 镜像文件的获取方法、装置、计算机设备和存储介质
CN110138733A (zh) * 2019-04-03 2019-08-16 华南理工大学 基于区块链的对象存储***可信存证与访问权限控制方法
WO2020106498A1 (en) * 2018-11-19 2020-05-28 Rare Bits, Inc. Lazy updating and state prediction for blockchain-based applications

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239688B (zh) * 2017-06-30 2019-07-23 平安科技(深圳)有限公司 Docker镜像仓库的权限认证方法和***
CN108566449A (zh) * 2018-04-17 2018-09-21 广州大学 基于区块链的域名解析数据管理方法、***及存储***
CN108965468B (zh) * 2018-08-16 2021-04-30 北京京东尚科信息技术有限公司 区块链网络服务平台及其链码安装方法、存储介质
CN109491758A (zh) * 2018-10-11 2019-03-19 深圳市网心科技有限公司 docker镜像分发方法、***、数据网关及计算机可读存储介质
CN109800056A (zh) * 2019-01-16 2019-05-24 杭州趣链科技有限公司 一种基于容器的区块链部署方法
CN110287732A (zh) * 2019-05-15 2019-09-27 杭州趣链科技有限公司 一种基于区块链电子合同存证方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407814A (zh) * 2016-08-31 2017-02-15 福建联迪商用设备有限公司 烧片镜像签名认证方法与终端以及烧录方法与***
CN108170590A (zh) * 2017-12-12 2018-06-15 北京大学深圳研究生院 一种区块链***的测试***和方法
WO2020106498A1 (en) * 2018-11-19 2020-05-28 Rare Bits, Inc. Lazy updating and state prediction for blockchain-based applications
CN109634619A (zh) * 2018-11-23 2019-04-16 试金石信用服务有限公司 可信执行环境实现方法及装置、终端设备、可读存储介质
CN109788032A (zh) * 2018-12-17 2019-05-21 深圳壹账通智能科技有限公司 镜像文件的获取方法、装置、计算机设备和存储介质
CN110138733A (zh) * 2019-04-03 2019-08-16 华南理工大学 基于区块链的对象存储***可信存证与访问权限控制方法

Also Published As

Publication number Publication date
CN111787116A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN111787116B (zh) 一种基于区块链技术的容器镜像可信认证的***与方法
US11128477B2 (en) Electronic certification system
US7395426B2 (en) Method of authenticating content provider and assuring content integrity
US9294288B2 (en) Facilitating secure online transactions
US7689828B2 (en) System and method for implementing digital signature using one time private keys
US20040003248A1 (en) Protection of web pages using digital signatures
CN110990827A (zh) 一种身份信息验证方法、服务器及存储介质
CN111209558B (zh) 基于区块链的物联网设备身份认证方法以及***
CN109257391A (zh) 一种访问权限开放方法、装置、服务器及存储介质
CN109831311B (zh) 一种服务器验证方法、***、用户终端及可读存储介质
JP2002540540A (ja) ファイルの保全性を保証するサーバコンピュータ
CN105872848B (zh) 一种适用于非对称资源环境的可信双向认证方法
CN113708935B (zh) 基于区块链和puf的物联网设备统一认证方法及***
CN110378104A (zh) 一种升级防纂改的方法
CN109309645A (zh) 一种软件分发安全保护方法
CN101741561B (zh) 双向硬件认证方法及***
US8850576B2 (en) Methods for inspecting security certificates by network security devices to detect and prevent the use of invalid certificates
CN110445782B (zh) 一种多媒体安全播控***及方法
WO2019178762A1 (zh) 一种验证终端合法性的方法、服务端及***
KR100703777B1 (ko) 컨텐츠 제공자 인증 및 컨텐츠 무결성 보장을 위한 시스템
CN110807210B (zh) 一种信息处理方法、平台、***及计算机存储介质
KR100458515B1 (ko) 무선 인터넷을 통한 이동 단말용 응용프로그램 설치시스템 및 그 방법
US20090210719A1 (en) Communication control method of determining whether communication is permitted/not permitted, and computer-readable recording medium recording communication control program
CN111953477B (zh) 终端设备及其标识令牌的生成方法和客户端的交互方法
KR20130100032A (ko) 코드 서명 기법을 이용한 스마트폰 어플리케이션 배포 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220929

Address after: No. 4, 27th Floor, Building 2, No. 258, Xiadong Street Section, East Street, Jinjiang District, Chengdu City, Sichuan Province, China 610021

Patentee after: Chengdu Daoke Digital Technology Co.,Ltd.

Address before: Room 1305-12, No.6 Weide Road, Yangpu District, Shanghai 200433

Patentee before: Shanghai Daoke Network Technology Co.,Ltd.

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: Room 3001-3008, Floor 30, Building 1, No. 101, Gulou South Street, Qingyang District, Chengdu, Sichuan 610016

Patentee after: Chengdu Daoke Digital Technology Co.,Ltd.

Address before: No. 4, 27th Floor, Building 2, No. 258, Xiadong Street Section, East Street, Jinjiang District, Chengdu City, Sichuan Province, China 610021

Patentee before: Chengdu Daoke Digital Technology Co.,Ltd.

CP02 Change in the address of a patent holder