一种面向云存储的机载软件持有性证明方法
文献发布时间:2023-06-19 19:27:02
技术领域
本发明属于机载软件安全保障技术领域,尤其是涉及一种面向云存储的机载软件持有性证明方法。
背景技术
随着商业飞机新机型的推出,机载软件数量正在呈指数型增长。传统的以软盘、U盘、CD/DVD为传输媒介的机载软件分发方式,面临着效率低、成本高、安全性差的问题。同时机载硬件系统会随着机载软件规模的膨胀而变得更加复杂和庞大,由于物理设备(主机、线缆、机柜等)通常受限于空间、动力和通风的要求,所以机载硬件设备的规模不能与软件数量同比增长。目前机载航空电子系统正向分布式、综合化方向发展,多机协同的云存储系统可以缓解航电系统在物理上的存储压力,并且具有更高的业务处理效率。将大量的机载软件上传至云端虽然缓解了航电系统的存储压力,但航空公司失去了对机载软件的直接控制,软件安全无法得到保障,这也成为了云存储技术在航空领域发展的关键因素,学术界和工业界普遍认为数据持有性证明解决该问题的重要手段。但是PDP方案大多采取公钥基础设施(Public Key Infrastructure,PKI),并涉及复杂的密钥管理问题,在验证数据完整性时会大大增加计算开销和通信开销,并且存在用户隐私易泄露以及身份伪造问题。
但现有的机载软件安全保障方法,通常存在以下问题:一是目前大多数关于机载软件安全的标准与技术,主要是针对机载软件的开发和管理阶段,针对机载软件存储和高效分发的标准与技术尚不完善;二是现有的机载软件云存储方案存在着安全性不高,可靠性不强等问题;三是现有的可以对机载软件安全进行保障的数据持有性证明方案,存在着身份可伪造、时间开销大、通信成本高等问题。
发明内容
有鉴于此,本发明提供了一种面向云存储的机载软件持有性证明方法,在云存储的基础上,结合P2P技术,构建适用于机载软件的Cloud-P2P云存储架构,实现机载软件共享。并通过运用IPK技术和抽样审计技术,对云上机载软件进行持有性证明,具有计算开销低、通信开销低、不可伪造性和抗重放攻击的特点。
为达到上述目的,本发明的技术方案是这样实现的:
一种面向云存储的机载软件持有性证明方法,包括如下步骤:
步骤1:搭建Cloud-P2P云存储架构,在Cloud-P2P云存储架构上设置机载软件;
步骤2:提取机载软件配置信息;
步骤3:根据机载软件配置信息生成IPK公钥;
步骤4:对机载软件进行预处理,划分机载软件;
步骤5:根据机载软件配置信息生成的IPK公钥以及机载软件设计数据持有性证明协议,进行数据持有性证明。
进一步的,所述步骤1中,搭建Cloud-P2P云存储架构包括:
先设置若干个中心云分别代表不同空域的云存储系统;
对每个中心云进行扩展,由该空域内的飞机组成用户扩展云,同一扩展云中的飞机构成P2P网络,不同中心云之间也构成P2P网络;
定义云与用户、用户与用户以及云与云之间的数据访问协议。
进一步的,所述定义云与用户、用户与用户以及云与云之间的数据访问协议包括:
用户首先向中心云发送接入请求,中心云返回唯一的ID值,用户加入用户扩展云之后,再向中心云发送数据请求,若中心云存在该数据则返回该数据,若该中心云没有存入相应数据,则返回数据地址,用户再向拥有该数据的其它用户发送数据请求,拥有数据的用户为其返回数据;若该中心云和用户都不存在该数据,则向其它区域的中心云以及用户发送数据请求;用户接收到所需数据后进行持有性证明,检查数据是否完整。
进一步的,所述步骤2中,提取机载软件配置信息包括:
根据ARINC665标准生成可加载软件LSP;
提取LSP头文件中的配置信息,包括代表机载软件签名值的“KEY”字段、代表供应商标识符的“CODE”字段、代表目标硬件号的“THW_ID”字段以及代表机载软件标识符的“PART_NUMBER”字段。
进一步的,所述步骤3中,根据机载软件配置信息生成IPK公钥包括:
根据LSP头文件中“CODE”字段以及“PART_NUMBER”字段计算出校验值;
由“CODE”字段、“PART_NUMBER”字段以及校验值构成签名者标识;
计算SM2签名值;
公钥IPK由签名者标识和SM2签名值共同组成。
进一步的,所述步骤4中,划分机载软件包括:
将机载软件分成s块,每个块被分为k个扇区,软件块和签名标记组成标记对,存储在云端,按照此结构片段将机载软件划分成s×k个扇区,每个块都对应一个标记,该标记由一组随机秘密和代表机载软件属性的PN号共同决定。
进一步的,所述步骤5包括:
数据持有性证明协议包含三个主体:航空公司、云服务提供商、第三方审计者;
航空公司计算出公钥/私钥对,然后将公钥发送给第三方审计者;
航空公司随机选取一组秘密,生成公共验证信息和签名标记;
航空公司将公共验证信息发送给第三方审计者,将签名标记和机载软件发送给云服务提供商;
由第三方审计者验证云端机载软件的完整性,第三方审计者和云服务提供商之间形成一个交互协议,协议结束之后,第三方审计者对机载软件的完整性进行检测并返回结果;判定机载软件完整性的公式如下:
其中,ξ
相对于现有技术,本发明所述的一种面向云存储的机载软件持有性证明方法具有以下优势:
本发明公开的一种面向云存储的机载软件持有性证明方法,可以在云存储的基础上,结合P2P技术,构建适用于机载软件的Cloud-P2P云存储架构,实现机载软件的去中心化云存储以及机载软件的共享,减轻了航电系统在物理上的存储压力,提高了机载软件的使用效率;
本发明公开的一种面向云存储的机载软件持有性证明方法,采用了IPK技术生成公钥,实现随机公钥与标识的绑定,从而以标识替代公钥,简化了海量公钥的管理与分发。同时,让终端与密钥中心分别定义随机密钥对,以参与最终的密钥复合。有效解决了依赖第三方生成密钥的问题,可以有效抵抗中间人攻击。
本发明公开的一种面向云存储的机载软件持有性证明方法,采用了一种通用的文件结构对机载软件进行预处理,机载软件被划分成s×k个扇区,每个块都对应一个标记,该标记由一组随机秘密和代表机载软件属性的PN号共同决定,且标记不会随着扇区数k的变化而变化,可以有效减少标记的额外存储,提高审计的性能。
本发明公开的一种面向云存储的机载软件持有性证明方法,在审计阶段采用了抽样审计,第三方审计者可以在适当的时间间隔内完成对云上机载软件完整性的周期性检测且能够真实的记录各类数据操作,审计过程中无需航空公司的参与。该审计机制不仅提高了检测机载软件完整性的效率,且减轻了航空公司的存储负担以及审计过程中的计算负担。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种面向云存储的机载软件持有性证明方法流程示意图;
图2为本发明实施例所述的一种面向云存储的机载软件持有性证明方法Cloud-P2P云存储架构示意图;
图3为本发明实施例所述的一种面向云存储的机载软件持有性证明方法头文件配置信息示意图;
图4为本发明实施例所述的一种面向云存储的机载软件持有性证明方法软件预处理示意图;
图5为本发明实施例所述的一种面向云存储的机载软件持有性证明方法数据持有性证明协议示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,本发明提供了一种面向云存储的机载软件持有性证明方法,包括:
步骤1:搭建Cloud-P2P云存储架构:
首先设置若干个中心云分别代表不同空域的云存储系统,再对每个中心云进行扩展,由该空域内的飞机组成用户扩展云。同一扩展云中的飞机构成P2P网络,不同中心云之间也构成P2P网络。最后,定义云与用户、用户与用户以及云与云之间的数据访问协议。
具体的,用户首先向中心云发送接入请求,中心云返回唯一的ID值,用户加入用户扩展云之后,再向中心云发送数据请求,若中心云存在该数据则返回该数据,若该中心云没有存入相应数据,则返回数据地址,用户再向拥有该数据的其它用户发送数据请求,拥有数据的用户为其返回数据。若该区域中心云和用户都不存在该数据,则可以向其它区域的中心云以及用户发送数据请求。用户接收到所需数据后需进行持有性证明,检查数据是否完整。
在本实施例中,如图2所示,设置了三个中心云代表不同的空域,用户扩展云由若干架飞机组成。
步骤2:提取机载软件配置信息:
根据ARINC665标准生成可加载软件(loadable software part,LSP)。
LSP由一个后缀名为LUH的头文件和一个或多个后缀名为LUP的数据文件组成,此外还可能包含支持文件,其后缀名可以为LUR、LUM等。在本实施例中,生成的LSP包含名称为XYZ53ABCDEFGH.LUH的头文件,名称为XYZ53ABCDEFGH.LUP的数据文件。
提取LSP头文件中的配置信息,包括代表软件签名值的“KEY”字段、代表供应商标识符的“CODE”字段、代表目标硬件号的“THW_ID”字段以及代表软件标识符的“PART_NUMBER”字段等。在本实施例中,如图3所示,“CODE”为XYZ、“THW_ID”为THW_ID1,“PART_NUMBER”为ABCDEFGH。
步骤3:生成IPK公钥:
首先根据LSP头文件中“CODE”字段以及“PART_NUMBER”字段计算出校验值CC,再由“CODE”字段、“PART_NUMBER”字段以及校验值CC构成签名者标识φ。然后计算SM2签名值(r,w)。最后公钥IPK由签名者标识φ和SM2签名值(r,w)共同组成。
在本实施例中,“CODE”为XYZ、“PART_NUMBER”为ABCDEFGH、校验值CC为53,表示机载软件特有属性,机载软件特有属性对应签名者标识φ。
步骤4:机载软件预处理:
将机载软件分成s块,每个块被分为k个扇区。软件块和签名标记组成标记对(m
审计过程中,第三方审计者随机生成随机挑战对(i,v
步骤5:设计数据持有性证明协议:
数据持有性证明协议包含三个主体:航空公司(airline company,AC)、云服务提供商(cloud service provider,CSP)、第三方审计者(third party auditor,TPA)。假设AC希望将所有机载软件交由CSP进行存储,并且希望TPA维护机载软件安全,TPA对云上机载软件进行抽样审计。首先AC计算出公钥/私钥对,然后将公钥IPK发送给TPA。然后AC随机选取一组秘密τ,生成公共验证信息u和签名标记σ。最后AC将u发送给TPA,将σ和机载软件发送给CSP。在任何时候,TPA都可以验证云端机载软件的完整性。TPA和CSP之间形成一个交互协议,主要有三个部分:承诺、挑战、响应。协议结束之后,TPA对机载软件的完整性进行检测并返回结果。
在本实施例中,如图5所示,数据持有性证明协议由TPA、AC以及CSP组成,主要包括密钥生成、标识生成、承诺、挑战、响应、验证六个过程。
判定机载软件完整性的公式如下:
其中,ξ
是CSP发送给TPA的承诺。u
的值为CSP根据挑战系数对以及软件块标识计算出的值。(i,v
的值为CSP根据挑战系数对以及软件块计算出的值。/>
和/>
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种云存储环境下的多备份数据持有性证明方法
- 一种云存储中基于部分授权的可证明安全数据持有性验证方法