栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

安全比较和简单==(=)有什么区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

安全比较和简单==(=)有什么区别

“恒定时间”字符串比较的意义在于,无论比较目标是什么(未知值),该比较将花费完全相同的时间量。此“恒定时间”不会向攻击者显示有关未知目标值可能是什么的信息。通常的解决方案是比较所有字符,即使在发现不匹配之后也是如此,因此无论在哪里发现不匹配,比较都将在相同的时间内运行。

当某些条件为真时,其他形式的比较可能会在较短的时间内返回答案,这使攻击者可以了解它们可能会丢失的内容。例如,在典型的字符串比较中,一旦发现不相等的字符,该比较将返回false。如果第一个字符不匹配,则比较返回的时间将短于匹配的时间。勤奋的攻击者可以使用此信息进行更智能的暴力攻击。

“恒定时间”比较消除了这些额外的信息,因为无论两个字符串如何不相等,该函数都会在相同的时间内返回其值。

在查看nodejs
v4加密库时
,我看不到有任何进行恒定时间比较的功能的迹象,并且在本文章中,将讨论有关nodejs加密库缺少此功能的事实。

编辑:节点v6现在具有

crypto.timingSafeEqual(a,b)

在此缓冲区相等-恒定时间模块中还提供了这样的恒定时间比较功能。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/483256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号