Что такое usb bt донгл. Что такое Dongle? Что такое бокс

  • 04.11.2019

(ПО) и данных от копирования, нелегального использования и несанкционированного распространения.

Современные электронные ключи

Принцип действия электронных ключей . Ключ присоединяется к определённому интерфейсу компьютера. Далее защищённая программа через специальный драйвер отправляет ему информацию, которая обрабатывается в соответствии с заданным алгоритмом и возвращается обратно. Если ответ ключа правильный, то программа продолжает свою работу. В противном случае она может выполнять определенные разработчиками действия, например, переключаться в демонстрационный режим, блокируя доступ к определённым функциям.

Существуют специальные ключи, способные осуществлять лицензирования (ограничения числа работающих в сети копий программы) защищенного приложения по сети. В этом случае достаточно одного ключа на всю локальную сеть . Ключ устанавливается на любой рабочей станции или сервере сети. Защищенные приложения обращаются к ключу по локальной сети. Преимущество в том, что для работы с приложением в пределах локальной сети им не нужно носить с собой электронный ключ.

История

Защита ПО от нелицензионного пользования увеличивает прибыль разработчика. На сегодняшний день существует несколько подходов к решению этой проблемы. Подавляющее большинство создателей ПО используют различные программные модули, контролирующие доступ пользователей с помощью ключей активации, серийных номеров и т. д. Такая защита является дешёвым решением и не может претендовать на надёжность. Интернет изобилует программами, позволяющими нелегально сгенерировать ключ активации (генераторы ключей) или заблокировать запрос на серийный номер/ключ активации (патчи , крэки). Кроме того, не стоит пренебрегать тем фактом, что сам легальный пользователь может обнародовать свой серийный номер.

Эти очевидные недостатки привели к созданию аппаратной защиты программного обеспечения в виде электронного ключа. Известно, что первые электронные ключи (то есть аппаратные устройства для защиты ПО от нелегального копирования) появились в начале 1980-х годов, однако первенство в идее и непосредственном создании устройства, по понятным причинам, установить очень сложно.

Защита ПО с помощью электронного ключа

Комплект разработчика ПО

Донгл относят к аппаратным методам защиты ПО, однако современные электронные ключи часто определяются как мультиплатформенные аппаратно-программные инструментальные системы для защиты ПО. Дело в том, что помимо самого ключа компании, выпускающие электронные ключи, предоставляют SDK (Software Developer Kit - комплект разработчика ПО). В SDK входит все необходимое для начала использования представляемой технологии в собственных программных продуктах - средства разработки, полная техническая документация , поддержка различных операционных систем , детальные примеры, фрагменты кода, инструменты для автоматической защиты. Также SDK может включать в себя демонстрационные ключи для построения тестовых проектов.

Технология защиты

Защита с помощью автоматических средств

Для большинства семейств аппаратных ключей разработаны автоматические инструменты (входящие в SDK), позволяющие защитить программу «за несколько кликов мыши». При этом файл приложения «оборачивается» в собственный код разработчика. Реализуемая этим кодом функциональность варьируется в зависимости от производителя, но чаще всего код осуществляет проверку наличия ключа, контроль лицензионной политики (заданной поставщиком ПО), внедряет механизм защиты исполняемого файла от отладки и декомпиляции (например, сжатие исполняемого файла) и др.

Важно то, что для использования автоматического инструмента защиты не требуется доступ к исходному коду приложения. Например, при локализации зарубежных продуктов (когда отсутствует возможность вмешательства в исходный код ПО) такой механизм защиты незаменим, однако он не позволяет использовать весь потенциал электронных ключей и реализовать гибкую и индивидуальную защиту.

Реализация защиты с помощью функций API

Помимо использования автоматической защиты, разработчику ПО предоставляется возможность самостоятельно разработать защиту, интегрируя систему защиты в приложение на уровне исходного кода. Для этого в SDK включены библиотеки для различных языков программирования , содержащие описание функциональности API для данного ключа. API представляет собой набор функций, предназначенных для обмена данными между приложением, системным драйвером (и сервером в случае сетевых ключей) и самим ключом. Функции API обеспечивают выполнение различных операций с ключом: поиска, чтения и записи памяти, шифрования и расшифрования данных при помощи аппаратных алгоритмов, лицензирования сетевого ПО и т. д.

