# 使用Clang 17-20编译时,HQC参考实现中liboqs的依赖密钥分支问题
## 概述
liboqs是一个提供后量子加密算法实现的C语言加密库。在HQC密钥封装机制的参考实现中,当使用Clang编译器且优化级别高于-O0(如-O1, -O2等)时,发现存在多个依赖密钥的分支。这导致了一个远程攻击者可以利用这些依赖密钥的信息来恢复整个秘密密钥。
## 影响版本
0.13.0及之前的版本
## 细节
该漏洞存在于liboqs库中HQC密钥封装机制的参考实现中。当使用Clang编译器并且优化级别设置为-O1, -O2等高于-O0的级别时,编译过程中引入了多个依赖秘密密钥的分支条件。这使得攻击者可以通过秘密密钥相关的侧信道信息,构建并执行一个证明概念攻击,最终恢复出完整的秘密密钥。
## 影响
攻击者可以利用该漏洞在本地执行攻击,恢复出整个秘密密钥。这会导致加密保护的完整性被破坏,破坏了系统的安全性。此漏洞在0.14.0版本中得到修复。
# | POC 描述 | 源链接 | 神龙链接 |
---|
标题: Secret-dependent branching in HQC reference implementation when compiled with Clang 17-20 for optimizations above -O0 · Advisory · open-quantum-safe/liboqs · GitHub -- 🔗来源链接
标签: x_refsource_CONFIRM
神龙速读标题: Merge commit from fork · open-quantum-safe/liboqs@4215362 · GitHub -- 🔗来源链接
标签: x_refsource_MISC
神龙速读