细粒度恒定时间策略验证:Jasmin框架下的加密安全研究

0 下载量 83 浏览量 更新于2024-06-17 收藏 1.03MB PDF 举报
"该文章探讨了实施细粒度恒定时间策略的方法,特别是在Jasmin框架下进行高保证加密验证的实践。恒定时间策略是密码学编程的一个关键原则,用于防止时间攻击,确保程序执行过程中不泄露敏感信息。文章作者提出了一种系统且健全的方法,该方法结合了验证基础设施和编译器基础设施,能够超越基线泄漏模型,支持更精细的恒定时间策略。在Jasmin框架中实现这一方法后,作者通过对OpenSSL等实际加密库的案例分析进行了验证,甚至发现了OpenSSL中的一个错误并提供了正式验证的修复方案。文章强调了安全编译、加密常量时间和形式化方法在安全与隐私领域的应用。" 在本文中,作者首先介绍了密码恒定时间(CT)策略的重要性,这是为了防止通过执行时间的微小变化来推断敏感信息,如密钥。他们指出,虽然有多种自动检查工具可用于基线泄漏模型(BL),但针对其他更复杂的泄漏模型的验证方法相对较少。为解决这个问题,作者提出了一种新方法,该方法结合了两个核心组件:一是验证源代码是否遵循恒定时间原则的验证基础设施,二是确保这些细粒度策略在编译过程中得以保留的编译器基础设施。 在Jasmin框架中,这是一个用于构建高保证密码学软件的平台,作者实现了他们的方法。Jasmin允许开发者编写低级Java字节码,便于形式化分析和验证。通过在这些基础设施中参数化泄漏模型,他们创建了一个支持细粒度恒定时间策略的系统。这种方法的灵活性使其能够处理不同级别的细节,适应各种安全性和效率的权衡。 在评估阶段,作者将他们的方法应用于OpenSSL等实际加密库,并成功检测到一个错误,随后提供了经过正式验证的修复。这展示了他们的方法在实际安全审核中的潜力和价值。 这篇文章对密码学和安全社区具有重要意义,因为它提供了一种更为强大的工具来验证和维护恒定时间策略,从而提高了加密软件的安全性。这不仅有助于预防潜在的攻击,也为未来的加密库设计和优化提供了理论基础。通过结合形式化方法、编译器技术和实际应用案例,作者为提高软件安全性的实践探索开辟了新的道路。