Что такое Dongle? Что такое донгл

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

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

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

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

История

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

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

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

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

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

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

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

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

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

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

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

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

Обход защиты

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

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

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

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

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

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

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

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

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

Небольшого объёма, более сложные устройства могут иметь встроенный криптопроцессор (для аппаратной реализации шифрующих алгоритмов), часы реального времени. Аппаратные ключи могут иметь различные форм-факторы , но чаще всего они подключаются к компьютеру через 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 . В этом случае злоумышленник получает распечатку (листинг) того, что делает приложение.

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

Каждая технология (не обязательно компьютерная) за время своего существования переживает три этапа: стадия разработки и внедрения, стадия массового практического использования и стадия вытеснения с рынка конкурирующими разработками. Иногда технологии «везет»: первая стадия проходит очень быстро, зато вторая длится много-много лет, а третья проистекает настолько нехотя и плавно, что ее даже трудно иногда заметить. Особенно хорошо в этом плане чувствуют себя наиболее простые разработки, к тому же поддержанные одной мощной компанией, оказывающей большое влияние на рынок (впрочем, на компьютерном рынке сейчас второе куда важнее, чем первое, особенно с учетом того, что для примитивных вещей «экологическая ниша» очень сильно ограничена). Зато трудно приходится сложным и, вроде бы, интересным и полезным технологиям, которые продвигают сообща. Особенно плохо становится технологии, если, не успев занять серьезного места на рынке, она получает себе конкурента первой категории. Яркий пример такого случая — Bluetooth. Еще в 1998 году целых пять крупных компаний занялись созданием новой технологии беспроводной связи. И имена, вроде бы громкие — Intel, IBM, Toshiba, Ericsson и Nokia, и необходимость в новых решениях назрела… Заодно и целый консорциум создали, и даже что-то разработали. Буквально через три года стадия разработки закончилась — пора было внедрять и использовать. Огромное количество фирм анонсировали свои беспроводные устройства с поддержкой новой технологии. Впрочем, конкуренты тогда уже маячили на горизонте (и наиболее сильный из них — стандарт IEEE 802.11), однако все они были куда более сложными, а, следовательно, не необходимыми для многих сфер применения и существенно более дорогими либо наоборот — более слабыми технически. Так что, казалось, Bluetooth ожидало великолепное будущее. О настрое тех лет можно не рассказывать — достаточно прочитать две статьи (эту или эту), опубликованные на нашем сайте в один погожий апрельский денек 2001 года (в них, кстати, и сама технология неплохо описана, так что на этом вопросе я заострять внимание тоже не буду). В общем, веселится и ликует весь народ:)

Действительность оказалась куда более неприятной. У семи нянек, как положено, дитя оказалось если и не без глаза, то слабослышащим точно — выпущенные разными фирмами устройства страдали сильной некоммуникабельностью по отношению друг к другу. Кое-какие разработки так и не удалось «довести до ума», в результате многие интересные устройства, которые даже показали в прототипах на CeBIT 2001, на широком рынке не проявились. Добавила проблем для продвижения нового стандарта и компания Microsoft — в Windows XP официальной поддержки Bluetooth не появилось, драйверы устройств до сих пор не сертифицированы, а поскольку одной из целей разработки технологии была именно связь мобильных устройств с персональными компьютерами (а не только друг с другом), производителям пришлось задуматься еще сильнее. В соответствующих условиях в глубокую задумчивость впали и производители чипсетов для материнских плат: Bluetooth так и остался дополнительным оборудованием для РС. Так ни шатко, ни валко прошел еще один год. Старт начал затягиваться — вместо того, чтобы вовсю использовать новую технологию, мы продолжали наблюдать за попытками производителей наконец-то все доделать. Впрочем, начиная с 2002-го года использовать Bluetooth уже было можно… но нужно ли? Выбор устройств был достаточно узким, цены — высокими, так что исправление проблем с совместимостью было лишь частью дела (о том, как вообще обстояла ситуация некоторое впечатление можно получить из этой статьи).

