想象你刚搬进一栋精装修的智能房子:装修工人把房屋结构图纸随手丢进了小区垃圾箱,开发商交付时钥匙还插在门锁上没有拔下来,墙角留着几个没封死的检修通道,邻居甚至能通过你家灯光的亮灭规律推断出你每天几点睡觉。这栋房子就像一台刚出厂的IoT设备——功能齐全、居住舒适,但处处都是“入口”。IoT安全工程师每天的工作,就是像安防顾问一样围着这栋房子转圈:先摸清楚有几扇门、几扇窗、几个通风管道(攻击面盘点),再判断哪些锁头形同虚设、哪扇窗户能从外面撬开(威胁分析),最后给门换上C级锁芯、给窗户焊上防盗栏、把社区监控升级为24小时值守(纵深防护)。这节课,我们就跟着这位安防顾问,从墙外的脚印开始,一步步把IoT设备的每一道防线看个明白。

岗位关联

掌握IoT设备威胁分析与攻击面防护,是物联网安全工程师、产品安全审查员的必备技能。能系统化识别设备风险、设计纵深防御方案,是你在IoT安全领域立足的核心竞争力。

目录
  1. 可视化演示
  2. 威胁全景概览
  3. 固件攻击面
  4. 物理攻击面
  5. 凭证与网络
  6. 纵深防御体系
  7. 安全开发实践
  8. 合规标准要求
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

本节系统梳理IoT设备面临的安全威胁与攻击面,包括固件逆向分析、固件注入攻击、侧信道攻击和默认凭证利用等常见安... 切换模式查看不同维度。

本节配有交互动效(进入视口后自动加载,约 3KB)。

IoT设备攻:核心原理 动态展示关键流程与数据流动 交互控件调节参数实时渲染 f(x) = transform(x) 核心概念的可视化呈现

威胁全景概览

物业交房时会给你一张“隐患自查表”:大门锁是否牢固、窗户卡扣有没有松动、楼道监控能不能覆盖死角。IoT安全工程师的第一步,也不是急着装报警器,而是先做一次威胁建模——把坏人可能从哪里进来、用什么工具撬锁、撬完能捞到什么,全部写进一张清单。这张清单就是设备的“攻击面地图”。

威胁建模通常沿三个维度展开:硬件层(设备本体)、通信层(设备与网关或云端的链路)、云端层(设备管理后台与数据平台)。对应到房子,就是门锁和墙体(硬件)、通往外面的道路与门禁(通信)、以及物业的安保中心(云端)。这三个维度几乎覆盖了IoT设备的全部攻击入口。

为了给威胁排优先级,安全界常用风险公式 R=T×V×I 来量化。T 是威胁发生的可能性,比如是否已有公开攻击工具在流传;V 是漏洞严重程度,例如是否存在可远程触发任意代码执行的缺陷;I 是失守后的影响,比如用户隐私泄露还是整条产线停摆。三者各按 1 到 5 打分,乘积越大代表越需要优先处理。

就像物业在台风季前会给每扇窗户打分:朝向迎风(威胁高)、玻璃老旧(漏洞高)、屋里放着古董(影响高),三者乘积高的窗户连夜加装防风扣。这就是风险驱动的防护顺序——先解决“最可能出事、出事最惨”的地方。

R=T×V×I\displaystyle R = T \times V \times I
风险不是单一因素决定的,而是“有人想打你、你身上有破绽、打穿了损失大”三件事同时成立的乘积。
  1. 威胁等级 T评估攻击者发起攻击的活跃程度与可能性,按 1-5 打分。
    TT
  2. 漏洞等级 V设备中可被利用弱点的严重程度,按 1-5 打分。
    VV
  3. 影响等级 I设备被攻破后对用户与业务造成的损失,按 1-5 打分。
    II
  4. 风险值 R三者相乘得到综合风险,分数越高越需要优先加固。
    R=T×V×IR = T \times V \times I

固件攻击面

你不会把房屋结构图丢进小区垃圾箱,但很多厂商却把固件镜像随意挂在官网下载中心,或藏在未加密的调试芯片引脚上。固件之于设备,如同结构图纸之于房子:上面标着承重墙位置、管线走向,甚至还有一把备用钥匙——硬编码的密钥和后门账号。

