lijie 发布的文章

跨源资源共享(CORS)


目录 [隐藏]I. 简单请求II. 预检请求III. 结论IV. origin 和referer 跨源资源共享(CORS)这里来聊聊跨源资源共享CORS(Cross Origin Resouce Share)。开局一张图,很多人错误理解跨源资源共享就是浏览器在访问服务器A(domain-a.com)获取的资源如果包含跨源服务器B(domain-a.com)资源的时候那么此时就需要跨源资源共享,所以我们需要配置我们的访问控制策略Access-Control-Allow-Origin 运行所有站点访问。但是为什么这里跨源资源共享是被服务器B控制的?原来这里这里跨源资源共享是...

ChatGPT 带你学习 iptables


对于 iptables 学习,反复看过 man iptables 命令,但是缺乏归纳总结,不用就忘了。现在好了,直接让 ChatGPT 帮我画一些系统框图辅助记忆。Q:帮我用 Mermaid 画一个系统框图描述 iptables 所有 Chain 的处理顺序,并且描述其生效范围。graph LR INPUT --> PREROUTING PREROUTING --> ROUTING ROUTING --> FORWARD FORWARD --> POSTROUTING POSTROUTING --> OUTPUT 这个...

GCC 未使用函数、变量和文件优化策略


目录 [隐藏]I. 样例II. 探索III. 结论 GCC 优化过于复杂,这里探索 GCC 对未使用的代码和变量以及文件的优化策略。3.10 Options That Control Optimization6.3.3 Reducing Size of Executables with Unused Subprogram/Data EliminationI. 样例如下两个文件。$ tree ├── main.c └── unused.cmain.c 文件内容如下。#include <stdio.h> // __attribute__((used, sect...

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...