А 802.11 тем временем взрослел и дешевел. Более того — соответствующие адаптеры стали штатной принадлежностью некоторых компьютеров (от Apple в частности). И другие компании начали задумываться, что возможности лишними не бывают, если за них не нужно слишком много платить. Сильнейший удар в спину своего детища нанесла компания Intel в этом году: одной из трех основных составляющих новой платформы Centrino является беспроводная радиосвязь… по стандарту 802.11. И фирму можно понять: данный протокол лучше подходит для построения сетей компьютеров, в которые нужно интегрироваться портативному ПК, нежели Bluetooth, да и с остальными обязанностями он справляется не хуже. Какой протокол беспроводной связи компания реализует в чипсетах для настольных компьютеров теперь уже вопрос риторический. Остальные производители вряд ли отстанут от Intel — они и так все наперегонки бегают: кто больше возможностей реализует. Несложно предугадать и то, какой вариант выберут пользователи: приобрести, например, сотовый телефон с поддержкой Bluetooth и самому решать вопросы обеспечения его работы с компьютером или заплатить пусть даже несколько больше за трубку с Wi-Fi, но уже не решать никаких проблем (разве что с энергопотреблением, но и с этим что-нибудь сделают) и ничего не докупать для компьютера (особенно, если они уже успели полюбоваться на пляски с бубнами в исполнении энтузиастов Bluetooth). И началось… Пошли анонсы портативных адаптеров Wi-Fi для уже выпущенных моделей портативной техники и собственно сама техника со встроенной поддержкой протокола. Ну а почему бы и нет? По крайней мере, тут уже Microsoft не против, да и один из производителей чипсетов ставку на технологию сделал, так что с кем «коннектиться» будет. Так Bluetootth внезапно из первой стадии перекочевал в третью.

А что же использование? Неужели никто так и не успел приобщиться к новой технологии беспроводной связи, кроме энтузиастов? Ну, не совсем так. В конце концов, пока адаптер с Wi-Fi есть не в каждом компьютере, а телефон с ним вообще не купишь. В то же время моделей с поддержкой Bluetooth на рынке уже масса, причем по весьма привлекательным ценам (телефон, например, можно купить менее чем за 100 долларов). Таким образом, если вам уже сегодня нужен более удобный способ связи различных устройств, нежели инфракрасный порт или, тем более, различные кабели, то вполне есть смысл обратить свое внимание на Bluetooth. А что для этого нужно сделать? Как минимум, приобрести соответствующий адаптер для компьютера. Наиболее оптимальным, на мой взгляд, является адаптер с интерфейсом USB 1.1 (так называемый USB Dongle): поскольку скорость Bluetooth не превышает 1 Мбит/с, интерфейс не станет узким местом при обмене данными, зато такой адаптер можно будет использовать как с настольным, так и с мобильным компьютером, причем с любым (порты USB давно уже присутствуют в любом компьютере) и для этого даже не придется лезть внутрь корпуса. Подобные адаптеры выпускаются уже давно и многими фирмами. Впрочем, разнообразие только кажущееся: основой любого такого устройства является всего одна микросхема, а их производят лишь два производителя. Сегодня мы рассмотрим адаптеры на чипах Cambridge Silicon Radio (CSR), производимые тайваньской компанией .

Bluetooth USB Dongle Class 1

Согласно стандарту Bluetooth, устройства делятся на два класса, в зависимости от чувствительности и, соответственно, радиуса работы. Устройства первого класса имеют чувствительность -88 дБм и на открытой местности позволяют держать связь на расстоянии до 100 м. Замечу, что подобная продукция отсутствует в линейках достаточно многих фирм и немудрено: такие расстояния нужны далеко не всем пользователям. С другой стороны, область для применения дальнобойных донглов первого класса я придумал:)

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

Комплект поставки прост как три копейки: сам донгл, краткое печатное руководство (Getting Started) на английском и немецком языках, а также CD с программным обеспечением и полной документацией на тех же двух языках. Я б еще не отказался от наличия USB-удлинителя, пусть даже небольшой длины. Дело в том, что, несмотря на компактность устройства, при ширине почти в два сантиметра его не очень удобно подключать к портам USB на выносной планке или карте расширения — нередко будет мешать соседям. В «стандартный» порт подключается достаточно легко, но только в верхний из двух. В нижний же разъем при этом можно вставить лишь кабель, но никак не что-нибудь более крупное (флэшдрайв уже никак не воткнется), да и то - войдет с некоторым трудом и под не совсем стандартным углом. Мыши и клавиатуре, к счастью, не мешает, разъему принтера — возможно (проверить не смог, т.к. уже начал забывать — в каком году последний раз использовал принтер, подключенный через LPT).

Все это упаковано в симпатичную и компактную картонную коробку, несущую на своих стенках немало полезной информации.

Bluetooth USB Dongle Class 2

Если вам не нужна сверхвысокая чувствительность, за которую приходится платить, наилучшим вариантом является донгл второго класса. К тому же, стоит отметить, что большинство приемопередатчиков в портативных устройствах все равно относятся к этому классу, так что даже если вам и хочется работать со своим КПК на расстоянии 100 метров от точки доступа в Интернет (на базе РС или специализированной), вам это совсем необязательно удастся. А вот с дальностью работы устройств второго класса имеется некоторая путаница: насколько я помню, в стандарте говорится про 10 метров, а X-Micro упорно указывает 20 (впрочем, вполне возможно, что чувствительность устройств второго класса этого производителя, составляющая -70 дБм, несколько лучше требуемой стандартом, так что друг с другом они действительно смогут работать на больших расстояниях). Впрочем, проверить все это очень трудно если вообще возможно — говорится же о расстоянии на открытой местности, а где ее в городе искать (да и уровень помех, опять же, несколько выше нулевого)? :)

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

Комплект поставки не изменился никоим образом, да и упаковка такая же — лишь один значок на лицевой стороне стал другим, да углубление под донгл изменило размеры и форму.

Программное обеспечение

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

Итак, что же у нас меняется после установки программного обеспечения? На рабочем столе появляется значок «My Bluetooth Places», служащий своеобразным аналогом «Сетевого окружения». В этой папке можно обнаружить «присоединенные» к данному компьютеру BT-устройства, просмотреть все BT-сеть для поиска новых устройств (в данном случае под устройством понимается не карманный компьютер или там телефон в целом, а предоставляемые ими сервисы), перейти к настройке параметров BT-точки и т.п. А еще в системной области панели задач появляется новый значок, щелчок по которому левой кнопкой мыши отправляет нас в описанную выше папку, а правой — как и положено вызывает меню, при помощи которого можно перейти к настройке всего хозяйства, быстро «подключить» к компьютеру какое-либо устройство (к примеру, удаленный доступ силами мобильного телефона) или временно запретить функционирование адаптера. А еще диалог настройки свойств адаптера можно вызвать при помощи апплета контрольной панели. Собственно, почти все это было и раньше, за исключением некоторых мелких деталей.

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

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

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

Следующая закладка позволяет компьютеру искать другие Bluetooth-устройства в зоне видимости автоматически через определенные промежутки времени, а также выбирает, какие устройства будут отображаться в папке «My Bluetooth Places» — все возможные или только принадлежащие к определенным классам.

Следующие две закладки очень важны. Первая из них позволяет настроить сервисы, предоставляемые данным компьютером другим Bluetooth-устройствам. Главное это то, будет ли данный сервис запускаться автоматически или же по выбору пользователя (меня долго доставал стандартный значок ХР, рапортующий о том, что сетевой кабель к одному из сетевых интерфейсов не подключен, пока я не вспомнил о возможности просто выключить данный сервис:)), а также нужно ли устанавливать защищенную соединение для доступа к данному сервису. Также здесь можно насоздавать виртуальных последовательных портов (нужно для совместимости со старым ПО) или поудалять их когда необходимость пропадет.

