STM32H5安全连接AWS IoT:基于TrustZone与Secure Manager的物联网方案

news2026/5/23 20:51:46
1. 项目概述当STM32H5遇上AWS云如果你正在用STM32H5系列高性能MCU做物联网设备开发并且想把数据安全地送到AWS云上那么意法半导体最近发布的这个X-CUBE-AWS-H5扩展包绝对值得你花时间深入研究。这不仅仅是一个简单的“库文件”而是一个集成了安全启动、身份认证、加密通信和云端对接的完整解决方案。它瞄准的正是下一代物联网边缘设备的核心痛点如何在有限的功耗预算内既要处理复杂的本地计算比如轻量级AI推理又要确保与云端通信的绝对安全同时还得让开发过程不那么“痛苦”。这个扩展包的核心价值在于“简化”和“加固”。它把连接AWS IoT Core所需的一整套复杂协议栈、安全认证流程与STM32H5内置的硬件安全特性如TrustZone、密码学加速器以及意法半导体的Secure Manager安全服务深度绑定。这意味着开发者无需从零开始啃透TLS/DTLS、MQTT、X.509证书管理这些底层细节也不用自己搭建昂贵的安全密钥注入设施就能快速构建出一个符合PSA Certified Level 3和SESIP3认证要求的高安全等级设备原型。对于从事工业传感、智能家居网关、预测性维护终端等应用的工程师来说这直接缩短了从概念验证到量产部署的周期。2. 核心组件与架构深度解析2.1 软件包内容构成不止是代码库X-CUBE-AWS-H5不是一个单薄的库而是一个结构清晰的工程框架。下载解压后你会发现它通常包含以下几个关键部分理解每一部分的作用是高效利用它的前提中间件层Middleware这是连接的核心。它包含了经过适配和优化的AWS IoT Device SDK for Embedded C的移植版本。这个SDK实现了与AWS IoT Core通信的核心协议主要是基于TLS的MQTT。在STM32H5上其特殊之处在于TLS握手和加密解密运算会尽可能地利用Cortex-M33的TrustZone隔离环境以及硬件加密加速器如AES、SHA、RNG、PKA从而在保障安全的同时减轻CPU负担提升能效比。板级支持包与硬件抽象层BSP HAL这部分提供了对STM32H5探索套件如STM32H573I-DK上所有外设如Wi-Fi/以太网模块、用户按键、LED指示灯的驱动支持。更重要的是它包含了与Secure Manager交互的底层接口。例如如何从Secure Manager管理的安全存储区安全地读取设备唯一的私钥和证书而不是从普通的Flash中读取这层抽象至关重要。应用示例代码Applications这是快速上手的蓝图。软件包通常会提供多个示例工程例如基础发布/订阅示例演示设备如何安全连接到AWS IoT Core并定时发布传感器数据如模拟数据到一个MQTT主题同时订阅另一个主题来接收云端指令。影子设备Device Shadow示例演示如何使用AWS IoT Device Shadow服务同步设备的期望状态和报告状态这是实现可靠设备控制的关键模式。作业Jobs示例展示如何通过AWS IoT Jobs服务安全地向设备群组部署和执行业务逻辑更新或固件更新指令。安全配置与生产就绪工具Secure Manager Integration这是区别于普通连接套件的精华所在。它包含了如何配置工程以使用STM32H5的不可变设备身份在芯片出厂时烧写作为安全根。同时提供了与意法半导体安全服务或授权的第三方服务商进行对接的指引用于在产线环节将AWS IoT所需的设备证书安全地注入到芯片的安全存储区。这部分内容直接关联到产品的量产安全。2.2 安全基石Secure Manager与不可变身份这是整个方案能“简化安全连接”的根本。我们拆开来看不可变设备身份Unique Immutable Identity每一颗STM32H5在出厂时意法半导体就在其受保护的硬件区域写入了一个全球唯一的、不可更改的标识符类似于一个硬编码的私钥种子。这个身份是设备在物理层面的“出生证明”无法被软件擦除或篡改。它构成了整个信任链的硬件根Hardware Root of Trust。Secure Manager的作用它是一个运行在芯片安全环境如TrustZone安全世界内的固件和安全服务框架。它的核心职能包括安全存储提供一个与主应用非安全世界隔离的存储区域用于存放最敏感的资产如AWS IoT设备证书、私钥。主应用只能通过定义好的安全API函数调用来使用这些资产进行加密签名等操作但无法直接读取其原始内容有效防止密钥泄露。密码学服务提供基于硬件的加密、解密、签名、验证服务。当你的应用需要与AWS IoT Core建立TLS连接时发起握手请求最终调用的是Secure Manager提供的服务由它在安全环境内使用安全存储的密钥完成运算。生命周期管理管理设备从开发、生产到现场部署的全生命周期安全状态。例如可以控制芯片的调试接口是否关闭确保量产设备不会被逆向工程。多方IP保护这是STM32H5和Secure Manager一个非常强大的特性。假设你的设备集成了算法公司A的AI模型和通讯公司B的协议栈你可以利用Secure Manager的隔离能力将A和B的代码及数据分别保护在不同的安全域内彼此无法访问。这样作为设备集成商的你可以保护合作伙伴的知识产权同时也保护自己的核心业务逻辑。如何简化AWS云端注册传统方式下你需要自己生成证书签名请求CSR联系证书颁发机构CA签发证书然后想办法在产线上将每个设备的唯一证书和私钥安全地烧录进去流程繁琐且存在密钥管理风险。而基于STM32H5的方案流程变为设备利用其不可变身份在首次启动时通过Secure Manager向意法半导体或授权服务商的注册服务证明“我是我”。服务商验证该身份后动态地为该设备签发一个对应的AWS IoT X.509证书并通过安全通道将其注入到该设备Secure Manager的安全存储中。设备此后即可用这个证书直接连接AWS IoT Core。云端在收到连接请求时验证证书链的合法性即可信任设备。 这个过程实现了“零接触注册”Zero-Touch Enrollment大幅降低了生产复杂度并杜绝了私钥在产线电脑上明文出现的风险。3. 从零开始搭建开发环境与运行第一个示例3.1 硬件与软件准备清单在动手写代码之前确保你的“武器库”齐全硬件STM32H5探索套件推荐使用STM32H573I-DK它集成了Wi-Fi和以太网方便网络连接。这是与X-CUBE-AWS-H5兼容性最好的开发板。Micro-USB数据线用于供电、编程和调试。网络环境确保开发板可以通过网线或Wi-Fi访问互联网并且能够连接到AWS服务通常意味着网络没有特殊的出口限制。软件STM32CubeIDE意法半导体官方的集成开发环境基于Eclipse集成了编译器、调试器和STM32CubeMX配置工具。这是最推荐的一站式开发平台。STM32CubeProgrammer用于烧录固件和配置选项字节Option Bytes在配置Secure Manager相关安全选项时会用到。X-CUBE-AWS-H5软件包从意法半导体官网或GitHub仓库下载最新版本。AWS账户你需要一个AWS账户并在AWS IoT Core服务中创建“事物”Thing、策略Policy和证书。这是云端对接的前提。3.2 在STM32CubeIDE中导入与配置项目解压与导入将下载的X-CUBE-AWS-H5软件包解压。打开STM32CubeIDE选择File - Import...然后选择General - Existing Projects into Workspace。在“Select root directory”中浏览到软件包解压后的路径通常你会看到针对不同开发板如Projects\STM32H573I-DK的示例工程文件夹。IDE会自动识别出其中的工程勾选你想要导入的示例例如Applications\MQTT\AWS_MQTT_PublishSubscribe点击完成。关键工程配置检查项目导入后不要急于编译。右键点击工程选择Properties进行以下关键检查C/C Build - Environment确认Secure Manager相关的预定义宏和链接路径是否正确设置。软件包通常已配置好。C/C Build - Settings - MCU Settings确认TrustZone Enabled是否被激活。对于使用Secure Manager的示例这必须是Enabled状态。这会确保编译器生成支持安全和非安全两种世界的代码。Project - Generate Code from STM32CubeMX (.ioc file)如果工程包含.ioc文件可以双击打开STM32CubeMX配置视图。在这里你可以直观地检查时钟树、引脚分配、外设初始化如USART用于日志输出ETH或Wi-Fi接口是否正确。特别注意USART的配置它是我们查看调试日志的生命线。修改网络凭据示例工程通常会在一个头文件如aws_clientcredential.h或wifi_config.h中预置了Wi-Fi的SSID和密码占位符。你需要根据你的实际网络环境修改这些信息。切记不要将真实的密码提交到版本控制系统建议在本地修改或使用编译时传入定义的方式。3.3 云端配置在AWS IoT Core创建“事物”设备端的代码需要知道它要连接到哪里、以什么身份连接。这需要在AWS云端进行配置登录AWS控制台进入IoT Core服务。创建事物Thing在“管理”-“所有设备”-“事物”中点击“创建事物”。选择“创建单个事物”给它起一个名字例如My_STM32H5_Device_01。其他配置可以先保持默认一路点击“下一步”直到创建完成。创建并关联证书这是安全通信的关键。在事物创建成功后或者在“安全”-“证书”页面点击“创建证书”。强烈建议选择“使用自己的证书”而不是自动生成。因为我们的设备最终将使用由Secure Manager服务注入的证书。此时你可以先“创建证书”但先不下载。记下证书的ARN资源名称。创建并附加策略Policy在“安全”-“策略”中创建一个策略。策略文档定义了该证书即设备允许执行哪些操作。一个最小化的、用于测试的策略文档如下{ Version: 2012-10-17, Statement: [ { Effect: Allow, Action: iot:Connect, Resource: arn:aws:iot:region:account-id:client/${iot:Connection.Thing.ThingName} }, { Effect: Allow, Action: iot:Publish, Resource: arn:aws:iot:region:account-id:topic/* }, { Effect: Allow, Action: iot:Subscribe, Resource: arn:aws:iot:region:account-id:topicfilter/* }, { Effect: Allow, Action: iot:Receive, Resource: arn:aws:iot:region:account-id:topic/* } ] }将region和account-id替换成你的AWS区域和账户ID。这个策略允许设备连接、向任何主题发布消息、订阅任何主题过滤器并接收消息。注意在生产环境中你需要遵循最小权限原则严格限制Resource的范围。关联关系将创建的证书无论是自签名的占位证书还是后续由服务商签发的正式证书与创建的事物进行关联同时将该证书与创建的策略进行关联。注意在开发原型阶段你可以使用AWS自动生成的证书和私钥PEM文件将其内容手动转换为C语言数组硬编码到设备代码中用于快速测试连接。但这绝对不适用于生产因为私钥以明文形式存在于固件中极不安全。生产必须走Secure Manager的证书注入流程。4. 代码走读与连接流程剖析4.1 主程序流程与FreeRTOS任务划分以基础的MQTT发布/订阅示例为例其主程序框架在main.c中通常遵循以下模式int main(void) { // 1. HAL库、系统时钟、外设初始化 HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USARTx_UART_Init(); // 用于调试输出 MX_ETH_Init(); // 或 MX_WIFI_Init(); // 2. FreeRTOS内核启动前初始化 // 创建必要的队列、信号量、任务 // 初始化网络接口LwIP或Wi-Fi驱动 // 初始化安全服务Secure Manager客户端接口 // 3. 创建主应用任务 xTaskCreate(AWS_IoT_Task, AWS_Task, configMINIMAL_STACK_SIZE * 4, NULL, tskIDLE_PRIORITY 2, NULL); // 4. 启动FreeRTOS调度器开始多任务运行 vTaskStartScheduler(); while (1) { /* 不应执行到这里 */ } }AWS_IoT_Task是核心任务其伪代码逻辑清晰地展示了连接流程static void AWS_IoT_Task(void *pvParameters) { // 1. 初始化网络连接 WIFI_Connect(); // 或等待ETH链路就绪 // 2. 初始化TLS上下文并从Secure Manager安全存储中加载证书和私钥 // 这一步通过调用Secure Manager的API完成例如 // sm_status_t status sm_get_certificate(cert_id, cert_buffer, cert_len); // status sm_get_private_key(key_id, key_buffer, key_len); // 3. 配置MQTT客户端参数 MQTTClient client; Network network; MQTTClient_Init(client, network, ...); // 设置AWS IoT端点、客户端ID通常使用Thing Name、证书和私钥 // 4. 建立TCP连接并执行TLS握手 NetworkConnect(network, AWS_IOT_ENDPOINT, 8883); MQTTClient_Connect(client); // 5. 订阅感兴趣的主题 MQTTClient_Subscribe(client, mydevice/incoming, ...); // 6. 主循环定期发布数据并处理接收到的消息 while(1) { // 发布传感器数据到 mydevice/telemetry char payload[100]; snprintf(payload, sizeof(payload), {\temp\:%.2f}, read_temperature()); MQTTClient_Publish(client, mydevice/telemetry, payload, strlen(payload), ...); // 短暂等待并处理网络报文包括接收订阅的消息 MQTTClient_Yield(client, 100); vTaskDelay(pdMS_TO_TICKS(5000)); // 每5秒发布一次 } }4.2 安全接口调用关键点设备与Secure Manager的交互是安全性的核心代码中通常不会直接出现密钥内容而是通过标识符ID来请求服务// 这是一个示例性的安全密钥服务调用 #include psa/crypto.h psa_status_t status; psa_key_id_t key_id YOUR_AWS_PRIVATE_KEY_ID; // 在Secure Manager中预配置的密钥ID uint8_t hash[32]; uint8_t signature[PSA_SIGNATURE_MAX_SIZE]; size_t signature_length; // 假设我们已经有了待签名数据的哈希值 ‘hash’ psa_key_attributes_t attributes PSA_KEY_ATTRIBUTES_INIT; psa_set_key_algorithm(attributes, PSA_ALG_ECDSA(PSA_ALG_SHA_256)); psa_set_key_type(attributes, PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)); psa_set_key_bits(attributes, 256); psa_set_key_id(attributes, key_id); psa_set_key_usage_flags(attributes, PSA_KEY_USAGE_SIGN_HASH); // 使用Secure Manager保护下的私钥进行签名 status psa_sign_hash(attributes, hash, sizeof(hash), signature, sizeof(signature), signature_length); if (status ! PSA_SUCCESS) { printf(签名失败错误码%d\n, status); // 错误处理 }在这段代码中psa_sign_hashAPI的调用最终会陷入到Secure Manager的安全世界中执行私钥本身永远不会暴露给运行在主应用非安全世界的代码。这就是硬件隔离带来的安全保障。5. 实战避坑指南与高级调试技巧5.1 常见连接失败问题排查表在将示例代码跑通的过程中你大概率会遇到连接失败的问题。下面是一个快速排查清单现象可能原因排查步骤与解决方案网络连接失败Wi-Fi密码错误路由器防火墙阻止DHCP失败。1. 检查wifi_config.h中的SSID/密码。2. 通过串口打印查看Wi-Fi模块的初始化状态和连接状态码。3. 尝试用静态IP地址排除DHCP问题。4. 确认开发板能ping通路由器网关和外部DNS如8.8.8.8。TLS握手失败证书/私钥不匹配系统时间不正确AWS端点地址错误。1.最可能的原因设备端使用的证书/私钥与在AWS IoT Core上关联的证书不匹配。仔细核对证书ARN。2. 检查设备是否有正确的实时时钟RTC时间。TLS证书有有效期如果设备时间与真实时间偏差过大通常是1970年握手会失败。确保在连接前通过NTP或手动设置了正确时间。3. 确认AWS IoT端点地址完全正确且与证书所在的区域匹配。MQTT连接被拒绝策略Policy权限不足客户端IDClient ID不符合要求。1. 检查附加到证书上的策略是否包含了iot:Connect、iot:Publish、iot:Subscribe等必要权限。2. AWS IoT Core默认要求Client ID与Thing Name一致如果使用了基于证书的认证。检查代码中MQTTClient_Init时设置的Client ID参数。编译错误找不到Secure Manager头文件或库软件包路径未正确配置TrustZone未启用。1. 在工程属性中检查C/C Build - Settings - Tool Settings - MCU GCC Compiler - Includes和MCU GCC Linker - Libraries的路径是否正确指向软件包中的Secure Manager组件。2. 确认在STM32CubeMX配置或工程预定义宏中启用了__ARM_FEATURE_CMSE和TZ_ENABLED。运行时错误Secure Manager API返回失败安全配置未正确烧写密钥ID错误。1. 使用STM32CubeProgrammer连接开发板检查选项字节Option Bytes中关于TrustZone和安全启动的配置是否与软件包要求一致。2. 确认代码中引用的证书和密钥IDcert_id,key_id与Secure Manager安全存储中实际预置的ID匹配。这通常需要在产线配置阶段对齐。5.2 调试与日志输出技巧在没有复杂调试器的情况下串口打印是定位问题的生命线。启用详细的调试日志AWS IoT Device SDK和网络层如LwIP、Wi-Fi驱动通常都有编译时日志级别开关。在开发阶段将日志级别调到最高如LOG_LEVEL_DEBUG。在aws_iot_log.h或类似的配置文件中进行设置。这会在串口输出详细的连接步骤、发送接收的数据包信息对于诊断TLS/MQTT问题至关重要。使用Segger RTT或SWO如果串口被占用或速度不够可以考虑使用J-Link调试器的RTTReal Time Transfer或SWOSerial Wire Output功能输出日志。这需要额外的调试工具支持但可以实现无干扰、高速的日志输出。利用AWS IoT Core的测试功能在AWS控制台的IoT Core服务中有一个“测试”-“MQTT测试客户端”工具。你可以在这里订阅设备发布主题如mydevice/telemetry查看设备是否成功发送消息也可以在这里向设备订阅的主题如mydevice/incoming发布消息测试设备的接收功能。这是一个非常直观的云端验证手段。5.3 从原型到生产的核心考量当你用探索套件跑通示例后下一步就是设计自己的产品硬件和量产方案。这里有几个关键转折点安全配置固化在原型阶段开发板的Secure Manager可能处于“开放”的开发模式。进入量产前必须通过STM32CubeProgrammer或专门的产线工具将芯片配置为“安全关闭”模式锁定调试接口并永久性地配置好安全启动、信任根等选项字节。这个操作是不可逆的务必在最终硬件上充分测试后再进行。证书注入流程你需要与意法半导体或其授权的安全服务提供商合作建立一套产线证书注入流程。通常流程是设备上电 - 通过安全协议与注入服务器通信 - 服务器验证设备唯一身份 - 签发并注入AWS IoT证书。X-CUBE-AWS-H5软件包中会包含用于此流程的参考代码和协议文档。功耗优化示例代码为了演示功能可能没有做深度功耗优化。在产品中你需要精细管理FreeRTOS的任务调度、外设时钟、网络接口的休眠与唤醒。例如在数据发送间隙让MCU进入Stop模式通过RTC定时器或外部事件唤醒。STM32H5的低功耗模式与网络驱动、Secure Manager唤醒源的配合需要仔细设计和测试。固件更新OTA通过AWS IoT Jobs服务实现安全固件更新FOTA是物联网设备的必备能力。你需要设计一个Bootloader能够通过Secure Manager验证新固件的签名并在非安全世界安全地执行更新。这涉及到双Bank Flash管理、回滚机制等复杂设计可以基于STM32H5的硬件特性如Flash读保护、写保护和Secure Manager的签名验证服务来构建。我个人在实际将STM32H5连接到AWS的实践中最大的体会是“安全无小事”。初期为了图快曾尝试用软算法实现TLS并硬编码测试证书结果不仅性能吃紧心里也始终不踏实。直到切换到利用Secure Manager和硬件加速的完整方案才真正感受到了“安全”和“简便”可以兼得。尤其是看到设备在产线上自动完成安全注册和证书注入无需人工干预那种对量产部署的信心是早期方案无法比拟的。对于资源紧张的中小团队这套方案极大地降低了实现高安全等级物联网产品的技术门槛和成本。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…