查询 DynamoDB 时是否需要考虑减轻可能的计时攻击(Timing Attack)?

0

【以下的问题经过翻译处理】 我在DynamoDB表中将用户会话令牌作为字符串存储。当我的用户向我的API发出请求时,我使用用户提供的会话令牌查询我的会话表以检查它是否为真实的会话令牌,并找到它对应的用户。会话令牌在表的分区键中,查询仅搜索分区键以查找与用户提供的令牌相等的字符串。如果没有匹配项,则立即返回错误代码到API请求。

我想知道这里是否可能存在定时攻击。具体来说,我想知道当查询的值是表中条目的部分匹配时,非匹配DynamoDB查询所用的时间是否会以可测量的方式变化?假设那将允许攻击者逐个字符地找到有效的会话密钥。

或者,无论是否为部分匹配,分区键字符串相等查询所需的时间是否恒定?

如果存在这个问题,是否有一种常规的方法来减轻它? 脑海中首先浮现的想法是衡量API请求所用的时间,如果查询失败,则等待一定量的时间之后再返回错误,以便攻击者不会透露任何“时间”信息。请问这是一个可行的方法吗?

profile picture
专家
已提问 8 个月前28 查看次数
1 回答
0

【以下的回答经过翻译处理】 这不是一个问题。 分区键在用于从底层物理分区查找项目之前会先进行哈希处理。两个差别很小分区键值的哈希值会非常不同。

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则