Открыть сервис

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).

Туннелирование

Протоколы и шифрование

  • 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

ПараметрDropbearOpenSSH
Размер бинарника (MIPS)~100–150 КБ~500–800 КБ
Потребление RAM (активная сессия)~1–2 МБ~5–10 МБ
Поддержка SSH-1НетДа (устаревшая)
Встроенный SCPНетДа
Многофакторная аутентификацияНетДа (через PAM)
Поддержка сертификатовОграниченнаяПолная
Частота обновленийУмереннаяВысокая
ЛицензияMITBSD

Интересные факты

  • Название «Dropbear» происходит от австралийского выражения «drop bear» — мифического хищного сумчатого, якобы нападающего на туристов. Разработчик Мэтт Джонстон выбрал это имя как ироничную отсылку к «безопасности» (медведь, который «роняет» жертву).
  • Dropbear является официальным SSH-сервером в проекте OpenWrt с 2004 года.
  • В 2019 году в Dropbear была добавлена поддержка алгоритма Ed25519, который считается одним из самых безопасных и быстрых для цифровых подписей.
  • Исходный код Dropbear написан на C без использования сторонних библиотек (кроме LibTomCrypt), что делает его полностью самодостаточным.

Критика

Основные претензии к Dropbear связаны с его ограниченной функциональностью по сравнению с OpenSSH. Отсутствие встроенного SCP и ограниченная поддержка сложных туннелей (например, проброс Unix-сокетов) могут затруднить работу в сценариях, требующих расширенных возможностей. Кроме того, из-за меньшего сообщества пользователей и разработчиков, исправление некоторых уязвимостей может занимать больше времени, чем в OpenSSH.

Источники

  1. Официальный сайт проекта Dropbear: https://matt.ucc.asn.au/dropbear/dropbear.html
  2. Исходный код Dropbear на GitHub: https://github.com/mkj/dropbear
  3. Документация OpenWrt по SSH: https://openwrt.org/docs/guide-user/security/ssh
  4. Статья «Dropbear SSH: A Lightweight Alternative to OpenSSH» на Linux Journal (2015).
  5. Сравнительный анализ SSH-серверов для встраиваемых систем (IEEE Xplore, 2018).
  6. CVE-2018-15599: уязвимость в Dropbear (National Vulnerability Database).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →