paragonie/ciphersweet

关系型数据库的可搜索字段级加密库

v4.7.0 2024-05-11 06:44 UTC

README

Build Status Static Analysis Latest Stable Version Latest Unstable Version License Downloads

CipherSweet 是由 Paragon Initiative Enterprises 开发的一个后端库,用于实现 可搜索的字段级加密

需要 PHP 8.1 或更高版本.

如果您想在旧版本的 PHP (5.5+) 上使用 CipherSweet,请使用 CipherSweet v3

在将可搜索加密支持添加到您的项目之前,请确保您理解了您用例的适当威胁模型。至少,您希望您的应用程序和数据库服务器在独立的云实例/虚拟机上运行。(更好的是:独立的裸机硬件。)

CipherSweet 在非常宽松的 ISC 许可证 下可用,允许您在您的任何 PHP 项目中使用 CipherSweet,无论是商业的、非商业的、开源的还是专有的,无需向您收费。

CipherSweet 特性概览

  • 针对 256 位安全级别的加密(使用 AEAD 模式和扩展的非消息以最小化用户的密钥重新设置负担)。
  • 符合特定协议的支持。 多个后端以满足各种合规性要求。如有需要,可以添加更多。
    • BoringCrypto 使用 libsodium,这是软件开发者的实际标准加密库。算法详情
    • FIPSCrypto 仅使用 FIPS 140-3 建议涵盖的加密算法,以避免审计复杂性。算法详情
  • 密钥分离。 每个列都使用不同的密钥进行加密,所有密钥都使用安全密钥分割算法从主加密密钥派生。
  • 密钥管理集成。 CipherSweet 支持与密钥管理解决方案集成,以存储和检索主加密密钥。
  • 可搜索加密。 CipherSweet 使用 盲索引 和模糊以及 Bloom 过滤策略,以允许快速密文搜索并 最小化数据泄露
    • 每个列上的每个盲索引都使用与加密密钥和每个其他盲索引密钥不同的密钥。
    • 这不允许使用 LIKE 操作符或正则表达式搜索,但它允许您索引明文的变换(例如子字符串),这些变换在单独的密钥下进行散列。
  • 适应性。 CipherSweet 具有数据库和产品无关的设计,因此应该很容易编写适配器,以便在基于 PHP 的任何软件中使用 CipherSweet。
  • 文件/流加密。 CipherSweet 提供了一个用于加密文件(或其他 PHP 流)的 API,它提供带身份验证的加密,以最小的开销防御 TOCTOU 攻击。了解更多

安装 CipherSweet

使用 Composer。

composer require paragonie/ciphersweet:^4

如果您打算在较旧的 PHP 版本上使用 CipherSweet,请使用 v3 分支

composer require paragonie/ciphersweet:^3

使用 CipherSweet

请参阅 文档 了解如何使用 CipherSweet。

安全专家可能对我们的设计的安全特性感兴趣 了解详情

集成支持

如果您想将 CipherSweet 集成到您的软件中,请随意 创建一个问题

CipherSweet 在其他语言中的实现

为什么叫 "CipherSweet"?

CipherSweet 最初是为了在 SuiteCRM(SugarCRM 社区版的分支)和相关产品中使用而设计的,尽管它也可以在其他产品中使用。

因此,我们选择了一个对 "ciphersuite" 的双关语,以向我们所设计库的项目开源遗产致敬。

如果这种双关语太重,您可以直接称之为 "Sweet",或者在口语中并列两个组成部分,称之为 "SweetCipher"。

支持合同

如果您的公司在其产品或服务中使用这个库,您可能会对从 Paragon Initiative Enterprises 购买支持合同感兴趣。