Dropbear
Dropbear — это программное обеспечение с открытым исходным кодом, реализующее протокол SSH (Secure Shell) версии 2, предназначенное для использования на встраиваемых системах и других платформах с ограниченными вычислительными ресурсами, такими как маршрутизаторы, точки доступа и одноплатные компьютеры. Отличается малым размером исполняемых файлов, низким потреблением оперативной памяти и упрощённой конфигурацией по сравнению с эталонной реализацией OpenSSH.
История
Проект Dropbear был создан австралийским разработчиком Мэттом Джонстоном (Matt Johnston) в 2003 году. Основной мотивацией послужила необходимость в лёгкой и безопасной альтернативе OpenSSH для встраиваемых Linux-систем, где объём flash-памяти и ОЗУ часто ограничен несколькими мегабайтами. Первая стабильная версия (0.28) вышла в 2004 году. С тех пор проект развивается как часть экосистемы OpenWrt (операционная система для маршрутизаторов на базе Linux) и других дистрибутивов для встраиваемой техники. Ключевые обновления включали поддержку алгоритмов обмена ключами на эллиптических кривых (ECDH, ECDSA) и усиление криптостойкости.
Архитектура и компоненты
Dropbear состоит из двух основных исполняемых файлов и набора утилит:
- dropbear — серверная часть (SSH-демон). Прослушивает порт 22 (по умолчанию) и обрабатывает входящие подключения, аутентификацию и выполнение команд.
- dropbearkey — утилита для генерации ключей хоста (RSA, ECDSA, Ed25519) и пользовательских ключей.
- dbclient — клиентская часть, позволяющая подключаться к удалённым SSH-серверам. Включается опционально при сборке.
Все компоненты скомпилированы в статически связанные бинарные файлы, что минимизирует зависимости от системных библиотек. Размер типичного бинарника dropbear для архитектуры MIPS (распространённой в домашних маршрутизаторах) составляет около 100–150 КБ, что в 5–10 раз меньше, чем у OpenSSH.
Функциональные возможности
Dropbear поддерживает полный набор функций, необходимых для безопасного удалённого управления и передачи файлов:
Аутентификация
- По паролю (с поддержкой PAM — Pluggable Authentication Modules).
- По открытым ключам (RSA, ECDSA, Ed25519).
- По сертификатам OpenSSH (с версии 2019.78).
- Агент пересылки ключей (SSH agent forwarding).
Туннелирование
- Проброс портов (локальный, удалённый, динамический).
- Туннелирование X11 (для графических приложений).
- Поддержка SFTP (через встроенный подпроцесс sftp-server).
Протоколы и шифрование
- SSH-2 (протокол версии 1 не поддерживается из соображений безопасности).
- Алгоритмы обмена ключами: diffie-hellman-group14-sha256, curve25519-sha256, ecdh-sha2-nistp256/384/521.
- Шифры: aes256-ctr, aes128-ctr, chacha20-poly1305@openssh.com, 3des-ctr (устаревший).
- Коды аутентичности сообщений (MAC): hmac-sha2-256, hmac-sha2-512, hmac-sha1.
Ограничения
- Отсутствие поддержки SSH-1.
- Нет встроенной поддержки SCP (Secure Copy) — для копирования файлов используется SFTP или внешняя утилита scp из состава OpenSSH.
- Ограниченная поддержка сложных конфигураций (например, отсутствие встроенного SOCKS-прокси).
Применение
Dropbear широко используется в следующих областях:
Встраиваемые системы
- Маршрутизаторы и точки доступа: OpenWrt, DD-WRT, Tomato, Asuswrt-Merlin — все эти прошивки по умолчанию включают Dropbear как SSH-сервер. Это позволяет администраторам настраивать устройства удалённо, без физического подключения.
- Одноплатные компьютеры: Raspberry Pi, Orange Pi, BeagleBone — в дистрибутивах, ориентированных на минимальный размер (например, DietPi, Alpine Linux).
- Промышленные контроллеры: PLC (программируемые логические контроллеры) и IoT-устройства, где каждый килобайт памяти на счету.
Серверные среды
- Контейнеры и виртуализация: Dropbear часто используется в Docker-образах минимального размера (например, Alpine Linux) для обеспечения SSH-доступа к контейнерам.
- Системы с ограниченным дисковым пространством: Live-дистрибутивы, загрузочные USB-накопители, rescue-системы.
Разработка и тестирование
- Отладка встраиваемого ПО: разработчики микроконтроллеров и RTOS (операционных систем реального времени) часто встраивают Dropbear в прошивку для отладки через последовательный порт или Ethernet.
- Автоматизация: использование dbclient в скриптах для выполнения команд на удалённых устройствах без установки полноценного SSH-клиента.
Безопасность
Dropbear разрабатывался с фокусом на безопасность в условиях ограниченных ресурсов. Ключевые аспекты:
- Минимизация кода: меньшая поверхность атаки по сравнению с OpenSSH. Исходный код Dropbear (около 20 000 строк) значительно меньше, что упрощает аудит.
- Отказ от устаревших протоколов: отсутствие поддержки SSH-1 и старых алгоритмов (например, MD5, SHA-1 для хешей).
- Изоляция процессов: демон запускает отдельный процесс для каждого подключения, что снижает риск утечки данных при взломе одного сеанса.
- Регулярные обновления: проект поддерживается сообществом, критические уязвимости исправляются оперативно (например, CVE-2018-15599 — уязвимость в обработке ключей).
Тем не менее, для высоконагруженных или критически важных серверов (например, в корпоративных сетях) рекомендуется использовать OpenSSH, так как он имеет более широкую поддержку алгоритмов, аудит и функции (например, многофакторная аутентификация, сертификаты).
Сборка и настройка
Dropbear распространяется в исходных кодах на языке C. Сборка под целевую платформу выполняется с помощью стандартного набора инструментов GNU Autotools (./configure && make). Для встраиваемых систем часто используется кросс-компиляция. Пример типичной конфигурации:
`` ./configure --host=mipsel-linux --disable-zlib --enable-static make ``
Ключевые параметры конфигурации:
--disable-zlib— отключает сжатие (экономит память, но увеличивает трафик).--enable-static— статическая сборка (не требует динамических библиотек).--disable-pam— отключает PAM (если не нужна аутентификация через системные модули).--enable-bundled-libtom— использует встроенную криптографическую библиотеку LibTomCrypt (вместо OpenSSL).
Настройка сервера осуществляется через файл /etc/dropbear/dropbear.conf (или через аргументы командной строки). Основные опции:
-p— порт прослушивания.-r— путь к файлу ключа хоста.-s— отключение аутентификации по паролю (только ключи).-W— таймаут для неактивных сессий.
Сравнение с OpenSSH
| Параметр | Dropbear | OpenSSH |
|---|---|---|
| Размер бинарника (MIPS) | ~100–150 КБ | ~500–800 КБ |
| Потребление RAM (активная сессия) | ~1–2 МБ | ~5–10 МБ |
| Поддержка SSH-1 | Нет | Да (устаревшая) |
| Встроенный SCP | Нет | Да |
| Многофакторная аутентификация | Нет | Да (через PAM) |
| Поддержка сертификатов | Ограниченная | Полная |
| Частота обновлений | Умеренная | Высокая |
| Лицензия | MIT | BSD |
Интересные факты
- Название «Dropbear» происходит от австралийского выражения «drop bear» — мифического хищного сумчатого, якобы нападающего на туристов. Разработчик Мэтт Джонстон выбрал это имя как ироничную отсылку к «безопасности» (медведь, который «роняет» жертву).
- Dropbear является официальным SSH-сервером в проекте OpenWrt с 2004 года.
- В 2019 году в Dropbear была добавлена поддержка алгоритма Ed25519, который считается одним из самых безопасных и быстрых для цифровых подписей.
- Исходный код Dropbear написан на C без использования сторонних библиотек (кроме LibTomCrypt), что делает его полностью самодостаточным.
Критика
Основные претензии к Dropbear связаны с его ограниченной функциональностью по сравнению с OpenSSH. Отсутствие встроенного SCP и ограниченная поддержка сложных туннелей (например, проброс Unix-сокетов) могут затруднить работу в сценариях, требующих расширенных возможностей. Кроме того, из-за меньшего сообщества пользователей и разработчиков, исправление некоторых уязвимостей может занимать больше времени, чем в OpenSSH.
Источники
- Официальный сайт проекта Dropbear: https://matt.ucc.asn.au/dropbear/dropbear.html
- Исходный код Dropbear на GitHub: https://github.com/mkj/dropbear
- Документация OpenWrt по SSH: https://openwrt.org/docs/guide-user/security/ssh
- Статья «Dropbear SSH: A Lightweight Alternative to OpenSSH» на Linux Journal (2015).
- Сравнительный анализ SSH-серверов для встраиваемых систем (IEEE Xplore, 2018).
- CVE-2018-15599: уязвимость в Dropbear (National Vulnerability Database).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →