Мбед ТЛС
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Разработчик(и) | Совместный проект под управлением TrustedFirmware (ранее Arm ) |
---|---|
Первоначальный выпуск | 15 января 2009 г. |
Стабильная версия | 3.6.0 [ 1 ] ![]() |
Репозиторий | |
Написано в | С |
Операционная система | Мультиплатформенность |
Тип | Библиотека безопасности |
Лицензия | Двойной Apache-2.0 или GPL-2.0 или более поздняя версия |
Веб-сайт | www |
Mbed TLS (ранее PolarSSL ) — это реализация протоколов TLS и SSL , а также соответствующих криптографических алгоритмов и требуемого кода поддержки. Он распространяется по лицензии Apache версии 2.0. На веб-сайте заявлено, что Mbed TLS стремится быть «простым для понимания, использования, интеграции и расширения».
История
[ редактировать ]Библиотека PolarSSL SSL является официальным продолжением библиотеки XySSL SSL. XySSL был создан французским « белым хакером » Кристофом Дивайном и впервые выпущен 1 ноября 2006 года под лицензиями GNU GPL v2 и BSD . В 2008 году Кристоф Девайн больше не мог поддерживать XySSL и позволил Полу Баккеру создать официальный форк под названием PolarSSL. [ 2 ] В ноябре 2014 года PolarSSL была приобретена ARM Holdings . [ 3 ]
В 2011 году правительство Нидерландов одобрило интеграцию OpenVPN и PolarSSL, получившую название OpenVPN-NL. Эта версия OpenVPN одобрена для использования для защиты правительственных коммуникаций вплоть до уровня «Ограниченный». [ 4 ]
С выпуском версии 1.3.10 PolarSSL был переименован в Mbed TLS, чтобы лучше показать его соответствие экосистеме Mbed . [ 5 ] Начиная с версии 2.1.0, библиотека стала доступна как по лицензии GPL v2, так и по лицензии Apache v2.0. [ 6 ]
В 2020 году Mbed TLS присоединилась к проекту TrustedFirmware . [ 7 ]
Библиотека
[ редактировать ]Основная библиотека SSL написана на языке программирования C и реализует модуль SSL, основные криптографические функции и предоставляет различные служебные функции. В отличие от OpenSSL и других реализаций TLS, Mbed TLS похож на wolfSSL в том смысле, что он предназначен для небольших встраиваемых устройств, при этом минимальный полный стек TLS требует менее 60 КБ программного пространства и менее 64 КБ оперативной памяти. Он также является модульным: каждый компонент, например криптографическая функция, может использоваться независимо от остальной части платформы. Также доступны версии для Microsoft Windows и Linux . Поскольку Mbed TLS написан на языке программирования C , без внешних зависимостей, он работает на большинстве операционных систем и архитектур.
Начиная с версии 1.3.0, он имеет уровни абстракции для распределения памяти и потоковой передачи к ядру, «чтобы поддерживать лучшую интеграцию с существующими встроенными операционными системами». [ 8 ]
Приоритеты дизайна
[ редактировать ]Библиотека Mbed TLS уделяет особое внимание читаемости кода, документации, автоматическим регрессионным тестам, слабосвязанному дизайну и переносимому коду. [ 9 ]
Разработочная документация
[ редактировать ]Разработчикам доступна следующая документация:
- Дизайн высокого уровня: [ 10 ] высокоуровневое описание различных модулей внутри библиотеки с UML-диаграммами, вариантами использования и взаимодействиями в распространенных сценариях.
- Документация API: [ 11 ] Документация, сгенерированная Doxygen, из заголовочных файлов библиотеки.
- Документация исходного кода: [ 12 ] Исходный код библиотеки документирован для пояснения структур, решений и конструкций кода.
Автоматизированное тестирование
[ редактировать ]Автоматизированное тестирование Mbed TLS включает в себя:
- В исходный код включена среда тестирования, содержащая более 5000 автоматических тестов (в зависимости от количества тестов в версии 1.3.2 библиотеки) для проверки регрессий и совместимости на разных платформах.
- Скрипт совместимости (compat.sh [ 13 ] ), который проверяет совместимость связи SSL с OpenSSL и GnuTLS .
- Система непрерывной интеграции на базе Travis CI и Jenkins . [ 14 ]
Использовать
[ редактировать ]Mbed TLS используется в качестве компонента SSL в крупных проектах с открытым исходным кодом:
- OpenVPN и OpenVPN-NL
- Гайавата
- PowerDNS
- HTTP-сервер обезьяны
- OpenWRT
Платформы
[ редактировать ]Mbed TLS в настоящее время доступен для большинства операционных систем, включая Linux , Microsoft Windows , OS X , OpenWrt , Android , iOS , RISC OS. [ 15 ] и FreeRTOS . Поддерживаемые наборы микросхем включают как минимум ARM, x86, PowerPC, MIPS.
Алгоритмы
[ редактировать ]Mbed TLS поддерживает ряд различных криптографических алгоритмов:
- Криптографические хэш-функции
- МД2 , МД4 , МД5 , RIPEMD160 , ША-1 , ША-2 , ША-3
- MAC -режимы
- КМАК , ХМАС
- Шифры
- AES , ARIA , Blowfish , Camellia , ChaCha , DES , RC4 , тройной DES , XTEA
- Режимы шифрования
- ЕЦБ , ЦБК , CFB , CTR , OFB , XTS
- Аутентифицированные режимы шифрования
- CCM , GCM , NIST упаковка ключей ,
- ЧаЧа20-Поли1305
- Ключевое происхождение
- ХКДФ
- Ключевая растяжка
- PBKDF2 , PKCS #5 PBE2, PKCS #12 получение ключа
- Криптография с открытым ключом
- RSA , обмен ключами Диффи-Хеллмана ,
- Криптография на эллиптических кривых (ECC) , Эллиптическая кривая Диффи–Хеллмана (ECDH) , Эллиптическая кривая DSA (ECDSA) , Эллиптическая кривая J-PAKE
См. также
[ редактировать ]- Безопасность транспортного уровня
- Сравнение реализаций TLS
- ПОССЕ проект
- ГнуTLS
- Службы сетевой безопасности
- wolfSSL (ранее CyaSSL)
- МатрицаSSL
- OpenSSL
Ссылки
[ редактировать ]- ^ «Выпуск 3.6.0» . 28 марта 2024 г. Проверено 23 апреля 2024 г.
- ^ "О нас" . ПоларSSL . Проверено 8 мая 2014 г.
- ^ «PolarSSL теперь является частью ARM» . 24 ноября 2014 г.
- ^ [1] Архивировано 29 января 2013 г. в Wayback Machine.
- ^ «Выпущен mbed TLS 1.3.10» . 08 февраля 2015 г. Проверено 9 февраля 2015 г.
- ^ "Скачать" . Мбед ТЛС . Рука. Архивировано из оригинала 24 марта 2019 г. Проверено 5 апреля 2021 г.
- ^ «Hafnium, MbedTLS, PSA Crypto присоединяются к проекту доверенной прошивки» . Доверенная прошивка . Доверенная прошивка. Архивировано из оригинала 12 августа 2020 г. Проверено 5 апреля 2021 г.
- ^ «Новые функции PolarSSL 1.3.0 – Технические обновления» . Polarssl.org . Проверено 8 мая 2014 г.
- ^ «Функции PolarSSL: простая в использовании библиотека SSL и хорошо документированная» . Polarssl.org . Проверено 8 мая 2014 г.
- ^ «Проект высокого уровня PolarSSL» . Polarssl.org . Проверено 8 мая 2014 г.
- ^ «Документация по исходному коду v1.3.6 — Документация по API» . ПоларSSL . Проверено 8 мая 2014 г.
- ^ «polarssl/polarssl — GitHub» . Гитхаб.com . Проверено 8 мая 2014 г.
- ^ исполняемый файл (26.04.2020). «mbedtls/compat.sh в стадии разработки · ARMmbed/mbedtls · GitHub» . Гитхаб.com . Проверено 5 апреля 2021 г.
- ^ «Непрерывная интеграция Mbed TLS» . Доверенная прошивка . Доверенная прошивка . Проверено 5 апреля 2021 г.
- ^ «На связи с 21 веком» . ОС RISC Открытая . Стив Ревилл . Проверено 19 апреля 2022 г.