1.基于区块链和证书验证的海洋数据访问授权控制方法,其特征在于,包括:S1.出海的船节点和各传感器网络收集海洋数据,海洋数据存储到海洋数据访问授权系统中,所述海洋数据访问授权系统包括岸基中心、传感器节点和普通用户节点海洋船;
S2.海洋船出海前,向岸基中心申请临时子链,传感器节点在联网时向岸基中心申请临时子链;
S3.海洋船在出海期间,通过船上携带的传感器收集数据并将数据存储在自己的临时子链中,布设在海上的传感器网络收集数据,将数据存放到自己的临时子链中,所有在本地临时子链中存储的数据都经过加密以确保在未联网时的安全性;
S4.每个海洋船都被视为临时子链的唯一权威节点,海洋船相互之间进行数据交换前首先通过数字签名进行身份验证,验证通过后,进行区块验证,先遍历携带的临时子链中是否已有待交换数据的哈希摘要,若为是,则验证通过,把收到的区块数据按照时间戳顺序存入到临时子链中;
S5.通过身份验证和公私钥机制确保只有验证过的节点才能访问和同步数据,海洋船和海上传感器节点联网后,向岸基中心发送同步请求,将携带的临时子链上的数据同步到实时联网的岸基中心的区块链主链中,岸基中心验证临时子链的数据完整性和有效性;
S6.当海洋船想查看主链上其他节点上传的原始数据或岸基中心处理的预测数据时,需要通过数字签名进行身份验证,身份验证通过后,海洋船访问主链数据;
S7.岸基中心根据每个节点的角色和权限提供相应的访问权限,节点的访问权限会限制其可访问的数据类型或数据量;
S3包括:
S3.1.当海洋船或海上传感器节点收集到海洋数据时,创建一个新的区块存储数据,更新子链的最后一个区块指针为新添加的区块,使用收集到的数据计算默克尔树的根作为哈希摘要;
S3.2.每一个数据块生成一个哈希值作为默克尔树的叶节点,将相邻的哈希值组合并再次进行哈希运算生成上一层的节点,如此往复直到树的顶部只剩下一个节点默克尔树根,默克尔树根代表所有海洋数据的加密摘要;
S3.3.生成哈希摘要后,海洋船或海上传感器节点使用私钥对区块进行数字签名并构造区块头,内容包括前一个区块的哈希值和当前区块的时间戳、数据优先级标签、数字签名、数据源点、状态标识信息以及计算得到的默克尔树根;
S4包括:
S4.1.哈希摘要的发送与检查;
S4.1.1.同在一个授权访问系统中的海洋船n1和海洋船n2在海上相遇,海洋船n2准备获取海洋船n1收集的海洋数据,海洋船n1将自身临时子链上的所有区块数据的哈希摘要发送给海洋船n2;
S4.1.2.海洋船n2将海洋船n1的哈希摘要与自己临时子链上的哈希摘要作对比,确定已有的区块数据和未有的区块数据;
S4包括:
S4.2.子链验证;
S4.2.1.海洋船n2返回一个列表,列出需要的区块的索引号;
S4.2.2.海洋船n1接收列表后,从自己的临时子链中提取相应的区块数据,并将区块数据打包成一个数据包,内容包括每个区块的索引号、对应索引号的区块数据,以及每个区块的哈希值和前一个区块的哈希值;
S4.2.3.海洋船n2接收区块数据后,检查每个区块数据的哈希值和区块中包含的前一个区块的哈希值字段是否与数据包中提供的匹配,若是则验证通过,将这些区块数据添加到自己的临时子链上。
2.根据权利要求1所述的基于区块链和证书验证的海洋数据访问授权控制方法,其特征在于,S1中,岸基中心实时联网,负责整个系统的管理、授权和同步操作;传感器节点在海洋中部署,负责收集数据并将其存储在本地临时子链中;海洋船是数据收集的工具或访问数据的主体,具有查看和存储数据到本地临时子链的能力。
3.根据权利要求2所述的基于区块链和证书验证的海洋数据访问授权控制方法,其特征在于,S2包括:临时子链包括子链构建目的、子链构建需求和海洋船编号,岸基中心收到临时子链申请后,确认海洋船和海上传感器节点具备相关权限,并设子链180天的生存周期,若海洋船和海上传感器节点超过生存周期未与岸基中心完成数据同步,则对子链上的数据进行备份,等到再一次申请获得新子链后将数据添加入新子链,撤销前一子链。
4.根据权利要求3所述的基于区块链和证书验证的海洋数据访问授权控制方法,其特征在于,S4包括:S4.3.错误处理;在验证过程中发现某个区块数据有误,海洋船n2向海洋船n1发送错误处理信息并请求重新发送该区块的数据,经过三次通信尝试后仍然无法获取正确的数据,海洋船n2生成告警信息存入访问授权系统中,同时记录缺失区块数据并终止通信。
5.根据权利要求4所述的基于区块链和证书验证的海洋数据访问授权控制方法,其特征在于,S5包括: S5.1.设置优先级等待队列,当有多个海洋船用户节点或海上传感器节点同时请求同步子链时,岸基中心管理节点根据各子链上携带数据优先级的不同设置一个优先级等待队列,用于存储所有到达的同步请求,以确保高优先级数据先同步: S5.1.1.每一个同步请求,计算其权重:
;
其中, 表示优先级权重;表示数据优先级; 为子链总区块的数量; 表示存有优先级 的数据的区块数量;
S5.1.2.岸基中心根据同步优先级处理优先级等待队列中的同步请求:权重高的同步请求具有高的同步优先级,权重低的同步请求具有低的同步优先级;
S5.2.子链同步时,岸基中心为主要权威节点,航运公司、港务局和研究机构作为次级权威节点只参与多数共识;
S5.2.1.海洋船或海上传感器节点重新连接到主网络并提交其临时子链上的区块时,每个区块应包含数据的哈希值和海洋船的数字签名;
S5.2.2.权威节点验证海洋船或海上传感器节点提交的区块数据与其哈希值是否匹配,检查时间戳和数据来源,验证数据是否在逻辑上连贯;
S5.2.3.超过半数的权威节点验证并批准,则子链的区块数据被同步到主链上;
S5.2.4.未通过多数共识,执行区块签名验证机制,进行二次节点共识;
S5.2.5.二次多数共识未通过则拒绝同步请求;
S5.2.6.临时子链完成同步后自动撤销,海洋船或海上传感器节点申请新的临时子链。
6.根据权利要求5所述的基于区块链和证书验证的海洋数据访问授权控制方法,其特征在于,S6包括:传感器和海洋船申请数字证书,使用第三方可信机构生成数字签名,当海洋船想查看授权访问系统中其它用户保存的原始数据或岸基中心存储的预测数据时,需要和相应的节点进行签名验证,双方开始验证彼此证书,被访问的节点使用公钥解密海洋船用私钥加密的随机消息,成功则证实海洋船的身份,海洋船使用公钥解密访问节点用私钥加密的随机消息,成功则证实海洋船的身份,完成签名验证;
数字证书采用证书链更新机制,允许有多个版本,每个版本有不同的有效期,如果参与端未及时更新其证书,仍使用较旧的证书。
7.根据权利要求6所述的基于区块链和证书验证的海洋数据访问授权控制方法,其特征在于,S6中对于不同参与端采用不同的证书更新策略,包括: S6.1.海洋船使用直接更新策略,每个海洋船定期检验证书的有效期,当有效期接近过期或有安全隐患时,海洋船在联网时向第三方可信机构请求更新,包括:海洋船通过预先存储的第三方可信机构的根证书验证第三方可信机构的合法性,第三方可信机构验证海洋船的身份和更新请求的合法性,颁发新的数字证书给海洋船;
S6.2.传感器使用双重更新策略,在联网时采用直接更新策略,直接向第三方可信机构请求更新;在长时间断网场景中,将每个可信海洋船作为代理节点,代理节点定期与第三方可信机构进行通信,为传感器获取新的证书或证书吊销列表,包括:传感器以七天为周期向与它建立通信的代理节点发送证书更新请求,代理节点收到更新请求后,在下次与第三方可信机构通信时为传感器获取新证书。