Hasty Briefsbeta

双语

Checking that functions are constant time with Valgrind

8 months ago
  • #Cryptography
  • #Valgrind
  • #Security
  • 通过时序侧信道的信息泄露可能是致命的,它允许通过网络窃取RSA密钥、内核的dm_crypt密钥和AES密钥。
  • 编写常量时间函数要求分支和内存访问与秘密输入无关,但这具有挑战性且容易出错。
  • 通过将秘密数据视为未初始化数据,可以重新利用Valgrind的memcheck工具来检测依赖秘密的分支和内存访问。
  • Valgrind补丁通过拦截对ct_poison和ct_unpoison的调用来标记秘密数据,从而捕获函数中的时序侧信道。
  • 测试表明,即使是OpenSSL中的BN_mod_exp_mont_consttime等函数也可能并非完全恒定时间,这凸显了该工具的实用性。