攻击者拿到固件后有两条路。第一是“逆向”:用 binwalk 工具把固件包拆成文件系统,再用 Ghidra 或 IDA 把机器码翻译成可读的汇编指令,逐段分析找出硬编码密钥、隐藏调试口和后门逻辑;第二是“注入”:把修改过的固件重新烧回设备,让设备运行攻击者精心改造的“歪楼版本”。

为了挡住注入攻击,正规设备会做完整性校验。出厂时把固件二进制 M 的哈希指纹 H_stored 刻进芯片的安全存储区,每次开机用同样的哈希算法对当前固件重新计算 H_current,两者严格相等才允许启动。

这套机制相当于房子装了指纹锁:开门前先验证你是户主,拿着假图纸的装修队(被篡改的固件)连门都推不开。但要注意,如果指纹锁的型号公开(哈希算法已知),攻击者仍可能从更底层的物理手段绕过——这是下一节的话题。

H(M)=(Hcurrent==Hstored)\displaystyle H(M) = (H_{\text{current}} == H_{\text{stored}})
哈希函数像给一份文件盖章,内容改动一丁点,印章就完全不同。固件校验就是“开机先验章,验不过就不开门”。
  1. 哈希函数 H(·)把任意长度的固件二进制数据压缩成固定长度的指纹字符串。
    H(⋅)H(\cdot)
  2. 当前哈希 H_current设备启动时对正在运行的固件重新计算出的哈希指纹。
    HcurrentH_{\text{current}}
  3. 存储哈希 H_stored出厂时写入安全参考区的指纹值,攻击者无法篡改。
    HstoredH_{\text{stored}}
  4. 一致性判断两者相等说明固件未被篡改,否则拒绝启动。
    H(M)=(Hcurrent==Hstored)H(M) = (H_{\text{current}} == H_{\text{stored}})

物理攻击面

小偷不需要撬锁也能摸清你家的生活规律:只要蹲在楼下,记录灯几点亮、几点灭、窗帘几点拉开,就能推断出几点没人。物理攻击面就是这种“旁门左道”——不直接破解算法,而是通过设备在物理世界中泄漏的蛛丝马迹,逆向还原出秘密。

侧信道攻击是其中的典型代表。芯片执行加密运算时,处理每一位密钥所消耗的功率都不同,攻击者用示波器贴住电源引脚记录功耗曲线,再用统计方法还原密钥。更直接的还有硬件调试接口:JTAG/SWD接口本是为工程师调试预留的“维修门”,如果出厂没封禁,就等同把钥匙递给小偷。

防御侧信道攻击的核心思路,是压低信噪比。信噪比 SNR 表示有效信号与背景噪声的比值,P_signal 是功耗轨迹中与密钥运算相关的有效分量,P_noise 是环境电磁干扰以及安全设计主动注入的随机化掩码。噪声被加得越高,攻击者就越难从单条曲线里看清密钥。

这就像把客厅灯光换成随机跳变的智能调光,让蹲在窗外的人看到的光影毫无规律。功耗掩码的本质,就是让设备“看起来永远没有固定作息”。

SNR=PsignalPnoise\displaystyle \mathrm{SNR} = \frac{P_{\text{signal}}}{P_{\text{noise}}}
防御方的工作不是让信号消失,而是让噪声足够大——就像在嘈杂的集市里低声说密码,窃听者即使站在旁边也听不清楚。
  1. 有效信号 P_signal功耗轨迹中与密钥运算强相关的幅度成分。
    PsignalP_{\text{signal}}
  2. 噪声干扰 P_noise环境电磁干扰与主动随机化掩码带来的干扰强度。
    PnoiseP_{\text{noise}}
  3. 信噪比 SNR两者之比,衡量攻击者从功耗中“看见”密钥的容易程度。
    SNR\mathrm{SNR}
  4. 比值计算比值越大越危险,安全加固的目标就是让 SNR 尽量低。
    SNR=PsignalPnoise\mathrm{SNR} = \frac{P_{\text{signal}}}{P_{\text{noise}}}

凭证与网络

你见过钥匙插在门把手上没拔的房子吗?很多IoT设备的出厂状态就是这样:admin/admin、root/root 这类“万能钥匙”写在说明书里、挂在厂商官网上,用户拿到设备插上电就用,根本不会想到去改。于是,攻击者只需要写一段自动化脚本,批量尝试常见账号密码,就能“一把钥匙开一万把锁”。

