Side-Channel-Attack

使用 libsodiums 幫助器進行編碼/解碼/比較而不是原生幫助器有什麼缺點嗎?

  • March 4, 2016

Libsodium 有一些助手,它們允許十六進制解碼、編碼以及恆定時間字元串比較。

因此,如果您使用 php 綁定,您顯然還擁有andlibsodium-php的本機 php 實現。引入了 libsodium 替代品,因為本機實現不具有時序性。因此,對於敏感數據,應該使用它。bin2hexhex2bin

但是,如果您有一個使用 libsodium 的庫/項目,即使在不需要的地方使用 libsodiums 函式有什麼缺點嗎?

我的意思是一個明顯的好處是你可以防止忘記使用這些節省時間的實現,如果你只是在任何地方使用它很重要。

由於不使用短路評估,功能通常會變得抗時序。可以想像,不使用短路評估會付出很小的性能代價。

實際上,這可能不是瓶頸或嚴重問題。編輯:無論如何,libsodiums 函式也可能更快。

我會對此發表評論,但我沒有足夠的代表發表評論。可能還有更多需要考慮。

優點是:您可以非常確信,如果您正在使用的加密程式碼的每一位其他位都經過安全設計並且具有側通道抗性,那麼您可以放心,如果您使用十六進制編碼/解碼不會引入新的漏洞使用 libsodium 的實現。

如果你在這裡拋開謹慎,你可能會沒事的。與我交談過的研究人員都沒有提到任何針對十六進制編碼引起的記憶體時序洩漏的實際利用。

當然,通常的免責聲明適用:攻擊只會變得更好。

引用自:https://crypto.stackexchange.com/questions/31930