摘要
选哪个实验室?渗透测试到底测什么?要花多少钱?本文用 6 家实验室对比 + 四攻击面详解 + Nordic nRF5340 真实案例 + P0-P3 行动建议,给出芯片厂商可执行的认证路线。连载完结篇。
封面图建议
- 主视觉:深蓝背景 + 渗透测试四攻击面图标 + "完结篇"标识
- 主题色:#1B3A5C(深蓝)+ #D93025(红色攻击感)
- 文字:“实验室选型 + 渗透测试” + “连载完结篇”
正文
开篇:认证的"终点站"
这是 CRA × PSA 合规连载的完结篇。
前五期我们讲了:
这一期讲认证申请的最后三步——选哪个实验室、渗透测试测什么、要花多少钱。
认证是 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 家实验室对比矩阵
二、评估时间与成本明细
时间明细
| 厂商准备 | 2-4 周 | 2-3 个月 | 3-6 个月 | 6-9 个月 |
| 实验室评估 | 1-2 周 | 1-3 个月 | 3-6 个月 | 6-9 个月 |
| 总计 | 3-6 周 | 3-6 个月 | 6-12 个月 | 12-18 个月 |
成本明细
| 实验室费用 | 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 黑盒
| 源码访问 | 无 | 完整源码(含 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 证书签发 |
复盘要点
💡 工程视角: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 前)
P1(2027-Q1 前)
P2(2027-Q3 前)
给管理者的一句话
认证是 CRA 合规的"终点站"——PSA Level 2 是性价比拐点(35-95 万美元,3-6 个月),EN 18031 映射是 CRA 合规的"通行证"(额外 5-15 万美元,1-2 个月)。先 PSA 后 EN 18031 是最省成本的路径。对国产芯片厂商,2027-Q1 前必须提交 Level 2 评估。
📌 配图提示:P0-P3 行动甘特图
本期小结
| 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 #合规实战
网硕互联帮助中心





评论前必须登录!
注册