前往小程序,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部署可能会通过增加攻击面而无意中阻碍物联网设备的安全。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
容器编排引擎Kubernetes 07——Deployment介绍及使用
Deployment 是 k8s 中管理发布的控制器,k8s 从v1.2开始就引入了 Deployment 控制器,Deployment 控制器并不直接管理 pod,而是通过管理 ReplicaSet 来间接管理 pod,即:Deployment 管理 ReplicaSet, ReplicaSet 管理 pod。所以 Deployment 比 ReplicaSet 的功能更加强大。
用户8100582
2024/01/27
5420
容器 & 服务:K8s 与 Docker 应用集群 (四)
https://mp.weixin.qq.com/s/LbHI2tHi_eOkuSgSROh3ng
程序员架构进阶
2021/03/09
8580
容器 & 服务:K8s 与 Docker 应用集群 (四)
容器编排引擎Kubernetes 04——部署Dashboard
因为前边K8S安装的是V1.23版本,所以这里需要选择能与V1.23的K8S兼容的dashboard版本。从页面上可以找到能兼容的dashboard最新的版本为V2.5.1。
用户8100582
2024/01/22
8810
容器编排引擎Kubernetes 08——Service介绍及使用
通过之前学习的部分,我们已经通过 Deployment 来创建一组 Pod 来提供具有高可用性的服务。虽然每一个 pod 都会分配一个单独的 Pod IP,但是存在以下问题:
用户8100582
2024/01/29
3900
容器编排引擎Kubernetes 06——kubectl常用命令
kubectl 是操作k8s集群的命令行工具,安装在k8s的master节点,kubectl 通过与 apiserver 交互,将用户输入转化为api server能够识别的信息,可以实现对k8s集群中各种资源的增删改查。
用户8100582
2024/01/26
4160
容器编排引擎Kubernetes 05——命名空间和POD
命名空间,即 namespace,是对一组资源和对象的抽象集合,比如可以将系统内部的对象划分为不同的项目组或用户组。
用户8100582
2024/01/25
7360
Kubernetes运维之容器编排基础Pod编写
Pod (就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的“逻辑主机”,其中包含一个或多个应用容器, 这些容器是相对紧密的耦合在一起的。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于 在同一逻辑主机上运行的云应用。
王先森sec
2023/04/24
3770
容器编排引擎Kubernetes 10——在k8s集群中部署项目
https://jdk.java.net/archive/ 可以从这个页面上找到需要的jdk版本并下载。
用户8100582
2024/01/31
1.2K0
【云原生 | Kubernetes篇】深入Kubernetes(k8s)概念(四)
可以使用 kubectl 命令行创建对象,也可以编写 .yaml 格式的文件进行创建
Lansonli
2022/06/07
1.2K0
【云原生 | Kubernetes篇】深入Kubernetes(k8s)概念(四)
kubernetes(八) kubernetes的使用
1、[preflight] 检查环境是否满足条件 2、[kubelet-start] 启动kubelet 3、[certs] /etc/kubernetes/pki 生成apiserver和etcd两套证书 4、[kubeconfig] 连接apiserver的配置文件 5、[control-plane] 静态Pod /etc/kubernetes/manifests 6、[etcd] 静态pod启动etcd 7、[upload-config] 将kubeadm配置存放到kube-system configmap 8、[kubelet] 将kkubelet配置存放到kube-system configmap 9、[mark-control-plane] node-role.kubernetes.io/master='' 说明master节点不调度pod 10、[bootstrap-token] 为kubelet自动颁发证书机制 11、安装插件 CoreDNS kube-proxy
alexhuiwang
2020/09/23
7790
kubernetes(八) kubernetes的使用
kubernetes | 杂记
基于centos7.9,docker-ce-20.10.18,kubelet-1.22.3-0
Amadeus
2022/10/25
2890
​kubernetes部署筹备
K8s集群文件中对资源管理和资源对象编排部署都可以通过声明样式yaml,文件来解决,也就是说可以把需要对资源对象操作编辑到yaml,文件中。
PayneWu
2020/12/18
5410
​kubernetes部署筹备
kubernetes-核心概念及创建应用(六)
•Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S。 •K8S用于容器化应用程序的部署,扩展和管理。 •K8S提供了容器编排,资源调度,弹性伸缩,部署管理,服务发现等一系列功能。 •Kubernetes目标是让部署容器化应用简单高效。 官方网站:http://www.kubernetes.io
yuezhimi
2020/09/30
3830
kubernetes-核心概念及创建应用(六)
Kubernetes(K8s) —— 容器编排管理技术
kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具 能通过两条指令完成一个 kubernetes 集群的部署:
时间静止不是简史
2021/08/12
8.1K1
Kubernetes(K8s) —— 容器编排管理技术
kubernetes(十二) 准入控制和helm v3包管理
RBAC(Role-Based Access Control,基于角色的访问控制):负责完成授权(Authorization)工作。
alexhuiwang
2020/09/23
1.4K0
kubernetes(十二) 准入控制和helm v3包管理
使用 kustomize 管理 Kubernetes 应用
随着 Kubernetes 1.14 的发布,大家发现原来只是 Kube 兴趣小组的 Yaml 管理工具 kustomize 被集成到 kubectl 中,从此大家可以利用 kubectl apply-k 将指定目录的 kustomization.yaml 应用到集群中。
CS实验室
2021/03/22
1.2K0
使用 kustomize 管理 Kubernetes 应用
kubernetes系列教程(五)初识核心概念pod
前面的系列文章已介绍kubernetes架构,安装,升级和快速入门,读者通过文章的实操已对kubernetes已有初步的认识和理解,从本章开始逐步介绍kubernetes中的基础概念概念和核心概念,基础概念包括:namespace,labels,annotations,pods,volumes等;核心概念包含kubernetes中各种controller,包含以下几种:
HappyLau谈云计算
2019/09/15
2.7K2
kubernetes系列教程(五)初识核心概念pod
不背锅运维:一文搞清楚应用发布到k8s集群的基本流程
下面演示通过get命令来得到yaml文件,使用-o来指定yaml的格式输出,其他资源也是这个套路
不背锅运维
2023/01/26
7971
不背锅运维:一文搞清楚应用发布到k8s集群的基本流程
从零开始:使用 Kubernetes 部署 Nginx 应用
可见,这个 nginx 并没有创建在 master 节点, 而是 slave 节点去了。
JavaEdge
2023/07/09
2.2K1
从零开始:使用 Kubernetes 部署 Nginx 应用
人生苦短,我用k8s--------------详解yaml文件
一、yaml文件简介 k8s支持使用YAML和JSON格式的文件来创建资源对象,相比较而言: json格式的文件用于接口之间消息的传递,更适合二次开发 yaml格式的文件只是一种简洁的非标记性语言,更适合运维 1、YAML的文件格式和注意事项 1、不支持制表符tab键缩进,需要使用空格缩进,使用缩进表示层级关系 2、通常开头缩进2个空格,缩进的空格数不重要,只要相同层级的元素左对齐即可 3、字符后缩进一个空格,如冒号、逗号、横杆 4、用#号注释 5、如果包含特殊字符用单引号引起来 6、布尔值必须用引号括起
不吃小白菜
2020/10/26
5K1
推荐阅读
相关推荐
容器编排引擎Kubernetes 07——Deployment介绍及使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档