草庐IT

浅析区块链中IOT安全问题

田晓滨 2023-03-28 原文

1、引  言

随着通信和半导体技术的不断发展,这些技术允许设备通过网络连接,并改变了机器和人类之间的连接方式。这种趋势通常被称为物联网[1]。

物联网中的设备可以被远程控制以执行指定的功能。设备之间的数据共享通过使用标准通信协议的网络进行。然而随着物联网发展,设备之间的连接正在增加,计算基础设施也变得更加复杂,因此容易遭受黑客网络攻击。

在过去几年中,区块链已逐渐成为一种具有较多特性、且能够解决物联网网络设备面临的不同安全问题的技术。区块链是保存区块链网络中发生的所有交易记录的区块序列。如图1所示,每个块包含块头和块体/事务计数器。

区块链技术称为公共账本,所有完成的交易都记录在区块列表中。区块链技术具有去中心化、持久性、匿名性和可审计性等关键特征。具有这些特征,区块链可以节省成本并提高效率[2]。

图 1 区块体系结构

2、区块链属性

2.1区块链工作步骤

区块链工作步骤主要包括:

1)节点通过私钥和公钥的组合与区块链网络通信。用户使用私钥对自己的交易进行数字签名,然后通过公钥访问网络。每个签名的事务都由进行事务的节点广播[3]。

2)区块链网络内的所有非交易节点验证交易。

3)挖掘。网络节点在固定时间内将每个合法事务收集到一个块中,并找到其块的随机数实现工作证明,并将该块广播给所有参与节点[4]。

4)每个节点收集新生成的块,并确认该块是否包含合法交易和通过使用哈希值来声明父块的准确性。确认完成后,节点将将区块添加到区块链,并应用交易以更新区块链。

2.2验证

区块链技术使用非对称加密技术确保消除重复问题。私钥对其他节点保密,公钥在所有其他节点之间共享[5]。此外,步骤1由创建交易的节点进行数字签名,该交易被广播到整个区块链网络。所有接收节点将通过使用初始化节点的公钥解密签名来验证事务。通过验证签名来验证事务,签名表明初始化节点未被修改。

2.3工作证明(POW)

如图2所示,工作证明包含查找用安全哈希算法256哈希的值的过程,通过运行哈希算法进行确认。在一个超大型的区块链网络中,所有节点都通过增加块内的随机数值来实现每个挖掘过程的校对工作,直到找到一个提供块哈希所需比特的值。

图 2 工作证明

3、区块链的特点

区块链包含去中心化、持久性、匿名性、安全性、可扩展性、弹性后端、高效率、透明性及智能合约等特点,具体阐述如下。

3.1去中心化

在集中式事务处理环境中,每个事务都需要通过集中式可信方进行验证,这会导致中心点的高成本和低性能。区块链不再需要第三方,其共识算法用于保持数据完整性和一致性[2]。

3.2持久性

一旦区块链网络中的验证节点验证了交易记录,其副本将在整个网络上广播,该记录不会从整个区块链中删除或回滚[2]。

3.3匿名性

在区块链中,节点使用公钥与网络交互,该公钥通过将用户的真实身份保密来在整个区块链网络上寻址节点[2]。

3.4安全性

区块链使用非对称加密技术来保护整个网络。节点使用公钥来寻址区块链网络,节点使用私钥来签署其发起的交易。通过使用其公钥验证事务创建者节点的身份。

3.5可扩展性

AS可扩展性与IPv6中的128位相比,区块链包含160位地址空间。这160位由ECDSA生成。区块链在IPv6上增加了43亿个地址[6]。

3.6弹性后端

IOT网络中的每个分布式节点都维护着整个账本的副本。这有助于保护网络免受任何潜在故障和攻击[7]。

3.7高效率

由于交易消除了第三方的参与,并可能在低信任条件下进行,因此验证交易所花费的时间将减少,而效率将提高[8]。

3.8透明性

对公共区块链网络所做的更改可由网络中的所有参与者公开查看。此外,所有事务都是不可变的,这意味着它们不能被更改或删除[9]。

3.9智能合约