更让人头疼的是弱密码的数学本质。假如密码只有4位数字,总共只有 10⁴=10000 种组合,攻击者每秒尝试1000次,10秒就能穷举完毕;如果把密码加长到12位,并混合大小写字母、数字和符号,组合数会膨胀到约 94¹² 的量级——这个数字大到银河系里的恒星都不够给它当计数器。

密码空间 S 的公式是 S=C^L,C 是可选字符集的大小(比如可打印ASCII字符约94个),L 是密码长度。每增加一位密码,组合数就扩大C倍,暴力破解最坏耗时随之指数级增长。与此同时,通信链路也不能走“裸奔路线”:许多老设备用 HTTP 明文上传数据,Wi-Fi密码、传感器读数在空中明文传输,抓包工具随便一挂就能截获。

就像不仅要拔下钥匙(修改默认密码),还要把门禁对讲换成加密线路(TLS加密通信):门外的人再喊话,听到的也只是一串乱码。默认凭证加明文传输这对“卧龙凤雏”,是IoT设备被攻破的头号原因。

S=CL\displaystyle S = C^{L}
密码安全不是“长度+1”的线性游戏,而是“每多一位,难度乘以94倍”的指数游戏。
  1. 字符集大小 C密码可选的字符总数,如94个可打印ASCII字符。
    CC
  2. 密码长度 L密码由几位字符组成。
    LL
  3. 指数运算 C^L每增加一位密码,组合总数扩大 C 倍。
    CLC^{L}
  4. 密码空间 S攻击者最坏情况下需要尝试的总组合数。
    S=CLS = C^{L}

纵深防御体系

再好的C级锁芯也挡不住带液压剪的盗贼,但如果你同时装了防盗窗、红外报警、门口监控和24小时保安巡逻,盗贼就要掂量值不值得下手。IoT安全的护城河,靠的正是这种层层叠加的纵深防御——不把鸡蛋放在一个篮子里。

对应到技术实现:硬件层用安全芯片(Secure Element)存储密钥和信任根,让物理探针和侧信道攻击无从下口;通信层用 TLS/DTLS 做端到端加密,并辅以双向证书认证,确保你连接的对端真的是云端服务器,而不是中间人伪装的假基站;云端层则对设备行为持续画像,发现某台设备上报频率异常、接入地突然跨越大洲,立刻自动隔离。

纵深防御的价值可以直接用概率算清楚。假设每一层被攻破的概率是 p_i,那么这一层守住的概率是 1-p_i;要让攻击者得逞,必须所有层同时失守,也就是各层“没守住”的概率相乘。整体防线被穿透的概率,就是用 1 减去这个连乘积。

这就像物业评估:门锁失守概率30%、窗户失守概率30%、监控失灵概率30%,三层同时失守的概率只有 0.3×0.3×0.3≈2.7%。攻击者想得手,必须连闯三关——大多数小偷在第二关就放弃了。

P失败=1−∏i=1n(1−pi)\displaystyle P_{\text{失败}} = 1 - \prod_{i=1}^{n}(1 - p_i)
每一层单独看都可能被攻破,但多层叠乘后,整体被突破的概率会快速塌缩到很低。
  1. 单层失守概率 p_i第 i 道防线被攻破的可能性。
    pip_i
  2. 单层守住概率 (1-p_i)这一道防线成功拦截攻击的概率。
    1−pi1 - p_i
  3. 全链失守概率n 道防线全部失效的概率,用连乘符号表示。
    ∏i=1n(1−pi)\prod_{i=1}^{n}(1 - p_i)
  4. 整体失败概率用 1 减去全链守住概率,得到纵深防御被整体穿透的风险。
    P失败=1−∏i=1n(1−pi)P_{\text{失败}} = 1 - \prod_{i=1}^{n}(1 - p_i)

安全开发实践

讲究的房子从设计阶段就考虑安防:入户门预留门禁电源、窗户统一用内开内倒防撬,而不是装修完再凿墙走线。安全开发实践就是IoT领域的“设计阶段安防”,其中最核心的一环是安全启动(Secure Boot)。

