themis 0.15.1

themis 0.15.1

测试已测试
语言语言 CC
许可证 Apache-2.0
发布最新版本2023年9月

vixentaelcossacklabscossacklabsdev 维护。



themis 0.15.1

  • cossacklabs

Themis provides strong, usable cryptography for busy people

Themis 为忙碌的人提供强大的、可使用的加密


GitHub release Platforms Coverage Status
Themis Core Integration testing Code style Circle CI Bitrise

适用于 iOS (Swift, Obj-C)、Android (Java, Kotlin)、桌面 Java、C/С++、Node.js、Python、Ruby、PHP、Go、Rust、WASM 的通用存储和消息加密库。

适用于多平台应用。隐藏了加密细节。由密码学家为开发人员打造🧡

什么是 Themis

Themis 是一个开源的高层加密服务库,用于在身份验证、存储、消息传递、网络交换等过程中保护数据。Themis 解决了大多数应用常见的 90% 的典型数据保护用例。

Themis 有助于轻松、快速、安全地构建简单和复杂的加密功能。Themis 允许开发人员专注于最重要的事情:开发他们的应用程序。

Themis 解决的应用场景

  • 加密存储在您的应用程序和后端中的敏感信息:API密钥、会话令牌、文件。

  • 在存储到数据库之前加密敏感数据字段("应用程序端字段级加密")。

  • 支持使用 Themis 和 Acra 进行的可搜索加密、数据标记和数据掩码。

  • 安全地交换秘密:在各方之间交换敏感数据,在患者和医生之间建立简单聊天应用程序。

  • 构建拥有集中化或去中心化架构的 端到端加密方案:在应用程序中本地加密数据,在任何地方使用加密数据,只为认证用户解密。

  • 保持 实时安全会话:从您的应用程序发送加密消息以控制连接的设备,从您的应用程序实时接收敏感数据到您的后端。

  • 在不揭示秘密的情况下在各方之间 比较秘密(基于零知识证明的认证)。

  • 一个适合所有应用的加密库:Themis 是多平台应用程序(例如,iOS+Android+Electron 应用程序带有 Node.js 后端)的极佳选择,因为它提供 100% 兼容的 API,并在所有支持的平台上以相同的方式工作。

加密系统

Themis 提供了现成的构建模块(“加密系统”),这简化了核心加密安全性操作的使用。

Themis 提供 4 个重要的加密服务

  • 安全单元:一个多模式加密容器,适用于存储从加密文件到数据库记录和格式化保留字符串的任何内容。安全单元是围绕 AES-256-GCM、AES-256-CTR 构建的。
  • 安全消息:最适合广泛应用的最简单的加密消息解决方案。交换双方之间的密钥,然后就可以出发了。两种底层的加密系统:ECC + ECDSA / RSA + PSS + PKCS#7。
  • 安全会话:以更好的安全保证和更严格的基础设施为基础的面向会话的加密数据交换。安全会话可以完美充当套接字加密、会话安全或高级消息原语(需要一些附加的基础设施,如 PKI)。ECDH 密钥协议、ECC 和 AES 加密。
  • 安全比较器:基于零知识证明的身份验证和比较秘密的加密协议。

我们创建 Themis 是为了在其之上构建其他产品,例如 AcraHermes

安装

请参阅安装页面,以将Themis安装到您的移动端、Web、桌面或服务器端应用。我们强烈建议使用安装包而不是从源代码构建。

语言

Themis支持以下语言/平台,请参阅每个语言的入门指南

平台 文档 示例 版本
🔶Swift (iOS, macOS) Swift 入门指南 docs/examples/swift CocoaPods
📱Objective-C (iOS, macOS) Objective-C 入门指南 docs/examples/objc CocoaPods
☕️Java (桌面) Java (桌面) 入门指南 Java 项目
☎️Java (Android) Java (Android) 入门指南 Android 项目 maven
📞Kotlin (Android) Java (Android) 入门指南 Android 项目 maven
🔻Ruby Ruby 入门指南 docs/examples/ruby Gem
🐍Python Python 入门指南 docs/examples/python PyPI
🐘PHP PHP 入门指南 docs/examples/php
C++ CPP 入门指南 docs/examples/c++
🍭Node.js Javascript (Node.js) 入门指南 docs/examples/js npm
🖥WebAssembly Javascript (WebAssembly) 入门指南 docs/examples/js npm
🐹Go Go 入门指南 docs/examples/go go.dev
🦀Rust Rust 入门指南 docs/examples/rust crates
🕸С++ PNaCl for Google Chrome WebThemis 项目

可用性

Themis支持以下CPU架构:x86_64/i386、ARM、Apple硅(ARM64)、多种Android架构。

我们在最新的稳定操作系统版本上构建和验证了Themis

  • Debian (9, 10)、CentOS (7, 8)、Ubuntu (16.04, 18.04, 20.04)
  • macOS (10.12–10.15, 11)
  • Android (4–11)
  • iOS (10–14)
  • Windows (实验性MSYS2支持)

我们计划扩展此列表以包含更广泛的平台。如果您想帮助改进或将Themis带到您最喜欢的平台或语言——联系我们

文档

Themis 文档 包含不断演化的官方文档,涵盖了从部署指南到用例的方方面面,并对主 Themis 库背后的密码系统及其架构进行了简要说明。

参阅文档以了解更多关于

密码学

Themis 依赖于由知名密码学库(如 OpenSSL、LibreSSL、BoringSSL)实现的经过验证的密码学算法。有关更多信息,请参阅《 Themis 中的密码学》文档。

本分发版包含密码学软件。您目前居住的国家可能在加密软件的进口、拥有、使用以及/或其他国家的再出口方面有限制。在使用任何加密软件之前,请检查您国家有关加密软件的进口、拥有或使用以及再出口的法律、法规和政策,以确定这是否允许。更多信息请参阅http://www.wassenaar.org/

美国商务部工业和安全局(BIS)已将此软件归类为出口商品控制编号(ECCN)5D002.C.1,其中包括使用或执行非对称算法的加密功能的信息安全软件。这种分发形式和方式使其符合出口授权不受限制(TSU)例外情况下的出口(参见BIS出口管理条例,第740.13节),适用于目标代码和源代码。

提交应用至App Store

如果你的应用程序使用了Themis,并且你想将其提交到Apple App Store,则对声明任何加密的使用有一定要求。

请参阅关于Themis加密的Apple出口条例的说明,了解应如何操作。

安全

Themis核心库的每次更改都由我们内部的专业密码学家和网络安全工程师团队进行审查和批准。对于每次发布,我们都由不从事Themis工作的密码学家进行内部审计。

我们使用了大量的自动化安全测试,例如:静态代码分析器、模糊测试工具、内存分析器、单元测试(每个平台)、集成测试(用于发现不同Themis支持的语言、操作系统和x86/x64架构之间的兼容性问题)。更多关于我们的安全测试实践,请参阅Themis安全文档

如果您认为您发现了一个与安全相关的问题,请联系我们发送电子邮件至[email protected]。可能适用赏金计划。

GDPR、HIPAA、CCPA

作为移动和服务器平台的加密服务库,Themis是一个“最先进”的加密工具,它提供安全的数据交换和存储服务。

使用Themis,你可以更好地符合当前的数据隐私法规,例如

有关法规的更多信息,请参阅文档中的法规

社区

Th mis 被OWASP推荐为移动平台的数据加密库。

Th mis 在商业和非商业项目中都得到了广泛使用,这里可以找到一些公开的应用程序和库:(点击查看)

想在我们的博客和贡献者列表上露面?联系我们,告诉我们你用 Th mis 创建的项目!

贡献

如果你想做一些能赢得永恒尊重的贡献,只需从问题列表中选择即可。你的起点是查看我们的贡献指南

为Th mis在所有这些众多的平台上提供支持是一项艰巨的任务,但我们会尽我们所能使每个人都能方便地使用Th mis。用户遇到的大多数问题都与安装过程和依赖关系管理有关。如果你面临任何挑战,请告诉我们

商业支持

Cossack Labs为我们提供Thmis和Thmis应用程序的专业支持服务。

这些服务包括但不限于库集成,重点是Web和移动应用程序;为移动应用程序设计构建端到端加密方案;内部库集成或高级协议的安全审计;要求加密功能的定制应用程序开发;咨询和培训服务

请发送电子邮件到[email protected]或查看Cossack Labs网络安全服务

联系方式

如果您想提问技术问题、报告错误或建议新特性,请随意在GitHub上开启一个讨论、在问题跟踪器中提出问题,或者发送邮件至[email protected]

如需与Cossack Labs Limited的商业部门联系,请发送邮件至[email protected]

Blog Twitter CossackLabs Dev.to CossackLabs Medium CossackLabs

Closed pull requests with Bitcode-related changes