智能合约是Nick Szabo于1994年推出的以太坊最有效的方面之一[10]。使用智能合约程序,其中定义了访问权限和不同的策略。以太坊支持许多编程语言来编写智能合约,如Solidity[11]。

4、物联网或问题的安全必要性

物联网具备三个基本特点:全面感知、可靠传输和智能处理。物联网的特点能揭示出其相关的安全问题,包含数据隐私、数据完整性、第三方、可信数据来源、访问控制、单点故障、可扩展性、非法使用个人数据及物联网网络信息共享等问题,具体阐述如下。

4.1数据隐私

由于服务和网络的多样化集成,设备上记录的数据容易受到相关物联网网络中现有节点的攻击。攻击者可以在没有所有者许可的情况下访问数据[12]。

4.2数据完整性

在集中式客户端-服务器模型中,攻击者可能获得对网络的未经授权的访问,并更改原始数据或信息并转发。例如中间人攻击[12]。

4.3第三方

在集中环境中收集的第三方数据由集中实体存储和控制,该第三方集中实体可能会错误使用该数据或将其提供给其他人。

4.4可信数据来源

在物联网环境中,很难知道数据的来源,任何人都可能在传输过程中更改数据。

4.5访问控制

访问控制是物联网网络中的一个主要问题。在物联网网络中,很难定义哪个节点有权访问数据并使用数据执行不同的功能。

4.6单点故障

基于物联网基础设施的集中式网络的持续增长可能暴露单点故障。在这种情况下,由于整个网络的所有数据都由中央机构存储和验证,如果中央点出现故障或故障,整个网络将受到干扰[12]。

4.7可扩展性

物联网通过互联网连接大量传感器和其他设备,用于信息共享和大量应用。它挑战了系统的结构和快速增长,以满足可扩展性。

4.8非法使用个人数据

物联网设备基本上是传感器和植入芯片,它们收集个人重要信息并通过互联网传递。收集的信息存储在任何公司的中央数据库中。这些数据可能暴露了用户的个人表现,用户的保密性面临风险[13,14]。

4.9物联网网络信息共享

物联网网络设备收集的信息被清晰地记录下来,信息集可能包含物联网设备网络数据负载或其运行日志。为了确认工具和测试的效率,信息的开放可访问性起着至关重要的作用。

5、用于IOT的区块链解决方案

物联网作为一个多网的异构融合网络,其安全性涉及到多个方面,非常容易遭受黑客攻击。而通过将物联网与区块链相结合可以增强物联网网络的安全性,具体阐述如下。

5.1数据完整性

区块链是一个对等网络,其中所有节点都有相同的记录副本。此外,新创建的块将被广播到整个网络的所有其他节点。一旦记录加载到区块链中,就不能修改或删除[7]。

5.2数据隐私

联盟区块链用于在区块链网络中提供数据隐私。如图3所示,用于特定目的的节点组合在一起,形成专用网络/侧链。每个侧链负责管理自己的物联网数据。参与一个侧链的节点不允许参与其他侧链的验证过程。联盟区块链具有访问控制,防止未经授权的访问[13]。

图 3 联盟区块链网络

5.3寻址空间

区块链包含160位地址空间,提供了比IPv6地址更多的地址间隔[6]。

5.4可信责任

每个操作记录都必须上传到区块链网络。这为每个操作提供了一个标识,并且每个操作都是可跟踪的。当在实体中检测到异常行为时,将使用区块链进行额外调查[7]。

5.5容错
区块链是一个点对点的去中心化网络,每个设备都有相同的记录副本,区块链可以防止单点故障。

5.6可信数据源

为跟踪区块链网络中的数据,给每个物联网设备分配了唯一id。从设备收集的数据与其id相关联,在计算数据哈希后,将数据提交给整个网络。这成为可信数据来源的基础[7]。

5.7消除第三方风险

区块链技术使设备能够在没有中间人或第三方的情况下执行操作,从而使其不受第三方影响[4]。

5.8.访问控制

通过使用智能合约,可以开发区块链程序,其中定义了访问权限和不同的策略。

5.9非法使用个人数据