安全启动的思路是建立一条“信任链”:芯片从复位向量开始,逐级验证每一段引导程序的签名哈希,从 BootROM 到 Bootloader 再到应用固件,任何一环被篡改,启动立刻中止。链条的起点——信任根(Root of Trust),存放在芯片的一次性可编程区域(OTP),出厂后就无法被覆盖或修改。

用哈希链可以精确表达这一过程:H_{i+1}=Hash(H_i ‖ M_{i+1})。H_i 是上一级启动代码的哈希值,也是校验这一级的“信任起点”;M_{i+1} 是待启动的下一级镜像;‖ 表示把信任值和镜像数据拼接在一起;取哈希后得到新的信任凭证 H_{i+1},交给下一级继续验证。同时,每次固件升级包必须携带厂商数字签名,并禁止版本回滚,防止攻击者把设备降级到带已知漏洞的旧版本。

这就像智能门禁在每位访客进门时核对身份证:从快递员到水电工,每一级都验明正身。配合定期漏洞扫描——相当于每月请安防公司上门巡检一次,把新出现的CVE漏洞逐条对照设备清单检查,才能在攻击者动手之前就把洞补上。

Hi+1=Hash(Hi∥Mi+1)\displaystyle H_{i+1} = \mathrm{Hash}(H_i \parallel M_{i+1})
安全启动如同门禁系统逐级核实访客身份:每道门都验一次证,证件伪造者在第一道门就被识破。
  1. 阶段镜像 M_{i+1}第 i+1 级引导程序或应用固件的镜像数据。
    Mi+1M_{i+1}
  2. 上链信任值 H_i上一级启动代码的哈希,作为本级的信任起点。
    HiH_i
  3. 拼接操作 ‖把信任值与待验证镜像连接成一个整体再取哈希。
    Hi∥Mi+1H_i \parallel M_{i+1}
  4. 链式信任 H_{i+1}生成的新哈希成为下一级的信任依据,环环相扣直到系统完全启动。
    Hi+1=Hash(Hi∥Mi+1)H_{i+1} = \mathrm{Hash}(H_i \parallel M_{i+1})

合规标准要求

房子装修得再漂亮,通不过消防验收就不能入住。IoT设备也一样,在各国物联网法规逐渐收紧的今天,不合规的产品连上市资格都没有。合规不是“锦上添花”,而是“准生证”。

目前主流的合规框架包括:欧盟 ETSI EN 303 645,这是全球首个消费级IoT安全基线标准,明确要求“物联网设备不得使用全局默认密码”、“软件必须提供安全更新机制”等13条安全基线;美国加州 SB-327 规定联网设备必须配备“合理的安全特性”;国内也有 GB/T 系列物联网安全标准和等保2.0对物联网扩展的要求。企业要进入这些市场,必须先过对应法规的门槛。

落到执行层面,安全团队通常建立一张“安全基线检查表”,把法规要求拆解成可逐项核验的条目。每条要求赋予权重 w_i(重要程度),检查完成度 c_i(0到1之间),最终合规评分是加权完成度之和除以总权重,再换算成百分比。评分达到目标市场要求后,可提交 ioXt 联盟等第三方机构做认证审核。

拿到认证标签,相当于房子贴上了“消防验收合格”的绿色标牌:客户买得放心、监管查得轻松、厂商也少了一堆事后返工。合规审计流程建议每季度循环一次——因为法规在更新,漏洞库在扩展,去年合格的基线今年可能已经落后。

Score=∑i=1nwi×ci∑i=1nwi×100%\displaystyle \text{Score} = \frac{\sum_{i=1}^{n} w_i \times c_i}{\sum_{i=1}^{n} w_i} \times 100\%
合规评分不是简单的“平均分”,而是按条款重要性加权后算出的综合达标率——关键安全要求不达标,其他项做得再好也拿不到合格证。
  1. 要求权重 w_i第 i 项安全要求在整体合规中的重要性系数。
    wiw_i
  2. 完成度 c_i第 i 项要求的落实程度,取值为 0 到 1 之间。
    cic_i
  3. 加权求和把每项权重与完成度相乘后累加,得到加权达标总量。
    ∑i=1nwi×ci\sum_{i=1}^{n} w_i \times c_i
  4. 合规评分除以总权重并转为百分比,衡量设备整体合规水平。
    Score=∑i=1nwi×ci∑i=1nwi×100%\text{Score} = \frac{\sum_{i=1}^{n} w_i \times c_i}{\sum_{i=1}^{n} w_i} \times 100\%

