什么是时序攻击?
通过观测执行的时间来推导出结果。
举例说明:
比如,当我们批量上传100道解密题的答案时,每一道题的检测时间是1分钟,全对的情况下总耗时为100分钟。但是如果检测到答案错误就会立即返回错误,不进行等待,那么总耗时肯定在100分钟以下。
第一个结论,我们可以判断,所传的答案不够1分钟就返回的,必定是错误答案。
这时假定我们的每个答案都有6个步骤,均匀分布在1分钟内。
第10秒返回了错误的答案就是错在第一步了;第20秒返回了错误的就是错在第二步;第30秒就返回了错误的就是错在第三步。以此类推,就能根据返回的时间,判断我们接近真正答案的进度。
并且当我们获取到返回结果的时间,就能推算出出错的环节,然后略过正确的环节,从出错的环节开始答题。类似断点续传。
第二个结论,我们可以根据消耗时间的不同,推算出接近正确答案的进度。
如何避免时序攻击
避免时序攻击的方法就是均匀返回。
举例,每道题的检测时间都固定为1分钟,即使错误了,也在1分钟的时候才返回错误。那么,外界无法知晓自己破解的进度,就要把所有的可能都试一遍。也起到了我们预期的防护结果。
网友评论