Лучшие вопросы
Таймлайн
Чат
Перспективы
MbedTLS
Из Википедии, свободной энциклопедии
Remove ads
MbedTLS (прежние названия — PolarSSL и XySSL) — это реализация протоколов TLS и SSL, а также соответствующих криптографических алгоритмов и кода поддержки. MbedTLS распространяется по лицензии Apache версии 2.0. На веб-сайте заявлено, что Mbed TLS стремится быть «простым для понимания, использования, интеграции и расширения» (англ. easy to understand, use, integrate and expand).
Remove ads
История
Суммиров вкратце
Перспектива
Библиотека 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].
Remove ads
Библиотека
Суммиров вкратце
Перспектива
Основная библиотека 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].
Документация для разработчиков
Разработчикам доступна следующая документация:
- Проектирование высокого уровня[15]: высокоуровневое описание различных модулей внутри библиотеки с UML-диаграммами, вариантами использования и взаимодействиями в общих сценариях.
- Документация по API[16]: Документация, сгенерированная Doxygen из заголовочных файлов библиотеки.
- Документация исходного кода[17]: Исходный код библиотеки документирован для пояснения структур, решений и конструкций кода.
Автоматизированное тестирование
Автоматизированное тестирование Mbed TLS включает в себя:
- В исходный код включена среда тестирования, содержащая более 5000 автоматических тестов (в зависимости от количества тестов в версии библиотеки 1.3.2) для проверки регрессий и совместимости на разных платформах.
- Сценарий совместимости (compat.sh [18]), который проверяет совместимость связи SSL с OpenSSL и GnuTLS .
- Система непрерывной интеграции на базе Travis CI и Jenkins[19].
Remove ads
Использование
Mbed TLS используется в качестве компонента SSL в крупных проектах с открытым исходным кодом:
Платформы
Mbed TLS в настоящее время доступен для большинства операционных систем, включая Linux, Microsoft Windows, OS X, OpenWrt, Android, iOS, RISC OS[20] и FreeRTOS. Поддерживаемые наборы микросхем включают как минимум ARM, x86, PowerPC, MIPS.[источник не указан 611 дней]
Алгоритмы
Mbed TLS поддерживает ряд различных криптографических алгоритмов.
- Криптографические хэш-функции:
- MD2, MD4, MD5, RIPEMD-160, SHA-1, SHA-2, SHA-3
- Режимы MAC:
- СMAC[англ.], HMAC
- Шифры:
- AES, ARIA, Blowfish, Camellia, ChaCha, DES, RC4, Triple DES, XTEA
- Режимы шифрования:
- ECB, CBC, CFB, CTR, OFB, XTS
- Аутентифицированные режимы шифрования:
- CCM[англ.], GCM, упаковка ключей[англ.] NIST, ChaCha20-Poly1305[англ.]
- Функция формирования ключа
- HKDF[англ.]
- Функция растягивания ключа[англ.]
- PBKDF2, PKCS #5 PBE2, PKCS #12 формирование ключа
- Криптография с открытым ключом
- RSA, обмен ключами Диффи-Хеллмана, Криптография на эллиптических кривых (ECC), Эллиптическая кривая Диффи–Хеллмана (ECDH), Эллиптическая кривая DSA (ECDSA), Эллиптическая кривая J-PAKE[англ.]
Remove ads
См. также
- Безопасность транспортного уровня
- POSSE project[англ.]
- GNUTLS
- Службы сетевой безопасности
- wolfSSL
- MatrixSSL[англ.]
- OpenSSL
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads