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 可用于以下语言/平台,有关每种语言/平台的信息,请参阅语言操作指南:
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,那么在声明使用任何密码学方面有某些要求。
请阅读 Themis 的 Apple 密码学出口法规,了解该怎么做。
Themis 核心库的每一项更改都会经过我们内部密码学家和安全工程师团队的审查和批准。对于每个版本,我们都会由不参与 Themis 开发的密码学家进行内部审计。
我们使用大量自动化安全测试,例如静态代码分析器、模糊测试工具、内存分析器、单元测试(针对每个平台)、集成测试(用于发现不同 Themis 支持的语言、操作系统和 x86/x64 架构之间的兼容性问题)。请阅读 Themis 安全文档了解有关我们安全测试实践的更多信息。
如果你认为自己发现了安全相关问题,请发送电子邮件至 [email protected]。可能适用漏洞赏金计划。
作为面向移动和服务器平台的密码学服务库,Themis 是一种“最先进”的加密工具,可提供安全的数据交换和存储。
使用 Themis,你可以更好地遵守当前的数据隐私法规,例如:
在文档中阅读更多关于法规的内容。
Themis 被 OWASP 推荐为移动平台的数据加密库。
Themis 被广泛用于非商业和商业项目,这里可以找到一些公开的应用和库。
也想在我们的博客和贡献者名单上亮相吗?给我们写信,告诉我们你使用 Themis 创建的项目!
如果你想寻找一些可以贡献并获得永久尊重的事情,只需在问题列表中挑选。从我们的贡献指南开始。
为所有这些众多平台支持 Themis 是一项艰巨的工作,但我们尽力让每个人都能方便地使用 Themis。用户遇到的大多数问题都与安装过程和依赖管理有关。如果你遇到任何挑战,请告诉我们。
在 Cossack Labs,我们为 Themis 以及使用 Themis 的应用提供专业支持服务。
这些支持包括但不限于:库集成,重点关注 Web 和移动应用;为移动应用设计和构建端到端加密方案;安全审计,适用于内部库集成或高层协议;需要密码学的定制应用开发;咨询和培训服务。
发送电子邮件至 [email protected],或查看 Cossack Labs 网络安全服务。
如果你想提出技术问题、报告 bug 或建议新功能, 欢迎在 GitHub 上发起讨论, 在问题跟踪器中提出问题, 或写信至 [email protected]。
如需与 Cossack Labs Limited 的业务部门联系,请发送电子邮件至 [email protected]。
| 平台 | 文档 | 示例 | 版本 |
|---|
| ⚛️ 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 (Desktop) | Java (Desktop) 操作指南 | 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 适用于 Google Chrome | WebThemis 项目 |