iOS Matter 操作证书签发方案

news2024/9/27 17:37:48

在 Matter 配网和操作中,为了信息交互的安全,在配网时,Commissioner自身需要完整的证书,同时需要向设备安装操作证书。

Matter 证书包含:

  • RCA: 根证书

  • ICA: 中间证书,可选

  • NOC: 操作证书(注意有以下两种操作证书)

    • MTRDeviceController操作证书: MTRDeviceController 使用的 NOC
    • 设备操作证书:发送给设备的NOC

MTRDeviceController初始化

必须要的参数

ipk: 16字节,对 fabric 有效,随机数。

VendorID: 厂商ID

keyPair: 基于 RCA 或者 commissioner NOC(如果指定的话) 的公私钥对。还要用私钥实现相关加密方法。

证书签发方式

在 Apple 提供的 Matter.framework 框架中,提供三种不同的证书签发方案。

  1. 本地自动签发(开源中DarWin 示例工程方案),只需要指定FabricID 即可完成整个证书的自动签发,缺点:本设备有效,同步难。

  2. 本地指定 RCA, ICA,NOC(以上三个证书可以本地保存,也可以云端请求),后续自动根据证书参数生成设备 NOC. 缺点:不安全

  3. 所有证书云端签发: Commissioner初始化之前,从云端获取RCA, ICA,NOC。自行实现 nocChinIsser ,根据 CSR 信息由云端生成设备的 NOC。缺点:依赖网络和云端证书。

还需要指定 paa 列表,可以参考dcl (csa-iot.org)否则会出现设备不信任回调。

节点操作凭证过程

截屏2023-03-31 11.33.16

设备节点操作证书是基于 CSR 信息签发。可以由本地默认签发,也可以通过服务器签发。

服务器签发

服务器签发需要自定义签发器,并且遵守MTROperationalCertificateIssuer并回调设备节点操作证书。

- (void)issueOperationalCertificateForRequest:(MTROperationalCSRInfo *)csrInfo
                              attestationInfo:(MTRDeviceAttestationInfo *)attestationInfo
                                   controller:(MTRDeviceController *)controller
                                   completion:(void (^)(MTROperationalCertificateChain * _Nullable info,
                                                        NSError * _Nullable error))completion  API_AVAILABLE(ios(16.4)){
                                     // 基于csr信息 在云端或者自行签发设备的操作证书。
 }

为MTRDeviceController设置操作证书签发器

// iOS 16.4
MTRDeviceControllerStartupParams * params = [[MTRDeviceControllerStartupParams alloc] initWithIPK:ipk operationalKeypair:keypair operationalCertificate:nocCertificate intermediateCertificate:icaCertificate rootCertificate:rootCertificate];
//xxxIssuer *issuer =   签发器实体
//dispatch_queue_t nocIssuerQueue =  签发队列
[params setOperationalCertificateIssuer:issuer];
[params setOperationalCertificateIssuerQueue:nocIssuerQueue];

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/438971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能的前沿信息获取之使用文献数据库

人工智能的知识更新迭代非常迅速,因此对人工智能前沿的跟踪非常必要。本文主要介绍了使用文献数据库获取人工智能前沿信息的方法。 文献数据库是检索和下载论文的主要工具,对文献进行检索和下载的技巧在本科公共基础课《文献检索》或《信息检索》等类似…

家庭智能触摸面板开关一Homekit智能

触摸开关,即通过触摸方式控制的墙壁开关,其感官场景如同我们的触屏手机,只需手指轻轻一点即可达到控制电器的目的,随着人们生活品质的提高,触摸开关将逐渐将换代传统机械按键开关。 触摸开关控制原理 触摸开关我们把…

【ESP-IDF】介绍NVS

ESP-IDF是一款由乐鑫科技(Espressif Systems)开发的面向ESP32和ESP32-S系列芯片的开发框架,NVS(Non-Volatile Storage)是其中的一项功能。 NVS是一种用于在嵌入式系统中保存持久化数据的键值存储库。在ESP-IDF中&#…

虚拟化技术 — SR-IOV 单根 I/O 虚拟化

目录 文章目录 目录SR-IOVSR-IOV VEBSR-IOV VEPASR-IOV Multi-ChannelSR-IOV OvSSR-IOV 的应用使能 SR-IOV VFs挂在 VF 到 KVM 虚拟机中SR-IOV 的 NUMA 亲和性VF 的网络配置VFs Bonding SR-IOV 虚拟机的热迁移问题 SR-IOV 传统的 I/O 虚拟化方案需要 VMM 来捕获和模拟 VM 的 I…

400左右蓝牙耳机什么牌子音质好?400左右的无线蓝牙耳机推荐

过去几年苹果的AirPods深受大家欢迎,但要论最佳耳机,还要考虑佩戴类型,功能上又分降噪水平,甚至价格上也要实惠,毕竟对于不想太高预算来获得出色音质和舒适度的人来说,这也是他们心中的"最佳"产品…

