Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >IPv6部署如何影响物联网设备的安全性

IPv6部署如何影响物联网设备的安全性

作者头像
双愚
发布于 2018-05-07 09:24:45
发布于 2018-05-07 09:24:45
1.7K0
举报

原文作者:Fernando Gont

原文地址:https://internetofthingsagenda.techtarget.com/feature/How-IPv6-deployment-affects-the-security-of-IoT-devices


作为IPv4协议的继承者,IPv6将提供巨大的地址空间,以支持互联网当前和未来的发展。

IPv6通常被视为物联网的关键促成技术,因为它可以轻松适应越来越多连接到互联网的智能传感器。但是,IPv6和物联网设备之间可能存在的安全交互通常被忽略,以及与物联网设备安全性相关的范例可能无意中发生变化。

在物联网(IoT)的网络(Internet)里面

大多数网络的事实上的基本安全架构包括通过网络地址转换(NAT)设备连接到公共因特网的内部网络。NAT设备不仅允许单个地址或一组地址在内部网络上的多个系统之间共享,但是,有个副作用,它强制执行一个只允许传出通信的安全策略。也就是说,允许从内部网络发起到公共互联网的传出通信,例如TCP连接,而从公共互联网发起到内部节点的通信被阻止。

许多协议和应用程序假定内部网络上的节点和内部网络本身都可以信任,而内部网络外部的任何网络和节点都不被信任。因此,大多数智能设备都采用两套不同的协议:组不安全的协议在本地网络上运行,另一组则是在互联网上运行的典型安全协议。

在本地网络上,智能设备通常采用简单的专有协议,缺乏认证,授权和保密性。在某些情况下,某些不需要验证的操作和管理功能,或者采用用户很少更改或更新的默认凭证的功能也可以通过Web界面访问。这对物联网设备的安全性不利,正如2016年10月IoT分布式拒绝服务攻击中所见。另一方面,通过互联网的操作经常使用由设备供应商提供的某种形式的云服务,通过HTTPS进行通信。

因此,这些智能设备一直认为本地网络是可信的,而外部网络 - 互联网 - 则不是。这种模式当然是有问题的,因为访问本地网络并不意味着允许操作本地智能设备。但是,至少应该强制执行界定信任和不信任网络之间的边界。对于一些简单的网络设置和场景,人们可能会摆脱这种模式。

IPv6部署对物联网设备安全的影响

如前所述,IPv6部署的主要驱动因素是其庞大的地址空间,它可以适应互联网和互联网连接设备目前和可预见的未来增长。

由于其广阔的地址空间,IPv6设备至少配备了一个唯一的全球地址,因此,NAT注定会消失。因此,NAT的过滤策略强制只允许传出通信也可能消失,这意味着内部和外部系统之间的通信可能不再受网络监管。

实际上,如果在网络边界不执行过滤策略,内部和外部网络之间的区别可能会完全消失。虽然这可能带来潜在的好处 - 例如,对于未经请求的入站通信常见的点对点应用程序,但这显然会增加攻击风险。

除非采取明确的措施,否则IPv6部署可能导致网络的所有内部节点都可以从公共互联网直接访问。例如,这意味着诸如基于IPv6的死亡ping之类的封包攻击可以很容易地用于物联网设备。另外,被设计为在本地可信网络上运行的协议可能不经意地最终在不可信的公共互联网上运行。

物联网是否真的需要IPv6?

当涉及到IPv6的物联网和,许多人认为,IPv6的需要物联网,以发挥其全部潜力。然而,分析IoT可能需要 IPv6(特别是全球寻址和任意连接)的程度是很有趣的。

在IPv4世界中,由于多种原因,使用私有地址空间可能会产生问题,例如,何时需要合并或互连使用重叠私有地址空间的网络。提供具有全局地址的所有设备可以帮助避免此类问题和其他相关问题 - 尽管唯一的本地地址空间fc00 :: / 7(提供统计唯一的本地范围地址)也可以用于类似的结果。

无论是否采用全局地址空间,问题出现在任何连接(包括未经请求的入站通信)是否可取,以及它对物联网设备安全性的影响。在IPv4世界中,由于使用NAT,未经请求的入站通信被阻塞。随着IPv6在IPv6世界中可能消失的NAT及其网络过滤策略,全球任何对任何通信都可以提高灵活性 - 尽管以增加攻击风险为代价。

是否对IPv6和物联网设备实施相同的过滤策略将取决于相关设备通信模型 ; 是否需要外部实体轮询物联网设备,或预计物联网设备是否会通知外部实体。如果是前者,则物联网网络需要接受入站的,未经请求的通信。如果是后者,传入的通信可能会被网络阻塞,而IoT设备将能够根据需要与外部系统联系。

由于物联网仍然是当前发展的一个领域,因此很难对哪种通信模式更受欢迎做出任何有教育的预测。但是,请注意,由于物联网设备目前在IPv4上运行,并且只允许出站通信,因此很有可能IPv6采用相同的范例。因此,对于基于IPv6的IoT网络,将实施与IPv4世界相同的过滤策略。

一个可能的前进方向

除了为的IoT装置的可能通信模式中,一个可能想知道如果,当从外部网络到的IoT网络通信是期望的,这样的通信应直接涉及的IoT设备,或者它是否应该经由一个中介的IoT代理来执行作为外部网络与物联网网络和设备之间的网关。很显然,这样一个网关很可能在安全方面更好,并且可能处于监视典型脆弱的物联网设备流量的良好位置。

庞大的IPv6地址空间代表了互联网目前和可预见的未来增长。除非采取具体行动,否则IPv6部署可能会通过增加攻击面而无意中阻碍物联网设备的安全。

