Bouncy Castle — это популярная многофункциональная криптографическая библиотека с открытым исходным кодом, поддерживающая широкий спектр алгоритмов шифрования, подписания и хэширования. Она реализована для платформ Java, .NET, C++, Objective-C и других.
Библиотека поддерживает как международные стандарты (например, RSARSA (Rivest–Shamir–Adleman) — один из первых и самых известных алгоритмов асимметричного шифрования, разработанный в 1977 году Рональдом Ривестом, More, ECDSAECDSA (Elliptic Curve Digital Signature Algorithm) — это алгоритм создания и проверки электронной цифровой подписи, основанный на использовании эллиптически More, AESAES (Advanced Encryption Standard) — это международный стандарт блочного симметричного шифрования, утверждён Национальным институтом стандартов США ( More, SHA-256), так и российские ГОСТ-алгоритмы, включая:
- ГОСТ Р 34.10-2012ГОСТ Р 34.10-2012 — это российский государственный стандарт, регламентирующий алгоритмы формирования и проверки электронной цифровой подп More (подпись);
- ГОСТ Р 34.11-2012ГОСТ Р 34.11-2012 — это российский государственный стандарт хэширования данных, утверждённый Росстандартом в 2012 году. Он регламентирует выч More (хэшированиеХэширование — это процесс преобразования данных произвольной длины в фиксированную строку (хэш), уникальную для каждого входного значе More);
- ГОСТ Р 34.12-2015ГОСТ Р 34.12-2015 — это российский государственный стандарт, устанавливающий требования к блочным алгоритмам шифрования, используемым в це More (шифрование).
Это делает Bouncy Castle удобным инструментом при разработке решений, которые должны соответствовать российским нормативам безопасности.
Основные характеристики
Характеристика | Описание |
---|---|
Разработчик | The Legion of the Bouncy Castle Inc. |
Лицензия | Лицензия MIT / публичное использование |
Поддержка языков | Java, C#, C++, Objective-C, Python (через Jython) |
Сертификация | Не сертифицирован ФСБ РФ, но может использоваться в связке с СКЗИСКЗИ (средства криптографической защиты информации) — это аппаратно-программные решения, предназначенные для обеспечения конфиденциа More |
Форматы и протоколы | PKCS #7PKCS #7 (Public-Key Cryptography Standards #7) — это стандарт, разработанный компанией RSA Laboratories, который определяет общий формат для хранения и передачи под More, CMS, X.509X.509 — это международный стандарт, определяющий формат цифровых сертификатов открытых ключей. Он используется в инфраструктуре открыты More, CAdES, XAdES, TLS, S/MIME, PGP, OCSP, TSP |
Поддержка ГОСТ | Да, через дополнительные модули |
Назначение Bouncy Castle
1. Шифрование и дешифровка данных
- Поддерживает режимы AESAES (Advanced Encryption Standard) — это международный стандарт блочного симметричного шифрования, утверждён Национальным институтом стандартов США ( More, Blowfish, Twofish, Camellia, ChaCha20;
- Позволяет работать с симметричным и асимметричным шифрованием.
2. Создание и проверка электронной подписи
- Поддерживает форматы: CAdES, XAdES, PKCS #7PKCS #7 (Public-Key Cryptography Standards #7) — это стандарт, разработанный компанией RSA Laboratories, который определяет общий формат для хранения и передачи под More, CMS;
- Может быть частью решения для работы с квалифицированной ЭЦП в системах:
- ЕГАИСЕГАИС (Единая государственная автоматизированная информационная система) — это цифровая платформа, созданная для контроля оборота лек More;
- ГИС ЭПДГИС ЭПД (Государственная информационная система в сфере торговли) — это федеральная цифровая платформа, созданная Минпромторгом РФ для More;
- ФНС;
- ERP-системы (1С, SAP, Oracle).
3. ХэшированиеХэширование — это процесс преобразования данных произвольной длины в фиксированную строку (хэш), уникальную для каждого входного значе More и контроль целостности
- Реализует алгоритмы SHA-1, SHA-2, SHA-3, MD5, RIPEMD, Whirlpool;
- Включает ГОСТ Р 34.11-2012ГОСТ Р 34.11-2012 — это российский государственный стандарт хэширования данных, утверждённый Росстандартом в 2012 году. Он регламентирует выч More (Стрибог) — ключевой стандарт для России.
4. Управление сертификатами и PKI
- Работа с хранилищами доверенных лиц;
- Обработка запросов на выпуск сертификатов (CSR);
- Интеграция с удостоверяющими центрами.
5. Поддержка современных протоколов
- TLS 1.3, DTLS, OCSP, CMP, SCVP и другие.
Как работает Bouncy Castle?
Библиотека представляет собой пакет провайдников, который регистрируется в Java или .NET как Security Provider, после чего становится доступной для использования в коде.
Пример регистрации в Java:
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import java.security.Security;
public class Main {
public static void main(String[] args) {
Security.addProvider(new BouncyCastleProvider());
}
}
Пример генерации ключей по ГОСТ Р 34.10-2012ГОСТ Р 34.10-2012 — это российский государственный стандарт, регламентирующий алгоритмы формирования и проверки электронной цифровой подп More:
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import java.security.KeyPairGenerator;
import java.security.Security;
public class GOSTKeyGen {
public static void main(String[] args) throws Exception {
Security.addProvider(new BouncyCastleProvider());
KeyPairGenerator kpg = KeyPairGenerator.getInstance("GOST3410EL", "BC");
kpg.initialize(256); // Используется ГОСТ Р 34.10-2012
java.security.KeyPair kp = kpg.generateKeyPair();
}
}
Преимущества Bouncy Castle
- Открытый исходный код — позволяет изучать, модифицировать и адаптировать под свои нужды;
- Поддержка ГОСТ-алгоритмов — при добавлении соответствующих плагинов;
- Многоязычная поддержка — используется в Java, .NET, Android, C++ и др.;
- Расширенные функции — предоставляет больше возможностей, чем стандартные библиотеки JDK или .NET.;
- Совместимость — работает с OpenSSLOpenSSL — это открытая библиотека и набор утилит с открытым исходным кодом, предназначенный для реализации протоколов SSL (Secure Sockets Layer) и TLS (Tr More, HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More, токенами и другими криптопровайдерами.
Современные реализации
Платформа | Поддержка Bouncy Castle |
---|---|
Java | ✅ Через org.bouncycastle |
Android | ✅ Полная совместимость |
.NET | ✅ |
OpenSSLOpenSSL — это открытая библиотека и набор утилит с открытым исходным кодом, предназначенный для реализации протоколов SSL (Secure Sockets Layer) и TLS (Tr More (через плагины) | ✅ |
Wordfey CSP | ✅ Для расширения возможностей |
ERP-системы (1С, SAP) | ✅ При работе с внешними API |
ГИС ЭПДГИС ЭПД (Государственная информационная система в сфере торговли) — это федеральная цифровая платформа, созданная Минпромторгом РФ для More / ЕГАИСЕГАИС (Единая государственная автоматизированная информационная система) — это цифровая платформа, созданная для контроля оборота лек More | ✅ Для тестирования и разработки решений |
HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More и Cloud HSMCloud HSM (Hardware Security Module в облаке) — это виртуализированное решение для хранения и использования криптографических ключей, реализованное в More | ✅ Интеграция через PKCS #11PKCS #11 (также известный как Cryptoki) — это стандарт интерфейса программирования приложений (API), разработанный RSA Laboratories. Он определяет способ More и REST API |
Где применяется Bouncy Castle?
Сфера применения | Особенности использования |
---|---|
Электронный документооборот (ЭДОЭлектронный документооборот (ЭДО) — это автоматизированная система управления документами, которая позволяет создавать, обрабатывать, More) | Создание и проверка УПДУПД (универсальный передаточный документ) — это унифицированный электронный документ, объединяющий функции нескольких традиционных д More, ЭТрНЭТрН (электронная транспортная накладная) — это цифровой документ, используемый в логистике и цепочках поставок. Он заменяет бумажную т More, заказ-заявок |
ERP-системы | Интеграция с 1С, SAP, Oracle |
API-взаимодействие | Шифрование и подпись данных при обмене с государственными системами |
Мобильные приложения | Защита данных в Android-приложениях |
Тестирование решений | Разработка и тестирование КЭПКЭП — это аббревиатура, которая расшифровывается как «Квалифицированная электронная подпись». Это один из видов электронной подписи, о More — документов |
Облачные системы | Работа с подписью в SaaS и IaaS-инфраструктуре |
Безопасное использование
- Не используйте в продакшене без дополнительных мер — особенно если требуется соответствие ФСБ или Минцифры;
- Добавляйте только актуальные версии библиотеки — следите за обновлениями и патчами;
- Не передавайте закрытые ключи вне контейнера — даже при использовании ГОСТ-алгоритмов;
- Интегрируйте с HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More или токенами — для повышения уровня защиты;
- Используйте в связке с СКЗИСКЗИ (средства криптографической защиты информации) — это аппаратно-программные решения, предназначенные для обеспечения конфиденциа More — например, КриптоПро.
Примеры использования
✔ Подписание XML-документа по ГОСТ Р 34.10-2012
- Формируется УПДУПД (универсальный передаточный документ) — это унифицированный электронный документ, объединяющий функции нескольких традиционных д More или ЭТрНЭТрН (электронная транспортная накладная) — это цифровой документ, используемый в логистике и цепочках поставок. Он заменяет бумажную т More;
- Документ подписывается через Bouncy Castle в формате CAdES-BESCAdES-BES (CMS Advanced Electronic Signatures — Baseline Electronic Signature) — это стандарт формата цифровой подписи, разработанный в рамках спецификации ETSI EN 319 122-1, кот More или T;
- Передача в ГИС ЭПДГИС ЭПД (Государственная информационная система в сфере торговли) — это федеральная цифровая платформа, созданная Минпромторгом РФ для More или ЕГАИСЕГАИС (Единая государственная автоматизированная информационная система) — это цифровая платформа, созданная для контроля оборота лек More.
✔ Шифрование данных по ГОСТ Р 34.12-2015
- Блоки данных шифруются алгоритмом Кузнечик;
- Интеграция с ERP-системами и мобильными решениями.
✔ Хэширование с помощью Стрибог (ГОСТ Р 34.11-2012)
- Вычисление хэша документа;
- Использование в связке с CAdES или XAdES.
Современные тренды
- Интеграция с ERP-платформами — всё чаще используется в 1С, SAP и Oracle;
- Работа с ГОСТ-алгоритмами — активно развивается в российских и странах ЕАЭСЕАЭС (Евразийский экономический союз) — это международное экономическое объединение государств, созданное с целью формирования единоо More;
- Поддержка в облачных решениях — Bouncy Castle становится основой для сервисов, работающих с КЭПКЭП — это аббревиатура, которая расшифровывается как «Квалифицированная электронная подпись». Это один из видов электронной подписи, о More;
- Использование в IoT-устройствах — лёгкий вес и широкий набор функций делают его подходящим для M2M-обмена;
- Переход на постквантовую криптографию — в будущем ожидается внедрение новых алгоритмов, устойчивых к квантовым атакам.
Отличие от других криптопровайдеров
Провайдер | Сертификация ФСБ РФ | Поддержка ГОСТ | Платформы | Юридическая значимость |
---|---|---|---|---|
Bouncy Castle | ❌ (не сертифицирован) | ✅ (через модули) | Java, .NET, Android | Только в связке с СКЗИСКЗИ (средства криптографической защиты информации) — это аппаратно-программные решения, предназначенные для обеспечения конфиденциа More |
КриптоПро CSPКриптоПро CSP (Cryptographic Service Provider) — это сертифицированное программное обеспечение для работы с квалифицированной электронной подписью (К More | ✅ | ✅ | Windows, Linux | Юридически значим |
OpenSSLOpenSSL — это открытая библиотека и набор утилит с открытым исходным кодом, предназначенный для реализации протоколов SSL (Secure Sockets Layer) и TLS (Tr More (с плагинами) | ✅ (в части сертифицированных сборок) | ✅ | Linux, Windows | В зависимости от конфигурации |
Microsoft CNG | ✅ | ❌ | Windows | Требуются дополнительные модули |
Будущее Bouncy Castle
По мере развития цифровизации и увеличения числа международных и внутренних проектов, ожидается:
- Дальнейшее развитие поддержки ГОСТ-алгоритмов;
- Усиление роли в разработке решений для ERP и ЭДОЭлектронный документооборот (ЭДО) — это автоматизированная система управления документами, которая позволяет создавать, обрабатывать, More;
- Расширение возможностей в составе облачных и мобильных решений;
- Переход на новые стандарты безопасности;
- Интеграция с постквантовыми алгоритмами.
Однако, для работы в условиях, требующих соответствия российскому законодательству, рекомендуется использовать сертифицированные провайдеры, такие как КриптоПро CSPКриптоПро CSP (Cryptographic Service Provider) — это сертифицированное программное обеспечение для работы с квалифицированной электронной подписью (К More, в то время как Bouncy Castle лучше подходит для разработки и тестирования.
Заключение
Bouncy Castle — мощный инструмент для разработчиков, поддерживающий широкий спектр криптографических функций, включая российские стандарты шифрования и подписи.
Bouncy Castle может стать важным элементом вашей разработки, однако для юридически значимого оборота и работы в реальных госсистемах рекомендуется использовать сертифицированные криптопровайдеры, поскольку Bouncy Castle не имеет официальной сертификации ФСБ РФ.