Умелое применение данного метода обеспечивает высокий уровень защищённости приложений. Нейтрализовать защиту, встроенную в приложение, достаточно трудно вследствие её уникальности и «размытости» в теле программы. Сама по себе необходимость изучения и модификации исполняемого кода защищенного приложения для обхода защиты является серьёзным препятствием к её взлому. Поэтому задачей разработчика защиты, в первую очередь, является защита от возможных автоматизированных методов взлома путём реализации собственной защиты с использованием API работы с ключами.

Обход защиты

Информации о полной эмуляции современных ключей Guardant не встречалось. Существующие табличные эмуляторы реализованы только для конкретных приложений. Возможность их создания была обусловлена неиспользованием (или неграмотным использованием) основного функционала электронных ключей разработчиками защит.

Так же отсутствует какая-либо информация о полной или хотя бы частичной эмуляции ключей LOCK, либо о каких-либо других способах обхода этой защиты.

Взлом программного модуля

Злоумышленник исследует логику самой программы, с той целью, чтобы, проанализировав весь код приложения, выделить блок защиты и деактивировать его. Взлом программ осуществляется с помощью отладки (или пошагового исполнения), декомпиляции и дампа оперативной памяти . Эти способы анализа исполняемого кода программы чаще всего используются злоумышленниками в комплексе.

Отладка осуществляется с помощью специальной программы - отладчика, который позволяет по шагам исполнять любое приложение, эмулируя для него операционную среду. Важной функцией отладчика является способность устанавливать точки (или условия) остановки исполнения кода. С помощью них злоумышленнику проще отслеживать места в коде, в которых реализованы обращения к ключу (например, остановка выполнения на сообщении типа «Ключ отсутствует! Проверьте наличие ключа в USB-интерфейсе»).

Дизассемблирование - способ преобразования кода исполняемых модулей в язык программирования, понятный человеку - Assembler . В этом случае злоумышленник получает распечатку (листинг) того, что делает приложение.

Декомпиляция - преобразование исполняемого модуля приложения в программный код на языке высокого уровня и получение представления приложения, близкого к исходному коду. Может быть проведена только для некоторых языков программирования (в частности, для.NET приложений, создаваемых на языке C# и распространяемых в байт-коде - интерпретируемом языке относительно высокого уровня).

Суть атаки с помощью дампа памяти заключается в считывании содержимого оперативной памяти в момент, когда приложение начало нормально исполняться. В результате злоумышленник получает рабочий код (или интересующую его часть) в "чистом виде" (если, к примеру, код приложения был зашифрован и расшифровывается только частично, в процессе исполнения того или иного участка). Главное для злоумышленника - верно выбрать момент.

Отметим, что существует немало способов противодействия отладке, и разработчики защиты используют их: нелинейность кода, (многопоточность), недетерминированную последовательность исполнения, «замусоривание» кода, (бесполезными функциями, выполняющими сложные операции, с целью запутать злоумышленника), использование несовершенства самих отладчиков и др.

Мастерскую по обслуживанию смартфонов и планшетов, как и любую другую мастерскую, сложно себе представить без паяльного или измерительного оборудования. Но главное место тут всегда занимают инструменты для программного ремонта: разблокировки, восстановления и прошивки. Именно они помогают мастеру разблокировать, прошить или оживить нерабочее устройство.

Давайте познакомимся с ними поближе.

БОКС

Что такое бокс?

Как выбрать?

Донглы также можно разделить на более универсальные, поддерживающие максимальное количество моделей популярных производителей и самые востребованные операции, и донглы, предназначенные для определенных устройств и операций.

Универсальные решения:

Специализированные решения:

Сброс FRP

Samsung и LG

СМАРТ-КАРТА

Что такое смарт-карта?

Смарт-карта используется для аутентификации вашей покупки и идентификации вашего устройства на сервере разработчика. Фактически она выглядит как обычная SIM-карта для мобильных телефонов. Смарт-карта рассчитана на хранение данных о версии прошивки, самой прошивки и другой специальной информации.


Структура чипа смарт-карты

Важно! Смарт-карта имеет ограниченное количество циклов записи информации. Обычно ПО предупреждает пользователя о необходимости обновления. Поэтому не обновляйте смарт-карту, если нет такой необходимости . Она может просто заблокироваться, и в результате вы больше не сможете использовать эту смарт-карту или даже бокс (всё зависит от разработчика бокс). Если не удается обновить смарт-карту, когда это требуется, лучше всего обратитесь в службу технической поддержки .

Что же выбрать: бокс или донгл?

Бокс подойдет, если:

  • необходимо подключение через COM-порт;
  • восстановление телефона возможно только при помощи JTAG или eMMC-интерфейса.

Донгл подойдет, если:

  • вы собираетесь работать с телефоном в рабочем состоянии;
  • вам необходимо провести разблокировку, прошивку, восстановление IMEI, удаление FRP;
  • ПК распознает телефон;
  • вы не собираетесь работать с аппаратной частью устройства.

В продолжении этой статьи вы узнаете о возможных ошибках и проблемах, возникающих при работе с донглами и боксами, и о том, как и обнаружить и устранить их причину.

Конечно, в России никто не использует слово «донгл», мы пользуемся более привычным «переходником». Но эта абсурдная ситуация, когда слово есть, но его не используют должна прекратиться. Тем более, что мы живём в мире, где донглы стали всепроникающим аспектом нашего существования.

Новые пользователи iPhone, которые не могут отказаться от разъема для наушников, являются обычными пользователями донглов. Многие используют стриминговые устройства, передающие изображения на телевизор - Microsoft Wireless Display Adapter или его аналоги. Даже Google теперь делает донглы, чтобы вы могли подключить свои наушники к Pixel 2.

Да, компания Google, которая совсем недавно объявляла об огромной приверженности к разработке устройств, использующих сложные технологии ИИ, также относится к бизнесу, занимающемуся созданием донглов. К тому же они делали Хромкаст.

Раз уж мы сами того не подозревая попали в общество, наполненное донглами, то это подходящий момент, чтобы подумать о происхождении такого глупого слова. Выражаясь простым языком, донгл добавляет функциональность другому устройству.

Однако слово «донгл» не новинка. Оно впервые появляется в печати в New Scientist, аж в 1981 году:

«Донгл - это дополнительная часть памяти, которая подключена к компьютеру, и без которой программа отказывается работать». Такое устройство подключалось к компьютеру Commodore Pet. Позже слово получило популярность и в какой-то момент вполне могло показаться новым – довольно обычное явление.

«То, что вы находите новым с большой вероятностью не является новым на самом деле», - сообщает лингвист и лексикограф Стэнфордского университета Сара Огилви изданию Mashable. «Многие новые слова имеют гораздо более старое происхождение, чем вы могли бы подумать».

Но что случилось около 40 лет назад, чтобы возникло такое любопытное слово?

«Что касается его фактического происхождения, я думаю, что это просто игривое изменение слова «dangle» (болтаться), - говорит лексикограф Бен Зиммер. Это объяснение кажется правдоподобным, так как донглы действительно часто болтаются. Также возможно, что слово «dongle» произошло от «dong» (язык колокола), который также естественно болтается.

Вам знакома проблема, когда в магазине вы говорите, что вам нужна «краска для принтера», а вам говорят, что «краски нет, есть только чернила»? Во избежание подобных случаев существует прекрасное слово донгл, которое мы должны максимально распространять для нашего же удобства. Когда мы захотим устройство, расширяющее функциональность чего-либо продавец или приятель всегда поймёт нас с полуслова.

Недавно знакомый попросил помочь. Ему изредка надо перекидывать документы\фото с мобильного, а на стационарном нет bluetooth. Все донглы, что он покупал в переходе и в магазинах либо не имели всех функций «из коробки», либо не имели драйверов вообще. Он просил найти ему нормальный «USB блутус без проблем и с драйверами».

Муки выбора не мой конёк. Выбрал на алиэкспрессе что-то фирменное, вида - «ORICO BTA-403-BK Mini Bluetooth 4.0 Adapter Support Windows8/Windows 7/ Vista/XP-Black».
Приехало за 17 дней с момента оплаты. Посылка отслеживалась, оплатил 2015-07-28, получил 2015-08-14. Приехало в почтовом пакетике с пупыркой.


Внутри оказался блистер с устройством. Нигде не помялся, выглядит отлично.






В итоге имеем само устройство и компакт-диск. Начнём с разбора.


Сборка плотная, по центру виднеется чип CSR 8510. Это довольно известная контора и подробные характеристики можно будет прочесть на официальном сайте Cambridge Silicon Radio.

Приведу основные характеристики:

Fully qualified Bluetooth v4.0 system
Dual-mode Bluetooth/Bluetooth low energy operation
HCI mode operation with full Bluetooth stack
HID proxy mode for boot mode support and stackless operation
High-sensitivity Bluetooth and Bluetooth low energy receiver
Class 1, Class 2 and Class 3 support without external power amplifier or TX/RX switch
Baseband processor running Bluetooth HCI firmware stack
Reference design with worldwide qualification
Green (RoHS compliant and no antimony or halogenated flame retardants)
Full-speed USB 2.0 interface
RFKill functionality for PCs (hardware and software radio enable controls)
WLAN coexistence interface
External EEPROM I2C interface
Integrated balun
Minimal external components required: 15 passives plus crystal
28-ball WLCSP package
On-chip synthesizer
Internal power regulation for self-contained operation from USB vbus for dongles
Selectable I/O voltage
Real-time signal strength indicator (RSSI)

На фото видно, что на плате имеется светодиод. Но пластиковый корпус непрозрачный, так что ёлочной гирлянды из компьютера не получится.

Перейдём к установке драйверов. На диске имеется установщик, после которого в системе появляется CSR Harmony Wireless Software Stack. В начале установки предлагается выбрать один из 30 языков, среди которых есть и русский. Далее выбираем «режим обнаружения», включение режима «SCMS-T» (какой-то метод защиты данных при передаче) и включать ли энергосбережение если у вас ноутбук.

После установки на компьютере в трее появляется синяя иконка, версия ПО от CSR - 2.1.63.0. Посмотрим на появившийся функционал. Русский язык немного улетучился, ну хоть китайский не появился. В настройках можно увидеть все сервисы, что умеет модуль.

Для проверки подключил телефон, гарнитуру и смартфон. Всё работает.



Долго думал, как протестировать. Решил сравнить с более старым bluetooth радио-модулем известной фирмы «Noname», стандарта v2.0+EDR на чипе CSR 41B13. Благо рабочая Windows 7 его распознает с минимальным функционалом.
Соперники разминаются.




В тестировании было решено определить скорость и дальнобойность обоих устройств, перекидывая файлы с компьютера на мобильный и обратно.
(на графике отображены скорости в мегабайтах в секунду, расстояния - в метрах)

Напоследок хочу показать ещё одну функцию драйвера этого устройства. Это возможность разблокирования компьютера при появлении поблизости определенного bluetooth устройства. К сожалению, не любого, а именно Bluetooth Low Energy Security Token. У меня такого нет, так что показываю настройки этой функции из описания, найденного с программой.



Я и раньше слышал о возможности привязать к разблокировке компьютера любое ваше bluetooth устройство. Это реализуется в MacOS, Chrome OS, Android и вариациях Linux. В Windows это можно реализовать сторонним ПО. К примеру, через утилитку Btprox, что на sourceforge.net. Но «из коробки» драйвера CSR признают только некий Bluetooth Low Energy Security Token, увы.


На этом всё. Надеюсь, помог в выборе.
(котейки нет, как-нибудь с оказией закажу на aliexpress)

Планирую купить +15 Добавить в избранное Обзор понравился +18 +36

Небольшого объёма, более сложные устройства могут иметь встроенный криптопроцессор (для аппаратной реализации шифрующих алгоритмов), часы реального времени. Аппаратные ключи могут иметь различные форм-факторы , но чаще всего они подключаются к компьютеру через LPT- или интерфейсу компьютера. Далее защищённая программа через специальный драйвер отправляет ему информацию, которая обрабатывается в соответствии с заданным алгоритмом и возвращается обратно. Если ответ ключа правильный, то программа продолжает свою работу. В противном случае она может выполнять любые действия, заданные разработчиками - например, переключаться в демонстрационный режим, блокируя доступ к определённым функциям.

Для обеспечения безопасности сетевого ПО служат специальные электронные ключи. Для защиты и лицензирования (ограничения числа работающих в сети копий программы) сетевого продукта достаточно одного ключа на всю локальную сеть . Ключ устанавливается на любой рабочей станции или сервере сети.

Многие компании, работающие в области защиты информации , предлагают свой взгляд на то, каким должен быть электронный ключ. На российском рынке наиболее известны следующие линейки продуктов (в алфавитном порядке): Guardant от компании «Актив», SenseLock от Seculab, Sentinel от SafeNet и др.

История

Защита ПО от нелицензионного пользования увеличивает прибыль разработчика. На сегодняшний день существует несколько подходов к решению этой проблемы. Подавляющее большинство создателей ПО используют различные программные модули, контролирующие доступ пользователей с помощью ключей активации, серийных номеров и т. д. Такая защита является дешёвым решением и не может претендовать на надёжность. Интернет изобилует программами, позволяющими нелегально сгенерировать ключ активации (генераторы ключей) или заблокировать запрос на серийный номер/ключ активации (патчи , крэки). Кроме того, не стоит пренебрегать тем фактом, что сам легальный пользователь может обнародовать свой серийный номер.

Эти очевидные недостатки привели к созданию аппаратной защиты программного обеспечения в виде электронного ключа. Известно, что первые электронные ключи (то есть аппаратные устройства для защиты ПО от нелегального копирования) появились в начале 1980ых годов, однако первенство в идее и непосредственном создании устройства по понятным причинам установить очень сложно. По одной из версий идея заставить программу определенным образом опрашивать аппаратный блок и работать только в его присутствии родилась в голове инженера Дэна Максвелла ещё в начале 70ых годов, а в 1982 году созданная Дэном компания начала выпуск ключа SecuriKey для IBM PC (ключ подключался к компьютеру через параллельный порт). По другой версии первый в мире электронный ключ, получивший название, разработала немецкая компания FAST Electronic (впоследствии FAST Electronic была куплена компанией Aladdin, тоже претендующей на первенство в этой области со своими аппаратными ключами HASP). Так или иначе, первые электронные ключи были далеки от совершенства и сильно изменились с того времени.

Защита ПО с помощью электронного ключа

Комплект разработчика ПО

Донгл относят к аппаратным методам защиты ПО, однако современные электронные ключи часто определяются как мультиплатформенные аппаратно-программные инструментальные системы для защиты ПО. Дело в том, что помимо самого ключа компании, выпускающие электронные ключи, предоставляют SDK входит все необходимое для начала использования представляемой технологии в собственных программных продуктах - средства разработки, полная техническая документация , поддержка различных операционных систем , детальные примеры, фрагменты кода. Также SDK может включать в себя демонстрационные ключи для построения тестовых проектов.

Технология защиты

Технология защиты от несанкционированного использования ПО построена на реализации запросов из исполняемого файла или

  • проверка наличия подключения ключа;
  • считывание с ключа необходимых программе данных в качестве параметра запуска;
  • запрос на расшифрование данных или исполняемого кода, необходимых для работы программы (предварительно разработчик защиты шифрует часть кода программы и, понятно, непосредственное выполнение такого зашифрованного кода приводит к ошибке);
  • проверка целостности исполняемого кода путём сравнения его текущей контрольной суммы с оригинальной контрольной суммой, считываемой с ключа;
  • запрос к встроенным в ключ часам реального времени (при их наличии) и т. д.

Стоит отметить, что некоторые современные ключи (ключи Senselock от Seculab, Rockey6 Smart от Feitian) позволяют разработчику хранить отдельные части кода приложения (например, недетерминированные специфические алгоритмы разработчика, получающие на вход большое число параметров) и исполнять их в самом ключе на его собственном микропроцессоре . Помимо защиты ПО от нелегального использования такой подход позволяет защитить используемый в программе алгоритм от изучения и клонирования конкурентами.

Как следует из вышесказанного, «сердцем» электронного ключа является шифрующий алгоритм. Тенденция состоит в том, чтобы реализовывать его аппаратно - это затрудняет создание полного эмулятора ключа, так как ключ шифрования никогда не передается на выход донгла, что исключает возможность его перехвата.

Алгоритм шифрования может быть секретным или публичным. Секретные алгоритмы разрабатываются самим производителем средств защиты, в том числе и индивидуально для каждого заказчика. Главным недостатком использования таких алгоритмов является невозможность оценки криптографической стойкости . С уверенностью сказать, насколько надёжен алгоритм, можно было лишь постфактум: взломали или нет. Публичный алгоритм, или «открытый исходник», обладает криптостойкостью несравнимо большей. Такие алгоритмы проверяются не случайными людьми, а рядом экспертов, специализирующихся на анализе криптографии . Примерами таких алгоритмов могут служить широко используемые ГОСТ 28147-89 , RSA, Elgamal и др.

Реализация защиты с помощью автоматических средств

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

Важно то, что для использования автоматического инструмента защиты не требуется доступ к исходному коду приложения. Например, при локализации зарубежных продуктов (когда отсутствует возможность вмешательства в исходный код ПО) такой механизм защиты незаменим, однако он не позволяет реализовать надёжную, гибкую и индивидуальную защиту.

Реализация защиты с помощью функций API

Помимо использования автоматической защиты, разработчику ПО предоставляется возможность самостоятельно разработать защиту, интегрируя систему защиты в приложения на уровне исходного кода. Для этого в SDK включены языков программирования, содержащие описание функциональности API для данного ключа. API представляет собой набор функций, предназначенных для обмена данными между приложением, системным драйвером (и сервером в случае сетевых ключей) и самим ключом. Функции API обеспечивают выполнение различных операций с ключом: поиска, чтения и записи памяти, шифрования и расшифрования данных при помощи аппаратных алгоритмов, лицензирования сетевого ПО и т. д.

Умелое применение данного метода обеспечивает достаточно высокий уровень защищённости приложений. Нейтрализовать защиту, встроенную в приложение, достаточно трудно вследствие её «размытости» в теле программы.

Обход защиты

Эмуляция ключа

Взлом программного модуля

Злоумышленник исследует логику самой программы, с той целью, чтобы, проанализировав весь код приложения, выделить блок защиты и деактивировать его. Взлом программ осуществляется с помощью отладки (или пошаговое исполнение), декомпиляции и дампа оперативной памяти . Эти способы анализа исполняемого кода программы чаще всего используются злоумышленниками в комплексе.

Отладка осуществляется с помощью специального ПО - отладчика, который позволяет по шагам исполнять любое приложение, эмулируя для него операционную среду. Важной функцией отладчика является способность устанавливать точки или условия остановки исполнения кода. С помощью них злоумышленнику проще отслеживать места в коде, которые реализуют обращение к ключу (например, остановка выполнения на сообщении типа «Ключ отсутствует! Проверьте наличие ключа в USB-интерфейсе»).

Дизассемблирование - это способ преобразования исполняемых модулей в язык программирования, понятный человеку - Assembler . В этом случае злоумышленник получает распечатку (листинг) того, что делает приложение.

Суть атаки с помощью дапма памяти заключается в следующем. Специальные программы (дамперы) считывают содержимое оперативной памяти на тот момент, когда приложение начало нормально исполняться, и злоумышленник получает рабочий код (или интересующую его часть) в чистом виде. Главное для злоумышленника - верно выбрать этот момент. К примеру, часть кода появляется в оперативной памяти в открытом виде только на время своего исполнения, обратно зашифровываясь по завершению.