AliOS Things自组织网络安全认证架构概述

简介: AliOS Things自组织网络(uMesh)结合阿里云Link ID²设备身份认证平台为物联网嵌入式设备提供了自主安全认证授权接入无线mesh网络的解决方案,并且兼容IEEE802.1X端口控制访问协议和EAP(RFC3748)扩展认证协议,提供了一种灵活可扩展的安全认证机制框架。

AliOS Things 是 AliOS 家族旗下的、面向 IoT 领域的、轻量级物联网嵌入式操作系统。 AliOS Things 致力于搭建云端一体化 IoT 基础设施,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、新出行等领域。

近年随着越来越多被曝光的物联网安全漏洞问题以及遭受到的网络攻击,安全将会成为物联网生态体系要面对的一个尖锐问题,尤其是嵌入式安全因为设备的数量巨大使得常规的更新和维护操作面临挑战,而基于云的操作使得边界安全不太有效。

针对上述物联网安全的痛点,作为AliOS Things核心组件之一自组织网络(uMesh)不仅提供了AliOS Things原生自组织网络能力,本地互联互通的能力,也将更多的注意力放到了如何保障嵌入式设备能够自主安全接入自组织网络,并保证和云端数据通信的完整性和机密性。uMesh具有自组织、自修复、多跳、兼容标准端口网络访问控制和扩展认证协议,可扩展多种标准安全认证方式等特性。适用于需要大规模部署且对设备节点有安全性需求的场景,如智能家居,智能照明,及商业楼宇等场景。主要功能特性包括:

  • 无缝支持IPv4 和IPv6
  • 支持WiFi、BLE和802.15.4等通信媒介
  • 支持不同通信媒介间的异构组网
  • 支持树状拓扑和网状拓扑
  • 支持低功耗特性
  • 支持阿里云设备身份认证平台ID²对接入设备进行安全认证授权
  • 支持AES-128共享对称密钥在全网范围内点对点的数据加密解密
  • 兼容标准IEEE802.1x端口控制协议和EAP扩展认证协议(RFC3748)

阿里云Link ID²设备身份认证平台

ID²(Internet Device ID),是一种物联网设备的可信身份标识,具备不可篡改、不可伪造、全球唯一的安全属性,是实现万物互联、服务流转的关键基础设施。

ID²设备身份认证平台由互联网设备,ID²分发中心,云端ID²认证中心和部署在本地或者云端的互联网服务组成。芯片厂商产线通过调用提供的ID²产线烧录SDK(可集成到厂商的烧录工具)完成向ID²分发中心在线的ID²申请,获取和烧录。烧录完成后,可通过调用烧录回执相关的API来确认是否已经成功烧录到芯片。具体产线烧录ID²过程可参考:ID²申请和产线烧录

烧录ID²的同时也会将相应的私钥(private key)烧录到芯片内,公钥(public key)会上传给云端ID²认证中心,该私钥可用于解密由云端ID²认证中心下发的加密数据,这种模式可用于实现应用层协议的通道认证或者秘钥协商。ID²的一个重要应用场景就是连接协议的安全性增强,ID²和各种连接协议(如MQTT,CoAP)结合,为连接提供设备认证和密钥协商等基础能力,为整个IoT管理系统提供基础的安全保障。后面也会介绍利用该安全特性将ID²设备身份认证平台与AliOS Things自组织网络节点安全入网相结合。ID²认证平台系统架构如下:

_2018_01_05_1_52_40

ID²设备身份认证平台提供了两种认证模式:基于挑战应答模式(challenge-response Based)和基于时间戳(Timestamp-Based),可防止重放(replay)攻击。以挑战应答认证模式为例,sp server(业务服务器)作为消息代理(proxy),转发设备节点和云端ID²认证中心之间的交互消息(默认设备节点已经预置烧录ID²)。具体认证消息交互流程图如下:

_2018_01_05_2_21_56

  • 设备端发送认证请求给sp server,向云端ID²认证中心申请挑战随机数(challenge)
  • sp server调用POP SDK Java API:getServerRandom()从云端ID²认证中心获取到挑战随机数并转发给终端设备节点
  • 设备节点获取到挑战随机数后,根据预置根ID²,challenge,extra data(可选)作为计算auth code的参数,调用端上提供的TFS API:tfs_id2_get_challenge_auth_code()计算auth code
  • 设备节点将计算出的auth code发送给sp server, 将帮助转发给云端ID²认证中心
  • sp server调用POP SDK Java API:VerifyRequest() 与云端ID²认证中心做认证
  • sp server最后将根据云端ID²认证中心返回的认证结果做相应的业务处理

此外,对于允许接入该sp server服务的设备,ID²能够确保设备和server之间的双向认证。即,不仅sp server需要确认该拥有ID²身份信息的设备是否允许接入,同时接入设备也需要确认该sp server是否具有提供认证服务的合法性。通过双向认证的方式从而可以过滤掉那些虽拥有合法的ID²身份信息,但不属于sp server所提供服务的范畴内的一些接入设备。不同的厂商可自行定义设备具体的接入sp server方式,这一部分暂时不在本文讨论范围之内。

具体认证过程中sp server所用到的POP SDK API用法可参考相应的sample code:获取随机数; 认证请求; 认证请求并加密。终端节点上调用的TFS API可参考相应的API说明,tfs静态库的路径:AliOS-Things/security/tfs/lib.

