MbedTLS (прежние названия — PolarSSL и XySSL) — это реализация протоколов TLS и SSL, а также соответствующих криптографических алгоритмов и кода поддержки. MbedTLS распространяется по лицензии Apache версии 2.0. На веб-сайте заявлено, что Mbed TLS стремится быть «простым для понимания, использования, интеграции и расширения» ().

История Библиотека PolarSSL является официальным продолжением библиотеки XySSL, которая была создана французом, «белым хакером» Кристофом Девином () и опубликована 1 ноября 2006 года под лицензиями GNU GPL v2 и BSD. В 2008 году Кристоф Девин больше не мог поддерживать XySSL и позволил Полу Баккеру () создать официальный форк под названием PolarSSL.

В 2011 году правительство Нидерландов одобрило интеграцию OpenVPN и PolarSSL, получившую название OpenVPN-NL. Эта версия OpenVPN была одобрена для использования для защиты правительственных коммуникаций Нидерландов до уровня «ограниченный» ().

С выпуском версии 1.3.10 PolarSSL был переименован в Mbed TLS, чтобы лучше показать его соответствие экосистеме Mbed.

В ноябре 2014 года PolarSSL была приобретена компанией ARM Holdings.

Начиная с версии 2.1.0, библиотека стала доступна как по лицензии GPL v2, так и по лицензии Apache v2.0.

В 2017 году в Mbed TLS была обнаружена ошибка в реализации обработки криптографических ключей на базе эллиптических кривых secp224k1, получившая индекс CVE-2017-2784. В версии 2.4.2 уязвимость устранена

Начиная с версии 2.17, Mbed TLS лицензируется исключительно по лицензии Apache 2.0.

В 2020 году Mbed TLS присоединена к проекту TrustedFirmware.

Библиотека Основная библиотека SSL написана на языке программирования C и реализует модуль SSL, основные криптографические функции и предоставляет различные служебные функции. В отличие от OpenSSL и других реализаций TLS, Mbed TLS похож на wolfSSL в том смысле, что он предназначен для небольших встраиваемых устройств, при этом минимальный полный стек TLS требует менее 60 КБ программного пространства и менее 64 КБ ОЗУ. Он также является модульным: каждый компонент, например криптографическая функция, может использоваться независимо от остальной части платформы. Также доступны версии для Microsoft Windows и Linux . Поскольку Mbed TLS написан на языке программирования C без внешних зависимостей, он работает на большинстве операционных систем и архитектур.

Начиная с версии 1.3.0, библиотека имеет уровни абстракции для распределения памяти и потоковой передачи к ядру, «чтобы поддерживать лучшую интеграцию с существующими встроенными операционными системами» ().

Приоритеты дизайна В библиотеке Mbed TLS уделено особое внимание читаемости кода, документации, автоматическим регрессионным тестам, слабосвязанному дизайну и переносимому коду.

Документация для разработчиков Разработчикам доступна следующая документация: Проектирование высокого уровня: высокоуровневое описание различных модулей внутри библиотеки с UML-диаграммами, вариантами использования и взаимодействиями в общих сценариях. Документация по API: Документация, сгенерированная Doxygen из заголовочных файлов библиотеки. Документация исходного кода: Исходный код библиотеки документирован для пояснения структур, решений и конструкций кода.

Автоматизированное тестирование Автоматизированное тестирование Mbed TLS включает в себя: В исходный код включена среда тестирования, содержащая более 5000 автоматических тестов (в зависимости от количества тестов в версии библиотеки 1.3.2) для проверки регрессий и совместимости на разных платформах. Сценарий совместимости (compat.sh ), который проверяет совместимость связи SSL с OpenSSL и GnuTLS . Система непрерывной интеграции на базе Travis CI и Jenkins.

Использование Mbed TLS используется в качестве компонента SSL в крупных проектах с открытым исходным кодом: OpenVPN и OpenVPN-NL; Гайавата; PowerDNS; ; OpenWRT.

Платформы Mbed TLS в настоящее время доступен для большинства операционных систем, включая Linux, Microsoft Windows, OS X, OpenWrt, Android, iOS, RISC OS и FreeRTOS. Поддерживаемые наборы микросхем включают как минимум ARM, x86, PowerPC, MIPS.

Алгоритмы Mbed TLS поддерживает ряд различных криптографических алгоритмов. Криптографические хэш-функции: MD2, MD4, MD5, RIPEMD-160, SHA-1, SHA-2, SHA-3 Режимы MAC: , HMAC Шифры: AES, ARIA, Blowfish, Camellia, ChaCha, DES, RC4, Triple DES, XTEA Режимы шифрования: ECB, CBC, CFB, CTR, OFB, XTS Аутентифицированные режимы шифрования: , GCM, NIST, Функция формирования ключа

PBKDF2, PKCS #5 PBE2, PKCS #12 формирование ключа Криптография с открытым ключом RSA, обмен ключами Диффи-Хеллмана, Криптография на эллиптических кривых (ECC), Эллиптическая кривая Диффи–Хеллмана (ECDH), Эллиптическая кривая DSA (ECDSA), Эллиптическая кривая

См. также Безопасность транспортного уровня

GNUTLS Службы сетевой безопасности wolfSSL

OpenSSL

Примечания

Ссылки

Категория:Программное обеспечение, разработанное в 2009 году Категория:Библиотеки Си Категория:Криптографическое программное обеспечение Категория:Программное обеспечение с лицензией Apache Категория:Программное обеспечение с лицензией GNU GPL v2