揭秘物联网设备数据泄露真相:3种C语言加密通信实战方案

第一章:揭秘物联网设备数据泄露的根源

物联网设备在提升生活便利性的同时,也带来了严重的安全隐患。大量设备因设计缺陷或配置不当,成为数据泄露的突破口。深入分析其根源,有助于构建更安全的智能生态系统。

默认凭证的广泛滥用

许多物联网设备出厂时使用统一的默认用户名和密码,例如admin:adminroot:123456。用户未及时修改,攻击者便可利用自动化脚本批量登录。建议设备厂商强制首次登录时修改凭证。
  • 避免使用常见默认组合
  • 启用强密码策略
  • 实施多因素认证(MFA)

未加密的数据传输

部分设备在通信过程中未启用TLS等加密协议,导致敏感信息以明文形式在网络中传输。攻击者可通过中间人攻击(MitM)截取数据。
// 示例:Go语言中启用HTTPS服务 package main import ( "net/http" "log" ) func handler(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, secure world!")) } func main() { http.HandleFunc("/", handler) // 使用证书启动HTTPS服务 log.Fatal(http.ListenAndServeTLS(":443", "cert.pem", "key.pem", nil)) }
上述代码展示了如何通过ListenAndServeTLS启用加密通信,防止数据被窃听。

固件更新机制缺失

不少设备缺乏安全的远程更新能力,已知漏洞长期得不到修复。厂商应提供签名固件和自动更新功能,确保设备持续安全。
风险类型发生频率可防范性
默认凭证
明文传输
固件漏洞
graph TD A[设备上线] --> B{是否使用默认密码?} B -->|是| C[易受暴力破解] B -->|否| D[进入认证流程] D --> E{通信是否加密?} E -->|否| F[数据可被嗅探] E -->|是| G[建立安全通道]

第二章:C语言加密通信基础理论与环境搭建

2.1 物联网通信安全威胁模型分析

物联网设备在通信过程中面临多种安全威胁,构建合理的威胁模型是制定防护策略的前提。常见的攻击面包括数据窃听、设备伪造与中间人攻击。
典型攻击类型
  • **重放攻击**:攻击者截获合法通信数据并重复发送以冒充设备
  • **拒绝服务(DoS)**:通过大量无效请求耗尽设备资源
  • **固件篡改**:利用未签名的固件更新植入恶意代码
安全通信示例
// 使用TLS加密MQTT通信 client := mqtt.NewClient(options) token := client.Connect() if token.Wait() && token.Error() != nil { log.Fatal(token.Error()) }
上述代码通过建立TLS加密通道防止数据明文传输,有效抵御窃听与篡改。参数options需配置CA证书与客户端密钥,确保双向认证。
威胁建模矩阵
威胁类型影响层级防护建议
身份伪造网络层启用设备证书认证
数据泄露应用层实施端到端加密

2.2 对称加密与非对称加密原理对比

核心机制差异
对称加密使用单一密钥进行加密和解密,如AES算法,其运算效率高,适合大量数据处理。而非对称加密采用公私钥对,如RSA,公钥加密的数据只能由私钥解密,安全性更高,但计算开销大。
典型算法对比
  • AES(对称):分组加密,支持128、192、256位密钥
  • RSA(非对称):基于大数分解难题,常用于密钥交换
// 示例:Go中使用AES加密 cipher, _ := aes.NewCipher(key) gcm, _ := cipher.NewGCM(cipher) encrypted := gcm.Seal(nil, nonce, plaintext, nil)
上述代码初始化AES cipher并生成GCM模式加密器,key为预共享密钥,nonce需唯一,确保相同明文每次加密结果不同。
适用场景比较
特性对称加密非对称加密
速度
密钥管理复杂简便
用途数据加密身份认证、密钥交换

2.3 嵌入式C语言中加密库的选择与集成

在资源受限的嵌入式系统中,选择合适的加密库至关重要。开发者需权衡性能、内存占用与安全性。
主流嵌入式加密库对比
  • mbed TLS:模块化设计,适合小型设备,支持TLS/SSL和常用加密算法。
  • WolfSSL:轻量高效,专为嵌入式优化,具备低RAM占用特性。
  • OpenSSL:功能全面但体积较大,仅推荐用于资源充足的嵌入式平台。
集成示例:mbed TLS初始化SHA-256
#include "mbedtls/sha256.h" void sha256_example(const unsigned char *data, size_t len) { mbedtls_sha256_context ctx; unsigned char hash[32]; mbedtls_sha256_init(&ctx); // 初始化上下文 mbedtls_sha256_starts_ret(&ctx, 0); // 启动SHA-256计算(0表示非双哈希) mbedtls_sha256_update_ret(&ctx, data, len); // 更新输入数据 mbedtls_sha256_finish_ret(&ctx, hash); // 完成计算并输出摘要 mbedtls_sha256_free(&ctx); // 释放上下文资源 }
该代码展示了如何使用mbed TLS进行SHA-256哈希运算。函数按顺序初始化、更新、完成哈希操作,并确保资源释放,适用于固件中数据完整性校验场景。

2.4 开发环境配置与交叉编译工具链部署

在嵌入式Linux系统开发中,正确的开发环境配置是项目成功的基础。通常选择Ubuntu作为宿主机操作系统,因其对交叉编译工具链支持完善,并便于安装依赖包。
环境准备与依赖安装
首先更新系统并安装必要工具:
sudo apt update sudo apt install build-essential libncurses-dev bison flex libssl-dev
上述命令安装了编译内核和U-Boot所需的构建工具与库,其中 `libncurses-dev` 支持菜单配置界面,`bison` 和 `flex` 用于语法解析。
交叉编译工具链部署
可选用Linaro提供的ARM工具链,解压后配置环境变量:
export CROSS_COMPILE=/opt/gcc-linaro/bin/arm-linux-gnueabihf- export ARCH=arm
`CROSS_COMPILE` 指定编译器前缀,`ARCH` 告知内核目标架构。此后执行 `make zImage` 即可生成适用于ARM平台的内核镜像。

2.5 加密性能评估指标与测试方法

在加密系统的设计与优化中,性能评估是衡量算法实用性的重要环节。常用的评估指标包括加解密吞吐量、延迟时间、CPU/内存占用率以及能耗比。
核心评估指标
  • 吞吐量(Throughput):单位时间内处理的数据量,通常以 Mbps 或 Gbps 衡量;
  • 延迟(Latency):单次加解密操作所需时间,影响实时性;
  • 资源消耗:运行时对 CPU、内存和功耗的影响,尤其在嵌入式设备中至关重要。
典型测试方法
使用标准化测试框架如 OpenSSL speed 或 CryptMark 进行基准测试。例如:
openssl speed -evp aes-256-gcm
该命令执行 AES-256-GCM 模式的性能测试,输出结果包含每秒加密/解密字节数及操作延迟。测试应在控制变量环境下进行,确保操作系统、编译器版本和硬件平台一致。
算法吞吐量 (Mbps)平均延迟 (μs)
AES-128-CBC85012.4
ChaCha20-Poly13059609.8

第三章:基于AES的轻量级对称加密实战

3.1 AES算法在资源受限设备中的适用性分析

在物联网和嵌入式系统中,AES因其高安全性与较低计算开销成为首选加密算法。尽管其设计面向通用处理器,但通过优化可适配资源受限环境。
内存与计算资源需求对比
算法RAM (字节)Flash (KB)周期/字节
AES-1282562.1120
3DES1281.8380
ChaCha201281.590
轻量级实现示例
// 简化S-box查表实现 const uint8_t sbox[256] = { /* 预计算值 */ }; void aes_sub_bytes(uint8_t *state) { for (int i = 0; i < 16; ++i) state[i] = sbox[state[i]]; // 查表替代实时计算 }
该代码通过预计算S-box降低实时运算压力,适用于MCU。查表法虽增加ROM占用,但显著减少CPU周期,适合时钟频率低于50MHz的设备。
功耗与安全平衡
加密阶段密钥调度

