iOS Matter 操作证书签发方案

在 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];
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值