解读白皮书投稿05:工业区块链能否解决工业数据安全问题
近年来,随着互联网、物联网、云计算、大数据和人工智能为代表的新一代信息技术与传统产业的加速融合,全球新一轮科技革命和产业革命正蓬勃兴起,一系列新的生产方式、组织方式和商业模式不断涌现,工业互联网应运而生。
所谓工业互联网,是指全球工业系统与高级计算、分析、感应技术以及互联网连接融合的结果。它通过智能机器间的连接并最终将人机连接,结合软件和大数据分析,重构全球工业、激发生产力。为了提供生产效率和效益,工业网络会越来越开放,但是薄弱的防护,暴露了工业网络安全领域的诸多问题。工业互联网的安全作为一个工业信息安全当中的新挑战,带了问题和威胁有:
(1) 工业互联网平台的安全;
(2) 工业互联网设备和控制层的安全问题;
(3) 工业大数据安全问题;
(4) 工业互联网网络的安全问题。
目前诸多领域应用了工业互联网,包括市政供水供热、能源管理、智能交通、智能家居、智能电网等,由于安全性问题,一旦被入侵,整个系统就会瘫痪。过去的网络病毒也许只能控制一部手机,如今可以控制一家工厂,近年来,工业数据平台被曝出的漏洞日益增多,且大量集中在装备制造、交通、能源等重要领域。一些黑客正是利用这些漏洞,窃取了大量的工业信息。2007年,加拿大一个水利SCADA控制系统被攻击者入侵,取水调度的控制计算机瘫痪;2008年,波兰某城市地铁系统被攻击者入侵,攻击者通过电视遥控器改变轨道扳道器,导致四节车厢脱轨;2012年,攻击多个中东国家的恶意程序Flame火焰病毒,它能收集各行业的敏感信息;2016年,乌克兰电力公司的网络系统遭到黑客攻击,导致大规模的停电。
从全球发展趋势来看,工业互联网和工业数据日益成为黑客攻击的重点目标。
而工业区块链DIPNET作为新型的网络安全模式,应用到工业互联网上能解决这些安全问题吗?
工业区块链DIPNET是一种基于区块链技术所带来的价值传输生产方式构建出的一个云链混合的分布式智能生产网络,对制造业商业模式进行整体重构。工业区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,其按照时间顺序将数据区块以链条的方式组合成特定数据结构,利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据。总的来说,工业区块链具有去中心化、安全性、匿名性等特性,使得区块链技术可以在工业互联网各领域可以大有作为。
为了更好保证工业网络和数据安全,工业区块链DIPNET在架构上采用分层模式,
图1 工业区块链(DIPNET)分层图
(源自《工业区块链(DIPNET)白皮书》)
工业区块链DIPNET主要分为网络层、基础服务层、合约层和接口层。其中,前三者与工业数据安全密切相关。
网络层:
其基于以太坊 devp2p 协议(DPT、IPFS等),实现工业区块链(DIPNET)底层网络。devp2p 协议是以P2P协议为基础,是对等网络中节点间通信的网络协议,节点支持任意数量的子协议,并处理子协议与子协议之间的协商,记录单个连接上的消息。其主要特点是:1)分布式网络,无中央服务器,非中心化;2)用户之间互联并分享文件;3)可扩展:全分布系统;4)健壮性:耐攻击、高容错;5)隐私保护;6)负载均衡;这些特点为工业区块链保证工业数据安全提供了绝佳的网络环境特性和通信协议。
基础服务层:
其一,工业区块链DIPNET采用股权授权证明(DPOS)共识的链式区块结构。DPOS共识机制中,持有股份的用户通过投票来选取超级节点,由选出的超级节点来产生区块并记录区块链,保障系统安全运行。一旦超级节点作恶,例如出现宕机、延迟等情况,它就会被投票出局。DPOS要求21个超级节点的三分之二以上确认后,区块才能生效。所以,一旦工业网络中出现个别入侵者,就会被踢出系统网络,从而保证系统网络的安全。
其二,工业区块链DIPNET使用ECDSA-secp256k1数字签名方案,涉及一种椭圆曲线数字签名加密技术,如图为算法公式曲线,是不是看着有点诡异?
图2 secp256k1算法曲线图
加密算法一般分为对称加密和公开密钥加密。对称加密就是使用同一密钥进行数据的加密和解密;而DIPNET的加密方式选择的ECDSA-secp256k1数字签名为公开密钥加密,公开密钥加密也称非对称加密,即加密和解密使用不同的密钥,分别是公开密钥和私有密钥,简称公钥和私钥。
非对称加密算法实现机密信息交换的基本过程是:A用户生成一对密钥(公钥和私钥)并将其中的一把作为公钥向其它方公开;得到该公钥的B用户使用该公钥对机密信息进行加密后再发送给A用户;A用户再用自己保存的私钥对加密后的信息进行解密。简单地说,就是公钥用于加密和认证,私钥用于解密和签名。
那么,我们来看看采用区块链技术的公钥是怎么产生的?
第一步,随机选取一个32字节的数、大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间,作为私钥。
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
第二步,使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥。 (共65字节, 1字节 0x04, 32字节为x坐标,32字节为y坐标)关于公钥压缩、非压缩的问题不做详解。
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B 23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
第三步,计算公钥的 SHA-256 哈希值
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
第四步,取上一步结果,计算 RIPEMD-160 哈希值
010966776006953D5567439E5E39F86A0D273BEE
第五步,取上一步结果,前面加入地址版本号(比特币主网版本号“0x00”)
00010966776006953D5567439E5E39F86A0D273BEE
第六步,取上一步结果,计算 SHA-256 哈希值
445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
第七步,取上一步结果,再计算一下 SHA-256 哈希值(哈哈)
D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
第八步,取上一步结果的前4个字节(8位十六进制)
D61967F6
第九步,把这4个字节加在第五步的结果后面,作为校验(这就是比特币地址的16进制形态)。
00010966776006953D5567439E5E39F86A0D273BEED61967F6
第十步,用base58表示法变换一下地址(这就是最常见的比特币地址形态)。
1M8DPUBQXsVUNnNiXw5oFdRciguXctWpUD
如果你想破解,建议先算一下,用一台较快的计算机,运行多久才能破解。
合约层:
工业区块链DIPNET通过VM实现智能合约,智能合约是部署在区块链上的一段可自动执行的程序,广泛意义上的智能合约包含编程语言、编译器、虚拟机、事件、状态机、容错机制等。其中,对应用程序开发影响较大的是编程语言以及智能合约的执行引擎,即虚拟机。虚拟机作为沙箱被封装起来,整个执行环境都被完全隔离。虚拟机内部执行的智能合约不能接触网络、文件系统或者系统中的其他线程等系统资源。
工业区块链DIPNET是全球首个分布式智能生产网络,是全球最大的工业垂直公链,拥有全球最大的工业区块链社区,应用于多方协同生产、供应链清结算,工业资产数字化等领域,具有去中心化、安全、高效等特点。在工业4.0、智能制造、智能生产的大趋势下,工业区块链DIPNET将是工业数据安全问题的一种良好的解决方案,应用到工业控制、工业数据、工业网络系统的各个领域和行业中,相信工业区块链DIPNET可以推动整个工业的转型及新型模式的发展。