AI 应用场景

智能家居网关安全评估

阶段:数据采集与资产建模

解决的问题:传统评估依赖安全工程师逐台登录网关检查配置,10万台设备意味着两周以上的重复劳动,还容易漏检。AI自动采集网关固件版本、开放端口、协议类型和默认凭证配置,构建设备资产画像后与CVE漏洞库自动关联,生成攻击面热力图,高危设备一目了然。

具体案例:某智能家居厂商每月用AI扫描器巡检全网关,把原本两周的安全审计压缩到4小时,在一次巡检中发现并封堵了3个因固件注入产生的后门入口。

工业IoT设备渗透测试

阶段:自动化渗透与威胁验证

解决的问题:人工对PLC控制器等工业设备做渗透测试风险高、周期长,稍有不慎就会干扰产线。AI驱动的模糊测试工具自动向设备协议栈发送畸形报文,同时采集功耗侧信道数据用于泄露评估,在不中断生产的前提下验证漏洞可利用性。

具体案例:某汽车工厂冲压线的PLC控制器被AI渗透测试工具发现“调试接口暴露+默认凭证”双高危组合,厂商利用停产窗口期完成了物理封堵与凭证轮换,避免了潜在的生产停摆事故。

智慧城市摄像头合规审计

阶段:合规检查与报告生成

解决的问题:智慧城市项目动辄上万只摄像头,人工逐项核对ETSI基线要求不现实。AI自动拉取每台设备的固件哈希、加密策略、账号配置等数据,对照法规清单逐项打分并生成整改建议,输出可追溯的审计报告。

具体案例:某市公共安全项目对1.2万只摄像头做合规扫描,AI在3天内生成了全量合规评分与优先级排序,帮助项目组赶在法律生效前完成了所有不合规设备的升级替换。

Python 演示

python76 行
"""IoT设备攻击面扫描器:模拟对一台设备进行安全基线检查检查项:默认凭证、高危端口、明文通信、固件完整性"""import hashlib  class DeviceAttackSurfaceScanner:    """对一个IoT设备做攻击面清单扫描"""     def __init__(self, device_info):        self.device_info = device_info  # {'ip':..., 'model':...}        self.findings = []              # 收集发现的安全问题        self.gc_count = 0               # 已执行的检查项计数        self.open_ports = []            # 发现的高危开放端口     def check_default_creds(self, username, password):        """检查是否使用了厂商默认凭证"""        self.gc_count += 1        default_creds = {            ('admin', 'admin'): True,            ('root', 'root'): True,            ('user', 'user'): True,            ('admin', 'password'): True        }        is_weak = default_creds.get((username, password), False)        if is_weak:            self.findings.append(                '[高危] 使用了可猜测的默认凭证: {}/{}'.format(username, password)            )        return is_weak     def scan_ports(self, port_list):        """模拟端口扫描, 识别暴露的风险服务"""        self.gc_count += 1        risky_ports = {21: 'FTP明文', 23: 'Telnet明文', 80: 'HTTP明文', 2323: '调试端口'}        for port in port_list:            if port in risky_ports:                self.open_ports.append(port)                self.findings.append(                    '[中危] 开放了{}端口, 对应服务: {}'.format(port, risky_ports[port])                )        return self.open_ports     def check_encrypted_channel(self, use_tls):        """检查上行通信是否加密(TLS/DTLS)"""        self.gc_count += 1        if not use_tls:            self.findings.append('[高危] 与云端通信未加密, 存在窃听和篡改风险')        return use_tls     def calc_firmware_hash(self, firmware_bytes):        """计算固件哈希, 用于完整性校验"""        self.gc_count += 1        digest = hashlib.sha256(firmware_bytes).hexdigest()        self.findings.append('[提示] 固件SHA256: {}'.format(digest[:16] + '...'))        return digest     def run_assessment(self):        """执行完整的安全评估流程"""        print('[*] 开始评估设备', self.device_info)        self.check_default_creds('admin', 'admin')        self.scan_ports([22, 23, 80, 443, 8000, 2323])        self.check_encrypted_channel(False)        self.calc_firmware_hash(b'fake-firmware-blob-20240101')        print('[*] 共完成{}项检查, 发现{}个问题'.format(self.gc_count, len(self.findings)))        for finding in self.findings:            print('   -', finding)        risk_level = '高危' if len(self.findings) >= 3 else '中危'        print('[*] 综合风险等级:', risk_level)        return risk_level  if __name__ == '__main__':    scanner = DeviceAttackSurfaceScanner({'ip': '192.168.1.100', 'model': 'smart-cam-v2'})    scanner.run_assessment()
目的:模拟安全工程师对一台IoT设备做自动化攻击面初筛,输出问题清单与综合风险等级。
  1. self.findings = []创建一个“问题记录本”,每条安全风险追加一行,方便最后统一汇报。
  2. default_creds.get((username, password), False)把账密组合拿去和厂商默认凭证表比对,命中即为弱凭证。
  3. risky_ports = {...}建立高危端口与协议服务的映射字典,端口扫描时快速查表。
  4. hashlib.sha256(firmware_bytes).hexdigest()对固件内容计算SHA256指纹,用于完整性基线留存。
  5. self.gc_count += 1每次执行检查项就自增计数,最后输出“共完成多少项检查”的总量数据。

