MbedTLS
MbedTLS (прежние названия — PolarSSL и XySSL) — это реализация протоколов TLS и SSL, а также соответствующих криптографических алгоритмов и кода поддержки. MbedTLS распространяется по лицензии Apache версии 2.0. На веб-сайте заявлено, что Mbed TLS стремится быть «простым для понимания, использования, интеграции и расширения» (англ. easy to understand, use, integrate and expand). ИсторияБиблиотека PolarSSL является официальным продолжением библиотеки XySSL, которая была создана французом, «белым хакером» Кристофом Девином (фр. Christophe Devine) и опубликована 1 ноября 2006 года под лицензиями GNU GPL v2 и BSD. В 2008 году Кристоф Девин больше не мог поддерживать XySSL и позволил Полу Баккеру (англ. Paul Bakker) создать официальный форк под названием PolarSSL[4]. В 2011 году правительство Нидерландов одобрило интеграцию OpenVPN и PolarSSL, получившую название OpenVPN-NL. Эта версия OpenVPN была одобрена для использования для защиты правительственных коммуникаций Нидерландов до уровня «ограниченный» (Restricted)[5]. С выпуском версии 1.3.10 PolarSSL был переименован в Mbed TLS, чтобы лучше показать его соответствие экосистеме Mbed[6]. В ноябре 2014 года PolarSSL была приобретена компанией ARM Holdings[7]. Начиная с версии 2.1.0, библиотека стала доступна как по лицензии GPL v2, так и по лицензии Apache v2.0[8]. В 2017 году в Mbed TLS была обнаружена ошибка в реализации обработки криптографических ключей на базе эллиптических кривых secp224k1, получившая индекс CVE-2017-2784. В версии 2.4.2 уязвимость устранена[9] Начиная с версии 2.17, Mbed TLS лицензируется исключительно по лицензии Apache 2.0[10][11]. В 2020 году Mbed TLS присоединена к проекту TrustedFirmware[12]. БиблиотекаОсновная библиотека SSL написана на языке программирования C и реализует модуль SSL, основные криптографические функции и предоставляет различные служебные функции. В отличие от OpenSSL и других реализаций TLS, Mbed TLS похож на wolfSSL в том смысле, что он предназначен для небольших встраиваемых устройств, при этом минимальный полный стек TLS требует менее 60 КБ программного пространства и менее 64 КБ ОЗУ. Он также является модульным: каждый компонент, например криптографическая функция, может использоваться независимо от остальной части платформы. Также доступны версии для Microsoft Windows и Linux . Поскольку Mbed TLS написан на языке программирования C без внешних зависимостей, он работает на большинстве операционных систем и архитектур. Начиная с версии 1.3.0, библиотека имеет уровни абстракции для распределения памяти и потоковой передачи к ядру, «чтобы поддерживать лучшую интеграцию с существующими встроенными операционными системами» (англ. to support better integration with existing embedded operating systems)[13]. Приоритеты дизайнаВ библиотеке Mbed TLS уделено особое внимание читаемости кода, документации, автоматическим регрессионным тестам, слабосвязанному дизайну и переносимому коду[14]. Документация для разработчиковРазработчикам доступна следующая документация:
Автоматизированное тестированиеАвтоматизированное тестирование Mbed TLS включает в себя:
ИспользованиеMbed TLS используется в качестве компонента SSL в крупных проектах с открытым исходным кодом: ПлатформыMbed TLS в настоящее время доступен для большинства операционных систем, включая Linux, Microsoft Windows, OS X, OpenWrt, Android, iOS, RISC OS[20] и FreeRTOS. Поддерживаемые наборы микросхем включают как минимум ARM, x86, PowerPC, MIPS.[источник не указан 400 дней] АлгоритмыMbed TLS поддерживает ряд различных криптографических алгоритмов.
См. также
Примечания
Ссылки
|
Portal di Ensiklopedia Dunia