3.2 使用TinyAES库实现数据加解密

集成与初始化
TinyAES是一个轻量级的AES加密库,适用于资源受限的嵌入式系统。其核心实现仅依赖标准C库,便于移植。使用前需包含头文件并定义上下文结构体。
#include "tinyaes.h" uint8_t key[16] = { /* 128位密钥 */ }; uint8_t iv[16] = { /* 初始化向量 */ }; struct AES_ctx ctx; AES_init_ctx_iv(&ctx, key, iv);
上述代码初始化AES加密上下文,支持CBC模式。key为16字节密钥,iv用于增强加密随机性,防止相同明文生成相同密文。
加解密操作
加密过程通过调用AES_CBC_encrypt_buffer完成,解密则使用对应反向函数。
  • AES_CBC_encrypt_buffer:对整个缓冲区执行CBC模式加密
  • AES_decrypt_ctx:恢复原始数据,需使用相同密钥和IV
该库不依赖动态内存分配,适合在无操作系统环境中安全运行,有效抵御侧信道攻击。

3.3 密钥安全管理与存储优化策略

密钥生命周期管理
密钥的安全性不仅依赖加密强度,更取决于全生命周期的管控。应实施密钥轮换机制,定期更新密钥以降低泄露风险。建议结合时间戳与使用计数器触发自动轮换。
安全存储方案对比
  • HSM(硬件安全模块):提供物理级保护,适合高敏感场景
  • KMS(密钥管理服务):云原生集成,支持细粒度访问控制
  • 加密配置存储:使用主密钥加密数据密钥,实现分层保护
// 使用 AWS KMS 加密密钥示例 func encryptKey(kmsClient *kms.Client, plaintext []byte) ([]byte, error) { result, err := kmsClient.Encrypt(context.TODO(), &kms.EncryptInput{ KeyId: aws.String("alias/app-master-key"), Plaintext: plaintext, EncryptionContext: map[string]string{"app": "auth-service"}, }) return result.CiphertextBlob, err }
上述代码通过 AWS SDK 调用 KMS 服务加密明文密钥,EncryptionContext 增加上下文绑定,防止密钥被非法重放使用。

第四章:基于RSA的非对称加密身份认证方案

4.1 RSA在设备身份鉴权中的应用场景解析

在物联网与分布式系统中,设备身份鉴权是保障通信安全的首要环节。RSA非对称加密算法凭借其公钥分发便利和私钥不可逆特性,广泛应用于设备身份认证流程。
典型应用场景
  • 设备首次接入时,使用预置RSA密钥对签署认证请求
  • 服务器通过设备公钥验证签名,确认其合法身份
  • 防止伪造设备接入核心网络,提升系统整体安全性
代码示例:签名验证逻辑
signature := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, hashed) err := rsa.VerifyPKCS1v15(publicKey, crypto.SHA256, hashed, signature)
上述代码展示了使用RSA进行签名与验证的核心流程。私钥持有方生成签名,公钥持有方验证数据完整性与来源真实性,确保设备身份不可抵赖。

4.2 使用mbed TLS实现RSA密钥对生成与交换