Предпоследняя закладка очень похожа на предыдущую, однако выполняют они диаметрально противоположные функции: здесь вы будете настраивать доступ к удаленным сервисам (т.е. не принадлежащим данному компьютеру, а предоставляемым ему другими устройствами). Разумеется, настройки у обоих устройств должны совпадать. К примеру, если вы хотите связать два компьютера для передачи файлов, то обоим нужно настроить File Transfer одинаковым образом на обеих закладках: если один из них попытается «спарится» с другим, а другой будет настроен на использование незащищенного соединения, никакой связи не выйдет. С другими устройствами ситуация несколько проще: поскольку настроить их редко когда можно, достаточно лишь прочесть документацию — какой тип соединения нужно выбирать и соответствующим образом поработать на закладке «Client Applications».

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

Последняя закладка чисто информационная — она рассказывает об установленных в компьютере Bluetooth-контроллерах (а их может быть и несколько одновременно).

Практика использования

Для чего можно использовать Bluetooth? Для большинства пользователей основным стимулом является покупка мобильного телефона, или, реже, КПК. Что ж — посмотрим, что у нас получается.

Согласно информации на упаковке, любой мобильник можно использовать как факс или средство удаленного доступа к Интернет (через GPRS или GSM), а также как сервис Object Exchange. Не знаю, поддерживает ли последнее хоть одна программа для РС, кроме как Microsoft Outlook, но последний позволяет по крайней мере обмениваться с телефоном контактами в формате бизнес-карт (вообще карточки можно пересылать и просто при использовании штатного ПО), а также синхронизировать события во встроенном в телефон органайзере и в Outlook. Передачу файлов поддерживают уже не все телефоны, а полную синхронизацию данных обеспечивают лишь некоторые из них (телефонную книжку можно и при помощи бизнес-карт по одной записи перекидать, но заниматься этим совсем не хочется). По заявлению производителя устройства были протестированы с телефонами Nokia 7650 и 3650, а также Ericsson T68 и T39, и полную поддержку всех возможностей Bluetooth-соединения удалось обнаружить лишь в последнем. Собственно, это одна из основных причин невысокой популярности Bluetooth — низкая совместимость. Производители пытаются решить эту проблему, но окончательного решения, кроме как немного подправить стандарт (что сейчас делается), пока не видно, а изменение стандарта поможет лишь новым устройствам, но никак не уже выпущенным и продающимся (а есть ли время у Bluetooth на это? На мой взгляд, оно уже истекло).

Моего телефона (Philips Fisio 820) в списке протестированных не было, тем более было интересно проверить его «на вшивость». Долгая пляска с бубном результатов не дала — родное ПО от телефона при подключении через Bluetooth найти его так и не смогло. Таким образом, остался я лишь с теми возможностями, которые обеспечивала программка, прилагаемая к донглам, т.е. без синхронизации и без возможности сменить мелодию или логотип на экране. На работу телефона в режиме GPRS-модема или факса у меня нет никаких нареканий, однако они мне, по большому счету были не нужны: для использования и того, и другого на стационарном компьютере проще уж обычный факс-модем купить (доступ в Интернет у меня вообще через районную локальную сеть, так что GPRS нужен как зайцу стоп-сигнал:)). С другой стороны, при отсутствии городского телефона это может оказаться вполне востребованным. Ну а пользователю портативного или карманного компьютера эти возможности тем более нужны.

Кстати, о компьютерах. Программное обеспечение в первую очередь нацелено именно на связь двух ПК или ПК с КПК. В данном случае работает все и неплохо работает. Впрочем, это еще полтора года назад было известно :) Имеется лишь одна тонкость — все хорошо пока компьютеров всего два. Дело в том, что изначально Bluetooth на создание сети не нацеливали, потом спешно пришлось вводить данные возможности и сделано это было не лучшим образом (как — в упомянутой статье описано). Так что если вам хочется полноценно связать при помощи Bluetooth несколько компьютеров, придется раскошелиться на специальную «точку доступа» (Access Point). Если же достаточно лишь обмена файлами, то это будет работать на любом числе компьютеров без дополнительных вложений средств.

Что еще может использоваться? Появились и периферийные устройства с интерфейсом Bluetooth. Принтер уже рассматривался ранее, ЦФК пока с этим интерфейсом добыть не удалось, зато вместе с донглами пришел еще модем производства той же фирмы. Отчет о его тестировании вы сможете прочитать в ближайшее время. Здесь лишь скажу, что никаких особенностей в связи с интерфейсом подключения не возникло — даже драйверы дополнительные не потребовались, поскольку поддержка удаленного доступа имеется в ПО для Bluetooth-адаптера. А так модем как модем.

Итого

Перспективы у технологии не сильно радужные, но если беспроводной интерфейс нужен уже сейчас, то Bluetooth будет неплохим вариантом. Невысокая скорость работы не помешает использованию принтера или модема, ну а синхронизировать КПК с настольным компьютером через Bluetooth вообще одно удовольствие. Я думаю, что наиболее оправдано приобретение адаптера Class 2 — вряд ли ваши портативные устройства будут находиться от настольного компьютера или ноутбука на расстоянии более 10 метров. Донгл же Class 1 будет неплох если необходимо, например, связаться с соседом по дому. Естественно, в соседнюю квартиру проще протянуть кабель, однако если между квартирами метров 20, да еще и наискосок, сетевой кабель тянуть неудобно (опять же — грозы в наших краях имеют место быть). Если же скинуться еще и на Access Point, то безо всяких проводов можно будет и несколько компьютеров связать. Для перекачки друг другу видео такая связь, конечно, не подойдет (скорость работы в симметричном режиме всего лишь чуть более 400 Кбит/с, т.е. немногим быстрее дискеты, однако поиграть в игры или расшарить доступ в Интернет через ADSL-модем или выделенный канал вполне реально. К сожалению, внедрение Bluetooth в значительной степени тормозится до сих пор слабой совместимостью с теми устройствами, на которые как раз и возлагалась основная надежда при его создании — сотовыми телефонами. Впрочем, если все, что нужно от телефона, это его использование в роли GPRS-модема или факса (что чрезвычайно важно пользователям ноутбуков, однако в случае стационарных компьютеров является не лучшим решением), Bluetooth с задачей справится на все 100%. Если же вы ищите способ удобной синхронизации записной книжки и органайзера телефона (для бэкапа — всякое может случиться), то в данном случае вас вполне может ожидать разочарование. Тут уж кабель пока еще остается вне конкуренции — с его помощью работает все и всегда. Однако пользователям некоторых моделей телефонов удастся воспользоваться преимуществами Bluetooth в полной мере.

В общем, неизвестно — сколько еще стандарт протянет завтра. Но сегодня, пусть и с некоторыми ограничениями, он работает, причем для некоторых применений сравнимых конкурентов ему просто нет (простой пример: лежащий в сумке или дипломате ноутбук может время от времени просыпаться и при помощи лежащего в кармане мобильного телефона проверять почту — ни кабель, ни инфракрасный порт не позволят вам сделать это удобным образом). Ну а завтра… завтра будет новый день:)

Если взять бубен побольше…

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

  1. Устанавливаем ПО для донгла и подключаем его к компьютеру.
  2. Делаем поиск Bluetooth-устройств. Находим телефон (если не находим, то это уже отдельная проблема).
  3. Выбираем телефон в списке устройств. Выбираем его СОМ-порт и присоединяем последний к компьютеру.
  4. В таком вот положении запускаем инсталлятор софта от Philips. В списке модемов видим «Неизвестное устройство». Его и выбираем

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

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

Что такое USB ключ?

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

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

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


Виды электронных ключей и их распространение

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

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

Также распространен сценарий, когда локальный компьютер не поддерживает операционную систему, с которой придется работать приложению. В таком случае на компьютер устанавливается виртуальная ОС (VMware, Hyper-V, VirtualBox, etc.) и уже в ней запускается приложение. Но суть проблемы даже не столько в этом, а в том, что ни одна виртуальная среда не дает права доступа к физическим серийным или USB портам вашего компьютера. Что же делать в этом случае?

Например, вы работаете на Mac OS и вам необходимо сформировать отчеты в программе 1С:Бухгалтерия , которая поддерживает только Windows и нуждается в электронном ключе для запуска. Вы устанавливаете любую виртуальную ОС Windows и запускаете программу 1С, предварительно установив донгл в USB разъем вашего мака. В результате ПО не запускается, ключ не распознается. Как предоставить удаленный доступ к 1С ключу ?