使用区块链可以禁止非法使用个人数据。由于区块链对等存储系统可以验证和记录在物联网网络数据上完成的所有操作[14]。因此,在IoT的“联盟区块链”被提出的地方,隐私被扩展到了许多层面[13]。

5.10物联网网络信息共享

随着物联网网络信息共享规模的增加,因此基础存储成本也将增加。因此,信息集保存在起源地,并保留一个集中的服务器,该服务器将单独保存对这些起源地的引用。

表1描述了区块链的特点,通过这些特点可以解决物联网问题。

表 1 物联网问题和解决这些问题的区块链特征

6、区块链实施问题

区块链是一个分布式网络,匿名对保护隐私至关重要,区块链提供匿名意味着用户没有真实世界的ID。用户有一个公钥,用于在这个分布式网络上实现交易,可以通过这些ID和与其相关的IP地址的组合找到用户。此外,当用户使用多个公钥时,可以通过检查不同的地址是否属于同一用户来跟踪。匿名性的解决方案可作为未来区块链相关的研究工作[14]。

7、总  结

随着高速网络和智能网络设备的兴起,物联网是下一个新型技术。本文旨在介绍区块链和物联网,并强调与物联网相关的安全问题。本文介绍了区块链网络的不同性质和特点,以解决物联网中的安全问题。此外,还阐述了区块链实施后未解决的问题。

参考文献

[1]M. Banerjee, J. Lee and K.-K.R. Choo (2017),’A blockchain future to Internet of Things security: A position paper’, Digital Communications and Networks,doi: 10.1016/j.dcan. 2017.10.006.

[1]Z. Zheng, S. Xie, H. Dai, X. Chen and H. Wang (2017), ‘An overviewof  blockchain  technology: Architecture, consensus,and future trends.’,Big Data (Big DataCongress) IEEE International.

[2]K. Christidis and M. DevetsikIoTis, (2016) ‘Blockchains and Smart Contracts for the Internet of Things,’ IEEE Access, vol. 4, pp. 2292–2303.

[3]S.Nakamoto.(2008).’Bitcoin:A.PeertoPeer.electroniccashsystem,’https://bitcoin.org/bitcoin.pdf.

[4]M. Pilkington. (2016).’Blockchain technology: Principle and applications,’ Research Handbook on Digital Transformations.

[5]M. Antonopoulos, (2014). ‘Mastering Bitcoin. First Edition’. O’Reilly Media,USA.

[6]X.Liang, J.Zhao, S.Shetty and, D.Li, (2017) ,‘Towards data assurance and resilience in IoT using blockchain’, Conference Paper.

[7]Yu Zhang and Jiangtao Wen (2015), ‘An IoT electric business model based on the protocol of bitcoin’. ICIN.IEEE, pp. 184–191.

[8]T. Chollet, J. Castiaux, M.Bruneton and L.Sainlez(2013),(2015),(2016),’Continuous interconnected supply chain using blockchain and internet of things supply chain traceability’ , deloitte blockchain.

[9]M. Gord,(2016), Smart Contracts Described by Nick Szabo 20 Years ago now becoming Reality, Bitcoin Magazine.

[10]Seyoung Huh, Sangrae Cho and Soohyung Kim (2017),’Managing IoT Devices using Blockchain Platform’, ICACT2017 February 19 ~ 22.

[11]M.A. Khan and K. Salah (2017) ‘IoT security: Review, blockchain solutions, and open challenges’, Future GenerationComputer.Systems, https://doi.org/10.1016/j.future. 2017.11. 022

[12]M.S. Ali, K. Dolui and F. Antonelli, (2017) ‘IoT data privacy via blockchains and IPFS’ International Conference on the Internet of Things (ACM, New York).

[13]M. Conoscenti, D. Torino, A. Vetr, D. Torino, and J. C.De Martin , (2016) ‘Blockchain for the Internet of Things : a Systematic Literature Review,’ IEEE/ACS 13th International Conference of Computer Systems and Applications (AICCSA)

有关浅析区块链中IOT安全问题的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  3. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  4. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  5. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  6. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  7. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  8. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  9. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  10. 【高数】用拉格朗日中值定理解决极限问题 - 2

    首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有,  也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加

随机推荐