AliOS Things自组织网络的安全认证架构

传统的AAA(Authentication、Authorization、Accounting)服务在部署和配置上都需要额外的专业IT人员操作,而对于像物联网这样拥有大量设备节点的场景,手动的为每一个设备节点生成证书显然有些不切实际。此外,x.509证书不仅需要出厂预置占用较多的flash资源,并且在ASN.1解析和认证过程中的消息传递也会消耗大量的MCU资源(根据不同的签名算法,密钥协商算法,加密算法而生成的证书的大小各不相同,大一点的证书可能会超过1KBytes),因此对于资源受限的嵌入式设备节点,基于证书的认证方式可能不是一个最优选择。

ID²设备身份认证平台是一个更为轻量级的基于身份信息的双向认证服务平台,尤其适合硬件资源不足的嵌入式设备的认证方式。认证服务中心云端化也省去大量IT人员的时间来重复相同的部署和配置过程,客户所需要做的仅仅是调用相应的SDK对接云端ID²认证中心。基于这个优势,设计自组织网络(uMesh)的设备节点端安全认证过程时也依托于上述ID²设备身份认证平台的挑战应答认证模式。目前新加入的设备节点和已经入网节点之间的认证通信协议兼容标准的IEEE802.1x和EAP扩展认证协议,利用IEEE802.11 WiFi协议标准进行数据传输。EAP扩展协议也为后续扩展和兼容多种标准认证方式(如MD5, OTP, TLS等)提供了基本协议框架。

自组织网络uMesh和ID²设备身份认证平台结合的安全认证架构框图如下:

_2018_01_06_4_11_01

树莓派3作为直接和AP相关联的节点充当网络的Leader角色来创建一个新的自组织网络并负责分配短地址(16 bits)给后续加入网络的设备节点,该地址用于在uMesh网络内通信,同时在树莓派3上利用iptables建立NAT来相互转发tun0接口和eth0接口之间的ip数据包(NAT更改ip数据包头里的源地址),这样就可以让uMesh网络内的节点成功和外网的sp server通信,从而和云端ID²认证中心进行身份认证。

uMesh网络节点和云端ID²认证中心的安全认证消息交互流程如下:

_2018_01_06_4_51_42

EAP扩展认证协议框架不仅定义了标准的认证类型(如MD5, OTP, GTC, TLS等),还定义了扩展类型(Expanded Types, type值为254)用来兼容不同的vendor现有的自定义认证方式。EAP-ID²即为基于ID²设备身份认证所设计的一种认证协议用于uMesh自组织网络节点的安全认证方式之一。详细的扩展类型包头格式如下:

_2018_01_06_4_59_42

总结

兼容IEEE802.1x端口访问控制协议和EAP扩展认证协议为自组织网络(uMesh)的安全认证体系提供了更为丰富,更加灵活可扩展的协议认证框架,可以满足不同客户现有自定义或者标准的认证流程。目前通过搭建实际测试环境验证了AliOS Things自组织网络(uMesh)结合ID²设备身份认证平台提供对新加入节点做身份信息的认证方案,也为后续大规模的商业场景部署提供了有力支撑。

想了解更多关于AliOS Things的细节,可以访问AliOS Things Github

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
1月前
|
网络协议 网络安全 网络性能优化
【计算机网络概述】第一章:概论 1.2什么是网络边缘
【计算机网络概述】第一章:概论 1.2什么是网络边缘
|
8天前
|
存储 监控 Linux
Docker技术架构概述
【6月更文挑战第29天】Docker采用CS架构,Client与Daemon交互,Compose管理多容器应用。
|
14天前
|
机器学习/深度学习 计算机视觉 网络架构
是VGG网络的主要特点和架构描述
是VGG网络的主要特点和架构描述:
15 1
|
1月前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
深度揭秘:深度学习框架下的神经网络架构进化
从感知机到深度学习的革命,神经网络经历了从简单到复杂的演变。反向传播使多层网络实用化,深度信念网络(DBN)和卷积神经网络(CNN)的兴起,尤其是AlexNet在ImageNet竞赛中的胜利,开启了深度学习黄金时代。ResNet的残差学习解决了深度梯度消失问题。循环神经网络(RNN)、LSTM和GRU改进了序列处理,Transformer模型(如BERT和GPT)引领了自然语言处理的变革。超大规模模型如GPT-3和通义千问展示惊人能力,影响医疗、自动驾驶等多个领域。未来,平衡模型复杂度、计算成本与应用需求将是关键。
58 2
|
21天前
|
网络协议 Java 开发者
网络编程概述
网络编程
37 8
|
20天前
|
机器学习/深度学习 网络架构 计算机视觉
VGG深度卷积神经网络架构
VGG深度卷积神经网络架构
|
1月前
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
|
1月前
|
网络协议 API
【计算机网络概述】第二章:应用层:2.1 应用层原理
【计算机网络概述】第二章:应用层:2.1 应用层原理
|
1月前
|
网络协议 网络架构 C++
【计算机网络概述】第一章:概论 1.1什么是Internet
【计算机网络概述】第一章:概论 1.1什么是Internet

热门文章

最新文章