From 4897cb30e03ba09cc2ee5a8ddb4719ad7e2fcb69 Mon Sep 17 00:00:00 2001 From: Natsume1710 <162396185+Natsume1710@users.noreply.github.com> Date: Tue, 17 Jun 2025 14:50:28 +0800 Subject: [PATCH] Update README.md --- 08-Security_Upgrade/README.md | 70 ----------------------------------- 1 file changed, 70 deletions(-) diff --git a/08-Security_Upgrade/README.md b/08-Security_Upgrade/README.md index d4f687e..116574c 100644 --- a/08-Security_Upgrade/README.md +++ b/08-Security_Upgrade/README.md @@ -178,78 +178,8 @@ uint32_t SecureService_Call(uint32_t service_id, uint32_t param1, uint32_t param --- -### 🔹 安全通信实践 -1. TLS 握手优化 -- 预共享密钥(PSK)模式: -减少证书验证开销,适合资源受限设备。 -```c -// mbed TLS配置PSK -mbedtls_ssl_config_set_psk(&ssl_conf, - psk, // 预共享密钥 - psk_length, - identity, // 身份标识 - strlen(identity)); -``` -2. 证书管理方案 -- 证书存储: - - 根证书存储在安全 Flash 区域。 - - 设备证书通过安全通道动态更新。 -- 证书验证: -```c -// 验证服务器证书链 -int verify_cert(void *data, mbedtls_x509_crt *crt, int depth, uint32_t *flags) { - // 检查证书有效期 - if (mbedtls_x509_crt_check_validity(crt, time(NULL)) != 0) { - return MBEDTLS_ERR_X509_CERT_VERIFY_FAILED; - } - - // 检查证书颁发者 - if (!mbedtls_x509_crt_verify(crt, trusted_certs, NULL, NULL, flags, NULL, NULL)) { - return MBEDTLS_ERR_X509_CERT_VERIFY_FAILED; - } - - return 0; -} -``` ---- - -### 🔹 安全测试 - -1. 固件逆向分析 -- 工具链: - - Ghidra:反编译二进制文件,生成 C 语言伪代码。 - - IDA Pro:专业逆向工程工具,支持 ARM 架构。 -- 防御措施: - - 固件加密:使用 AES-256 加密整个固件。 - - 反调试机制:检测调试接口是否被连接。 -```c -// 检测SWD/JTAG调试接口 -bool IsDebuggerAttached(void) { - // 读取DBGMCU_IDCODE寄存器 - uint32_t idcode = DBGMCU->IDCODE; - // 检查调试使能位 - return ((DBGMCU->CR & (DBGMCU_CR_DBG_SLEEP | DBGMCU_CR_DBG_STOP | DBGMCU_CR_DBG_STANDBY)) != 0); -} -``` - -2. 侧信道攻击防护 -- 电源分析攻击: -通过测量设备功耗分析加密密钥。 -- 防护措施: -常量时间实现:避免条件分支依赖密钥值。 -```c -// 常量时间比较(防止时序攻击) -bool ConstantTimeCompare(const uint8_t *a, const uint8_t *b, size_t len) { - uint8_t result = 0; - for (size_t i = 0; i < len; i++) { - result |= a[i] ^ b[i]; - } - return (result == 0); -} -``` - ### 面试高频问题 #### 安全启动与普通启动的区别: