
Простой в использовании криптографический фреймворк для защиты данных: безопасный обмен сообщениями с прямой секретностью и безопасное хранение данных. Имеет единые API на 14 платформах.
Themis — это библиотека с открытым исходным кодом, предоставляющая высокоуровневые криптографические сервисы для защиты данных при аутентификации, хранении, обмене сообщениями, сетевом взаимодействии и т. д. Themis решает 90% типичных задач защиты данных, характерных для большинства приложений.
Themis помогает легко, быстро и безопасно создавать как простые, так и сложные криптографические функции. Themis позволяет разработчикам сосредоточиться на главном — на разработке своих приложений.
Шифруйте хранимые секреты в своих приложениях и бэкенде: API-ключи, токены сессий, файлы.
Шифруйте конфиденциальные поля данных перед сохранением в базу данных («шифрование на уровне полей на стороне приложения»).
Поддержка поискового шифрования, токенизации и маскирования данных с помощью Themis и Acra.
Обменивайтесь секретами безопасно: делитесь конфиденциальными данными между сторонами, создавайте простое чат-приложение для пациентов и врачей.
Создавайте схемы сквозного шифрования с централизованной или децентрализованной архитектурой: шифруйте данные локально в одном приложении, используйте их в зашифрованном виде повсюду, расшифровывайте только для аутентифицированного пользователя.
Поддерживайте безопасные сеансы в реальном времени: отправляйте зашифрованные сообщения для управления подключёнными устройствами из своего приложения, получайте конфиденциальные данные в реальном времени из своих приложений в бэкенд.
Сравнивайте секреты между сторонами, не раскрывая их (аутентификация на основе доказательств с нулевым разглашением).
Одна криптографическая библиотека для всех случаев: Themis лучше всего подходит для многоплатформенных приложений (например, iOS+Android+Electron с бэкендом Node.js), поскольку предоставляет 100% совместимый API и работает одинаково на всех поддерживаемых платформах.
Themis предоставляет готовые строительные блоки («криптосистемы»), которые упрощают использование основных криптографических операций безопасности.
Themis предоставляет 4 важных криптографических сервиса:
Мы создали Themis, чтобы строить на его основе другие продукты — например, Acra и Hermes.
Обратитесь к странице Установка, чтобы установить Themis для мобильного, веб-, десктопного или серверного приложения. Мы настоятельно рекомендуем установочные пакеты вместо сборки из исходного кода.
Themis доступен для следующих языков/платформ, для каждого см. руководства по языкам:
Themis поддерживает следующие архитектуры процессоров: x86_64/i386, ARM, Apple Silicon (ARM64), различные архитектуры Android.
Мы собираем и проверяем Themis на последних стабильных версиях ОС:
Мы планируем расширить этот список большим набором платформ. Если вы хотите помочь улучшить Themis или портировать его на вашу любимую платформу или язык — свяжитесь с нами.
Документация для Themis содержит постоянно обновляемую официальную документацию, которая охватывает всё: от рекомендаций по развёртыванию до вариантов использования, с краткими пояснениями криптосистем и архитектуры основной библиотеки Themis.
Обратитесь к документации, чтобы узнать больше о:
криптографии в Themis (криптосистемы Themis и атаки на них, доноры криптографии, рекомендации по управлению ключами, FIPS 140-2 и ГОСТ),
отладке и устранению неполадок Themis (утилиты командной строки, потокобезопасность, руководства по миграции между версиями Themis),
безопасности Themis (Themis и OWASP, практики безопасной разработки Themis),
сообществе Themis (руководства для участников, благодарности и почётные упоминания, проектах, использующих Themis, обучающих материалах, воркшопах и докладах).
Themis опирается на проверенные криптографические алгоритмы, реализованные известными библиотеками криптографии, такими как OpenSSL, LibreSSL, BoringSSL. Подробнее см. в документации Криптография в Themis.
Этот дистрибутив включает криптографическое программное обеспечение. В стране вашего текущего проживания могут действовать ограничения на импорт, владение, использование и/или реэкспорт в другую страну программного обеспечения для шифрования. ПРЕЖДЕ чем использовать какое-либо программное обеспечение для шифрования, проверьте законы, нормативные акты и политику вашей страны, касающиеся импорта, владения, использования и реэкспорта программного обеспечения для шифрования, чтобы убедиться, что это разрешено. Дополнительную информацию см. на http://www.wassenaar.org/.
Министерство торговли правительства США, Бюро промышленности и безопасности (BIS), классифицировало это программное обеспечение как экспортный товар с контрольным номером (ECCN) 5D002.C.1, который включает программное обеспечение для информационной безопасности, использующее или выполняющее криптографические функции с асимметричными алгоритмами. Форма и способ распространения делают его правомочным для экспорта в соответствии с исключением из лицензионных требований ENC Technology Software Unrestricted (TSU) (см. раздел 740.13 Экспортных правил BIS) как для объектного кода, так и для исходного кода.
Если ваше приложение использует Themis и вы хотите отправить его в Apple App Store, существуют определённые требования к декларированию использования любой криптографии.
Прочитайте о правилах экспорта криптографии Apple для Themis, чтобы узнать, что делать.
Каждое изменение в основной библиотеке Themis проверяется и утверждается нашей внутренней командой криптографов и инженеров по безопасности. Для каждого релиза мы проводим внутренние аудиты силами криптографов, не работающих над Themis.
Мы используем множество автоматизированных средств тестирования безопасности, например статические анализаторы кода, фаззинг-инструменты, анализаторы памяти, модульные тесты (для каждой платформы), интеграционные тесты (для поиска проблем совместимости между различными поддерживаемыми Themis языками, ОС и архитектурами x86/x64). Подробнее о наших практиках тестирования безопасности читайте в документации по безопасности Themis.
Если вы считаете, что нашли проблему, связанную с безопасностью, напишите нам на [email protected]. Возможно действие программы bug bounty.
Будучи библиотекой криптографических сервисов для мобильных и серверных платформ, Themis является «современным» инструментом шифрования, обеспечивающим безопасный обмен данными и их хранение.
Используя Themis, вы можете достичь более высокого уровня соответствия действующим нормам о защите данных, таким как:
Подробнее о регуляторных требованиях читайте в документации.
Themis рекомендуется OWASP в качестве библиотеки шифрования данных для мобильных платформ.
Themis широко используется как в некоммерческих, так и в коммерческих проектах; некоторые публичные приложения и библиотеки можно найти здесь.
Хотите также попасть в наш блог и список участников? Напишите нам о проекте, который вы создали с помощью Themis!
Если вы ищете, к чему можно приложить руку и заслужить вечное уважение, просто выберите что-нибудь из списка задач. Начните с наших руководств для участников.
Поддержка Themis для всех этих многочисленных платформ — нелёгкий труд, но мы стараемся сделать использование Themis удобным для каждого. Большинство проблем, с которыми сталкиваются наши пользователи, связаны с процессом установки и управлением зависимостями. Если у вас возникли трудности, пожалуйста, сообщите нам.
В Cossack Labs мы предлагаем профессиональные услуги поддержки для Themis и приложений, использующих Themis.
Эта поддержка включает, помимо прочего, интеграцию библиотеки с акцентом на веб- и мобильные приложения; проектирование и создание схем сквозного шифрования для мобильных приложений; аудит безопасности для внутренних интеграций библиотеки или высокоуровневых протоколов; разработку заказных приложений, требующих криптографии; консалтинг и обучающие услуги.
Напишите нам на [email protected] или ознакомьтесь с услугами кибербезопасности Cossack Labs.
Если вы хотите задать технический вопрос, сообщить об ошибке или предложить функцию, не стесняйтесь начать обсуждение на 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++ | Руководство по C++ | 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 |