常见误区

误区给设备设置了一个12位混合复杂密码,我就可以高枕无忧了,固件逆向、调试口这些都是低概率事件。

正解密码只是众多“门锁”中的一把。攻击者完全可以通过固件逆向找出硬编码后门账号,或直接撬开UART调试口把固件拷走。安全是系统性工程——密码之外的每个入口都需要盘点、封堵和监控,单靠一把好锁挡不住撬窗的贼。

为何常见:大多数人把“安全”等同于“登录认证”,对攻击面的多样性缺乏感知,只盯着最显眼的那把锁。

误区认为功耗分析和电磁辐射窃听需要上百万的实验室设备,中小企业根本不需要考虑这种威胁。

正解如今几百元价位的示波器配上开源脚本,大学实验室就能完成基础的功耗分析,学术界已有大量低成本攻击案例。安全设计基线中至少应包含随机延时和功耗掩码等基础对抗措施,而不是把侧信道攻击当成“电影里的黑客”。

为何常见:侧信道概念比较抽象,不像端口扫描那样直观可见,容易被视为“离我们很远”的威胁。

误区设备里加了一颗Secure Element安全芯片,所有安全配置都自动搞定,其他环节不用再管。

正解安全芯片只是把钥匙放进保险柜,但保险柜还依赖正确的使用方式:密钥不能硬编码在固件里、启动链必须信任芯片中的根密钥、通信链路仍需加密。否则钥匙保管得再好,房子的大门依然敞开着。

为何常见:市面上安全芯片营销话术较强,容易让非安全背景的工程师产生“装了就安全”的一劳永逸错觉。

误区设备通过了ETSI或ioXt认证,说明它就是绝对安全的,出问题一定是用户使用不当。

正解合规标准是“最低安全基线”而非“安全上限”。合规审计通常一年只做一次,而漏洞攻击每天都在发生;通过认证只能说明满足当前法规要求,不代表没有尚未披露的0day漏洞。安全需要持续运营,而不是一纸证书的终点。

为何常见:认证标签给人的“安全光环”效应很强,容易把“符合规定”误解成“无法攻破”。

面试题

Q1. 以下哪一项属于IoT设备最常见的默认凭证实例?

单选题 · easy

  • A.admin/admin← 正确答案
  • B.随机生成的20位密码
  • C.USB-KEY动态口令
  • D.独立的指纹识别凭证

答案:A。admin/admin 是IoT设备出厂默认凭证的“经典款”,写在使用手册里且几乎不会触发修改提醒。随机密码、动态口令和指纹凭证都属于强认证手段,不是默认弱凭证。

Q2. 风险评估公式 R=T×V×I 中,V 表示什么?

单选题 · mid

  • A.攻击者投入的财力和时间
  • B.设备漏洞的严重程度等级← 正确答案
  • C.设备在当前市场的售价
  • D.网络传输数据的带宽大小

答案:B。V 是 Vulnerability(漏洞)的等级,衡量设备上可被利用弱点的严重程度。T 是威胁可能性,I 是影响价值,三者相乘才是风险。选项A属于威胁维度,C和D与风险评估无关。