初始化RSA上下文与参数配置
在mbed TLS中,首先需初始化mbedtls_rsa_context结构体,并配置加密引擎所需的熵源和随机数生成器。RSA密钥生成依赖高质量的随机性,因此必须正确初始化mbedtls_entropy_contextmbedtls_ctr_drbg_context
mbedtls_rsa_context rsa; mbedtls_entropy_context entropy; mbedtls_ctr_drbg_context ctr_drbg; mbedtls_rsa_init(&rsa, MBEDTLS_RSA_PKCS_V15, 0); mbedtls_entropy_init(&entropy); mbedtls_ctr_drbg_init(&ctr_drbg); if (mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, NULL, 0) != 0) { // 处理随机数生成器初始化失败 }
上述代码完成上下文初始化与CTR-DRBG种子填充。其中mbedtls_ctr_drbg_seed以熵源为种子,确保密钥生成的不可预测性。
生成RSA密钥对
调用mbedtls_rsa_gen_key生成指定长度的密钥对。常用2048位以平衡安全性与性能。
int key_size = 2048; int exponent = 65537; if (mbedtls_rsa_gen_key(&rsa, mbedtls_ctr_drbg_random, &ctr_drbg, key_size, exponent) != 0) { // 密钥生成失败处理 }
参数key_size设定模长,exponent为公钥指数,通常选65537(F4费马数),兼顾效率与安全。

4.3 数字签名与固件完整性校验实践

在嵌入式系统中,确保固件来源可信且未被篡改至关重要。数字签名结合哈希算法可实现完整的安全验证机制。
签名与验证流程
设备出厂前使用私钥对固件镜像的SHA-256摘要进行RSA签名,终端加载时通过预置公钥验证签名有效性。
// 伪代码:固件验证过程 bool verify_firmware(const uint8_t *fw, size_t len, const uint8_t *sig) { uint8_t digest[32]; mbedtls_sha256(fw, len, digest, 0); // 计算哈希 return mbedtls_rsa_pkcs1_verify(pubkey, digest, sig); // 验证签名 }
该函数首先计算固件映像的SHA-256值,再调用PKCS#1 v1.5标准接口比对签名。若两者匹配,则确认固件完整性与来源真实性。
关键组件对照表
组件作用
私钥厂商签名,严格离线保管
公钥内置在Bootloader中用于验证
SHA-256生成唯一指纹防止碰撞

4.4 公钥分发机制与防中间人攻击对策

在公钥密码体系中,确保公钥的真实性是抵御中间人攻击的核心。若攻击者能伪造或替换通信方的公钥,即可截取加密信息并伪装身份。
公钥基础设施(PKI)与数字证书
PKI 通过可信第三方——证书颁发机构(CA)对公钥进行数字签名认证。用户公钥被封装在 X.509 证书中,包含持有者信息、公钥数据和 CA 签名。
字段说明
Subject证书持有者身份
Public Key绑定的公钥值
Issuer签发 CA 名称
SignatureCA 对证书内容的签名
代码验证证书有效性
// VerifyCertificate 检查证书是否由可信 CA 签发 func VerifyCertificate(cert *x509.Certificate, caCert *x509.Certificate) error { pools := x509.NewCertPool() pools.AddCert(caCert) _, err := cert.Verify(x509.VerifyOptions{Roots: pools}) return err // 验证失败则存在中间人风险 }
该函数通过构建信任链,确认目标证书确由指定 CA 签发,防止攻击者注入伪造公钥。

第五章:综合对比与未来安全演进方向

主流加密协议性能实测对比
在真实业务场景中,TLS 1.3 与 QUIC 协议的握手延迟差异显著。以下为某金融API网关在高并发下的实测数据:
协议类型平均握手耗时(ms)重连成功率CPU占用率
TLS 1.211892.3%45%
TLS 1.36797.1%32%
QUIC + 0-RTT2389.7%38%
零信任架构落地关键步骤
  • 实施设备指纹识别,结合UEBA行为分析建立初始信任基线
  • 部署SPIFFE/SPIRE实现工作负载身份认证,替代传统IP白名单
  • 通过服务网格集成mTLS,自动轮换短期证书
  • 配置动态访问策略引擎,基于上下文实时评估风险等级
后量子密码迁移实战代码示例
// 使用CIRCL库实现混合密钥交换(X25519 + Kyber) package main import ( "filippo.io/circl/dh/kyber/kem" "crypto/x509" ) func HybridKeyExchange() { // 初始化Kyber768 KEM kemInst := kem.New(kem.Kyber768) // 生成混合密钥对:抗量子+传统ECDH pub, sec := kemInst.GenerateKeyPair() // 密钥封装并合并X25519共享密钥 cipher, sharedA := kemInst.Encapsulate(pub) _ = x509.MarshalPKCS8PrivateKey(sec) // 输出复合会话密钥用于AES-256-GCM compositeKey := mixKeys(sharedA, ecdhShared) }
自动化威胁狩猎流程图

日志采集 → 异常检测(ML模型) → 威胁指标匹配(STIX/TAXII) → 自动化响应(SOAR剧本执行) → 反馈闭环优化检测规则

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

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

相关文章

NS-USBLoader终极指南:Switch文件传输与系统管理快速上手

NS-USBLoader终极指南&#xff1a;Switch文件传输与系统管理快速上手 【免费下载链接】ns-usbloader Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files. 项目地址: https://gitcode.com/gh_mi…

大麦网Python自动化抢票脚本技术解析与应用指南

大麦网Python自动化抢票脚本技术解析与应用指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 项目价值定位 大麦网Python自动化抢票脚本是一个基于Selenium框架开发的票务自动化工具&#xff…

智能打码系统性能对比:AI人脸隐私卫士评测报告

智能打码系统性能对比&#xff1a;AI人脸隐私卫士评测报告 1. 背景与选型需求 随着社交媒体和数字影像的普及&#xff0c;个人隐私保护问题日益突出。在发布合照、监控截图或公共场景照片时&#xff0c;未经处理的人脸信息极易造成隐私泄露。传统手动打码方式效率低下&#x…

MediaPipe模型部署:AI人脸隐私卫士环境搭建

MediaPipe模型部署&#xff1a;AI人脸隐私卫士环境搭建 1. 引言 1.1 业务场景描述 在社交媒体、公共信息发布和数字资产管理中&#xff0c;人脸隐私泄露已成为日益严峻的问题。无论是公司年会合影、街头摄影还是监控截图&#xff0c;一旦包含他人面部信息的图像被公开&#…

3步轻松搞定网易云音乐NCM格式解密:从加密文件到通用MP3的完整指南

3步轻松搞定网易云音乐NCM格式解密&#xff1a;从加密文件到通用MP3的完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的歌曲只能在特定客户端播放而苦恼&#xff1f;当你精心收藏的NCM格式音乐无法在车…

AI人脸隐私卫士能否商用?许可证与法律风险提示

AI人脸隐私卫士能否商用&#xff1f;许可证与法律风险提示 1. 引言&#xff1a;AI 人脸隐私卫士的商业潜力与合规挑战 随着《个人信息保护法》&#xff08;PIPL&#xff09;、《数据安全法》等法规的落地&#xff0c;人脸信息作为敏感生物识别数据&#xff0c;其采集、处理和…

从“特征爆炸”到“精准狙击”:新型特征选择算法如何让反钓鱼系统轻装上阵?

在每天超过3000亿封电子邮件穿梭于全球网络的今天&#xff0c;钓鱼邮件早已不是“中奖通知”或“尼日利亚王子”的拙劣骗局。它们披着合法外衣&#xff0c;模仿企业IT部门的语气、伪造银行安全警报、甚至复刻同事的签名档——目的只有一个&#xff1a;诱骗你点击那个看似无害的…

联想拯救者工具箱完整使用指南:3步解锁游戏本隐藏性能

联想拯救者工具箱完整使用指南&#xff1a;3步解锁游戏本隐藏性能 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 想要彻底掌…

WELearn自动答题助手完整指南:5分钟掌握高效学习秘诀

WELearn自动答题助手完整指南&#xff1a;5分钟掌握高效学习秘诀 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案&#xff1b;支持班级测试&#xff1b;自动答题&#xff1b;刷时长&#xff1b;基于生成式AI(ChatGPT)的答案生成 项目地址: https://gitcode.com…

如何快速使用智能网课助手提升学习效率

如何快速使用智能网课助手提升学习效率 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案&#xff1b;支持班级测试&#xff1b;自动答题&#xff1b;刷时长&#xff1b;基于生成式AI(ChatGPT)的答案生成 项目地址: https://gitcode.com/gh_mirrors/we/WELearnHe…

ncmdump完整指南:NCM文件一键解密终极方法

ncmdump完整指南&#xff1a;NCM文件一键解密终极方法 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump ncmdump作为网易云音乐NCM格式文件的专业解密工具&#xff0c;能够快速将加密的NCM文件转换为通用的MP3格式&#xff0c;让您随时…

AI人脸隐私卫士实战对比:在线vs离线打码效率评测

AI人脸隐私卫士实战对比&#xff1a;在线vs离线打码效率评测 1. 引言&#xff1a;为何需要AI人脸隐私保护&#xff1f; 随着社交媒体和数字影像的普及&#xff0c;个人隐私泄露风险日益加剧。一张看似普通的合照&#xff0c;可能无意中暴露了他人面部信息&#xff0c;违反《个…

猫抓浏览器扩展:网页媒体资源智能捕获神器

猫抓浏览器扩展&#xff1a;网页媒体资源智能捕获神器 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存在线视频而苦恼吗&#xff1f;猫抓浏览器扩展为您提供了一站式解决方案&#xff…

PotPlayer字幕翻译插件实战:从零配置到流畅观影的完整避坑指南

PotPlayer字幕翻译插件实战&#xff1a;从零配置到流畅观影的完整避坑指南 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 还在为看不懂…

专业文章仿写提示模板:打造结构创新的技术教程

专业文章仿写提示模板&#xff1a;打造结构创新的技术教程 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu &#x1f3af; 核心仿写原则…

Unity Asset Bundle终极提取工具:UABEA完整使用指南

Unity Asset Bundle终极提取工具&#xff1a;UABEA完整使用指南 【免费下载链接】UABEA UABEA: 这是一个用于新版本Unity的C# Asset Bundle Extractor&#xff08;资源包提取器&#xff09;&#xff0c;用于提取游戏中的资源。 项目地址: https://gitcode.com/gh_mirrors/ua/…

AI人脸隐私卫士动态模糊原理揭秘:光斑半径自适应算法详解

AI人脸隐私卫士动态模糊原理揭秘&#xff1a;光斑半径自适应算法详解 1. 技术背景与问题提出 在数字化时代&#xff0c;图像和视频内容的传播空前频繁。无论是社交媒体分享、企业宣传照&#xff0c;还是公共监控系统&#xff0c;人脸信息的泄露风险日益加剧。传统手动打码方式…

开箱即用!Qwen3-VL-2B-Instruct让AI视觉应用开发更简单

开箱即用&#xff01;Qwen3-VL-2B-Instruct让AI视觉应用开发更简单 1. 引言&#xff1a;为什么我们需要新一代视觉语言模型&#xff1f; 在人工智能快速演进的今天&#xff0c;多模态理解能力已成为大模型竞争的核心战场。传统的纯文本大模型虽然在语言生成和推理上表现出色&…

数学建模Matlab算法,第十九章 神经网络

第十九章 神经网络模型:从生物机理到智能分类 引言 人工神经网络(Artificial Neural Network, 简称 ANN)是人工智能领域的重要基石。它并非对生物大脑的简单复制,而是在现代神经科学研究基础上提出的一种抽象数学模型。自 1943 年心理学家 W. McCulloch 和数学家 W. Pitt…

TOF传感器骨骼检测方案:云端GPU即开即用,保护隐私

TOF传感器骨骼检测方案&#xff1a;云端GPU即开即用&#xff0c;保护隐私 1. 为什么养老院需要非接触式跌倒监测 养老院最担心的就是老人跌倒。传统摄像头虽然能监控&#xff0c;但会拍到老人日常生活&#xff0c;侵犯隐私。而TOF&#xff08;Time of Flight&#xff09;传感…