问题标签 [timing-attack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
326 浏览

c++ - 以小于一毫秒的精度计算时间的功能

我这里有一个函数可以使程序计数、等待等最少计数为 1 毫秒。但我想知道我是否可以这样做会降低精度。我已经阅读了其他答案,但它们主要是关于更改为 linuxsleep 是猜测的,更重要的是这些答案已经有十年左右的历史了,所以也许可能会有新的功能来做到这一点。

这是功能-

实际上,我试图制作一个类似于secure_compare的函数,但我认为仅仅比较两个字符串就浪费 1 毫秒(当前最少计数)是不明智的做法。

这是我为相同的功能 -

0 投票
2 回答
1730 浏览

javascript - 防止定时攻击的主要技术

我对安全性的东西不是很熟悉,但是遇到过这个用于防止定时攻击的恒定时间功能:

https://github.com/salesforce/buffer-equal-constant-time/blob/master/index.js

在考虑定时攻击时,想知道是否有标准的事情需要注意,以及上述的技术来解决这些问题。类似于OWASP 的 XSS 备忘单。谢谢!

0 投票
1 回答
675 浏览

php - 使用 PHP 进行定时攻击

我正在尝试在 PHP 中进行定时攻击,并使用 PHP 7.1 和以下脚本:

这是搜索具有以下约束的单词

  • 仅限 az
  • 最多 10 个字符

该脚本可以毫无问题地找到单词的长度,但是由于时间攻击,单词的值永远不会按预期返回。

有什么我做错了吗?

该脚本循环遍历长度,正确识别长度。然后它遍历每个字母 (az) 并检查这些字母的速度。理论上,'haaaa' 应该比 'aaaaa' 稍微慢一些,因为第一个字母是 h。然后它对五个字母中的每一个都进行。

跑步给出了类似'brhas'的东西,这显然是错误的(每次都不同,但总是错误的)。

0 投票
1 回答
359 浏览

hmac - 实施边信道定时攻击

我正在开发一个项目,在 HMAC 上用 C 语言实现侧信道定时攻击。我通过利用 strcmp 的时序优化来计算十六进制编码的标签并逐字节强制执行。因此,对于我的测试标签中的每个数字,我计算每个十六进制字符验证所需的时间。我采用与计算出的最高时间量相对应的十六进制字符,并推断它是标签中的正确字符并移至下一个字节。但是,strcmp 的时间非常难以预测。虽然很容易看出比较两个相等的字符串和两个完全不同的字符串之间的时间差异,但是当我比较的每个其他字符串非常相似时,我很难找到花费我的测试字符串最长时间来计算的字符(仅相差 1 个字节)。

下面的changeByte 方法接受customTag,这是已经计算到那个时间点的标签,并试图找到对应于index 的正确字节。changeByte 被调用 n 次,其中 n=标签的长度。hexTag 是一个全局变量,它是正确的标记。timeCompleted 存储在每个十六进制字符处计算 char 位置的 testTag 所用的平均时间。任何帮助将不胜感激,感谢您的宝贵时间。

}

0 投票
1 回答
393 浏览

java - Java:为什么这个 Equal-String 函数受到定时攻击的保护

在 Stackoverflow 上,我发现了以下 String-Equal-Function,它应该能够抵抗定时攻击。

我想知道为什么这可以避免时间攻击。我知道,我们比较字符串的完整长度,即使它们在第一个字符之后不匹配(这可能是定时攻击的一个点)。但是如果signature1Byte[i]不等于,signature2Byte[i]那么我们必须加上+1,result否则不等于。“添加+1”是否也比“继续下一个循环”花费更长的时间?当字节相等时,计算另一个变量(这是无用的)不是更好吗,所以我们总是有相同的运行时间?

0 投票
0 回答
264 浏览

java - 在比较 SHA256 或 Argon2 哈希时是否需要担心定时攻击?

我已经为密码散列实现了 Argon2 散列算法。我担心我的代码,它可能容易受到定时攻击。

如果未找到用户,则响应时间小于成功时间。

PasswordEncoder.class

0 投票
1 回答
852 浏览

python-3.x - 在 Python 中,HMAC 比较怎么可能不是恒定时间的?

Python 有专门用于比较 HMAC 以防止计时攻击的方法:https ://docs.python.org/3.7/library/hmac.html#hmac.compare_digest

我在这里阅读了有关定时攻击的信息:https ://security.stackexchange.com/questions/74547/timing-attack-against-hmac-in-authenticated-encryption

我的问题是,它怎么可能不是恒定时间?有必要计算实际的 HMAC 以便进行比较,而且您不能一次计算摘要 1 个字符,对吗?最后,它只是一个简单的字符串比较,比我测试中的实际 HMAC 计算快 2 个数量级。那么这里的攻击面到底在哪里呢?如果我不使用,有人可以举例说明实际漏洞在哪里hmac.compare_digest()吗?

0 投票
0 回答
165 浏览

security - 通过比较两个字符串的哈希值来泄漏时间是否容易受到攻击?

很明显,如果我们比较两个字符串,它很容易受到时间攻击。

我现在想知道如果对这两个字符串的哈希进行比较,时间泄漏是否仍然是一个漏洞?

它不会受到任何其他类型的攻击吗?(假设使用对碰撞攻击安全的哈希算法)。

或者如果有人能找出原始字符串的哈希值会发生什么?可以滥用吗?

这只是这个想法的一个例子:

0 投票
1 回答
86 浏览

php - 强制 PHP 运行所有 if 条件

我正在构建一个对定时攻击敏感的应用程序。我在考虑不要在嵌套 if 语句的地方创建一个“if 树”,而是运行所有 if 语句,然后在最后检查所有条件,如下所示:

但是我相信最终的 if 语句仍然是脆弱的,因为如果存在某些会使整个语句失败的条件,PHP 会缩短 if 语句的评估。我该如何解决这个问题?

0 投票
1 回答
39 浏览

php - PHP恒定时间realpath()?

我正在寻找 realpath() 的恒定时间实现,是否存在?

我处于恶意行为者可能控制 realpath() 的参数的情况,并且理论上可以使用定时攻击来推断 realpath() 是否指向真实文件。