Q3. 侧信道攻击最依赖以下哪种物理量?

单选题 · easy

  • A.设备包装盒的出厂日期
  • B.设备运行时的实时功耗波动← 正确答案
  • C.设备外壳的颜色和厚度
  • D.设备内置电池的容量大小

答案:B。侧信道攻击通过功耗、电磁辐射、运行时间等物理泄露还原内部秘密。设备的实时功耗波动与密钥处理高度相关,是功耗分析攻击(SPA/DPA)的主要信号来源。

Q4. IoT设备纵深防御体系包含哪些层级?

多选题 · mid

  • A.硬件安全芯片可信根← 正确答案
  • B.全链路通信加密传输← 正确答案
  • C.云端设备行为持续监测← 正确答案
  • D.市场营销推广活动策划

答案:ABC。纵深防御覆盖硬件层(安全芯片)、通信层(TLS/DTLS加密)和云端层(行为监测与隔离)三个维度。营销活动与安全防护无关,属于干扰项。

Q5. 安全启动链中,信任根(Root of Trust)通常存放在哪里?

单选题 · mid

  • A.云端机房的mysql数据库
  • B.固件包文件末尾的注释
  • C.芯片内部一次性可编程区← 正确答案
  • D.用户手册附录的产品说明

答案:C。信任根必须存放在攻击者无法篡改的硬件位置,即芯片的一次性可编程区(OTP),出厂烧录后不可覆盖。云端数据库、固件注释和用户手册都处于可被篡改的软件或物理环境中,不能作为信任根。

Q6. 下列哪些属于固件攻击面的常见威胁?

多选题 · hard

  • A.通过UART调试口转储出固件← 正确答案
  • B.用Ghidra还原出硬编码密钥← 正确答案
  • C.对前端页面注入恶意脚本
  • D.篡改固件回写绕过签名校验← 正确答案

答案:ABD。从调试口提取固件、逆向分析挖出密钥、篡改固件回写绕过校验,都是针对固件本身的攻击路径。前端页面注入属于Web攻击面,不属于固件攻击面。

Q7. 与云端通信时,应优先采用以下哪种协议组合?

单选题 · easy

  • A.MQTT over TLS 加密通道← 正确答案
  • B.HTTP 明文上传设备温度数据
  • C.FTP 明文传输固件升级包
  • D.Telnet 远程配置维护终端

答案:A。MQTT 是IoT主流轻量级消息协议,叠加TLS后能提供机密性和完整性保护。HTTP、FTP、Telnet 都是明文协议,数据在链路上“裸奔”,抓包即可窃听。

Q8. 以下哪些属于常见的物理攻击面?

多选题 · hard

  • A.JTAG调试接口未做物理封禁← 正确答案
  • B.芯片引脚探针直接窃听总线← 正确答案
  • C.功耗侧信道分析还原密钥← 正确答案
  • D.邻居蹭你家的无线网络流量

答案:ABC。JTAG调试口、芯片引脚探针、功耗侧信道都是需要接触设备或近距离测量的物理攻击手段。蹭Wi-Fi属于无线网络攻击面,不属于物理攻击面。

Q9. 根据密码空间公式 S=C^L,当密码长度 L 增加 1 位时,暴力破解的最坏时间会发生什么变化?

单选题 · hard

  • A.破解时间线性增长一位
  • B.破解时间按字符集大小倍乘← 正确答案
  • C.破解时间不变反而缩短
  • D.破解时间仅受网络延迟影响

答案:B。S=C^L 是指数函数,L 增加1位,S 扩大为原来的 C 倍,暴力破解时间也随之乘以 C(字符集大小)。所以是“指数级倍乘”而非线性增长,这正是长密码更具安全性的数学原因。

Q10. 合规审计中“安全基线”通常指的是什么?

单选题 · mid

  • A.一组最低限度的安全检查要求← 正确答案
  • B.设备历史售价统计记录表格
  • C.员工职级晋升的考核评价体系
  • D.网络链路带宽的峰值测量结果

答案:A。安全基线是依据法规和最佳实践提炼的最低安全检查清单,如ETSI EN 303 645的13条要求。它是合规打分的基准,与售价、职级、带宽无关。