簡體   English   中英

定時攻擊如何工作以及Symfony的字符串工具為何建議傳遞字符串進行比較的精確順序

[英]How do the timing attacks works and why Symfony's string utils suggest a precise order in passing strings to compare

為了將哈希密碼與用戶提供的密碼進行比較,Symfony提供了util StringUtil

該文檔討論了“定時攻擊”:攻擊者可能會擁有有關密碼復雜性的有用信息,觀察網站將提供的密碼與其存儲的密碼進行比較所需的時間。

文件還說

為避免定時攻擊,已知字符串必須是第一個參數,而用戶輸入的字符串必須是第二個參數。

為什么順序很重要?

基於StringUtils的當前版本 ,實際上並不重要。 重要的是正確的順序,例如password_verify()

該文檔可能引用的StringUtils2014年及更早版本 ,該版本試圖避免泄漏字符串長度。 在討論如何針對mbstring.func_overload配置加強此類的過程中 ,確定泄漏長度是不可避免的,字符串長度通常是公共的(即,對於MAC),通常最好集中精力阻止有用信息的泄漏。

在那種情況下,順序曾經很重要,但現在實際上不再重要了。

我將其稱為過時的文檔問題。 在symfony-docs中了一個勾號以進行更正。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM