Jay 发布的文章

Matter 系列之 Data Model


目录 [隐藏]I. 设备和 EndpointsII. Clusters属性命令事件III. 设备类型IV. Cluster 的客户端/服务端属性 Matter 中的具有定义明确的设备数据模型 (Device Data Model),它是对设备功能的分层建模,在此模型最顶层的实体就是设备。I. 设备和 Endpoints提示:对于如上包含关系,对于 Matter 物理设备通常是一个 Device 就是一个 Node,一对一的关系。但是对于 Matter Controller 例如智能手机可能出现多个 App,也就是多个出现 Node。Matter 中所有的设备,包含手...

Matter 系列之 Device Attestation


目录 [隐藏]I. 设备认证 PKIII. 认证信息III. DAC 认证流程 Attestation设备认证特指 CSA Matter 认证产品的验证流程,也就是 Matter 设备在 Commissioning 过程需要向 Commissioner 证明其是一个合法的设备。该流程主要是利用设备在生成阶段烧录的 DAC 证书、私钥和和证书链。Commissioner 会在该阶段完成如下验证:是否是认证厂商生产制造;是否是合法设备;是否通过 Matter 兼容性测试;在 Matter 开发阶段,开发者是可以在没有认证的前提下完成所有功能开发。一旦打算进入量产,那么需要联系...

Matter 系列之 Commissioning


目录 [隐藏]I. Device discoveryII. Connect to device (PASE)III. Get Commissionee informationIV. Regulatory configV. Commissionee attestationVI. Certificate Signing Request (CSR)VII. Add Node Operational Certificate (NOC)VIII. Network provisioningIX. Operational discoveryX. CASE session estab...

Matter 系列之 Fabric


The Fabric对于 Fabric ,字面意思为织网,这里不翻译。Matter 定义为同一安全域下 Node 的集合,在该安全域下 Node 能够彼此认证建立安全通信。一个 Fabric 共享同一证书机构(Certificate Authority (CA))的根证书(Root of Trust),同时约定一个 Fabric ID。在 Commissioning 过程中会为需要加入 Fabric 的 Node 分配证书,也就是 NOC。基于如上安全特性,通常一个生态可以描述一个 Fabric,如上的 Google Fabric。一个设备可以同时加入多个 Fabric,也就是同时被多个...

Matter 系列之 什么是 Matter?


目录 [隐藏]I. 前言II. 什么是 Matter ?III. 为什么选择 Matter I. 前言早在 CHIP 工作组成立之初,我在 开源 HomeKit ADK 文档中就表达对这新协议的兴奋。两年多时间一直在不间断跟踪学习,在其最后发布阶段。整理翻译了Google 关于 Matter 的初级读本系列开发文档。翻译为主,也谈了一些个人浅显理解。建议直接阅读原文和 Connected Home over IP Specification 以及阅读源码。https://developers.home.google.com/matter/get-startedII. ...

ZigBee 终端设备离线后脱离网络


目录 [隐藏]I. 理清思路不允许加入II. PermitJoin是如何控制TC的工作状态允许加入 I. 理清思路这里记录之前的一次异常处理,直接现象是多功能传感器(ZigBee End-Device,以下简称ZED)通过小米86盒开关 路由设备(ZigBee Router,以下简称ZR)关联加入网络很容易脱离网络。首先,需要理清的ZED在IEEE-802.15.4 规定为RFD (精简功能设备),精剪功能主要在不能中继数据,作为树状网络拓扑的终端存在,同时受限于功耗,通常会选择大部分时间休眠以节约功耗。为了保证设备休眠能够正常接收数据,所以接收数据的时候选择间接交易,也...

固件安全之 TF-A 和 SecureBoot


目录 [隐藏]I. TBBR-CLIENTII. 固件设计BL1BL2BL31BL33III. 证书链 这里详细介绍基于 ARMv8-A AArch64 固件安全相关,包含 TF-A(Trust Firmware A)。以及基于TF-A OEM厂商对 U-Boot 和 Kernel 实现的安全启动流程 SecureBoot。https://trustedfirmware-a.readthedocs.io/en/latestI. TBBR-CLIENThttps://developer.arm.com/documentation/den0006/latest对于 TF-A...

Linux capabilities


Linux capabilities对于权限细节参考man 7 capabilities;对于-+= eip操作符参考 man 3 cap_from_text;文档中命令setcap、getcap等都可以通过man命令查看;我需要在VS Code 调试NuttX应用,它的Sim应用需要cap_net_raw,cap_net_admin权限,否则就无法正常操作HCI设备。当然网上有一些帖子尝试将VS Code或者GDB运行在root用户,显然这样操作是非常不优雅的。所以这里尝试给需要调试的应用利用linux capabilities直接给可执行文件设置权限。$ sudo setcap 'c...

udp发送ip端口发送不可达


众所周知,udp是无连接的,所以忽略udp接收方状态,是否监听对应udp端口以及ip是否存在,直接向udp发送数据,会发生什么?为了搞清楚这个问题,我们尝试在局域网建立收发设备,然后抓包分析。端口不可达从抓包来看,udp数据正常发出。对端设备回复icmp指示端口不可达。ip 不可达当我们把接收端设备关机,此时udp数据正常发出,直到arp连续三次请求失败。此时抓包显示udp包已经不发送了。此时,我们跟踪sytem call 确定,发用户空间的sendto 接口仍然显示成功。sendto(3, "012345679abcdef\0", 16, 0, {sa_family...

一次无效的运维


目录 [隐藏]I. 恢复快照后不能上网II. 防火墙规则变化III. mac地址变化导致服务认证失败IV. 设备连接失败 这里记录一次无效的运维,称之为无效,更多的是我人为原因引起的。1月2号阿里云提示服务器执行恶意脚本,当时正在休元旦,直接忽略。1月4号上班的时候查看了完整提示,分析了启动上下文,确定服务器被redis恶意注入矿机脚本。能够被注入原因很简单,把无认证的redis直接暴露了在公网,因为该服务器是从其他公司过户过来,稳定运行了5年,接手后保持原来的端口安全策略也没有注意。http://65.108.48.150/f2201rr/f.sh第一时间分析了该脚本...