Kubernetes那点事儿——调度策略

Kubernetes那点事儿——调度策略 前言一、静态Pod二、nodeSelector 节点选择器三、nodeName四、taint污点五、tolerations污点容忍六、容器资源限制七、nodeAffinity节点亲和性 前言 Kubernetes的强大之处离不开它的调度系统,它为Pod调度到某个Node上提供了多种方式…

Linux学习_设备树实现中断

Linux学习_设备树实现中断 中断层级结构设备树_中断控制器设备树_中断子节点驱动程序获取GPIO获取中断号申请中断中断处理函数 中断层级结构 就硬件而言,中断控制器指的就是GIC,但是实际在软件上,图中的GPIO等我们也称之为中断控制器。 外部…

[PyTorch]预训练权重的转换

众所周知,使用大量数据预训练后的骨干网络可以提升整个模型的泛化能力,而我们如果将网络的骨干网络替换后则不能直接使用原来的权重。这个项目的作用是在你替换骨干网络后可以将网络预训练权重一并“偷”过来。 下给结论:将DeeplabV3的骨干网…

详解 TCP(三次握手 + 四次挥手 + 滑动窗口 + 拥塞控制 + 和 UDP 做对比)

文章目录 1. TCP / IP五层模型和OSI七层模型1)OSI七层模型2)TCP/IP 五层模型 2. TCP和UDP1) TCP首部结构2)UDP首部结构3)TCP和UDP的区别2.2 UDP和TCP对应的应用场景 3. TCP 建立连接时的三次握手1)为什么需…

虚拟专用网VPN与网络地址转换NAT技术

1、专用网络或本地互联网 一方面现在随着个人电脑的增大,IP地址十分紧缺,所以如果为每一台电脑都分配个一个全球IP地址(唯一的)不太现实;另外一方面,很多机构(比如大公司)往往只需要…

阿里正式加入ChatGPT战局,“通义千问”上线后表现如何?

ChatGPT发布后,数月间全世界都对AI的能力有了新的认知。 ChatGPT掀起的战局,现在又多了一位选手了! 阿里版类ChatGPT突然官宣正式对外开放企业邀测,由达摩院开发,名为“通义千问” 顾名思义,阿里正式加入Ch…

java实现钉钉自定义机器人发送消息

钉钉作为现在很多企业的移动办公平台,具有很多很强大的功能,可以帮助我们更加及时的发现问题,解决问题,今天我们做一个java实现钉钉自定义机器发送消息的功能。 首先,先放出官方文档地址:https://open.ding…

GIS在城市规划中的作用与应用

山海鲸可视化-GIS影像 简介 GIS(地理信息系统)是一种用于捕获、存储、管理、分析和显示地理空间数据的技术和工具。GIS可以用于各种领域,包括城市规划、土地管理、自然资源管理、公共安全、环境保护、气象预报、交通运输、农业、地质勘探、…

支持多模型数据分析探索的存算分离湖仓一体架构解析(上)

当企业需要建设独立的数据仓库系统来支撑BI和业务分析业务时,有了“数据湖数据仓库”的混合架构。但混合架构带来了更高的建设成本、管理成本和业务开发成本。随着大数据技术的发展,通过在数据湖层增加分布式事务、元数据管理、极致的SQL性能、SQL和数据…

Python实现哈里斯鹰优化算法(HHO)优化Catboost分类模型(CatBoostClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全…

BI数据可视化报表模板分享,附免费下载方法

奥威BI软件上既有大量单张下载套用的BI数据可视化报表模板,又有以通用标准方案、行业通用方案为基础打造的标准化BI数据可视化报表模板套装,下载套用即可完成整个企业的BI数据可视化分析。这些BI数据可视化报表模板的效果如何,怎么下载&#…

Spring set注入专题

简单数据类型,来自BeanUtils,包含8种基本数据类型,8种包装类等 Temporal是java8之后的新特性,表示时区,时间等 Local为语言类 注入简单数据类型(包括String): 注意,property中不能使用ref,要使…

连接云服务器

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

精彩回顾|SOFA 五周年,Live Long and Prosper!

2023 年 4 月 15 日,SOFAStack 社区在北京市朝阳区 C work 举办了自己的第五个生日。在“Live Long and Prosper”的活动主题贯彻下,活动现场的开源技术探索氛围变得尤其浓厚。 SOFA 开源集市 在 SOFA 五周年的开源集市中,汇聚了 SOFAStack 的…

Transformer应用之构建聊天机器人(一)

一、概述 聊天机器人的基本功能是系统根据用户当前的输入语句,生成相应的语句并输出给用户,用户和聊天机器人之间的一问一答构成了一个utterance,多个utterance就构成了一段对话。目前流行的聊天机器人都是基于Transformer的架构来做的&…