Usb receiver logitech что это
Опыт подключения приёмника Logitech Unifying к интерфейсу M.2
Всего два порта USB на ноутбуке, которые постоянно нужны в работе, желание пользоваться не тачпадом, а любимой беспроводной мышкой и простаивающий без дела порт M.2 заставили решить небольшую техническую задачу: как подключить приёмник Logitech Unifying к интерфейсу M.2
Постановка задачи
Имеется свободный интерфейсный порт M.2 с ключом «B» и я хочу подключить к нему устройство со стандартным интерфейсом USB2. Задача, очевидно, решаемая, так как в составе M.2 есть USB2, но обещает некоторые сложности. Во-первых, на M.2 нет напряжения 5 вольт для питания USB-устройств. Во-вторых, у меня ноутбук Lenovo, BIOS которого проверяет все устройства M.2 на соответствие «белому списку», и, в-третьих, очень плотная компоновка деталей ноутбука, внутри корпуса практически нет свободного места даже для такой небольшой детали как приёмник беспроводной мышки.
Подготовка и макет
Первый вопрос – нужен ли DC-DC преобразователь для повышения напряжения с 3,3 до 5 вольт для питания адаптера Unifying? Простой эксперимент показал, что адаптер устойчиво работает при напряжении 3 вольта. (Потребляемый ток при этом составил 30mA). Ответ – DC-DC преобразователь не нужен.
Далее понадобилась печатная плата для установки в разъём M.2. Возможности изготовить плату не было, взял готовую. Нашлась плата с ключом «M», для установки в разъём пришлось сделать прорезь ключа «B». Разные ключи M.2 задают принципиально разное назначение контактов разъёма. Внимательно проверил, что не происходит ничего плохого, например, попадания линий питания на землю.
Примечания по нумерации контактов в разъёме M.2
Расположение контактов двухстороннее, ряды контактов противоположных сторон смещены относительно друг друга на полшага. По верхней стороне (обращенной к нам при установке адаптера в разъём) идут нечётные контакты, по нижней стороне – четные. На верхней, “нечётной” стороне контактов на один больше, чем на нижней.
На фото видны оригинальный ключ «M» и самодельный ключ «B»
Линии данных USB “Data+” и “Data-“ в разъёме “B” находятся на 7-м и 9-м контактах, соответственно. После подсоединения к ним (первоначально тестового, с помощью проводов, без монтажа на плате, со внешним источником питания на 3 вольта) адаптер Unifying сразу заработал. Но, при загрузке системы с подключенным адаптером были получены два сообщения об ошибках (тесты проводились на Lenovo x250):
1802: Unauthorized network card is plugged in – Power off and remove the network card (046D/C52B)
2101: Detection error on SSD1 (M.2)
Появление первой ошибки было ожидаемо, а вот вторая оказалась сюрпризом. Выяснилось, что замыкание на землю контактов 1, 21, 69, 75 указывает системе на тип устройства M.2. На моей плате на земле были 1, 21, 75. После их отключения вторая ошибка исчезла.
Подключение к контактам 7, 9 и отключенные линии-индикаторы типа устройства
Чтобы устранинить ошибку “белого списка” существует радикальное средство – патч на BIOS. Трогать BIOS не хотелось, просто решил подавать питание на устройство с некоторой задержкой, после того как BIOS завершит все свои проверки.
Для задержки подачи питания была применена простая схема на таймере 555. Кстати, таймеру так же требуется напряжение питания 5 вольт, но на практике он отлично работает при 3 вольтах.
Реле выбиралось по принципу «что есть прямо сейчас». Приёмник Unifying потребляет очень небольшой ток и, видимо, подойдёт любое миниатюрное реле, срабатывающее при напряжении около 2 вольт. Я использовал CPC1008N, номинал резистора R2 для него выбрал 1,2КОм.
На первый взгляд, можно обойтись без реле и подключить приёмник прямо на выход таймера. Такой вариант проверялся, но это не работает. На таймере падает примерно 0,6 вольта, а оставшихся 2,7 приёмнику уже не хватает.
Время срабатывания таймера при включении по такой схеме задаётся элементами R1 и С1. На множестве ресурсов в сети приведена формула T = 1.1*R*C (время в секундах, сопротивление в омах, емкость в фарадах). При С=10мкФ и R=750КОм задержка составляет около 8 секунд. Время выбиралось из соображения, чтобы гарантированно пропустить проверки BIOS, но, чтобы задержка до появления мышки после выхода компьютера из спящего режима была не слишком большой.
Тестирование на макете показало полную работоспособность схемы. Нерешенным остался вопрос, как быть при перезагрузке компьютера без выключения. Питание с M.2 при этом не снимается, таймер не сбрасывается, приёмник остается подключенным к USB и при загрузке возникает ошибка. Возможно, в процессе перезагрузки активируется один из выведенных на разъем M.2 сигналов RESET и их можно использовать для сброса таймера… Вопрос остался неисследованным.
Позже, уже в процессе пользования, стало заметно, что задержка 8 секунд маловата, лучше было сделать примерно секунд 10-11. Дело в том, что при загрузке с подключенными USB-накопителями время определения устройств увеличивается и BIOS успевает обнаружить «незаконное» устройство. И, например, для возможности загрузки с флешки пришлось установить USB-диск первым в списке загрузочных устройств на постоянно, так как стало не хватать времени, на вызов меню выбора временного загрузочного диска.
Электропитание
Для ключа “B” питание +3,3 вольта подается на контакты 2, 4, 70, 72, 74. “Земля” находится на контактах 3, 5, 11, 27, 33, 39, 45, 51, 57, 71, 73. Видно, что все “плюсовые” контакты на “чётной”, нижней стороне платы, “минусовые” – на “нечётной”, верхней.
Размещение “земли” почти совпадало с той платой, что была в моём распоряжении, а вот контакты питания 70, 72, 74 понадобилось восстанавливать (и выводить с нижней стороны платы на верхнюю).
Монтаж
Приёмник Unifying пришлось разобрать. Была идея обойтись без разборки и просто подключить его в разъем, который будет спрятан где-то внутри корпуса, но, в итоге, решил смонтировать его прямо на плату M.2.
Несколько фото процесса разборки приёмника.
Расположение деталей на плате приёмника Unifying двухстороннее и просто установить такую “микросборку” на свою плату не выйдет. Здесь очень помогает его родная пластиковая подложка из разъема USB. Плата приёмника была прикреплена к подложке с помощью кольца из “термоусадки”, а сама подложка приклеена к плате M.2. Получилось довольно надёжное крепление. Дополнительно плату приёмника удерживают провода питания.
Как видно на фото ниже, в габарит по высоте конструкция вписалась идеально. Работает нормально, пользуюсь.
Берегите ваши донглы: исследование безопасности ресивера клавиатур Logitech
Так исторически сложилось, что большинство сотрудников пользуются беспроводными клавиатурами и мышами фирмы Logitech. В очередной раз вводя свои пароли, мы – специалисты команды Raccoon Security – задались вопросом: насколько сложно обойти механизмы защиты беспроводных клавиатур? Проведенное исследование выявило архитектурные недостатки и программные ошибки, которые позволяют получить доступ к вводимым данным. Под катом – что у нас получилось.
Почему Logitech?
На наш взгляд, устройства ввода компании Logitech являются одними из самых качественных и удобных. Большинство имеющихся у нас устройств основаны на решении Logitech Unifying – это универсальный донгл-приемник, позволяющий подключать до 6 устройств. Все совместимые с технологией Logitech Unifying устройства маркируются соответствующим логотипом. Простое в использовании приложение позволяет управлять подключением беспроводных клавиатур к компьютеру. Подробно процесс подключения клавиатуры к донглу-приемнику Logitech, как и сама технология, освещены, например, здесь.
Донгл-приемник с поддержкой Logitech Unifying
Клавиатура может стать источником информации для злоумышленников. Компания Logitech, учитывая возможную угрозу, позаботилась о безопасности – применила алгоритм шифрования AES128 в радиоканале беспроводной клавиатуры. Первая мысль, которая может посетить злоумышленника при таком раскладе, – перехват ключевой информации при ее передаче по радиоканалу в процессе процедуры связывания. Ведь при наличии ключа можно перехватывать радиосигналы клавиатуры и расшифровывать их. Однако пользователю очень редко (или даже никогда) приходится связывать клавиатуру Unifying-процедурой, и хакеру со сканирующим радиоприемником придется долго ждать. Кроме того, не все так просто обстоит и с самим процессом перехвата. В последнем исследовании в июне 2019 года эксперт по безопасности Маркус Менгс опубликовал в сети сообщение об обнаружении уязвимости в старых прошивках USB-донглов Logitech. Она позволяет злоумышленникам с физическим доступом к устройствам получать ключи шифрования радиоканала и инжектировать нажатия клавиш (CVE-2019-13054).
Мы расскажем про наше исследование безопасности донгла Logitech на базе SoC NRF24 от Nordic Semiconductor. А начнем, пожалуй, с самого радиоканала.
Как «летят» данные в радиоканале
Для частотно-временного анализа радиосигнала мы использовали SDR-приемник на базе устройства Blade-RF в режиме анализатора спектра (об этом также можно почитать здесь).
Устройство SDR Blade-RF
Мы также рассмотрели возможность записи квадратур радиосигнала на промежуточной частоте, чтобы затем проанализировать их с применением методов цифровой обработки сигналов.
Государственной комиссией по радиочастотам в Российской Федерации разрешен к использованию устройствами малого радиуса действия диапазон частот 2400–2483,5 МГц. Это очень «населенный» диапазон, в котором чего только не встретишь: Wi-Fi, Bluetooth, всевозможные пульты ДУ, охранные системы, беспроводные извещатели, мыши с клавиатурами и другие беспроводные цифровые устройства.
Спектр участка диапазона 2,4 ГГц
Помеховая обстановка в диапазоне достаточно сложная. Но несмотря на это компания Logitech смогла обеспечить надежный и устойчивый прием с помощью использования протокола Enhanced ShockBurst в трансивере NRF24 в сочетании с алгоритмами частотной адаптации.
Каналы в диапазоне размещены в позициях целых значений МГц, как определено в спецификации NRF24 Nordic Semiconductor – всего 84 канала в сетке частот. Число одновременно используемых Logitech частотных каналов, конечно, меньше. Мы выявили использование как минимум четырех. Из-за ограниченной полосы обзора применяемого анализатора спектра сигналов точный список используемых частотных позиций определить не удалось, но в этом и не было необходимости. Информация от клавиатуры к донглу-приемнику передается в режиме Burst (короткими включениями трансмиттера) с использованием двухпозиционной частотной модуляции GFSK на символьной скорости 1 Мбод:
Радиосигнал клавиатуры во временном представлении
Ресивер использует корреляционный принцип приема, поэтому в составе передаваемого пакета присутствуют преамбула и адресная часть. Помехоустойчивое кодирование не применяется, тело данных шифруется алгоритмом AES128.
В общем, радиоинтерфейс беспроводной клавиатуры Logitech можно характеризовать как полностью асинхронный со статистическим уплотнением и частотной адаптацией. Это означает, что трансмиттер клавиатуры переключает канал для передачи каждого нового пакета. Приемнику неизвестны заранее ни время передачи, ни частотный канал, а известен только их список. Приемник и передатчик встречаются в канале благодаря согласованным алгоритмам обхода и прослушивания частот, а также механизмам подтверждений Enhanced ShockBurst. Мы не исследовали, является ли список каналов статическим. Вероятно, его изменение обусловлено алгоритмом частотной адаптации. Что-то близкое к методу ППРЧ (псевдослучайная перестройка рабочей частоты) угадывается в использовании частотного ресурса диапазона.
Таким образом, в условиях частотно-временной неопределенности для гарантированного приема всех сигналов клавиатуры злоумышленнику понадобится контролировать в постоянном режиме всю сетку частот диапазона из 84 позиций, что требует значительных временных затрат. Здесь становится понятно, почему уязвимость извлечения ключа через USB (CVE-2019-13054) в источниках позиционируется как возможность инжектирования нажатий клавиши, а не получения доступа злоумышленника к вводимым с клавиатуры данным. Очевидно, что радиоинтерфейс беспроводной клавиатуры устроен достаточно сложно и обеспечивает надежную радиосвязь между устройствами Logitech в условиях сложной помеховой обстановки в диапазоне 2,4 ГГц.
Взгляд на проблему изнутри
Для исследования мы выбрали одну из имеющихся у нас клавиатур Logitech K330 и донгл Logitech Unifying.
Заглянем внутрь клавиатуры. Интересный для исследования элемент на плате – чип SoC NRF24 от Nordic Semiconductor.
SoC NRF24 на плате беспроводной клавиатуры Logitech K330
Прошивка размещена во внутренней памяти, механизмы чтения и отладки выключены. К сожалению, прошивка в открытых источниках не опубликована. Поэтому мы решили подойти к проблеме с другой стороны – изучить внутреннее содержание донгл-приемника Logitech.
«Внутренний мир» донгл-приемника устроен достаточно интересно. Донгл легко разбирается, несет на борту знакомый нам NRF24 в релизе со встроенным USB-контроллером и может быть перепрограммирован как со стороны USB, так и непосредственно программатором.
Донгл Logitech без корпуса
Поскольку существует штатный механизм обновления прошивки с использованием приложения Firmware Update Tool (из которого можно извлечь обновленную версию прошивки), искать прошивку внутри донгла нет необходимости.
Что было выполнено: из тела приложения Firmware Update Tool была извлечена прошивка RQR_012_005_00028.bin. Для проверки ее целостности контроллер донгла был подключен шлейфом к программатору ChipProg-48:
Шлейф подключения донгла Logitech к программатору ChipProg 48
Для контроля целостности прошивки она была успешно размещена в памяти контроллера и заработала корректно, клавиатура и мышь были подключены к донглу через Logitech Unifying. Возможна заливка модифицированной прошивки с помощью штатного механизма обновления, т. к. каких-либо механизмов криптографической защиты прошивки не предусмотрено. Мы же в целях исследования использовали физическое подключение к программатору, поскольку так проводить отладку гораздо быстрее.
Исследование прошивки и атака на пользовательский ввод
Чип NRF24 спроектирован на основе вычислительного ядра Intel 8051 в традиционной гарвардской архитектуре. Для ядра трансивер выступает в качестве периферийного устройства и размещен в адресном пространстве как набор регистров. Документацию на чип и примеры исходных текстов можно найти в Интернете, поэтому дизассемблирование прошивки не представляет трудности. В ходе реверс-инжиниринга мы локализовали функции получения данных о нажатиях клавиш из радиоканала и преобразования их в формат HID для передачи на хост по USB-интерфейсу. В свободных адресах памяти был размещен код инъекции, в который вошли инструменты перехвата управления, сохранения и восстановления оригинального контекста исполнения, а также функциональный код.
Принятый донглом из радиоканала пакет нажатия или отпускания клавиши дешифруется, преобразуется в стандартный HID-репорт и направляется в USB-интерфейс как от обычной клавиатуры. В рамках исследования для нас наибольший интерес представляет часть HID-репорта, содержащая байт флагов-модификаторов и массив из 6 байт с кодами нажатий клавиш (для справки информация о HID здесь).
Непосредственно перед передачей HID-структуры на хост инжектированный код получает управление, копирует в памяти 8 байт нативных HID-данных и отправляет их на побочный радиоканал в открытом виде. В коде это выглядит так:
Побочный канал организуется на установленной нами частоте с определенными характеристиками скорости манипуляции и структуры пакета.
Работа трансивера в чипе NRF24 основана на графе состояний, в который органично вписан протокол Enhanced ShockBurst. Мы выяснили, что непосредственно перед передачей HID-данных в USB-интерфейс хоста трансивер находился в состоянии IDLE. Это делает возможным его безопасное переконфигурирование для работы в побочном канале. Инжектированный код перехватывает управление, сохраняет оригинальную конфигурацию трансивера в полном объеме и переводит его в новый режим передачи на побочный канал. Механизм подтверждений Enhanced ShockBurst в этом режиме выключен, HID-данные в открытом виде передаются в радиоэфир. Структура пакета в побочном канале представлена на рисунке ниже, эпюры сигнала получены после демодуляции и до восстановления тактовой синхронизации данных. Значение адреса выбрано для удобства визуальной идентификации пакета.
Демодулированный сигнал Burst-пакета в побочном канале
После завершения передачи пакета в побочный канал инжектированный код восстанавливает состояние трансивера. Теперь он снова готов к работе в штатном режиме в контексте оригинальной прошивки.
В частотной и частотно-временной областях побочный канал выглядит так, как показано на рисунке:
Спектральное и частотно-временное представление побочного канала
Для проверки работы чипа NRF24 с измененной прошивкой мы собрали стенд, в который вошли Logitech-донгл с модифицированной прошивкой, беспроводная клавиатура и приемник, собранный на базе китайского модуля с чипом NRF24.
Схема перехвата радиосигнала беспроводной клавиатуры Logitech
Модуль на базе NRF24
На стенде при нормальной работе клавиатуры после подключения ее к донглу Logitech мы наблюдали передачу открытых данных о нажатиях клавиш в побочном радиоканале и нормальную передачу шифрованных данных в основном радиоинтерфейсе. Таким образом, нам удалось обеспечить прямой перехват клавиатурного ввода пользователя:
Результат перехвата клавиатурного ввода
Инжектированный код вносит небольшие задержки в работу прошивки донгла. Однако они слишком малы для того, чтобы пользователь мог их заметить.
Как вы понимаете, для такого вектора атаки можно использовать любую клавиатуру Logitech, совместимую с технологией Unifying. Поскольку атака направлена на приемник Unifying, который входит в комплект большинства клавиатур Logitech, то она не зависит от конкретной модели клавиатуры.
Заключение
Полученные результаты исследования подталкивают к мысли о возможном использовании рассмотренного сценария злоумышленниками: если хакер заменит жертве донгл-приемник для беспроводной клавиатуры Logitech, то он сможет узнать пароли к учетным записям жертвы со всеми вытекающими последствиями. Не стоит забывать о том, что инжектировать нажатие клавиш тоже возможно, а значит, выполнить произвольный код на компьютере жертвы не представляет трудности.
А если вдруг злоумышленник сможет удаленно модифицировать прошивку любого Logitech-донгла через USB? Тогда из близко расположенных донглов можно сложить сеть ретрансляторов и увеличить дистанцию утечки. Хотя «финансово обеспеченному» злоумышленнику современные средства радиоприема с высокоселективными системами, чувствительными радиоприемниками с малым временем перестройки частоты и узконаправленными антеннами позволят «слушать» клавиатурный ввод и нажимать клавиши даже из соседнего здания.
Профессиональное оборудование для радиоприема
Поскольку беспроводной канал передачи данных клавиатуры Logitech достаточно хорошо защищен, найденный вектор атаки требует наличия физического доступа к ресиверу, что сильно ограничивает атакующего. Единственным вариантом защиты в данном случае могло бы быть использование механизмов криптографической защиты для прошивки ресивера, например проверка подписи загружаемой прошивки на стороне ресивера. Но, к сожалению, NRF24 это не поддерживает и в рамках текущей архитектуры устройства реализовать защиту невозможно. Так что берегите ваши донглы, ведь описанный вариант атаки требует физического доступа к ним.
Raccoon Security – специальная команда экспертов НТЦ «Вулкан» в области практической информационной безопасности, криптографии, схемотехники, обратной разработки и создания низкоуровневого программного обеспечения.
Добро пожаловать в службу поддержки Logitech
Для данного продукта пока нет загружаемых файлов
Для данного продукта пока нет вопросов и ответов
Для данного продукта пока нет запасных частей
USB-приемник Unifying может быть сопряжен максимум с шестью устройствами Unifying одновременно. Совместимость устройств Logitech с технологией Unifying можно определить по этой эмблеме:
Чтобы подключить устройства Unifying к USB-приемнику Unifying, выполните следующие действия.
Запустите программу Logitech Unifying.
ПРИМЕЧАНИЕ. Если эта программа еще не установлена, ее можно скачать на соответствующей странице файлов для загрузки.
Macintosh: Application / Utilities / Logitech Unifying Software (Приложения / Служебные программы / ПО Logitech Unifying)
В нижней части окна приветствия нажмите кнопку Next (Далее).
ПРИМЕЧАНИЕ. В данных инструкциях используются снимки экрана для ОС Windows. Для Macintosh окна будут выглядеть несколько иначе, но инструкции остаются такими же.
При появлении окна Restart the device. (Перезапустить устройство. ) следуйте инструкциям на экране, чтобы выключить и снова включить устройство.
При обнаружении устройства появится подтверждающее сообщение We have detected your… (Обнаружено устройство…). Если подключено одно из следующих устройств, выполните указанные ниже действия.
Клавиатура Введите тестовое сообщение в соответствующем поле, чтобы убедиться в ее работоспособности.
Мышь Перемещайте ее, чтобы убедиться в соответствующем перемещении указателя мыши.
Если связь с устройством успешно установлена, нажмите кнопку Yes (Да), а затем — кнопку Next (Далее).
Если устройство не работает сразу, подождите минуту и проверьте, установлена ли связь с устройством. Если связь не установлена, выберите значение No (Нет), а затем нажмите кнопку Next (Далее) для перезапуска процесса установления связи, начиная с шага 1 выше.
Щелкните Finish (Готово) для выхода из программы Logitech Unifying Software или Pair Another Device (Сопряжение с другим устройством) для подключения дополнительных устройств. Теперь соединение с устройством должно быть установлено.
Ознакомиться с гарантией Logitech можно здесь