相关的增加曝光是否合理取决于物联网设备采用的通信范例。作为一个经验法则,除非实际需要阻塞通信的原则应该被应用。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
源码阅读 AtomicInteger
AtomicInteger 原子整数 可以原子更新的int值。 用于原子递增计数器等应用程序中,不能用作java.lang.Integer的替换。 扩展了Number。 # 1.继承关系: public class AtomicInteger extends Number implements java.io.Serializable # 2. 属性、代码块: // Unsafe的实例 private static final Unsafe uns
微风-- 轻许--
2022/04/13
2250
jdk-Atomic源码学习
atomic是并发框架中的一员,所属位置:java.util.concurrent.atomic 该类主要是用来解决内存可见性、有序、线程安全,当然底层也是通过cas来实现,所以性能相同步锁也是高不少。
逍遥壮士
2023/02/28
3440
jdk-Atomic源码学习
死磕 java并发包之AtomicInteger源码分析
AtomicInteger是java并发包下面提供的原子类,主要操作的是int类型的整型,通过调用底层Unsafe的CAS等方法实现原子操作。
彤哥
2019/07/08
5830
AtomicInteger 源码分析
AtomicInteger 扩展了 Number,适用于基于数字的处理,并提供了如原子递增等,适合一些计数场景
itliusir
2020/01/31
5000
深入理解JUC:第二章:CAS:CompareAndSwap底层原理
线程对变量的读取赋值等操作,要先将变量从主内存拷贝自己线程的工作内存空间,在工作内存中进行操作,操作完成后再将变量写回主内存
Java廖志伟
2022/09/28
2070
深入理解JUC:第二章:CAS:CompareAndSwap底层原理
Java并发编程CAS
它的功能是判断内存某一个位置的值是否为预期,如果是则更改这个值,这个过程就是原子的。
一觉睡到小时候
2020/05/27
4710
java吧_死磕好不好
前面我们说到volatile不保证原子性,解决办法就是使用AtomicInteger代替int,但是为什么使用AtomicInteger就可以保证了原子性了,是因为AtomicInteger实现的就是CAS思想和Unsafe的支持。
全栈程序员站长
2022/08/04
7110
AtomicInteger源码分析详解
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
suveng
2019/09/18
6790
AtomicInteger源码分析详解
AtomicInteger详解
因为在阻塞队列中LinkedBlockingQueue中对容量的维护使用了Atomic类,所以需要对该类学习下,如何使用AtomicInteger来保证线程操作的原子性。
虞大大
2020/08/26
1K0
【死磕Java并发】—- 深入分析CAS
CAS,Compare And Swap,即比较并交换。Doug lea大神在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是以
芋道源码
2018/03/01
7750
【死磕Java并发】—- 深入分析CAS
慕课网高并发实战(四)- 线程安全性
当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要额外的同步或协同,这个类都能表现出正确行为,那么就称这个类是线程安全的
Meet相识
2018/09/12
5380
慕课网高并发实战(四)- 线程安全性
3分钟带你秒懂CAS实现机制
在 Java 的java.util.concurrent包中,除了提供底层锁、并发同步等工具类以外,还提供了一组原子操作类,大多以Atomic开头,他们位于java.util.concurrent.atomic包下。
Java极客技术
2024/06/11
1810
3分钟带你秒懂CAS实现机制
Java原子操作类,知多少?
前文我们介绍了Java并发编程中的两个关键字:volatile和synchronized。我们也知道了volatile虽然是轻量级,但不能保证原子性,synchronized可以保证原子性,但是比较重量级。
Jackeyzhe
2020/03/11
6050
Java原子操作类,知多少?
Java原子操作Atomic类详解
      1.CAS(Compare And Swap,比较并交换),通常指的是这样一种原子操作:
忧愁的chafry
2022/10/30
7350
Java原子操作Atomic类详解
Java - CAS用法及说明
CAS即compare and swap,表示比较并交换,在java中依赖Unsafe类来实现,常见的CAS实现有AtomicInteger、AtomicLong、AtomicReference等,这些都是使用乐观锁的形式来实现多线程线程编程。 下面以AtomicInteger为例介绍:
夹胡碰
2020/12/23
1.1K0
从JUC源码看CAS,我做了个笔记 ......
" JUC包下大量使用了CAS,工作和面试中也经常遇到CAS,包括说到乐观锁,也不可避免的想起CAS,那CAS究竟是什么? "
程序员小航
2020/11/23
3280
从JUC源码看CAS,我做了个笔记 ......
没用过Java原子类?我来手写一个AtomicInteger
大家可能听过「Automic」原子类,这些类在多线程下可以保证线程安全。比如想要实现自增,多线程下会出现少增加的情况。
Lvshen
2022/05/05
2530
没用过Java原子类?我来手写一个AtomicInteger
CAS解析
CAS 指的是现代 CPU 广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。这个指令会对内存中的共享数据做原子的读写操作
leobhao
2022/06/28
5690
CAS解析
【Java线程】线程安全三元素:原子性、可见性、有序性
首先大家需要思考一下何为线程安全性呢??? 《Java并发编程实战》书中给出定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在调用代码中不需要任何额外的同步,这个类都能表现出正确的行为,那么这个类就是线程安全的。
沁溪源
2021/03/22
4450
Java并发:了解无锁CAS就从源码分析
CAS的全称为Compare And Swap,直译就是比较交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,其实现方式是基于硬件平台的汇编指令,在intel的CPU中,使用的是 cmpxchg指令,就是说CAS是靠硬件实现的,从而在硬件层面提升效率。
搜云库技术团队
2019/10/18
5750
相关推荐
源码阅读 AtomicInteger
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档