首页
›
物联网安全与设备身份认证
›
014-受限设备密码实现
›
《受限设备常数时间比较函数实现与测试》
VIP20
本课程属于:014-受限设备密码实现
物联网安全与设备身份认证 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
受限设备常数时间比较函数实现与测试
📚 共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
安全危机:为什么需要常数时间比较?
时序攻击原理与真实案例,揭示侧信道如何窃取密钥。
时序攻击
安全基础
02
核心思想:常数时间比较的定义与数学本质
设计目标、形式化定义及与普通比较的差异。
理论
设计目标
03
朴素实现:Python字符串/字节数组的漏洞
分析朴素比较函数的时间差异与攻击面。
Python
漏洞演示
04
逐字节异或:常数时间比较的经典实现
异或累加法原理与无分支代码模板。
XOR
经典模式
05
防御纵深:结合HMAC与常数时间比较
完整认证方案:消息认证码+安全比较。
HMAC
认证
06
语言特性:Python中bytes与str底层比较
CPython内部实现机制与潜在时间泄漏。
CPython
底层
07
位运算基础:XOR、AND、OR的应用
位操作在常数时间比较中的核心作用。
位运算
基础
08
循环不变性:执行次数不依赖输入
如何设计固定次数的循环避免信息泄露。
循环
不变性
09
分支消除:避免if-else与三元运算符
用位掩码与算术运算替代条件分支。
无分支
优化
10
数据依赖:防止编译器/解释器优化
警惕优化导致的时间差异与解决方案。
编译器
优化陷阱
11
内存访问模式:常数时间读取与缓存侧信道
缓存命中/未命中对时间的影响及缓解。
缓存
侧信道
12
Python实现:hmac.compare_digest正确姿势
标准库函数的使用场景与注意事项。
标准库
hmac
13
手动实现:从零编写安全常数时间比较
逐行代码构建无分支、固定时间的比较器。
手写
实践
14
边界情况:不同长度输入的安全策略
长度泄露风险与填充/截断处理。
边界
长度
15
性能分析:常数时间比较的开销与优化
基准测试、吞吐量对比与实用优化技巧。
性能
基准
16
测试验证:编写测试用例验证常数时间
自动化测试框架与时间测量方法。
测试
验证
17
统计检验:使用t-test检测时间差异
假设检验与p-value在侧信道分析中的应用。
统计
t-test
18
硬件层面:CPU指令级常数时间操作
CMOV、位扩展指令与硬件安全特性。
CPU
CMOV
19
密码学库:OpenSSL、libsodium中的实现
主流密码库的常数时间比较API与源码分析。
OpenSSL
libsodium
20
Go语言实现:常数时间比较的惯用写法
crypto/subtle 包与无分支惯用模式。
Go
crypto/subtle
21
Rust实现:利用类型系统保证常数时间
subtle crate、常数时间标记与编译期检查。
Rust
类型安全
22
Java实现:避免Timing Attack的最佳实践
MessageDigest.isEqual 与防御性编程。
Java
最佳实践
23
C语言实现:volatile与内联汇编技巧
防止编译器优化、内存屏障与汇编级常数时间。
C
volatile
24
JavaScript实现:crypto.timingSafeEqual
Node.js 安全比较函数与浏览器兼容方案。
Node.js
crypto
25
常见误区:短路径优化、提前返回等危险模式
典型错误案例与代码审计要点。
误区
反模式
26
编译器优化:如何防止破坏常数时间保证
编译屏障、属性标记与已知优化陷阱。
编译器
屏障
27
侧信道综述:时间、功耗、电磁、缓存对比
各类侧信道攻击原理与防御层次。
侧信道
综述
28
标准库对比:各语言常数时间比较函数一览
Python/Go/Rust/Java/Node.js 标准库横向对比。
标准库
对比
29
代码审计:如何Review常数时间比较实现
检查清单、常见漏洞模式与自动化工具。
审计
Review
30
未来趋势:形式化验证与常数时间编程语言
形式化方法、DSL与硬件辅助安全趋势。
形式化
趋势
所属VIP或分类
同VIP:MCU设备ECC密码算法移植与优化
同VIP:受限设备侧信道风险检测与响应
同VIP:受限设备密码AES-CCM内存占用评估与优化实战