云计算百科
云计算领域专业知识百科平台

第6章:实验室选型 + 渗透测试(完结篇)

摘要

选哪个实验室?渗透测试到底测什么?要花多少钱?本文用 6 家实验室对比 + 四攻击面详解 + Nordic nRF5340 真实案例 + P0-P3 行动建议,给出芯片厂商可执行的认证路线。连载完结篇。


封面图建议

  • 主视觉:深蓝背景 + 渗透测试四攻击面图标 + "完结篇"标识
  • 主题色:#1B3A5C(深蓝)+ #D93025(红色攻击感)
  • 文字:“实验室选型 + 渗透测试” + “连载完结篇”

正文

开篇:认证的"终点站"

这是 CRA × PSA 合规连载的完结篇。

前五期我们讲了:

  • CRA 法规全景与时间窗口
  • 罚则与合规优先级矩阵
  • TF-M 架构与 SPM 调度
  • PSA Crypto API 实战
  • PSA Level 1-4 申请材料
  • 这一期讲认证申请的最后三步——选哪个实验室、渗透测试测什么、要花多少钱。

    认证是 CRA 合规的"终点站"——PSA Level 2 是性价比拐点(35-95 万美元,3-6 个月),EN 18031 映射是 CRA 合规的"通行证"(额外 5-15 万美元,1-2 个月)。


    一、实验室选型

    6 家 PSA Certified 授权实验室
    实验室总部强项报价区间
    Brightsight 荷兰 侧信道 / 故障注入
    Serma 法国 CC / SESIP / 渗透 中-高
    Riscure 荷兰 物理攻击 / DPA
    TrustCB 法国 文档审查 / 流程
    UL Solutions 美国 测试 + 认证
    TV Rheinland 德国 综合性 中-高
    选型维度
    维度考虑点
    经验 是否评估过同类 BLE SoC?
    报价 Level 2 渗透报价区间 10-30 万美元
    排期 旺季(Q1/Q3)排期 2-3 个月
    语言 中文沟通能力(国产厂商重点)
    地点 样本寄送 + 现场支持

    💡 工程视角:Brightsight 和 Riscure 是物理攻击最强,但报价高且排期长。Serma 性价比好,中文支持较好。建议国产厂商选 Serma 做 Level 2,Level 3 再考虑 Brightsight。选型时要求实验室提供同类芯片的评估案例——评估过 BLE SoC 的实验室对常见漏洞更敏感。

    📌 配图提示:6 家实验室对比矩阵


    二、评估时间与成本明细

    时间明细
    阶段Level 1Level 2Level 3Level 4
    厂商准备 2-4 周 2-3 个月 3-6 个月 6-9 个月
    实验室评估 1-2 周 1-3 个月 3-6 个月 6-9 个月
    总计 3-6 周 3-6 个月 6-12 个月 12-18 个月
    成本明细
    成本项Level 1Level 2Level 3Level 4
    实验室费用 0 10-30 万$ 20-50 万$ 50-100 万$
    硬件 IP 0 10-30 万$ 50-200 万$ 200-500 万$
    内部人力 5-10 万$ 20-50 万$ 50-100 万$ 100-200 万$
    总计 5-15 万$ 35-95 万$ 120-350 万$ 350-800 万$

    💡 工程视角:Level 2 是性价比拐点——35-95 万美元覆盖渗透测试 + 硬件隔离,满足 CRA Class I Important 第三方评定。Level 3 的 120-350 万美元适合 Class II 或差异化竞争。Level 4 的 350-800 万美元仅适合支付/汽车等高安全市场。对绝大多数国产 BLE SoC 厂商,先做 Level 2。

    📌 配图提示:四级认证时间-成本对比图

    排期策略:Level 2 的 6 个月

    以最常见的 Level 2 为例,完整认证时间线约 6 个月:

    #mermaid-svg-VlUXf1qQjADG7SFM{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-VlUXf1qQjADG7SFM .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-VlUXf1qQjADG7SFM .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-VlUXf1qQjADG7SFM .error-icon{fill:#552222;}#mermaid-svg-VlUXf1qQjADG7SFM .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-VlUXf1qQjADG7SFM .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-VlUXf1qQjADG7SFM .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-VlUXf1qQjADG7SFM .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-VlUXf1qQjADG7SFM .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-VlUXf1qQjADG7SFM .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-VlUXf1qQjADG7SFM .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-VlUXf1qQjADG7SFM .marker{fill:#333333;stroke:#333333;}#mermaid-svg-VlUXf1qQjADG7SFM .marker.cross{stroke:#333333;}#mermaid-svg-VlUXf1qQjADG7SFM svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-VlUXf1qQjADG7SFM p{margin:0;}#mermaid-svg-VlUXf1qQjADG7SFM .mermaid-main-font{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-VlUXf1qQjADG7SFM .exclude-range{fill:#eeeeee;}#mermaid-svg-VlUXf1qQjADG7SFM .section{stroke:none;opacity:0.2;}#mermaid-svg-VlUXf1qQjADG7SFM .section0{fill:rgba(102, 102, 255, 0.49);}#mermaid-svg-VlUXf1qQjADG7SFM .section2{fill:#fff400;}#mermaid-svg-VlUXf1qQjADG7SFM .section1,#mermaid-svg-VlUXf1qQjADG7SFM .section3{fill:white;opacity:0.2;}#mermaid-svg-VlUXf1qQjADG7SFM .sectionTitle0{fill:#333;}#mermaid-svg-VlUXf1qQjADG7SFM .sectionTitle1{fill:#333;}#mermaid-svg-VlUXf1qQjADG7SFM .sectionTitle2{fill:#333;}#mermaid-svg-VlUXf1qQjADG7SFM .sectionTitle3{fill:#333;}#mermaid-svg-VlUXf1qQjADG7SFM .sectionTitle{text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-VlUXf1qQjADG7SFM .grid .tick{stroke:lightgrey;opacity:0.8;shape-rendering:crispEdges;}#mermaid-svg-VlUXf1qQjADG7SFM .grid .tick text{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#333;}#mermaid-svg-VlUXf1qQjADG7SFM .grid path{stroke-width:0;}#mermaid-svg-VlUXf1qQjADG7SFM .today{fill:none;stroke:red;stroke-width:2px;}#mermaid-svg-VlUXf1qQjADG7SFM .task{stroke-width:2;}#mermaid-svg-VlUXf1qQjADG7SFM .taskText{text-anchor:middle;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-VlUXf1qQjADG7SFM .taskTextOutsideRight{fill:black;text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-VlUXf1qQjADG7SFM .taskTextOutsideLeft{fill:black;text-anchor:end;}#mermaid-svg-VlUXf1qQjADG7SFM .task.clickable{cursor:pointer;}#mermaid-svg-VlUXf1qQjADG7SFM .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-VlUXf1qQjADG7SFM .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-VlUXf1qQjADG7SFM .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-VlUXf1qQjADG7SFM .taskText0,#mermaid-svg-VlUXf1qQjADG7SFM .taskText1,#mermaid-svg-VlUXf1qQjADG7SFM .taskText2,#mermaid-svg-VlUXf1qQjADG7SFM .taskText3{fill:white;}#mermaid-svg-VlUXf1qQjADG7SFM .task0,#mermaid-svg-VlUXf1qQjADG7SFM .task1,#mermaid-svg-VlUXf1qQjADG7SFM .task2,#mermaid-svg-VlUXf1qQjADG7SFM .task3{fill:#8a90dd;stroke:#534fbc;}#mermaid-svg-VlUXf1qQjADG7SFM .taskTextOutside0,#mermaid-svg-VlUXf1qQjADG7SFM .taskTextOutside2{fill:black;}#mermaid-svg-VlUXf1qQjADG7SFM .taskTextOutside1,#mermaid-svg-VlUXf1qQjADG7SFM .taskTextOutside3{fill:black;}#mermaid-svg-VlUXf1qQjADG7SFM .active0,#mermaid-svg-VlUXf1qQjADG7SFM .active1,#mermaid-svg-VlUXf1qQjADG7SFM .active2,#mermaid-svg-VlUXf1qQjADG7SFM .active3{fill:#bfc7ff;stroke:#534fbc;}#mermaid-svg-VlUXf1qQjADG7SFM .activeText0,#mermaid-svg-VlUXf1qQjADG7SFM .activeText1,#mermaid-svg-VlUXf1qQjADG7SFM .activeText2,#mermaid-svg-VlUXf1qQjADG7SFM .activeText3{fill:black!important;}#mermaid-svg-VlUXf1qQjADG7SFM .done0,#mermaid-svg-VlUXf1qQjADG7SFM .done1,#mermaid-svg-VlUXf1qQjADG7SFM .done2,#mermaid-svg-VlUXf1qQjADG7SFM .done3{stroke:grey;fill:lightgrey;stroke-width:2;}#mermaid-svg-VlUXf1qQjADG7SFM .doneText0,#mermaid-svg-VlUXf1qQjADG7SFM .doneText1,#mermaid-svg-VlUXf1qQjADG7SFM .doneText2,#mermaid-svg-VlUXf1qQjADG7SFM .doneText3{fill:black!important;}#mermaid-svg-VlUXf1qQjADG7SFM .doneText0.taskTextOutsideLeft,#mermaid-svg-VlUXf1qQjADG7SFM .doneText0.taskTextOutsideRight,#mermaid-svg-VlUXf1qQjADG7SFM .doneText1.taskTextOutsideLeft,#mermaid-svg-VlUXf1qQjADG7SFM .doneText1.taskTextOutsideRight,#mermaid-svg-VlUXf1qQjADG7SFM .doneText2.taskTextOutsideLeft,#mermaid-svg-VlUXf1qQjADG7SFM .doneText2.taskTextOutsideRight,#mermaid-svg-VlUXf1qQjADG7SFM .doneText3.taskTextOutsideLeft,#mermaid-svg-VlUXf1qQjADG7SFM .doneText3.taskTextOutsideRight{fill:black!important;}#mermaid-svg-VlUXf1qQjADG7SFM .crit0,#mermaid-svg-VlUXf1qQjADG7SFM .crit1,#mermaid-svg-VlUXf1qQjADG7SFM .crit2,#mermaid-svg-VlUXf1qQjADG7SFM .crit3{stroke:#ff8888;fill:red;stroke-width:2;}#mermaid-svg-VlUXf1qQjADG7SFM .activeCrit0,#mermaid-svg-VlUXf1qQjADG7SFM .activeCrit1,#mermaid-svg-VlUXf1qQjADG7SFM .activeCrit2,#mermaid-svg-VlUXf1qQjADG7SFM .activeCrit3{stroke:#ff8888;fill:#bfc7ff;stroke-width:2;}#mermaid-svg-VlUXf1qQjADG7SFM .doneCrit0,#mermaid-svg-VlUXf1qQjADG7SFM .doneCrit1,#mermaid-svg-VlUXf1qQjADG7SFM .doneCrit2,#mermaid-svg-VlUXf1qQjADG7SFM .doneCrit3{stroke:#ff8888;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges;}#mermaid-svg-VlUXf1qQjADG7SFM .milestone{transform:rotate(45deg) scale(0.8,0.8);}#mermaid-svg-VlUXf1qQjADG7SFM .milestoneText{font-style:italic;}#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText0,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText1,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText2,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText3{fill:black!important;}#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText0.taskTextOutsideLeft,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText0.taskTextOutsideRight,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText1.taskTextOutsideLeft,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText1.taskTextOutsideRight,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText2.taskTextOutsideLeft,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText2.taskTextOutsideRight,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText3.taskTextOutsideLeft,#mermaid-svg-VlUXf1qQjADG7SFM .doneCritText3.taskTextOutsideRight{fill:black!important;}#mermaid-svg-VlUXf1qQjADG7SFM .vert{stroke:navy;}#mermaid-svg-VlUXf1qQjADG7SFM .vertText{font-size:15px;text-anchor:middle;fill:navy!important;}#mermaid-svg-VlUXf1qQjADG7SFM .activeCritText0,#mermaid-svg-VlUXf1qQjADG7SFM .activeCritText1,#mermaid-svg-VlUXf1qQjADG7SFM .activeCritText2,#mermaid-svg-VlUXf1qQjADG7SFM .activeCritText3{fill:black!important;}#mermaid-svg-VlUXf1qQjADG7SFM .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-VlUXf1qQjADG7SFM :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}2026-03-012026-04-012026-05-012026-06-012026-07-012026-08-012026-09-01内部预审 材料整理 实验室排期 渗透测试 漏洞修复 复测 发证 准备期评估期发证PSA Level 2 认证时间线(6 个月)

    💡 工程视角:旺季(Q1/Q3)实验室排期可能 2-3 个月,务必提前锁定档期。内部预审阶段用 ChipWhisperer 等工具做侧信道预测试,提前修复明显问题——实验室按小时收费,预审能省 30-50% 评估费用。


    三、渗透测试实战(Level 2)

    四个攻击面

    #mermaid-svg-aCvBMam8iAnX7tWQ{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-aCvBMam8iAnX7tWQ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-aCvBMam8iAnX7tWQ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-aCvBMam8iAnX7tWQ .error-icon{fill:#552222;}#mermaid-svg-aCvBMam8iAnX7tWQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-aCvBMam8iAnX7tWQ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-aCvBMam8iAnX7tWQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-aCvBMam8iAnX7tWQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-aCvBMam8iAnX7tWQ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-aCvBMam8iAnX7tWQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-aCvBMam8iAnX7tWQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-aCvBMam8iAnX7tWQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-aCvBMam8iAnX7tWQ .marker.cross{stroke:#333333;}#mermaid-svg-aCvBMam8iAnX7tWQ svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-aCvBMam8iAnX7tWQ p{margin:0;}#mermaid-svg-aCvBMam8iAnX7tWQ .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-aCvBMam8iAnX7tWQ .cluster-label text{fill:#333;}#mermaid-svg-aCvBMam8iAnX7tWQ .cluster-label span{color:#333;}#mermaid-svg-aCvBMam8iAnX7tWQ .cluster-label span p{background-color:transparent;}#mermaid-svg-aCvBMam8iAnX7tWQ .label text,#mermaid-svg-aCvBMam8iAnX7tWQ span{fill:#333;color:#333;}#mermaid-svg-aCvBMam8iAnX7tWQ .node rect,#mermaid-svg-aCvBMam8iAnX7tWQ .node circle,#mermaid-svg-aCvBMam8iAnX7tWQ .node ellipse,#mermaid-svg-aCvBMam8iAnX7tWQ .node polygon,#mermaid-svg-aCvBMam8iAnX7tWQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-aCvBMam8iAnX7tWQ .rough-node .label text,#mermaid-svg-aCvBMam8iAnX7tWQ .node .label text,#mermaid-svg-aCvBMam8iAnX7tWQ .image-shape .label,#mermaid-svg-aCvBMam8iAnX7tWQ .icon-shape .label{text-anchor:middle;}#mermaid-svg-aCvBMam8iAnX7tWQ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-aCvBMam8iAnX7tWQ .rough-node .label,#mermaid-svg-aCvBMam8iAnX7tWQ .node .label,#mermaid-svg-aCvBMam8iAnX7tWQ .image-shape .label,#mermaid-svg-aCvBMam8iAnX7tWQ .icon-shape .label{text-align:center;}#mermaid-svg-aCvBMam8iAnX7tWQ .node.clickable{cursor:pointer;}#mermaid-svg-aCvBMam8iAnX7tWQ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-aCvBMam8iAnX7tWQ .arrowheadPath{fill:#333333;}#mermaid-svg-aCvBMam8iAnX7tWQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-aCvBMam8iAnX7tWQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-aCvBMam8iAnX7tWQ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-aCvBMam8iAnX7tWQ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-aCvBMam8iAnX7tWQ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-aCvBMam8iAnX7tWQ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-aCvBMam8iAnX7tWQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-aCvBMam8iAnX7tWQ .cluster text{fill:#333;}#mermaid-svg-aCvBMam8iAnX7tWQ .cluster span{color:#333;}#mermaid-svg-aCvBMam8iAnX7tWQ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-aCvBMam8iAnX7tWQ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-aCvBMam8iAnX7tWQ rect.text{fill:none;stroke-width:0;}#mermaid-svg-aCvBMam8iAnX7tWQ .icon-shape,#mermaid-svg-aCvBMam8iAnX7tWQ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-aCvBMam8iAnX7tWQ .icon-shape p,#mermaid-svg-aCvBMam8iAnX7tWQ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-aCvBMam8iAnX7tWQ .icon-shape .label rect,#mermaid-svg-aCvBMam8iAnX7tWQ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-aCvBMam8iAnX7tWQ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-aCvBMam8iAnX7tWQ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-aCvBMam8iAnX7tWQ :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    目标芯片 + 固件

    JTAG/SWD调试接口

    侧信道DPA/CPA

    故障注入电压/激光

    固件提取Flash 读取

    📌 配图提示:渗透测试四攻击面图

    ① JTAG/SWD 攻击

    测试内容:

    • JTAG 是否锁定(LCS=运行态时)
    • Secure Debug 认证是否可绕过
    • DAP 是否暴露安全世界内存

    高频漏洞:某厂商的 JTAG 在 LCS=运行态时仍可读取,但需密码——密码用 SHA-256 存储,但 Salt 固定,攻击者预计算彩虹表破解。

    修复:JTAG 锁定后不可解锁(OTP 烧录),或 Secure Debug 用 ECDSA P-256 认证。

    ② 侧信道攻击(DPA/CPA)

    测试内容:

    • AES 密钥的 DPA(差分功耗分析)
    • ECDSA 的 CPA(相关功耗分析)
    • TRNG 的功耗波动是否泄露状态

    高频漏洞:AES 软件实现无掩码,10 万条功耗轨迹 30 分钟提取密钥。

    修复:AES 用硬件加速(带掩码),或软件实现加随机掩码。

    ③ 故障注入(FI)

    测试内容:

    • 电压毛刺绕过 BootROM 验签
    • 时钟毛刺绕过 LCS 检查
    • 激光故障注入篡改 ECDSA 签名

    高频漏洞:BootROM 的 if (verify() == OK) 分支用电压毛刺翻转,跳过验签。

    修复:关键分支用双冗余(if (verify() == OK && verify() == OK)),或转换为先计算后比较。

    ④ 固件提取

    测试内容:

    • Flash 读取是否锁定(LCS=运行态)
    • BootROM 镜像是否可从芯片提取
    • OTP 内容是否可读

    高频漏洞:Flash 读取未锁定,攻击者提取固件 + 逆向。

    修复:LCS=运行态时 Flash 读取锁定,BootROM 不可导出,OTP 安全区不可读。

    💡 工程视角:渗透测试前必做内部预审。用 ChipWhisperer($5000)做侧信道预测试,用电压毛刺发生器($2000)做故障注入预测试,用 OpenOCD 试 JTAG。内部预审发现的漏洞,修复成本远低于实验室发现。


    四、白盒审查实战(Level 3)

    白盒 vs 黑盒
    维度Level 2(黑盒)Level 3(白盒)
    源码访问 完整源码(含 BootROM)
    审查方式 渗透攻击 代码审查 + 渗透
    漏洞发现 可利用漏洞 设计缺陷 + 可利用漏洞
    周期 1-3 个月 3-6 个月
    白盒审查重点
    审查项关注点
    BootROM 源码 验签逻辑、抗 FI、代码量 ≤32KB
    SG 接口 函数数量、参数校验、缓冲区检查
    密钥管理 密钥流图、EXPORT 标志、擦除逻辑
    LCS 状态机 冗余编码、状态转换、抗 FI
    TRNG 熵源设计、DRBG、健康检查
    加密实现 算法选择、IV 生成、密钥派生
    Level 3 物理攻击

    Level 3 的物理攻击在 Level 2 基础上增加:

    攻击工具成本
    去封装 酸蚀 + 等离子刻蚀
    探针 微探针台
    SEM 成像 扫描电镜
    激光 FI 激光故障注入设备 极高

    ⚠️ 重要提醒:Level 3 的物理攻击测试需要去封装样本(10 台)。厂商需提前准备去封装的芯片,或委托实验室去封装(每片 $500-$2000)。


    五、真实案例:Nordic nRF5340 Level 2 认证时间线

    背景
    • 芯片:nRF5340(双核 Cortex-M33)
    • 目标:PSA Certified Level 2
    • 时间:2020-2021 年(首批 Level 2 认证之一)
    时间线(5 个月)

    #mermaid-svg-4MsaqdQB7tGy0R2M{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-4MsaqdQB7tGy0R2M .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-4MsaqdQB7tGy0R2M .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-4MsaqdQB7tGy0R2M .error-icon{fill:#552222;}#mermaid-svg-4MsaqdQB7tGy0R2M .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4MsaqdQB7tGy0R2M .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-4MsaqdQB7tGy0R2M .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4MsaqdQB7tGy0R2M .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4MsaqdQB7tGy0R2M .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-4MsaqdQB7tGy0R2M .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4MsaqdQB7tGy0R2M .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4MsaqdQB7tGy0R2M .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4MsaqdQB7tGy0R2M .marker.cross{stroke:#333333;}#mermaid-svg-4MsaqdQB7tGy0R2M svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4MsaqdQB7tGy0R2M p{margin:0;}#mermaid-svg-4MsaqdQB7tGy0R2M .mermaid-main-font{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-4MsaqdQB7tGy0R2M .exclude-range{fill:#eeeeee;}#mermaid-svg-4MsaqdQB7tGy0R2M .section{stroke:none;opacity:0.2;}#mermaid-svg-4MsaqdQB7tGy0R2M .section0{fill:rgba(102, 102, 255, 0.49);}#mermaid-svg-4MsaqdQB7tGy0R2M .section2{fill:#fff400;}#mermaid-svg-4MsaqdQB7tGy0R2M .section1,#mermaid-svg-4MsaqdQB7tGy0R2M .section3{fill:white;opacity:0.2;}#mermaid-svg-4MsaqdQB7tGy0R2M .sectionTitle0{fill:#333;}#mermaid-svg-4MsaqdQB7tGy0R2M .sectionTitle1{fill:#333;}#mermaid-svg-4MsaqdQB7tGy0R2M .sectionTitle2{fill:#333;}#mermaid-svg-4MsaqdQB7tGy0R2M .sectionTitle3{fill:#333;}#mermaid-svg-4MsaqdQB7tGy0R2M .sectionTitle{text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-4MsaqdQB7tGy0R2M .grid .tick{stroke:lightgrey;opacity:0.8;shape-rendering:crispEdges;}#mermaid-svg-4MsaqdQB7tGy0R2M .grid .tick text{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#333;}#mermaid-svg-4MsaqdQB7tGy0R2M .grid path{stroke-width:0;}#mermaid-svg-4MsaqdQB7tGy0R2M .today{fill:none;stroke:red;stroke-width:2px;}#mermaid-svg-4MsaqdQB7tGy0R2M .task{stroke-width:2;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskText{text-anchor:middle;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskTextOutsideRight{fill:black;text-anchor:start;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskTextOutsideLeft{fill:black;text-anchor:end;}#mermaid-svg-4MsaqdQB7tGy0R2M .task.clickable{cursor:pointer;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskText0,#mermaid-svg-4MsaqdQB7tGy0R2M .taskText1,#mermaid-svg-4MsaqdQB7tGy0R2M .taskText2,#mermaid-svg-4MsaqdQB7tGy0R2M .taskText3{fill:white;}#mermaid-svg-4MsaqdQB7tGy0R2M .task0,#mermaid-svg-4MsaqdQB7tGy0R2M .task1,#mermaid-svg-4MsaqdQB7tGy0R2M .task2,#mermaid-svg-4MsaqdQB7tGy0R2M .task3{fill:#8a90dd;stroke:#534fbc;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskTextOutside0,#mermaid-svg-4MsaqdQB7tGy0R2M .taskTextOutside2{fill:black;}#mermaid-svg-4MsaqdQB7tGy0R2M .taskTextOutside1,#mermaid-svg-4MsaqdQB7tGy0R2M .taskTextOutside3{fill:black;}#mermaid-svg-4MsaqdQB7tGy0R2M .active0,#mermaid-svg-4MsaqdQB7tGy0R2M .active1,#mermaid-svg-4MsaqdQB7tGy0R2M .active2,#mermaid-svg-4MsaqdQB7tGy0R2M .active3{fill:#bfc7ff;stroke:#534fbc;}#mermaid-svg-4MsaqdQB7tGy0R2M .activeText0,#mermaid-svg-4MsaqdQB7tGy0R2M .activeText1,#mermaid-svg-4MsaqdQB7tGy0R2M .activeText2,#mermaid-svg-4MsaqdQB7tGy0R2M .activeText3{fill:black!important;}#mermaid-svg-4MsaqdQB7tGy0R2M .done0,#mermaid-svg-4MsaqdQB7tGy0R2M .done1,#mermaid-svg-4MsaqdQB7tGy0R2M .done2,#mermaid-svg-4MsaqdQB7tGy0R2M .done3{stroke:grey;fill:lightgrey;stroke-width:2;}#mermaid-svg-4MsaqdQB7tGy0R2M .doneText0,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText1,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText2,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText3{fill:black!important;}#mermaid-svg-4MsaqdQB7tGy0R2M .doneText0.taskTextOutsideLeft,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText0.taskTextOutsideRight,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText1.taskTextOutsideLeft,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText1.taskTextOutsideRight,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText2.taskTextOutsideLeft,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText2.taskTextOutsideRight,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText3.taskTextOutsideLeft,#mermaid-svg-4MsaqdQB7tGy0R2M .doneText3.taskTextOutsideRight{fill:black!important;}#mermaid-svg-4MsaqdQB7tGy0R2M .crit0,#mermaid-svg-4MsaqdQB7tGy0R2M .crit1,#mermaid-svg-4MsaqdQB7tGy0R2M .crit2,#mermaid-svg-4MsaqdQB7tGy0R2M .crit3{stroke:#ff8888;fill:red;stroke-width:2;}#mermaid-svg-4MsaqdQB7tGy0R2M .activeCrit0,#mermaid-svg-4MsaqdQB7tGy0R2M .activeCrit1,#mermaid-svg-4MsaqdQB7tGy0R2M .activeCrit2,#mermaid-svg-4MsaqdQB7tGy0R2M .activeCrit3{stroke:#ff8888;fill:#bfc7ff;stroke-width:2;}#mermaid-svg-4MsaqdQB7tGy0R2M .doneCrit0,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCrit1,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCrit2,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCrit3{stroke:#ff8888;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges;}#mermaid-svg-4MsaqdQB7tGy0R2M .milestone{transform:rotate(45deg) scale(0.8,0.8);}#mermaid-svg-4MsaqdQB7tGy0R2M .milestoneText{font-style:italic;}#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText0,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText1,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText2,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText3{fill:black!important;}#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText0.taskTextOutsideLeft,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText0.taskTextOutsideRight,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText1.taskTextOutsideLeft,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText1.taskTextOutsideRight,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText2.taskTextOutsideLeft,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText2.taskTextOutsideRight,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText3.taskTextOutsideLeft,#mermaid-svg-4MsaqdQB7tGy0R2M .doneCritText3.taskTextOutsideRight{fill:black!important;}#mermaid-svg-4MsaqdQB7tGy0R2M .vert{stroke:navy;}#mermaid-svg-4MsaqdQB7tGy0R2M .vertText{font-size:15px;text-anchor:middle;fill:navy!important;}#mermaid-svg-4MsaqdQB7tGy0R2M .activeCritText0,#mermaid-svg-4MsaqdQB7tGy0R2M .activeCritText1,#mermaid-svg-4MsaqdQB7tGy0R2M .activeCritText2,#mermaid-svg-4MsaqdQB7tGy0R2M .activeCritText3{fill:black!important;}#mermaid-svg-4MsaqdQB7tGy0R2M .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-4MsaqdQB7tGy0R2M :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}2020-06-012020-07-012020-08-012020-09-012020-10-012020-11-01TF-M 集成 内部预审 实验室渗透 漏洞修复 复测 发证 准备评估发证nRF5340 PSA Level 2 认证时间线(5 个月)

    阶段时间关键事件
    TF-M 集成 2 个月 双核架构适配,核间 IPC
    内部预审 1 个月 ChipWhisperer 侧信道预测试
    渗透测试 1.5 个月 Brightsight 执行,发现 2 个中危
    漏洞修复 20 天 SG 接口参数校验加固
    复测 10 天 2 个中危复测通过
    发证 15 天 PSA Certified Level 2 证书签发
    复盘要点
  • 双核架构是优势——物理隔离让渗透测试的攻击面缩小
  • TF-M 已预适配——Nordic 提前 2 年集成 TF-M,评估时无需额外适配
  • 内部预审有效——预审发现的 3 个问题提前修复,实验室只发现 2 个中危
  • Brightsight 经验丰富——评估过 Nordic 旧芯片,对 nRF 架构熟悉
  • 💡 工程视角:Nordic 的经验是提前集成 TF-M + 内部预审。国产厂商如果临评估才集成 TF-M,准备期要 3-4 个月而非 2 个月。TF-M 集成至少提前 6 个月启动。

    📌 配图提示:nRF5340 认证甘特图


    六、认证 Checklist

    • 目标等级确定:Class I→L1/L2,Class II→L2+/L3
    • 实验室选型:至少询价 3 家,要求同类案例
    • 材料清单:按等级准备(见第 5 期)
    • 内部预审:ChipWhisperer + 电压毛刺 + JTAG 测试
    • 预审漏洞修复:修复后再提交评估
    • 渗透样本:5 台开发板 + 调试器(Level 2)/ 10 台去封装(Level 3)
    • 源码访问:TF-M 配置 + 安全分区源码只读
    • 加密算法清查:grep 扫描 SHA-1/RSA-1024/DES/MD5/RC4/E0 零残留
    • 算法选型依据:每项算法选型有安全强度/性能/互操作/寿命四维论证
    • PSA Crypto API 迁移:加密调用走 psa_xxx() API,usage_flags 限定
    • 漏洞修复预算:预留 10-50 万美元修复成本
    • EN 18031 映射:PSA 拿证后 2-4 周撰写映射文档
    • 排期预留:旺季实验室排期 2-3 个月

    七、给芯片厂商的行动建议

    P0(2026-09-11 前)
  • 实验室询价:至少 3 家(Serma/Brightsight/Riscure)
  • Level 1 自评:先拿 Level 1,作为 Level 2 的基础
  • P1(2027-Q1 前)
  • TF-M 集成完成:至少提前 6 个月启动
  • 内部预审:ChipWhisperer + 电压毛刺 + JTAG
  • 提交 Level 2 评估:3 月前提交,赶 2027 窗口
  • P2(2027-Q3 前)
  • EN 18031 映射:PSA Level 2 拿证后撰写映射文档
  • EN 18031 符合性评估:额外 1-2 个月
  • 给管理者的一句话

    认证是 CRA 合规的"终点站"——PSA Level 2 是性价比拐点(35-95 万美元,3-6 个月),EN 18031 映射是 CRA 合规的"通行证"(额外 5-15 万美元,1-2 个月)。先 PSA 后 EN 18031 是最省成本的路径。对国产芯片厂商,2027-Q1 前必须提交 Level 2 评估。

    📌 配图提示:P0-P3 行动甘特图


    本期小结

  • 6 家实验室:Brightsight/Riscure 物理攻击最强,Serma 性价比好
  • Level 2 是性价比拐点:35-95 万美元,3-6 个月
  • 渗透测试四攻击面:JTAG/侧信道/故障注入/固件提取
  • 内部预审是关键:ChipWhisperer + 电压毛刺 + OpenOCD
  • Nordic 经验:提前 6 个月集成 TF-M + 内部预审
  • P0 项:2026-09-11 前实验室询价 + Level 1 自评
  • P1 项:2027-Q1 前提交 Level 2 评估

  • 期主题核心要点
    1 CRA 时间窗口 + IC 厂商责任 2027-12-11 全面生效,IC 厂商是直接制造商
    2 罚则 + 合规优先级矩阵 罚款对标 GDPR,P0 项 2026-09-11 前完成
    3 TF-M 架构 + SPM 调度 TrustZone-M 两个世界,DEN0063 三级隔离
    4 PSA Crypto API 实战 密钥不离开安全世界,TF-M 四大核心服务
    5 PSA Level 1-4 申请材料 四级材料清单,加密算法标准答案
    6 实验室选型 + 渗透测试 6 家实验室对比,四攻击面详解

    一句话总结:

    CRA 合规的 ROI 是正向的——合规不是成本中心,是利润护城河。

    对国产芯片厂商,2027-Q1 前必须提交 PSA Level 2 评估。这不是"明年再说"的事,是"下个月就要违法"的事。


    📣 互动话题:
    6 期连载看完了,你的公司准备从哪一步开始?

    • 留言区分享你的合规计划
    • 转发给 CEO/CTO/安全负责人,对照 P0-P3 矩阵
    • 收藏全部 6 期,作为合规工具书

    关注本账号,后续会更新更多 CRA × PSA 合规实战内容,包括:

    • 书籍出版进展
    • 各芯片厂商 CRA 合规进度追踪
    • EN 18031 映射文档模板
    • PSA Level 2 认证实战复盘

    话题标签

    #PSA #渗透测试 #实验室选型 #Nordic #nRF5340 #IoT安全 #芯片安全 #CRA #合规实战


    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 第6章:实验室选型 + 渗透测试(完结篇)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!