关于PIN码校验的Timing攻击及解决方案
来源:互联网 发布:python innertext 编辑:程序博客网 时间:2024/05/01 10:22
Timing攻击是一种常见的软件攻击方式。基本的思路就是分析输入数据值的变化引发的软件处理时间变化,从而反推有效数据。
BCTC目前推出的安全测试也包含了对PIN码的Timing攻击。虽然PIN因为重试次数的限制,不具有样本效应,但从安全视角上来看,确实是有隐患。
PIN的处理就是数据和标准值比对的过程,通常的比对方法如下:
BOOL ArrayCompare(U08* src, U08* dst, U16 length){U16 i;for(i=0;i<length;i++){if (src[i]!=dst[i]) { return FALSE; }}return TRUE;}
可以看到在这种比对方式下,随着输入数据的不同,退出循环的时间是有区别的,通过大量样本理论上是可以通过时间的区别分析出PIN的所有数据的。为避免Timing攻击,有必要将比对方法做如下修改:
BOOL ArrayCompare(U08* src, U08* dst, U16 length){U16 i;BOOL res;res = TRUE;for(i=0;i<length;i++){res &= (src[i]==dst[i]);}return res;}
经过如下修改,指令周期不受输入数据值的影响,避免了Timing攻击。
3 0
- 关于PIN码校验的Timing攻击及解决方案
- 关于PIN码的常见问题及解决方案
- 关于arp攻击的java解决方案
- 关于CSRF攻击及mvc中的解决方案 [ValidateAntiForgeryToken]
- 关于CSRF攻击及mvc中的解决方案 [ValidateAntiForgeryToken]
- 关于CSRF攻击及mvc中的解决方案 [ValidateAntiForgeryToken]
- 关于CSRF攻击及mvc中的解决方案 [ValidateAntiForgeryToken]
- 关于CSRF攻击及mvc中的解决方案 [ValidateAntiForgeryToken]
- QQ空间及邮箱验证码登录的校验方式及自动登录的解决方案
- 关于animation-timing-function的step()
- XCode7 pin消失后的解决方案
- PIN码的使用方法
- 当网站遭遇DDOS攻击的解决方案及展望
- 关于子网单向PIN通的缘故?
- 关于browser中navigation timing 的参数解释
- PIN码的接收问题
- 验证时间攻击 Verification Timing Attack
- 关于js开发及web攻击的一点记录
- 继承、封装、多态
- signer information does not match signer information of other classes in the same package
- 更改printk打印级别
- 10405 - Longest Common Subsequence
- 使用SVN 提交SO库等文件
- 关于PIN码校验的Timing攻击及解决方案
- 【黑马程序员】接口
- 重要工作文件误删除怎么找回呢
- 学会有效地投资,无论工资多少
- 基本排序
- IE9卸载后无法安装的解决办法
- PHP 实现定时任务的几种方法
- 成熟的标志
- ASP.NET页面跳转相关知识