Themis 是一个开源的高级密码学服务库,用于保护身份验证、存储、消息传递、网络交换等过程中的数据。 Themis 解决了大多数应用程序中常见的 90% 的典型数据保护用例。
Themis 帮助轻松、快速且安全地构建简单和复杂的密码学功能。 Themis 允许开发人员专注于主要的事情:开发他们的应用程序。
加密存储在你的应用程序和后端中的密钥:API 密钥、会话令牌、文件。
在存储到数据库之前加密敏感数据字段(“应用侧字段级加密”)。
使用 Themis 和 Acra 支持 可搜索加密、数据令牌化和数据屏蔽。
安全地交换密钥:在各方之间共享敏感数据,构建患者和医生之间的简单聊天应用程序。
构建具有集中式或分散式架构的 端到端加密方案:在一个应用程序上本地加密数据,在任何地方使用加密数据,仅为经过身份验证的用户解密。
维护 实时安全会话:发送加密消息以从你的应用程序控制连接的设备,从你的应用程序接收实时敏感数据到你的后端。
比较各方之间的密钥 而不泄露它们(基于零知识证明的身份验证)。
一个适用于所有平台的密码学库:Themis 非常适合多平台应用程序(例如,具有 Node.js 后端的 iOS+Android+Electron 应用程序),因为它提供 100% 兼容的 API 并在所有支持的平台上以相同的方式工作。
Themis 提供了现成的构建块 (“密码系统”),它们简化了核心密码学安全操作的使用。
Themis 提供 4 种重要的密码学服务
我们创建 Themis 是为了在其基础上构建其他产品 - 即 Acra 和 Hermes。
请参阅 安装 页面,为你的移动、Web、桌面或服务器端应用程序安装 Themis。 我们强烈建议使用 安装包 而不是从源代码构建。
Themis 适用于以下语言/平台,请参阅每个平台的 语言指南
平台 | 文档 | 示例 | 版本 |
---|---|---|---|
⚛️ React Native (iOS, Android) | React Native 指南 | docs/examples/react-native | |
🔶 Swift (iOS, macOS) | Swift 指南 | docs/examples/swift | |
📱 Objective-C (iOS, macOS) | Objective-C 指南 | docs/examples/objc | |
☕️ Java (桌面) | Java (桌面) 指南 | docs/examples/java | |
☎️ Java (Android) | Java (Android) 指南 | docs/examples/android | |
📞 Kotlin (Android) | Kotlin (Android) 指南 | docs/examples/android | |
🔻 Ruby | Ruby 指南 | docs/examples/ruby | |
🐍 Python | Python 指南 | docs/examples/python | |
🐘 PHP | PHP 指南 | docs/examples/php | |
➕ C++ | CPP 指南 | docs/examples/c++ | |
🍭 Node.js | Javascript (Node.js) 指南 | docs/examples/js | |
🖥 WebAssembly | Javascript (WebAssembly) 指南 | docs/examples/js | |
🐹 Go | Go 指南 | docs/examples/go | |
🦀 Rust | Rust 指南 | docs/examples/rust | |
🕸 С++ PNaCl for Google Chrome | WebThemis 项目 |
Themis 支持以下 CPU 架构:x86_64/i386、ARM、Apple Silicon (ARM64)、各种 Android 架构。
我们在最新的稳定操作系统版本上构建和验证 Themis
我们计划使用更广泛的平台来扩展此列表。 如果你想帮助改进 Themis 或将其引入你最喜欢的平台或语言,请 联系我们。
Themis 文档 包含不断发展的官方文档,其中涵盖了从部署指南到用例的所有内容,并简要解释了 Themis 主库背后的密码系统和架构。
请参阅文档以了解更多关于
Themis 依赖于由 OpenSSL、LibreSSL、BoringSSL 等知名密码学库实现的经过验证的密码学算法。 请参阅 Themis 中的密码学 文档以了解更多信息。
此发行版包含密码学软件。 你当前居住的国家/地区可能对加密软件的进口、拥有、使用和/或再出口到另一个国家/地区有限制。 在使用任何加密软件之前,请检查你所在国家/地区的法律、法规和政策,了解关于加密软件的进口、拥有或使用以及再出口,以查看是否允许这样做。 有关更多信息,请参见 http://www.wassenaar.org/。
美国政府商务部工业和安全局 (BIS) 已将此软件归类为出口商品管制编号 (ECCN) 5D002.C.1,其中包括使用或执行具有非对称算法的密码功能的的信息安全软件。 此发行的形式和方式使其有资格根据许可例外 ENC 技术软件无限制 (TSU) 例外(请参阅 BIS 出口管理条例第 740.13 节)出口对象代码和源代码。
如果你的应用程序使用 Themis 并且你想将其提交到 Apple App Store,则对声明使用任何密码学有一定的要求。
阅读关于 Apple 关于 Themis 密码学的出口法规 以了解该怎么做。
Themis 核心库中的每个更改都经过我们的密码学家和安全工程师内部团队的审查和批准。 对于每个版本,我们都会进行不使用 Themis 的密码学家进行内部审计。
我们使用大量的自动化安全测试,即静态代码分析器、模糊测试工具、内存分析器、单元测试(每个平台)、集成测试(以查找 Themis 支持的不同语言、操作系统和 x86/x64 架构之间的兼容性问题)。 在 Themis 安全文档 中阅读更多关于我们的安全测试实践的信息。
如果你认为你发现了一个与安全相关的问题,请发送电子邮件至 dev@cossacklabs.com。 漏洞赏金计划可能适用。
作为移动和服务器平台的密码学服务库,Themis 是一种 "最先进" 的加密工具,它提供安全的数据交换和存储。
使用 Themis,你可以更好地遵守当前的数据隐私法规,例如
在文档中阅读更多关于 法规 的信息。
Themis 是 OWASP 推荐的 用于移动平台的数据加密库。
Themis 广泛用于非商业和商业项目,一些公共应用程序和库可以在这里找到。
也想在我们的博客和贡献者列表中展示吗? 写信给我们,告诉我们你使用 Themis 创建的项目!
如果你正在寻找可以贡献的东西并获得永恒的尊重,只需在 问题列表 中选择东西。 前往我们的 贡献指南 作为你的起点。
为了在如此众多的平台上支持 Themis,我们付出了艰辛的努力,但我们尽力让每个人都能方便地使用 Themis。 用户遇到的大多数问题都与安装过程和依赖项管理有关。 如果您遇到任何挑战,请告诉我们。
在 Cossack Labs,我们为 Themis 和使用 Themis 的应用程序提供专业的支持服务。
这些支持包括但不限于库集成,重点是 Web 和移动应用程序; 为移动应用程序设计和构建端到端加密方案; 安全审计,用于内部库集成或高级协议; 需要密码学的自定义应用程序开发; 咨询和培训服务。
请发送电子邮件至 info@cossacklabs.com 或查看 Cossack Labs 网络安全服务。
如果您想提出技术问题、报告错误或提出功能建议,请随时在 GitHub 上发起讨论,在 问题跟踪器中提出问题,或写信至 dev@cossacklabs.com。
要与 Cossack Labs Limited 的业务部门联系,请发送电子邮件至 info@cossacklabs.com。