【以下的问题经过翻译处理】 我在DynamoDB表中将用户会话令牌作为字符串存储。当我的用户向我的API发出请求时,我使用用户提供的会话令牌查询我的会话表以检查它是否为真实的会话令牌,并找到它对应的用户。会话令牌在表的分区键中,查询仅搜索分区键以查找与用户提供的令牌相等的字符串。如果没有匹配项,则立即返回错误代码到API请求。
我想知道这里是否可能存在定时攻击。具体来说,我想知道当查询的值是表中条目的部分匹配时,非匹配DynamoDB查询所用的时间是否会以可测量的方式变化?假设那将允许攻击者逐个字符地找到有效的会话密钥。
或者,无论是否为部分匹配,分区键字符串相等查询所需的时间是否恒定?
如果存在这个问题,是否有一种常规的方法来减轻它?
脑海中首先浮现的想法是衡量API请求所用的时间,如果查询失败,则等待一定量的时间之后再返回错误,以便攻击者不会透露任何“时间”信息。请问这是一个可行的方法吗?