【问题标题】:What attacks can you do on HMAC to get the key?您可以对 HMAC 进行哪些攻击以获取密钥?
【发布时间】:2021-02-04 19:38:27
【问题描述】:

我正在做一个 CTF 挑战,你必须尝试找出用于 HMAC 的密钥,你会得到两个示例字符串及其哈希值(512 位)以及使用 40 之间的数字的提示和 50. 你可以对 HMAC 进行什么样的攻击,是否可以恢复密钥?

【问题讨论】:

  • 这是 HMAC-SHA512 吗? HMAC 参数是字节,因此您必须找到将这些小整数编码为字节的正确方法。我会从简单开始,将整数编码为单个字节。

标签: hash cryptography hmac


【解决方案1】:

如果 HMAC 使用的哈希函数在密码学上是安全的,那么解决这个问题的唯一方法就是暴力破解密钥。散列是一种单向函数,它很容易应用散列,但很难做相反的事情。由于搜索空间是不确定的,这在一般情况下是不可行的,但您似乎对密钥有所暗示。

也许这应该被视为文字提示,并且您编写了一个以 "40" 键开头的循环并迭代到 "50" 并检查任何示例字符串是否与任何哈希匹配。如果找到匹配项,则检查其他配对是否也导致具有相同密钥的匹配项。

【讨论】:

  • 我尝试过使用数字作为键,但我认为没有那么简单。您认为这些数字是否有可能用于其他用途,例如键的填充?
  • 我不这么认为。任务的呈现方式可能会有更多提示。
  • 有一些关于 XOR 的提示,也许哈希函数可能与此有关,而不是 SHA-512。
  • 哦,所以你甚至不知道哈希函数。在那种情况下,不知道。正如 James 所提到的,您可能需要通过两种方式来创造性地使用十六进制或八进制编码:1. 假设 40 已经是十六进制/八进制并将其转换为字节或十进制,或者 2. 假设 40 是十进制并将其转换为十六进制或八进制。这些是另外 6 种阅读方式。 XOR 不是哈希函数,所以不知道它如何适应挑战。
  • 我发现哈希函数确实是SHA-512,因为哈希函数是安全的,所以没有暴力破解就没有办法找到密钥吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 1970-01-01
  • 2012-12-31
  • 2021-08-07
  • 1970-01-01
相关资源
最近更新 更多