Что значит опционально блютуз: Разбираемся с неполадками в работе Bluetooth на ноутбуке — ремонтируем ноутбук

Содержание

Разбираемся с неполадками в работе Bluetooth на ноутбуке — ремонтируем ноутбук

Ремонт ноутбуков

Большинство проблем с модулями Bluetooth кроется не в аппаратном обеспечении, а в программном и на уровне операционной системы и драйверов

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

Работая, как и система Wi-Fi по радиоканалу, технология Bluetooth, тем не менее, удобна своей простотой и надежностью осуществления связи в небольшом радиусе действия. Кроме того, Bluetooth не требует наличия никаких маршрутизаторов, Интернета и локальных сетей.

Основные проблемы с Bluetooth, подстерегающие владельцев ноутбуков

1.

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

2. Проблемы с наличием или установкой драйверов. В данном случае проблемы могут быть вызваны несколькими причинами:

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

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

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

Как правильно настроить Bluetooth

Если модуль Bluetooth присутствует в вашем ноутбуке, то все, что от вас требуется, – это его правильно настроить.

  1. Если на корпусе ноутбука имеется включатель Bluetooth аппаратного типа – проследите, чтобы он был в положении «Вкл».
  2. Установите подходящие драйверы, используя служебный диск, идущий в комплекте с ноутбуком.
  3. Проверьте, активирован ли Bluetooth в настройках системы «ввода-вывода» BIOS.
  4. Зайдите в окно сетевых подключений платформы Windows ноутбука и в свойствах Bluetooth установите галочки в чек-боксах напротив пунктов, разрешающих другим Bluetooth-устройствам подключаться к вашему ноутбуку, а также опознавать его.

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

Где отремонтировать ноутбук?

Что означает «подключение опционально»? «Опционально» – это значит «нет в наличии»?

Многие покупатели на рынке электроники или компьютерной техники сталкиваются с понятием «опционально». Это значит, что чего-либо по умолчанию нет в наличии. По крайней мере, так говорят многие продавцы. Производители описывают в перечне технические характеристики устройства и непременно какой-нибудь функционал отмечают данным термином. Из статьи читатель узнает, что скрывается под понятием «опционально», и есть ли смысл приобретать продукцию, функционал которой так обозначен.

Расшифровка термина

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

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

Необходимость внести ясность

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

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

В заключение

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

Ноутбук HP Compaq nc6120 — Самостоятельный ремонт

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

Позиция

Параметры самостоятельного ремонта*

Док-станция

Обязательно

Аккумулятор

Опционально

Адаптер и кабель переменного тока

Опционально

Привод CD/DVD ROM

Опционально

Жесткий диск

Опционально

Память

Опционально

Клавиатура

Опционально

Мини-плата беспроводной ЛВС

Опционально

Модуль Bluetooth

Опционально

Плата модема

Опционально

Крышка переключателя

Опционально

Вентилятор

Опционально

Батарея RTC

Опционально

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

Не обязательно: детали могут быть установлены специалистами HP по требованию заказчика без дополнительной платы в течение гарантийного срока.

Есть ли Wi-Fi в телевизоре? Как узнать, где посмотреть?

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

Посмотрел, и нашел всего несколько моделей. А это значит, что через некоторое время, в каждом «умном» телевизоре будет встроенный Wi-Fi. И это правильно. А то придумали эти фирменные, внешние USB Wi-Fi адаптеры, которые нужно было покупать за большие деньги, да еще и купить их было сложно. А сейчас их так вообще не найти. А ведь телевизор покупают не на год, и не на два.

У многих сейчас Smart TV телевизоры без встроенного Wi-Fi. И подключить их к интернету можно только с помощью кабеля.

Для начала нужно понять, что если телевизор без Smart TV, то Wi-Fi в нем точно нет. Он там в таком случае вообще не нужен. На эту тему я уже писал отдельную статью: Функция Smart TV в телевизоре: есть или нет, как проверить? Но если есть поддержка Smart TV, то не факт, что есть Wi-Fi. Может быть такой вариант, что подключение к интернету осуществляется только с помощью кабеля, или же через внешний Wi-Fi приемник (который чаще всего нужно покупать отдельно).

Если вы задались вопросом, есть в вашем телевизоре Wi-Fi, или нет, то выяснить это можно несколькими способами:

  1. Посмотреть характеристики телевизора. Лучше всего на официальном сайте.
  2. Проверить настройки телевизора.
  3. Посмотреть информацию на коробке и в инструкции.

Давайте рассмотрим два первых способа более подробно. Решения универсальные, подойдут для всех телевизоров: Samsung, LG, Sony, Toshiba, Philips, Panasonic, Hisense, TCL, Kivi, Ergo и т.

д. Что касается телевизоров Xiaomi, то во всех моделях этого производителя есть встроенный вай-фай.

Решение #1: проверяем наличие Wi-Fi в технических характеристиках телевизора

Все что нам нужно – знать производителя и модель телевизора, и доступ к интернету. Со вторым, я думаю, проблем нет. Ну а модель телевизора можно посмотреть на коробке, в документации, и на наклейке сзади телевизора.

Дальше просто в поисковой системе Google, или Яндекс вводим название производителя и модель. У меня, например, Philips 43PUS7150/12. Желательно перейти на официальный сайт производителя.

Или откройте несколько популярных интернет-магазинов и посмотрите технические характеристики. Там, как правило, всегда указано наличие Wi-Fi. Я же рекомендую смотреть характеристики на официальном сайте. В моем случае, в разделе «Подключения», напротив «Беспроводное соединение» указана поддержка встроенного модуля Wi-Fi 11n 2×2.

Значит вай-фай в моем телевизоре есть. Только не совсем понятно, почему там написано «Двухдиапазонный». Wi-Fi на частоте 5 ГГц этот телевизор не поддерживает. Только 2.4 ГГц. Если в характеристиках указана поддержка стандарта 802.11ac, значит телевизор поддерживает диапазон 5 ГГц.

На примере телевизора LG

Возьмем модель LG 43UM7100PLB. Находим эту модель на официальном сайте LG и смотрим технические характеристики (спецификации). Если напротив «Поддержка Wi-Fi» стоит точка – значит есть поддержка.

Если «–» – значит нет. Может быть еще написано: «При подключении WiFi адаптера (AN-WF500)», «Опционально», «(Поддержка)». Это значит, что нужно покупать и подключать внешний USB Wi-Fi модуль (приемник). Только после этого в телевизоре заработает беспроводное соединение.

Если вообще нет информации о Wi-Fi – значит в вашей модели ТВ нет поддержки беспроводной сети.

Samsung

Точно так же все можно проверить на сайте Samsung. Берем модель, например, UE50NU7002UXUA и находим страничку с ее характеристиками на сайте Samsung. «Встроенная поддержка беспроводной сети» – «Да»!

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

Решение #2: ищем настройки беспроводной сети в меню Smart TV телевизора

Суть в том, чтобы зайти в настройки телевизора, и в разделе «Сеть» (обычно он так называется), посмотреть, есть ли там настройки Wi-Fi (беспроводной сети). Если есть, то скорее всего есть встроенная поддержка и вы сможете подключить свой телевизор к домашней беспроводной сети.

На телевизорах с Android TV, например, этот раздел скорее всего называется «Проводные и беспроводные сети». И если в меню «Подключение к сети» есть пункт «Беспроводное» – значит все Ok.

Вот так, например, это выглядит на телевизорах LG (на новых и старых):

Более подробно процесс подключения к беспроводной сети показан в следующих инструкциях:

Если же у вас Smart TV телевизор без поддержки беспроводной сети, то самый лучший вариант – протянуть сетевой кабель. Если такой возможности нет, то в качестве приемника можно использовать репитер, или роутер. Ссылку на инструкцию по настройке такой схемы я давал в середине этой статьи.

Не удалось выяснить, есть Wi-Fi, или нет? Напишите модель своего телевизора в комментариях – постараюсь подсказать.

Некоторая неудобная правда об LDAC / Хабр

Эта статья – продолжение обсуждения, зарождённого в предыдущей статье.

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

Разберём, действительно ли всё так великолепно?

Именно такая картинка является основным козырем Sony в продвижении LDAC. Компания заявляет, что с помощью этого кодека удалось превзойти качество передачи звука в три раза лучше, чем SBC и даже aptX, при этом всё ещё используя Bluetooth как передающую технологию, и при этом передавать звук высокой чёткости.

Хмммм…

В начале давайте сосредоточимся на основах Bluetooth. Я знаю, что об этом уже писал, но не вспомнив это — невозможно сосредоточиться на том, что хотелось бы обсудить.

Введение и краткий ликбез

Есть версии, профили и кодеки. Так, Ваше устройство может иметь Bluetooth версии 3.0. Музыкальный профиль в нем — A2DP, как и во всех версиях Bluetooth в течение многих лет. А внутри профиля A2DP можно использовать разные музыкальные кодеки (MP3, AAC, SBC, aptX, LDAC и т.д.), чтобы сжимать музыкальные файлы в битрейты, которые могут быть переданы посредством Bluetooth.

В системе Bluetooth отправляющее устройство часто называют SRC (source), а принимающее – SNK (sink).

Усовершенствованный Профиль Распространения Звука (Advanced Audio Distribution Profile) или A2DP был разработан более десяти лет назад. До этого профиля существовала так называемая «голосовая передача» («voice layer»), разработанная для гарнитур и имеющая пропускную способность всего 64 кбит/с. Остальная часть Bluetooth была «передачей данных» («data layer»). Поэтому для улучшения качества звука (и особенно для передачи стереосигнала) и был разработан A2DP, суть которого была в захвате некоторой части битрейта, предназначенного для «передачи данных», и приспособлении его для музыки.

Существует также Профиль Дистанционного Управления Аудио/Видео (Audio/Video Remote Control Profile) — AVRCP, который работает параллельно, чтобы обеспечить передачу управляющих данных: команд изменения громкости, переключения треков и так далее.

Какую скорость передачи данных может получить A2DP из общего пула? На самом деле, в текущей версии A2DP нет ограничений, однако есть рекомендации, и в отношение кодека SBC выглядят они следующим образом:

Таким образом, при частоте дискретизации 48 кГц максимально доступное значение составляет 345 кбит/с, а в случае 44,1 кГц – 328 кбит/с. Поскольку качество несжатого CD требует потока на уровне 1411 кбит/с, указанные выше рекомендованные битрейты явно ниже, чем требуется для передачи музыки без сжатия.

Lossy vs Lossless

Чтобы рассуждать далее, важно различать два типа сжатия — без потерь (lossless) и с потерями (lossy). Оба уменьшают размер файла и, следовательно, снижают «нагрузку» на битрейт. Имена говорят сами за себя — при сжатии без потерь информация не теряется, а восстановленный файл в приёмнике файл идентичен файлу в источнике. Сжатие без потерь уменьшает размер файла путем определения шаблонов, которые можно описать и передать быстрее, чем путем отправки самих сырых данных. Говоря грубо, быстрее сказать «в файле 1000 слов «привет» подряд», чем говорить «привет» 1000 раз. Информация будет той же, передача произойдёт без потерь, но со сжатием.

Существует ограничение на степень сжатия без потерь, и практически все из существующих lossless-кодеков (Apple Lossless, FLAC, Ogg Vorbis) позволяют добиться сжатия приблизительно в два раза – и не более. Это значение зависит от типа контента и используемого метода.

Сжатие с потерями уменьшает размер файла, отбрасывая биты. Кодеки с потерями производят поиск информации, которую, по их мнению, Вы не слышите, после чего удаляют её в надежде, что Вы не почувствуете разницу. При таком подходе нет предела тому, какой степени сжатия возможно достигнуть – просто больше информации будет выброшено. МР3 128k сжимает CD приблизительно в 13 раз. Часть сжатия обеспечивается без потерь, как уже упоминалось выше. Всё остальное – это выброшенные данные. И неважно, какие программные или аппаратные нововведения заявит производитель – Вы никогда не восстановите то, что было выброшено, это как перекрасить назад чёрно-белую фотографию.

Ну это во всяком случае в теории и по логике вещей.

aptX

В профиле Bluetooth A2DP допускается использовать различные кодеки. По сути, Вы можете использовать даже MP2, MP3, WMA, AAC и ATRAC – однако поддержка одного кодека является обязательной: SBC (Поддиапазонный Кодек, Sub-Band Codec). Этот кодек поддерживает моно- и стереопотоки на различных определенных частотах дискретизации до 48 кГц.

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

Следовательно, aptX, который заявляется «широко распространенным кодеком Bluetooth самого высокого качества», будет работать, только если оба устройства совместимы с aptX – например, Ваш смартфон и Ваша колонка Bluetooth.

Совместимость с aptX требует, чтобы производитель заплатил лицензионный сбор, который будет выплачен владельцу aptX (CSR / Qualcomm). Ну об этом уже писалось в предыдущей статье, но отметим, что до недавнего времени Apple включала aptX только в небольшие серии MacBook, а устройства Android получили поддержку aptX только начиная с седьмой версии операционной системы (aptX HD – с восьмой) – более того, даже в этой версии для некоторых устройств поддержка была отключена на уровне софта. Понятно, что большое количество производителей устройств SNK — беспроводных колонок, звуковых панелей и так далее – об этой поддержке и не помышляют, особенно когда речь идёт о бюджетной технике.

Регулярно aptX заявляется как «качество CD», но это не так, поскольку он ограничен 328 кбит/с по профилю A2DP, хотя часто указывается, что он достигает 384 кбит/с. Как мы помним, сжатие без потерь обеспечивает максимум двукратный выигрыш, следовательно, 384 кбит/с превращаются в самом лучшем случае в 768 кбит/с, и очевидно, что aptX не дотягивает до необходимого для «качества CD» потока в 1411 кбит/с, а потому его корректнее назвать «качеством, близким к CD» — по факту, сопоставимым с файлами AAC или MP3 320 кбит/с.

Отдельного внимания заслуживает уже упомянутый вскользь кодек aptX HD. По сути это – тот же aptX, но с иным профилем кодирования и возможностью битрейта до 576 кбит/с. И опять простая математика показывает, что до «качества CD» этой цифры недостаточно, хотя уже и существенно близко (1152 кбит/с).

Наши умозаключения официально подтверждает директор Джонни МакКлинток (JM) – Директор Отдела Маркетинга и Продаж Qualcomm в интервью Sound+Image (S+I):

S+I: Вы можете подтвердить, является ли кодек aptX HD сжатием без потерь или с потерями?
JM: Технически, aptX HD – это кодек со сжатием с потерями. Тем не мене, aptX HD использует сравнительно мягкое сжатие в соотношении 4:1, оно по своей природе не деструктивно. Поскольку он основан на адаптивной дифференциальной импульсно-кодовой модуляции, а не на принципах психоакустического восприятия, aptX HD использует прогнозирующий анализ, а не пытается воспроизвести характеристики человеческого слуха через синтетическое ухо.
S + I: Работает ли он в профиле A2DP или использует дополнительные данные?
JM: Алгоритм aptX HD использует A2DP для Bluetooth.
S + I: Какой максимальной скорости передачи данных возможно достичь?
JM: Для достижения 24-битной глубины и поддержки частоты дискретизации 48 кГц требуется 576 кбит/с.

Таким образом, кодек aptX не позволяет достичь «качества CD».

LDAC от Sony


Часть первая. История

Справедливости ради следует сказать, что у Sony раньше уже были и есть Bluetooth-решения с нестандартными кодеками – это

наушники Sony DR-BT50, поддерживающие MP3

. Был и кодек Sony ATRAC, так знакомый всем по давно канувшим в лету минидискам.

Но вот Sony Australia представляет новинку в стремлении компании выйти на рынок беспроводных аудиорешений — кодек LDAC. Своё решение компания назвала просто — система «Sony Multi-Room».

Эта система включает в себя достаточно много: три беспроводных динамика, включая один портативный, плюс одну звуковую панель и одну звуковую базу, а также micro-Hi-Fi-систему SX7. Также рекомендуется дополнение в виде одного из поддерживаемых AV-ресиверов Sony — модели STR-DN860 или 1060.

Возможности полученного «мультирума» включают потоковую передачу DLNA с высокой чёткостью от 24 бит / 96 кГц до 24 бит / 192 кГц. Кроме того, есть Bluetooth, использующий собственную технологию кодирования звука LDAC от Sony, которая, как утверждает компания, при запуске проигрывания звука высокой чёткости по Bluetooth, обеспечивает скорость передачи данных 990 кбит/с.

На самом деле существует три уровня LDAC, работающих на 330, 660 и 990 кбит/с — для самой высокой скорости передачи данных Вы должны выбрать режим с приоритетом качества.
Как и в случае с aptX, LDAC можно использовать только в том случае, если источник и устройство-приемник оснащены LDAC. В настоящее время это список совсем невелик, более того – достаточно дорог.

Но вернёмся к главному вопросу: как же это достигается с помощью Bluetooth? Как мы видели, скорость передачи данных 990 кбит/с намного выше, чем спецификация всего стереофонического профиля A2DP Bluetooth, не говоря уже о стандартных кодеках в нем.

Даже если оставить это в стороне, непонятно, как складываются цифры. Поток качества CD на несжатом 16-бит / 44,1 кГц имеет скорость передачи данных 1411 кбит/с. Таким образом, указанные в LDAC 990 кбит/с могут легко использовать сжатие без потерь для достижения полного качества CD через LDAC. С этим понятно.

Но как насчет этого заявления о звуке высокой чёткости? Даже если говорить о нижней заявленной границе 24-бит / 96 кГц — поток 24/96 должен иметь скорость передачи выше 4,5 Мбит/с. Чтобы получить без потерь такое качество при битрейте в 990 кбит/с, потребуется коэффициент сжатия примерно 5:1, что более чем в два раза больше, чем у всех известных lossless-кодеков. То есть всё-таки кодек сжимает данные с потерями? Но какой же тогда это «звук высокой чёткости»?

Часть вторая. Страсти вокруг Hi-Res Audio

Sound+Image связались по электронной почте с Sony Australia и получили подтверждение, что LDAC действительно является кодеком с потерями, использующим сжатие данных примерно в 4,5 раза — примерно половина из которых может быть без потерь (тот самый коэффициент 2!), остальные — с потерями. При этом достижение более высоких значений потока возможно только посредством DLNA, но не Bluetooth.

Но довольно быстро за этим последовало еще одно электронное письмо с информацией из Японии, после чего разгорелась переписка:

Sony:

Предоставленная Вам ранее информация о том, что LDAC — это кодек с потерями, использующий сжатие данных примерно в 4,5 раза, не является действительной.

Правильный ответ: LDAC — это кодек Bluetooth, который использует более эффективное сжатие данных, чем обычные кодеки, используемые в Bluetooth, такие как SBC или aptX. Выигрыш в сжатии может достигать до 3 раз.

Тем не менее, хотя LDAC превосходит другие кодеки Bluetooth, он всё равно подвергает контент сжатию. Следует также отметить, что передача звука высокой чёткости возможна посредством Wi-Fi. Наша система MultiRoon поддержтивает двухдиапазонное решение и в этом случае полностью обеспечивает действительно высококачественное беспроводное аудио.

Мы приносим свои извинения за противоречивую информацию.

S+I:

Просим прощения, но мы понимаем, что передача звука высокой чёткости возможна по Wi-Fi. Однако материалы Sony касательно LDAC четко показывают передачу звука высокой чёткости качества 24/96, требующего скорость передачи 4,5 Мбит/с через канал Bluetooth 990 кбит/с. Не Wi-Fi, Bluetooth! Прилагаем скриншот:

Просим ответить на вопрос: при передаче звука 24/96 через Bluetooth используется сжатие с потерями или без потерь?

Сжатие без потерь означает, что исходные данные могут быть полностью и идеально восстановлены. Сокращение потока со скоростью 4,6 Мбит/с до 990 кбит/с без потерь было бы огромным достижением — ни один другой известный кодек не может достичь такого значения в реальном времени.

Таким образом, нам кажется три возможных варианта:

а) у компании Sony чудесная система сжатия без потерь с коэффициентом 4,5х;
б) LDAC — кодек сжатия с потерями при отправке 24-96 через Bluetooth;
c) веб-сайт и опубликованные материалы ошибочны, и LDAC вообще не может отправлять звук высокой чёткости по Bluetooth, только по Wi-Fi.

Sony:

Снова просим прощения за противоречивые ответы. На самом деле Ваш вопрос достаточно сложен, а поэтому наши специалисты разделяются во мнениях.

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

Чтобы помочь проиллюстрировать.

Рассмотрим сценарий, в котором вы отправляете звук высокой чёткости с LDAC Walkman на наушники LDAC:
— Для передачи по радиоканалу через Bluetooth файл сжимается для передачи, а затем на другом конце наушники реконструируют / распаковывают файл, чтобы получить в результате музыку, эквивалентную 96/24.
— Это делает сигнал без потерь, при этом качество музыки не теряется. Сжатие с потерями, с другой стороны, сжимает файл для передачи, но не восстанавливает его на другом конце, поэтому качество больше похоже на MP3.
— Передача файла в таком сценарии возможна для звука высокой чёткости с характеристиками 96/24. Следующий уровень детализации — 192/24 — в случае нашего сценария приведет к потере качества до уровня, эквивалентного 96/24. LDAC не может передавать качество выше 96/24.

Таким образом, Sony заявляет о своей системе сжатия без потерь, способной достичь коэффицента более 4:1.

Переписка состоялась в 2015 году, и нужно отдать должное въедливым ребятам из S+A –через год они встретились с Sony во время IFA 2016 в Берлине.

«Это не звук высокой чёткости, — сообщил инженер Sony из Азиатско-Тихоокеанского региона. —Мы не утверждаем, что это звук высокой чёткости, но он близок к звуку высокой чёткости».

Инженер не смог однозначно сообщить, относится ли всё-таки кодек к lossless или lossy, но особо отметил, что Sony всегда осторожна в своих претензионных высказываниях: в последних материалах «LDAC эффективно поддерживает исходную битовую глубину и частоту 24 бит / 96 кГц, обеспечивая более полное и насыщенное звучание уровня Hi-Res Audio». Очень ловко, не правда ли?

Что касается того, как Sony сократила скорость 990 кбит/с LDAC до гораздо более ограниченного канала A2DP, инженер ответил, что LDAC увеличивает битрейт, а не работает по рекомендованной спецификации A2DP.

И наконец окончательный ответ на вопрос удалось получить только на пресс-конференции IFA 2016 в беседе Sound+Image с Главным Архитектором Аудиотехнологий Sony (основная специализация — наушники) Коджи Нагено (KN). Это поистине эпично:

S+I: Нам нравится, что Sony с 2013 года уделяет такое внимание звуку высокой чёткости во всех своих продуктах, вплоть до наушников, это действительно замечательно! Но нам кажется, что термин «звук высокой чёткости» зачастую используется не в том понимании. Например, наушники MDR-1000X — в брошюрах написано «hi-res audio», есть логотип Hi-Res Audio, но если прочесть внимательно, то оказывается, что на самом деле звук «почти» высокой чёткости. Можете ли Вы объяснить, как, к примеру, эти наушники Bluetooth могут воспроизводить звук высокой чёткости?
KN: Что касается Bluetooth, то он ограничен скоростью передачи, это 1 Мбит/с, поэтому невозможно передать сигнал без некоторого сжатия с потерями. Но LDAC – это кодек, очень близкий к передаче звука высокой чёткости. Но мы избегаем говорить «это — Hi-Res Audio», да, мы избегаем.
S+I: Но как объяснить логотип Hi-Res Audio и спецификацию?
KN: При проводном соединении с аналоговым входом, MDR-1000X может работать в режиме «NC on» со звуком высокой чёткости. Но мы же не говорим, что это достижимо при беспроводной передаче, верно?
S+I: Таким образом, скорость LDAC, как Вы говорите, составляет 1 Мбит/с, 990 кбит/с, но для 24/96 требуется 4,5 Мбит/с, что в четыре с половиной раза выше. При сжатии без потерь Вы можете получить, возможно, 2 Мбит/с для работы на скорости 990 Кбит/с, но Вы всё ещё более, чем на полпути от звука высокой чёткости. Как это «очень близко к передаче звука высокой чёткости»?
KN: Возможно, это действительно на 100% недостижимо с текущим битрейтом. Необходимо искать пути увеличения битрейта или повышать степень сжатия без потерь в кодеке. Но да, на данный момент это недостижимо.
S+I: То есть, оно не «близко» к звуку высокой чёткости, оно на 50% ниже звука высокой чёткости?
KN: Само качество звука проверяется главным образом… ну можно оценивать качество музыки, прослушивая её, можно также оценивать спектральную форму волн. Это разные вещи, но мы проверяем качество звука – и не видим никакой разницы. Если использовать полный битрейт, максимальную частоту дискретизации и максимальную битовую глубину – мы получим огромный объём информации, но всё равно не достигнем идеала. Когда мы слушаем музыку на вечеринках – разве там нет потерь? Хотя для высокочастотных звуков спекуляции с битовой глубиной действительно могут привести к снижению качества. В любом случае – я не могу сказать, на сколько процентов мы близки к звуку высокой чёткости. Качество звука хорошее, тесты с прослушиванием и спектральными формами волн проходят – разницы нет.

[Другие журналисты задают вопросы.]

S+I: Как инженеры, вы много говорите о чистоте звука и в частности о чистоте звука высокой чёткости. Итак, как Вы можете прокомментировать заявление, что любой музыкальный файл может быть улучшен до уровня практически звука высокой чёткости? Вы верите в такое? (Это утверждение было сделано в отношении Sony DSEE (Digital Sound Enhancement Engine) HX, используемом в наушниках Sony HDR-1000).
KN: Как я уже объяснил, наш опыт, наши методы испытаний, форма волны и прослушивание музыкального образа не выявляют различий. Но если мы уберём высокие частоты и сравним звук – разница будет очевидна. Таким образом, мы считаем, что это близко к звуку высокой чёткости.
S+I: Значит, если мы можем повысить качество любого файла до звука высокой чёткости, нам не нужен вообще источник звука высокой чёткости?
KN: Эээ. [Пауза.]
S+I: Очевидно же, что Вы можете. Имеется в виду, что Вы можете повысить качество MP3 до звука высокой чёткости – и не услышать разницу. Тогда нам вообще не нужен звук высокой чёткости на источнике.
KN: Это зависит от оригинального качества звука. Конечно, если исходный битрейт MP3 слишком низкий, качество невозможно повысить. Но мы можем улучшить это в некоторой степени.
S+I: Итак, какой файл Вы можете увеличить до почти высокой чёткости? Какой уровень — 256, 320, качество CD? В каком файле Вы не слышите разницу? Ваше заявление по сути хоронит необходимость в хранении звука высокой чёткости.

[Длинная групповая дискуссия.]

KN: Извините. DSEE HX улучшает звук, но исходный битрейт должен составлять 248 кбит/с. Тогда его можно улучшить до почти высокой чёткости. Так что, если исходный источник звука ниже, он не может быть улучшен до этого уровня.
S+I: Ого! Значит Sony считает, что 256k может звучать как звук высокой чёткости?
KN: Да, практически как звук высокой чёткости.

Занавес. И мои аплодисменты Sound+Image. Дожали.

Часть третья. О великодушии

В 2017 году стало известно о великодушной «жертве» компании Sony, которая сделала использование технологии LDAC бесплатной в Android O, дабы «принести большую пользу в расширении списка доступных интеллектуальных устройств, которые смогут отправлять данные с использованием LDAC». Тем не менее,

как правильно отмечает Trusted Reviews

, крайне маловероятно, что другие производители акустики, кроме самой Sony, будут так заинтересованы в лицензировании LDAC в своих наушниках – в приципе мы это видим на примере aptX / aptX HD.

Поэтому многие телефоны могут быть готовы к использованию LDAC, но для его проигрывания в «почти высокой чёткости» придётся покупать только наушники Sony – в таком случае «жертва» весьма оправдана!

И в заключение

Bluetooth версии 5.0, тем не менее,

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

. Так что передача качественного звука по-прежнему будет зависеть от кодеков.

Глядя на искусственное ограничение битрейта SBC, лицензионные схемы aptX и страсти вокруг LDAC, задумываешься о многом…

Bluetooth Low Energy GAP | arm

Аббревиатура GAP обозначает профиль доступа (Generic Access Profile) к устройству Bluetooth. В этот профиль управляет соединениями и анонсом (advertising) устройства в сети Bluetooth. GAP делает Ваше устройство видимым по радио, и определяет, как два устройства Bluetooth могут (или не могут) взаимодействовать друг с другом.

Примечание: непонятные термины и аббревиатуры см. в Словарике [3].

[Роли устройств Bluetooth]

GAP определяет различные роли для устройств, однако следует иметь в виду две ключевые концепции сети Bluetooth — центральное устройство и периферийное устройство.

Периферийное устройство. Обычно это маленькое, экономящее энергию устройство с ограниченными ресурсами, которое может быть подключено к более мощному центральному устройству. В качестве периферийного устройства можно привести пример монитор сердцебиения (heart rate monitor), метка доступа BLE (proximity tag), и т. п.

Центральное устройство. К таким устройствам относят мобильные телефоны или планшеты, у которых намного больше вычислительной мощности и памяти.

Более подробно про BLE, роли устройств и топологию радиосети Bluetooth см. [2].

[Анонс устройства, сканирование данных ответа]

Существует 2 способа отправки анонса устройства с помощью GAP — предоставление полезной нагрузки данных анонса (Advertising Data payload) и сканирование полезной нагрузки данных ответа (Scan Response payload).

Обе этих полезных нагрузки идентичны, и содержат в себе до 31 байт данных, однако обязательна только advertising data payload, поскольку эта полезная нагрузка будет постоянно передаваться от периферийного устройства, чтобы позволить центральным устройствам, находящихся в радиусе прохождения радиосигнала, узнать о том, что это периферийное устройство существует и готово к подключению. Scan response payload это опциональная вторичная полезная нагрузка, которую может запросить центральное устройство, и это позволяет разработчикам периферийного устройства добавить больше информации об устройстве, например строки для имени устройства, и т. п.

Advertising Process. Следующая диаграмма должна иллюстрировать процесс объявления о себе (advertising process) устройств Bluetooth, и работают как полезные нагрузки объявления (advertising payload) и сканирования ответа (scan response payload).

Периферийное устройство установит специальный интервал оповещения (advertising interval), и всякий раз по истечении этого интервала будет повторно передавать основной пакет оповещения (main advertising packet). Чем больше интервал оповещения, тем больше экономится энергия источника питания, однако устройство будет труднее найти в сети, если оно будет оповещать о себе каждые 2 секунды по сравнению с оповещением о себе каждые 20 миллисекунд.

Если прослушивающее устройство заинтересовано в scan response payload (и если это доступно в периферийном устройстве), то оно может опционально запросить scan response payload, и периферийное устройство ответить на этот запрос дополнительными данными.

[Широковещательная топология сети]

Хотя большинство периферийных устройств оповещают о себе таким образом, что соединение может быть установлено, и могут быть использованы сервисы и характеристики GATT [2] (что позволяет отправить больше данных в обоих направлениях), существуют ситуации, когда Вы хотите использовать только данные advertise.

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

Путем добавления небольшой порции пользовательских данных в полезную нагрузку 31-байтного advertising или полезную нагрузку scan response, Вы можете использовать недорогое периферийное устройство BLE для отправки данных в одном направлении на любые устройства, находящиеся в радиусе доступа, как показано на следующей иллюстрации. Такая техника передачи в BLE называется широковещанием (Broadcasting).

Например, это используется устройством iBeacon компании Apple, которое добавляет пользовательскую полезную нагрузку (custom payload) в main advertising packet, используя поле специфических данных производителя (Manufacturer Specific Data).

Как только произошло соединение между Вашим периферийным устройством и центральным устройством, процесс широковещания останавливается, и больше нельзя будет посылать advertising пакеты. После этого Вы будете использовать сервисы и характеристики GATT [2], чтобы обмениваться данными с устройством в обоих направлениях.

Подробнее о том, что такое периферийное устройство, центральное устройство, и как ведут себя устройства в сети BLE см. статью [2].

[Ссылки]

1. Bluetooth Low Energy GAP site:learn.adafruit.com.
2. Bluetooth Low Energy GATT.
3. nRFxx: аббревиатуры и термины.

Блютуз — это… Что такое Блютуз?

Гарнитура для мобильного телефона, использующая для передачи голоса Bluetooth

Bluetooth (/bluːtuːθ/, переводится синий зуб, в честь Харальда I Синезубого[1][2]; разговорные названия: блютус, блютуз, синезуб) — производственная спецификация беспроводных персональных сетей (Wireless personal area network, WPAN).

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

Bluetooth позволяет этим устройствам сообщаться, когда они находятся в радиусе до 10-100 метров друг от друга (дальность очень сильно зависит от преград и помех), даже в разных помещениях.

История создания и развития

Спецификация Bluetooth была разработана группой Bluetooth Special Interest Group (Bluetooth SIG)[1][3], которая была основана в 1998 году. В неё вошли компании IBM, Toshiba и Microsoft, Motorola, вступили в неё как ассоциированные члены. Впоследствии Bluetooth SIG и IEEE достигли соглашения, на основе которого спецификация Bluetooth стало частью стандарта IEEE 802.15.1 (дата опубликования — 14 июня 2002 года)

Класс Максимальная мощность, мВт Максимальная мощность, дБм Радиус действия (приблизительно), м
1 100 20 100
2 2,5 4 10
3 1 0 1

Принцип действия Bluetooth

Радиосвязь Bluetooth осуществляется в ISM-диапазоне (англ. Industry, Science and Medicine), который используется в различных бытовых приборах и беспроводных сетях (свободный от лицензирования диапазон 2,4-2,48 ГГц). Спектр сигнала формируется по методу FHSS (Frequency Hopping Spread Spectrum — псевдослучайная перестройка рабочей частоты). Метод FHSS прост в реализации, обеспечивает устойчивость к широкополосным помехам, а оборудование стоит недорого.

Согласно алгоритму FHSS, в Bluetooth несущая частота сигнала скачкообразно меняется 1600 раз в секунду (всего выделяется 79 рабочих частот, а в Японии, Франции и Испании полоса у́же — 23 частотных канала). Последовательность переключения между частотами для каждого соединения является псевдослучайной и известна только передатчику и приёмнику, которые каждые 625 мкс (один временной слот) синхронно перестраиваются с одной несущей частоты на другую. Таким образом, если рядом работают несколько пар приёмник-передатчик, то они не мешают друг другу. Этот алгоритм является также составной частью системы защиты конфиденциальности передаваемой информации: переход происходит по псевдослучайному алгоритму и определяется отдельно для каждого соединения. При передаче цифровых данных и аудиосигнала (64 Кбит/с в обоих направлениях) используются различные схемы кодирования: аудио-сигнал не повторяется (как правило), а цифровые данные в случае утери пакета информации будут переданы повторно. Без помехоустойчивого кодирования это обеспечивает передачу данных со скоростями 723,2 Кбит/с с обратным каналом 57,6 Кбит/с, или 433,9 Кбит/c в обоих направлениях.

Спецификации

Устройства версий 1.0 (1998) и 1.0B имели плохую совместимость между продуктами различных производителей. В 1.0 и 1.0B была обязательной передача адреса устройства (BD_ADDR) на этапе установления связи, что делало невозможной реализацию анонимности соединения на протокольном уровне и было основным недостатком данной спецификации.

В Bluetooth 1.1 было исправлено множество ошибок, найденных в 1.0B, добавлена поддержка для нешифрованных каналов, индикация уровня мощности принимаемого сигнала (RSSI).

В версии 1.2 была добавлена технология адаптивной перестройки рабочей частоты (AFH), что улучшило сопротивляемость к электромагнитной интерференции (помехам) путём использования разнесённых частот в последовательности перестройки. Также увеличилась скорость передачи и добавилась технология eSCO, которая улучшала качество передачи голоса путём повторения повреждённых пакетов. В HCI добавилась поддержка трёх-проводного интерфейса UART.

Bluetooth версии 2.0 (2004) полностью совместим с версиями 1.x. Основным нововведением стала поддержка EDR (Enhanced Data Rate), что позволило повысить скорость передачи до 2,1 Мбит/с.

В Bluetooth версии 2.1 (2007) добавлена технология расширенного запроса характеристик устройства (для дополнительной фильтрации списка при спаривании), энергосберегающая технология Sniff Subrating, которая позволяет увеличить продолжительность работы устройства от одного заряда аккумулятора в 3-10 раз. Кроме того обновленная спецификация существенно упрощает и ускоряет установление связи между двумя устройствами, позволяет производить обновление ключа шифрования без разрыва соединения, а также делает указанные соединения более защищёнными, благодаря использованию технологии Near Field Communication.

Профили Bluetooth

Нижеуказанные профили определены и одобрены группой разработки Bluetooth SIG:

Advanced Audio Distribution Profile (A2DP)

A2DP разработан для передачи двухканального стерео аудиопотока, например музыки, к беспроводной гарнитуре или любому другому устройству. Профиль полностью поддерживает низкокомпресированный кодек Sub_Band_Codec (SBC) и опционально поддерживает MPEG-1,2 аудио, MPEG-2,4 AAC и ATRAC, способен поддерживать кодеки определённые производителем.

Audio / Video Remote Control Profile (AVRCP)

Этот профиль разработан для управления стандартными функциями телевизоров, Hi-Fi оборудования и проч. То есть позволяет создавать устройства с функциями дистанционного управления. Может использоваться в связке с профилями A2DP или VDPT.

Basic Imaging Profile (BIP)

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

Basic Printing Profile (BPP)

Профиль позволяет пересылать текст, e-mails, vCard и другие элементы на принтер. Профиль не требует от принтера специфических драйверов, что выгодно отличает его от HCRP.

Common ISDN Access Profile (CIP)

Профиль для доступа устройств к ISDN.

Cordless Telephony Profile (CTP)

Профиль беспроводной телефонии.

Device ID Profile (DID)

Профиль позволяет идентифицировать класс устройства, производителя, версию продукта.

Dial-up Networking Profile (DUN)

Протокол предоставляет стандартный доступ к интернету или другому телефонному сервису через Bluetooth. Базируется на SPP, включает в себя PPP и AT команды определённые в спецификации ETSI 07.07.

Fax Profile (FAX)

Профиль предоставляет интерфейс между мобильным или стационарным телефоном и ПК на котором установлено программное обеспечение для факсов. Поддерживает ITU T.31 и/или ITU T.32 набор AT команд. Голосовой звонок или передача данных профилем не поддерживается.

File Transfer Profile (FTP_profile)

Профиль обеспечивает доступ к файловой системе устройства. Включает стандартный набор команд FTP, позволяющий получать список директорий, изменения директорий, получать, передавать и удалять файлы. В качестве транспорта используется OBEX, базируется на GOEP.

General Audio / Video Distribution Profile (GAVDP)

Профиль является базой для A2DP и VDP.

Generic Access Profile (GAP)

Профиль является базой для всех остальных профилей.

Generic Object Exchange Profile (GOEP)

Профиль является базой для других профилей передачи данных, базируется на OBEX.

Hard Copy Cable Replacement Profile (HCRP)

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

Hands-Free Profile (HFP)

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

Human Interface Device Profile (HID)

Обеспечивает поддержку устройств с HID (Human Interface Device), таких как мышки, джойстики, клавиатуры и проч. Использует медленный канал, работает на пониженной мощности.

Headset Profile (HSP)

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

Intercom Profile (ICP)

Обеспечивает голосовые звонки между Bluetooth-совместимыми устройствами.

LAN Access Profile (LAP)

LAN Access profile обеспечивает возможность доступа Bluetooth-устройствам к вычислительным сетям LAN, WAN или Internet посредством другого Bluetooth-устройства, которое имеет физическое подключение к этим сетям. Bluetooth-устройство использует PPP поверх

Object Push Profile (OPP)

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

Personal Area Networking Profile (PAN)

Профиль позволяет использовать протокол Bluetooth Network Encapsulation в качестве транспорта через Bluetooth-соединение.

Phone Book Access Profile (PBAP)

Профиль позволяет обмениваться записями телефонных книг между устройствами.

Serial Port Profile (SPP)

Профиль базируется на спецификации ETSI TS07.10 и использует протокол

Service Discovery Application Profile (SDAP)

Профиль используется для предоставления информации о профилях, которые использует устройство-сервер.

SIM Access Profile (SAP, SIM)

Профиль позволяет получить доступ к SIM-карте телефона, что позволяет использовать одну SIM-карту для нескольких устройств.

Synchronisation Profile (SYNCH)

Профиль позволяет синхронизировать личные данные (PIM). Профиль заимствован из спецификации инфракрасной связи и адаптирован группой Bluetooth SIG.

Video Distribution Profile (VDP)

Профиль позволяет передавать потоковое видео. Поддерживает MPEG-4 Visual Simple Profile,

Wireless Application Protocol Bearer (WAPB)

Протокол для организации P-to-P (Point-to-Point) соединения через Bluetooth.

Безопасность

В июне 2006 года Авиша Вул (Avishai Wool) и Янив Шакед (Yaniv Shaked) опубликовали статью, содержащую подробное описание атаки на bluetooth-устройства. Материал содержал описание как активной, так и пассивной атаки, позволяющей заполучить PIN код устройства и в дальнейшем осуществить соединение с данным устройством. Пассивная атака позволяет соответствующе экипированному злоумышленнику «подслушать» (sniffing) процесс инициализации соединения и в дальнейшем использовать полученные в результате прослушки и анализа данные для установления соединения (spoofing). Естественно, для проведения данной атаки злоумышленнику нужно находится в непосредственной близости и непосредственно в момент установления связи. Это не всегда возможно. Поэтому родилась идея активной атаки. Была обнаружена возможность отправки особого сообщения в определённый момент, позволяющего начать процесс инициализации с устройством злоумышленника. Обе процедуры взлома достаточно сложны и включают несколько этапов, основной из которых — сбор пакетов данных и их анализ. Сами атаки основаны на уязвимостях в механизме аутентификации и создания ключа-шифра между двумя устройствами. И поэтому перед изложением механизма атак рассмотрим механизм инициализации bluetooth-соединения.

Инициализация bluetooth-соединения

Инициализацией, касательно bluetooth, принято называть процесс установки связи. Её можно разделить на три этапа:

  • Генерация ключа Kinit
  • Генерация ключа связи (он носит название link key и обозначается, как Kab)
  • Аутентификация

Первые два пункта входят в так называемую процедуру паринга.

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

Перед началом процедуры сопряжения на обеих сторонах необходимо ввести PIN-код. Обычная ситуация: два человека хотят связать свои телефоны и заранее договариваются о PIN-коде.

Для простоты будем рассматривать ситуацию с двумя устройствами. Принципиально это не повлияет на механизмы установления связи и последующие атаки. Далее соединяющиеся устройства будут обозначаться A и B, более того, одно из устройств при сопряжении становится главным (Master), а второе — ведомым (Slave). Будем считать устройство A главным, а B — ведомым. Создание ключа Kinit начинается сразу после того, как были введены PIN-коды.

Kinit формируется по алгоритму E22, который оперирует следующими величинами:

  • BD_ADDR — уникальный адрес BT-устройства. Длина 48 бит (аналог MAC-адреса сетевой карты PC)
  • PIN-код и его длина
  • IN_RAND. Случайная 128-битная величина

На выходе E22 алгоритма получаем 128-битное слово, именуемое Kinit. Число IN_RAND отсылается устройством A в чистом виде. В случае, если PIN неизменяем для этого устройства, то при формировании Kinit используется BD_ADDR, полученное от другого устройства. В случае если у обоих устройств изменяемые PIN-коды, будет использован BD_ADDR(B) — адрес slave-устройства. Первый шаг сопряжения пройден. За ним следует создание Kab. После его формирования Kinit исключается из использования.

Для создания ключа связи Kab устройства обмениваются 128-битными словами LK_RAND(A) и LK_RAND(B), генерируемыми случайным образом. Далее следует побитовый XOR с ключом инициализации Kinit. И снова обмен полученным значением. Затем следует вычисление ключа по алгоритму E21.

Для этого необходимы величины:

  • BD_ADDR
  • 128-битный LK_RAND (каждое устройство хранит своё и полученное от другого устройства значение значение)

На данном этапе pairing заканчивается и начинается последний этап инициализации bluetooth — Mutual authentication или взаимная аутентификация. Основана она на схеме «запрос-ответ». Одно из устройств становится верификатором, генерирует случайную величину AU_RAND(A) и засылает его соседнему устройству (в plain text), называемому предъявителем (claimant — в оригинальной документации). Как только предъявитель получает это «слово», начинается вычисление величины SRES по алгоритму E1, и она отправляется верификатору. Соседнее устройство производит аналогичные вычисления и проверяет ответ предъявителя. Если SRES совпали, то, значит, все хорошо, и теперь устройства меняются ролями, таким образом процесс повторяется заново.

E1-алгоритм оперирует такими величинами:

  • Случайно созданное AU_RAND
  • link key Kab
  • Свой собственный BD_ADDR

Уязвимости и атаки

Базовая pairing атака (атака на сопряжение)

Проанализируем данные, обмен которыми идёт на протяжении процесса сопряжения:

От К Данные Длина (бит) Прочая информация
1 A B IN_RAND 128 plaintext
2 A B LK_RAND(A) 128 XORed with Kinit
3 B A LK_RAND(B) 128 XORed with Kinit
4 A B AU_RAND(A) 128 plaintext
5 B A SRES 32 plaintext
6 B A AU_RAND(B) 128 plaintext
7 A B SRES 32 plaintext

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

Прежде всего необходимо составить сам алгоритм перебора. Мы располагаем перехваченными величинами IN_RAND (он нешифрованный) и BD_ADDR (напомним, что адреса устройств видны в эфире) и запускаем алгоритм E22. Ему передаем вышеперечисленные данные и наш предполагаемый PIN. В результате мы получим предполагаемое значение Kinit. Выглядит оно примерно так:

Kinit = E22[IN_RAND, BD_ADDR(B), PIN’] где PIN’ — предполагаемый нами PIN-код

Далее, сообщения 2 и 3 подвергаются XOR с только что полученным Kinit. Следовательно, следующим шагом мы получим LK_RAND(A) и LK_RAND(B) в чистом виде. Теперь мы можем высчитать предполагаемое значение Kab, для чего проделываем следующую операцию:

LK_K(A) = E21[BD_ADDR(A), LK_RAND(A)] где LK_K(A|B) — это промежуточные величины

LK_K(B) = E21[BD_ADDR(B), LK_RAND(B)]

Kab = LK_K(A) XOR LK_K(B)

Проверим PIN. Возьмем полученный Kab и перехваченный AU_RAND(A) и вычислим SRES(A).

После сравниваем полученный результат с SRES(A)’, хранящийся в сообщении номер 5:

SRES(A) = E1[AU_RAND(A), Kab, BD_ADDR(B)]

Если SRES(A) == SRES(A)’ — PIN успешно угадан. В противном случае повторяем последовательность действий заново с новой величиной PIN’.

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

Re-pairing атака (атака на пересопряжение)

Вулу и Шакеду удалось найти решение трудностей, связанных с атакой Вайтхауза. Был разработан второй тип атаки. Если процесс сопряжения уже начат и данные упущены, мы не сможем закончить атаку. Но был найден выход. Нужно заставить устройства заново инициировать процесс сопряжения (отсюда и название). Данная атака позволяет в любой момент начать вышеописанную pairing атаку.

Рассмотрим следующую ситуацию. Допустим, что устройства уже успели связаться, сохранили ключ Kab и приступили к Mutual authentication. От нас требуется заставить устройства заново начать pairing. Всего было предложено три метода атаки на пересопряжение, причём все из них зависимы от качества реализации bluetooth-ядра конкретного устройства. Ниже приведены методы в порядке убывания эффективности:

  • За pairing следует фаза аутентификации. Master-устройство отсылает AU_RAND и ждет в ответ SRES. В стандарте декларирована возможность потери ключа связи. В таком случае slave посылает «LMP_not_accepted», сообщая master об утере ключа. Поэтому основная цель злоумышленника — отследить момент отправки AU_RAND master-устройством и в ответ внедрить пакет содержащий LMP_not_accepted. Реакцией master будет реинициализация процесса pairing. Причём это приведёт к аннулированию ключа связи на обоих устройствах.
  • Если успеть отправить IN_RAND slave-устройству непосредственно перед отправкой master-устройством величины AU_RAND, то slave будет уверен, что на стороне master утерян ключ связи. Это опять же приведёт к процессу реинициализации сопряжения, но уже инициатором будет slave.
  • Злоумышленник ожидает отправки master-устройством AU_RAND и отправляет в ответ случайно сгенерированный SRES. Попытка аутентификации провалена. Далее следует череда повторных попыток аутентификации(количество зависит от особенностей реализации устройств). При условии, что злоумышленник продолжает вводить master-устройство в заблуждение, вскоре (по счётчику неудачных попыток) устройствами будет принято решение о реинициализации сопряжения.

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

Использовав любой из этих методов, злоумышленник может приступить к базовой атаке на сопряжение. Таким образом, имея в арсенале эти две атаки, злоумышленник может беспрепятственно похитить PIN-код. Далее имея PIN-код он сможет установить соединение с любым из этих устройств. И стоит учесть, что в большинстве устройств безопасность на уровне служб, доступных через bluetooth, не обеспечивается на должном уровне. Большинство разработчиков делает ставку именно на безопасность установления сопряжения. Поэтому последствия действий злоумышленника могут быть различными: от кражи записной книжки телефона до установления исходящего вызова с телефона жертвы и использования его как прослушивающего устройства.

Эти методы описывают, как принудить устройства «забыть» link key, что само по себе ведёт к повторному pairing’у, а значит, злоумышленник может подслушать весь процесс с самого начала, перехватить все важные сообщения и подобрать PIN.

Оценка времени подбора PIN-кода

В протоколе Bluetooth активно используются алгоритмы E22, E21, E1, основанные на шифре Брюс Шнайер (Bruce Schneier). Подбор PIN’a на практике прекрасно работает. Ниже приведены результаты полученные на Pentium IV HT на 3 ГГц:

Длина (знаков) Время (сек)
4 0,063
5 0,75
6 7,609

Конкретные реализации вышеописанных атак могут работать с различной скоростью. Способов оптимизации множество: особые настройки компилятора, различные реализации циклов, условий и арифметических операций. Авиша Вул (Avishai Wool) и Янив Шакед (Yaniv Shaked) совершили прорыв, найдя способ сократить время перебора PIN-кода в разы. Эта оптимизация выходит за рамки данной статьи, но, стоит отметить, что речь идёт об оптимизации базовых алгоритмов стека bluetooth. В свете современных технологий (в частности nVidia CUDA) результаты могли быть ещё лучше.

Увеличение длины PIN-кода не является панацеей и лишь незначительно увеличивает время перебора. Только сопряжение устройств в безопасном месте может частично защитить от описанных атак. Пример — bluetooth гарнитура или автомобильный handsfree. Инициализация связи (при включении) с данными устройствами может происходить многократно в течение дня, и не всегда у пользователя есть возможность находиться при этом в защищённом месте. Впрочем, атаки подобного вида не будут слишком популярны, по крайней мере, пока не будет реализовано доступных аппаратных средств и универсальных программных пакетов.

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

Применение

Hardware

Радиус работы устройств BT2 не превышает 15 метров, для BT1 до 100 м (класс А). Эти числа декларируются стандартом для прямой видимости, в реальности не стоит ожидать работу на расстоянии более 10-20 метров. Такого дальнодействия недостаточно для эффективного применения атак на практике. Поэтому, ещё до детальной проработки алгоритмов атаки, на Defcon-2004 публике была представлена антенна-винтовка BlueSniper, разработанная Джонном Херингтоном (John Herington). Устройство подключается к портативному устройству — ноутбуку/КПК и имеет достаточную направленность и мощность (эффективная работа до 1,5 км).

Примечания

  1. 1 2 About the Bluetooth SIG (англ.). Bluetooth SIG. Проверено 20 марта 2008.
  2. Jim Kardach. How Bluetooth got its name (англ.). United Business Media (3 мая 2008). Проверено 20 марта 2008.
  3. Вишневский и др. Широкополосные беспроводные сети передачи данных. — М.: Техносфера, 2005. — 592 с.

См. также

Ссылки

Wikimedia Foundation. 2010.

Не все смартфоны с поддержкой Bluetooth 5 созданы одинаково, вот почему

Bluetooth, несмотря на то, что он существует с первых дней существования современных смартфонов, все еще развивается. Каждые несколько лет выпускается новая итерация спецификации Bluetooth, последней из которых является Bluetooth 5, анонсированная в 2016 году. Хотя большинство смартфонов в наши дни официально поддерживают ее, в большом количестве смартфонов отсутствуют ключевые функции, определенные в Bluetooth 5. Технические характеристики.Это было недавно подчеркнуто в сообщении на Reddit, которое привлекло наше внимание. Bluetooth 5 приносит много новых улучшений и оптимизаций, но некоторые из них, к сожалению, необязательны. Это означает, что производители смартфонов могут правильно заявлять, что их устройства поддерживают Bluetooth 5, но упускают некоторые из ключевых улучшений в спецификации.

Новые PHY

Одной из важных новых функций, определенных спецификацией Bluetooth 5, является выбор из трех физических уровней. PHY — это аббревиатура от Physical Layer, которая, по сути, является набором микросхем.Как минимум, чипсеты должны поддерживать LE 1M PHY для поддержки Bluetooth 5. LE 1M PHY — это PHY, используемый в Bluetooth 4, и он имеет скорость передачи символов 1 мегасимвол в секунду (Мс/с). Однако LE 2M PHY удваивает эту скорость до 2 Мс/с. Кроме того, есть LE Coded PHY, который обеспечивает примерно в четыре раза большую дальность связи по сравнению с Bluetooth 4 без увеличения энергопотребления.

Что важно в LE 2M и LE Coded, так это то, что для Bluetooth 5 ни один из них не является обязательным. Это означает, что производители могут предоставить те же коммуникационные возможности, что и Bluetooth 4, но рекламировать поддержку Bluetooth 5.Хотя большинство устройств поддерживают либо LE 2M, либо LE Coded, подавляющее большинство не поддерживает ни то, ни другое.

Расширенная реклама

Еще одно улучшение, которое приносит Bluetooth 5, — более длинные рекламные пакеты. Рекламные пакеты — это то, что транслирует ваше устройство, когда оно пытается связаться с другими устройствами, по сути, рекламируя себя другим устройствам. Более длинные рекламные пакеты означают, что ваше устройство может отправлять больше информации о себе и получать больше информации о других устройствах. Маяки больше всего выигрывают от расширенной рекламы. Маяк — это небольшой передатчик Bluetooth, который компании используют, помимо прочего, для рекламы продуктов. Маяк можно было бы установить, например, в парке развлечений, и когда люди будут проходить мимо своих телефонов, они будут ловить сигнал маяка и получать информацию об определенном аттракционе. Чем длиннее рекламный пакет, тем больше информации можно дать. В Bluetooth 4 рекламные пакеты были ограничены 37 октетами информации.Однако в Bluetooth 5 длина пакетов может достигать 255 октетов, что является значительным улучшением.

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

Особенность Bluetooth 4 Bluetooth 5
ЛЭ 1М Да Да
ЛЭ 2М Да (дополнительно)
Код LE Да (дополнительно)
Расширенный
Реклама
Да (дополнительно)

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

Поддерживает ли мое устройство какую-либо из этих функций?

Существует довольно простой способ проверить, поддерживает ли ваше устройство какую-либо из трех функций, упомянутых выше. Для начала просто загрузите nRF Connect из магазина Google Play.

Оттуда пролистайте все вводные сообщения (Изображение 1).Затем нажмите «ОК», чтобы разрешить приложению копировать файлы на ваше устройство, это крайне важно для правильной работы приложения (изображение 2). Теперь нажмите кнопку «гамбургер» с тремя полосами в левом верхнем углу экрана, затем нажмите «Информация об устройстве» (изображения 3 и 4). Вы должны увидеть список функций с «ДА» или «НЕТ» рядом с ними. Если рядом с надписью «Поддерживается высокая скорость (LE 2M)» стоит «да», ваше устройство поддерживает 2-кратную скорость Bluetooth 5. Если «Поддерживается большая дальность (PHY-кодирование)» стоит «да», ваше устройство поддерживает 4-кратную скорость. Bluetooth 5.Если рядом с надписью «Поддерживается расширенная реклама» стоит «да», ваше устройство поддерживает 255-октетную рекламу Bluetooth 5 (изображение 5).

В настоящее время во многих флагманах отсутствует по крайней мере одна из этих функций. Однако улучшения вносятся. В то время как Samsung Galaxy S9+ поддерживал только одну из функций — слой PHY 2m, Galaxy S10+ поддерживает все три. Флагманы Xiaomi и OnePlus также поддерживают все три функции. Известные дешевые устройства, такие как POCO F1, также поддерживают все, поэтому маловероятно, что цена здесь является источником проблемы.

Для Samsung необычно только недавно добавить поддержку всех трех функций, учитывая их историю внедрения в устройства как можно большего количества функций. Также удивительно, что OnePlus включил все, учитывая их прежнее нежелание добавлять поддержку функций, которые они не считают необходимыми. Менее удивительна полная поддержка Xiaomi, в прошлом они не привыкли к многофункциональным телефонам. При этом некоторые могут не согласиться, учитывая предыдущие опасения Xiaomi по поводу добавления поддержки популярных функций, таких как Camera2 API.

Устройство ЛЭ 2М Код LE Расширенная реклама
Samsung Galaxy S10+ (львиный зев) Да Да Да
Сяоми Ми 9 Да Да Да
ОнеПлюс 6Т Да Да Да
Huawei Mate 20 Pro Да Да Да
Huawei Mate 20 X Да
Google Пиксель 3 Да Да
Нокиа 7 Плюс Да
Телефон Razer 2 Да Да
Покофон F1 Да Да
Samsung Galaxy Note 9 (львиный зев) Да

Обидно, что так мало устройств поддерживают все, что указано в Bluetooth 5, потому что для использования новых функций оба взаимодействующих устройства должны поддерживать эту функцию. По словам пользователей, которые предоставили информацию о своих устройствах в вышеупомянутой ветке Reddit, рынок в настоящее время ближе к 0%, чем к 5% полностью поддерживаемых устройств. К счастью, более поздние флагманы, похоже, поддерживают все основные функции.

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

Полное использование возможностей Bluetooth 5 в смартфонах

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

С момента своего официального выпуска в декабре 2016 года Bluetooth 5 вызывает ажиотаж в мире технологий. Обещая более высокую пропускную способность, большую дальность, рекламные расширения и значительно улучшенный алгоритм выбора канала, Bluetooth 5 открывает широкий спектр новых возможностей для гаджетов для смартфонов и проектов разработки IoT.

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

История внедрения Bluetooth 5

Более чем через четыре года после его первого выпуска мы видим широкое распространение Bluetooth 5. Первым флагманским смартфоном с Bluetooth 5 стал Samsung Galaxy S8 в марте 2017 года. был небольшой шок.

Телефон работал под управлением ОС Android Nougat, которая не поддерживала Bluetooth 5.Это означает, что невозможно использовать функции, предлагаемые Bluetooth 5.

Для полной поддержки Bluetooth 5 смартфону нужны две вещи:

  • Радиочип с поддержкой Bluetooth 5 (аппаратный!).
  • Поддержка операционной системы (ОС) (ПО!).

Это была победа маркетинга над полезностью. Да, он соответствовал спецификации Bluetooth 5, но функционально бесполезен! В то время (первый квартал 2017 г.) это вряд ли стало бы проблемой для большинства потребителей, потому что рынок не был мгновенно наводнен готовыми к подключению продуктами Bluetooth 5.Однако это был первый шаг на пути к внедрению Bluetooth 5 в смартфоны.

Андроид Орео

Выпуском операционной системы Android после Nougat был Oreo (он же Android 8.0). Он имел встроенную поддержку Bluetooth 5 и стал первой ОС Android, которая его поддерживает.

Как всегда в случае с Android, внедрение в значительной степени зависит от производителей смартфонов, выпускающих обновления для своих конкретных моделей телефонов. Oreo включал Google Pixel 2, который был первым телефоном с полезной функцией Bluetooth 5.

Большинство Android-смартфонов, выпущенных в конце 2019, 2020 и начале 2021 года, поставляются с Android 10 или Android 11, которые уже имеют полную программную поддержку Bluetooth 5. Таким образом, фактическая поддержка Bluetooth 5 зависит в основном от радиочипа 2,4 ГГц, используемого внутри смартфона.

Яблоко

В Купертино все гораздо проще. Начиная с iPhone 8 и 8 Plus и iPhone X, выпущенного в сентябре 2017 года, поддержка Bluetooth 5 доступна «из коробки».Все, что предшествует этому, не содержит чипа Bluetooth 5 и никогда не будет поддерживать Bluetooth 5.

Преемники iPhone 8, такие как iPhone X, iPhone 11, iPhone 12 Pro/12 Pro Max, имеют стандартную поддержку Bluetooth 5.

Что касается часов Apple, внедрение Bluetooth 5 началось годом позже. Первые часы Apple с поддержкой Bluetooth 5 — это Apple Watch Series 4, выпущенные в сентябре 2018 года.

Функции Bluetooth 5 в смартфонах

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

Подробнее: Компромисс Bluetooth 5

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

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

Подробнее: 70% ритейлеров инвестируют в маяки

Подробнее: Рекламный модуль Bluetooth 5

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

Поддерживают ли смартфоны новейшие функции Bluetooth?

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

Стоит отметить, что производители смартфонов не обязательно поддерживают все функции Bluetooth 5, поскольку некоторые из них указаны как необязательные в спецификации ядра Bluetooth. Например, смартфон может поддерживать функцию Bluetooth с высокой пропускной способностью 2 Мбит/с (PHY 2M), но не поддерживает Bluetooth Long Range (PHY Coded).

Наше популярное мобильное приложение nRF Connect for Mobile (доступно в App Store и Google Play) может быстро проверить, какие конкретные функции Bluetooth поддерживает ваш смартфон. Скриншоты ниже сделаны с двух разных смартфонов: Samsung Galaxy Note20 Ultra 5G и Samsung Galaxy S9.

 

Рис. 1. Снимок экрана приложения nRF Connect, работающего на Samsung Galaxy Note20 Ultra 5G (выпущен в четвертом квартале 2020 г.), показывающий функции Bluetooth, поддерживаемые на смартфоне

 

Рис. 2. Снимок экрана приложения nRF Connect, работающего на Samsung Galaxy S9 (выпущен в первом квартале 2018 г. ), показывающий функции Bluetooth, поддерживаемые на смартфоне

Значительный процент смартфонов теперь поддерживает мощный закодированный PHY, который расширяет радиус действия Bluetooth.Сюда входят как флагманские, так и средние/обычные смартфоны. Функция дальнего действия Coded PHY значительно полезна для таких приложений, как игрушки с дистанционным управлением, и приложений с низкой пропускной способностью, таких как сенсорные сети. Другими функциями Bluetooth, которые часто включаются в смартфоны, являются улучшенный алгоритм выбора канала, периодическая реклама и расширенная реклама.

Это обновленная версия статьи, впервые опубликованной в июне 2018 года.

 

 

Включить Bluetooth-устройства в панели управления для мыши или клавиатуры

Симптомы

При открытии панели управления пункт «Устройства Bluetooth» отсутствует.Кроме того, ваш компьютер может не распознавать клавиатуру и мышь Microsoft Bluetooth.

Причина

Эта проблема возникает, если выполняется одно из следующих условий:

Обходной путь

Примечание. Прежде чем выполнять действия, описанные в этой статье, убедитесь, что вы правильно установили и подключили устройства Bluetooth к компьютеру.

Для получения дополнительных сведений об устранении неполадок с подключением и обнаружением Bluetooth щелкните следующий номер статьи базы знаний Майкрософт:

883258 Как устранить проблемы с обнаружением и подключением Bluetooth в Windows XP с пакетом обновления 2
Чтобы решить эту проблему, выполните действия, описанные в соответствующем разделе.

Компьютер подключен к Интернету

Просмотрите раздел «Устранение неполадок с устройствами с поддержкой Bluetooth» на следующем веб-сайте справки и поддержки Windows в Интернете:

http://windowshelp. microsoft.com/Windows/en-us/Help/11a74104-645d-40d4-b933-bde5d15537bb1033.mspx

Компьютер не подключен к Интернету

Просмотрите раздел «Устранение неполадок с устройствами с поддержкой Bluetooth» в Центре справки и поддержки Windows на жестком диске компьютера, выполнив следующие действия:

  1. Щелкните Запустить , а затем щелкните Справка и поддержка .

  2. В поле Поиск в справке или в поле Поиск в интерактивной справке введите Устранение неполадок с устройствами с поддержкой Bluetooth, а затем щелкните Поиск в справке .

  3. Щелкните ссылку, которая лучше всего описывает проблему, с которой вы столкнулись.

  4. Следуйте рекомендациям по устранению проблемы, с которой вы столкнулись.

Чтобы обойти эту проблему, выполните следующие действия:

  1. Откройте оснастку консоли управления (MMC) для служб. Чтобы сделать это в Windows Vista, нажмите «Пуск», введите services.msc в поле «Начать поиск », а затем щелкните «Службы » в списке «Программы ».

     Если вам будет предложено ввести пароль администратора или подтверждение, введите пароль или нажмите Продолжить .

    Чтобы открыть оснастку консоли управления (MMC) для служб в Windows XP, щелкните Пуск , щелкните Выполнить , введите services.msc и щелкните OK .

  2. Дважды щелкните службу Bluetooth Support .

  3. Если служба поддержки Bluetooth остановлена, нажмите Запустить .

  4. В списке Тип запуска выберите Автоматически .

  5. Нажмите Локальная системная учетная запись .

  6. Щелкните OK .

  7. Если вам будет предложено перезагрузить компьютер, нажмите Да .

Общие сведения о безопасности Bluetooth | Расшифровать

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

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

Следует отметить, что весь этот пост в блоге начался, потому что мне нужно было объяснить конфиденциальность LE в следующем посте в блоге, и «приложение» продолжало расти, пока я просто не выделил его в отдельную вещь.

История

Прежде чем мы объясним текущую безопасность Bluetooth, мы должны немного вернуться в прошлое. Bluetooth был изобретен в 1989 году, но по-настоящему стал использоваться в 2000-х годах. Единого протокола Bluetooth не существует; это набор различных протоколов, объединенных в одну спецификацию. Bluetooth управляется специальной группой по интересам Bluetooth, также называемой Bluetooth SIG.

Чтобы объяснить такое понятие, как конфиденциальность LE, мы должны объяснить часть истории реализации безопасности Bluetooth.«LE» в LE Privacy означает Low Energy, но на самом деле это не имеет ничего общего с энергопотреблением и не означает, что существует режим более высокого энергопотребления, включающий часть «Privacy» LE Privacy. На самом деле это пережиток того времени, когда существовала «более крупная» реализация, которая потребляла больше энергии (Bluetooth Classic), и «меньшая» реализация, когда срок службы батареи был критическим, а потребление энергии необходимо было сократить (Bluetooth Low Energy или LE или BLE). или даже BTLE).

В итоге они были объединены в Bluetooth 4.0, а Bluetooth SIG выбрал функции как из Classic, так и из LE, основываясь на том, что было лучше или когда у одного было что-то, чего не было у другого. И , что , откуда взялось «LE» в «LE Privacy». Помните тот комментарий о сложности Bluetooth? Ну, такие названия не помогают.

Текущий стандарт на момент написания этой статьи — Bluetooth 5 (нет 5.0, есть только 5), хотя большинство устройств используют (и оптимизированы для) 4.0–4.2. Как мы увидим позже, многие поставщики IoT пытаются поддерживать устаревшие протоколы аутентификации, начиная с Bluetooth 2.0, и это может повлиять на качество безопасности .

В модели OSI есть семь уровней — да, я слышу ваши стоны — но мне просто нужно быстро сослаться на некоторые из них. В мире TCP/IP TCP находится на уровне 4, транспортном уровне. Уровень 4 Bluetooth — это протокол управления и адаптации логической связи или L2CAP.

Поверх L2CAP, в основном на уровне 5 — сеансовом уровне — находится диспетчер безопасности, выполняющий весь протокол диспетчера безопасности. Он отвечает за сопряжение, шифрование и подпись.Таким образом, приложение, находящееся на уровне 7, не имеет никакой информации о безопасности, оно просто пыхтит и не заботится о различных процессах нижних уровней, пока оно может отправлять и получать данные.

Bluetooth Smart и Bluetooth Smart Ready

Как упоминалось ранее, с Bluetooth 4.0 появилась новая модель безопасности, основанная на предыдущей и новой работе Bluetooth SIG. Чтобы удовлетворить требования к устройствам, работающим от аккумуляторов, или устройствам, которые могут часто отсоединяться и соединяться, были установлены термины «Bluetooth Smart» и «Bluetooth Smart Ready».Это просто группы характеристик, но их характер влияет на аспект безопасности различных устройств, поэтому полезно знать предысторию.

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

Bluetooth Smart Ready — это устройства, которые могут обмениваться данными с Bluetooth Smart и использовать все его возможности. Ваш смартфон или ноутбук являются хорошими примерами устройств Bluetooth Smart Ready. Если у вас есть старое устройство Bluetooth 2.0 или 3.0, Bluetooth Smart Ready все еще может общаться с ним.

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

Режимы безопасности Bluetooth

Существует два режима безопасности : LE Security Mode 1 и LE Security Mode 2. Также существует четыре уровня безопасности , соответственно пронумерованных от 1 до 4, где 4 является наиболее безопасным. Да, вы можете смешивать уровни и режимы. Чтобы еще больше усложнить ситуацию, есть два дополнительных режима безопасности , которые называются смешанный режим безопасности и режим только безопасного подключения.

Сначала мы начнем с уровней безопасности:

  • Уровень безопасности 1 поддерживает связь вообще без защиты и применяется к любой связи Bluetooth, но думайте об этом как о непарной связи.
  • Уровень безопасности 2 поддерживает шифрование AES-CMAC (также известное как AES-128 через RFC 4493, который соответствует FIPS) во время связи, когда устройства не сопряжены.
  • Уровень безопасности 3 поддерживает шифрование и требует сопряжения.
  • Уровень безопасности 4 поддерживает все навороты, а вместо AES-CMAC для шифрования используется ECDHE (он же Elliptic Curve Diffie-Hellman, он же P-256, который также совместим с FIPS).

Тогда режимы безопасности:

  • Режим безопасности 1 это уровни без подписи данных
  • Режим безопасности 2 — это те же уровни с подписыванием данных, включая как парные, так и непарные соединения.
  • Смешанный режим безопасности — это когда от устройства требуется поддержка обоих режимов безопасности 1 и 2, т. е. оно должно поддерживать подписанные и неподписанные данные.

Режим только безопасного соединения — это безопасный режим 1 с уровнем безопасности 4, что означает, что весь входящий и исходящий трафик в устройстве Bluetooth включает только аутентифицированные соединения и шифрование. Чтобы завершить запутанную сложность, вы можете запустить режим только безопасного соединения с безопасным режимом 2 вместо 1, чтобы гарантировать, что все данные подписаны, но поскольку данные зашифрованы, а больше математики означает больше вычислительной мощности, а больше вычислительной мощности означает быстрее разряд батареи, Bluetooth SIG, по-видимому, считает, что шифрование без подписи достаточно хорошо для этого конкретного режима.

Сопряжение

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

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

Первая фаза

На первом этапе два устройства сообщают друг другу, на что они способны. Значения, которые они считывают, являются значениями протокола атрибуции (ATT). Они живут на уровне 4 с L2CAP и обычно никогда не шифруются. Они определяют, какой метод сопряжения будет использоваться на втором этапе, а также то, что устройства могут делать и чего они ожидают. Например, значения ATT будут отличаться для устройств Bluetooth Smart и Bluetooth Smart Ready.

Второй этап

Целью второго этапа является создание краткосрочного ключа (STK). Это делается с помощью устройств, согласовывающих временный ключ (TK), смешанный с некоторыми случайными числами, которые дают им STK. Сам STK никогда не передается между устройствами. В STK это широко известно как устаревшее сопряжение LE. Однако, если используется режим только безопасного соединения, на этом этапе (вместо STK) генерируется долгосрочный ключ (LTK), который называется безопасным соединением LE.

Третий этап

На третьем этапе ключ второго этапа используется для распределения остальных ключей, необходимых для связи. Если LTK не был создан на втором этапе, он создается на третьем этапе. На этом этапе генерируются такие данные, как ключ разрешения подписи подключения (CSRK) для подписи данных и ключ разрешения личности (IRK) для создания и поиска частного MAC-адреса.

Существует четыре различных метода сопряжения:

  • Числовое сравнение .По сути, оба устройства отображают одно и то же шестизначное значение на своих соответствующих экранах или ЖК-дисплеях, и вы должны убедиться, что они совпадают, и нажать или нажать соответствующую кнопку на каждом устройстве. Это делается не для предотвращения атаки «человек посередине» (MITM), в основном потому, что это не так, а для идентификации устройств друг с другом.
  • Просто работает . Очевидно, что не все устройства имеют дисплей, например, наушники или динамик. Поэтому метод Just Works, наверное, самый популярный.Технически это то же самое, что и числовое сравнение, но шестизначное значение устанавливается равным всем нулям. В то время как числовое сравнение требует некоторой математики на лету, если вы выполняете атаку MITM, в Just Works нет защиты MITM.
  • Ввод пароля . При вводе пароля шестизначное значение отображается на одном устройстве, и оно вводится на другом устройстве.
  • Вне диапазона (OOB) . Метод связи за пределами канала связи Bluetooth не используется, но информация по-прежнему защищена.Apple Watch — хороший пример такого рабочего процесса. Во время метода сопряжения Apple Watch на циферблате отображаются закрученные точки, и вы наводите камеру сопряженного iPhone на циферблат, в то время как (согласно Apple) биты информации передаются через этот процесс. Другой пример — использование связи ближнего поля (NFC) между наушниками с поддержкой NFC и сопряженным телефоном.

Определение режимов и уровней

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

Инициатор или получатель . Определите, является ли устройство инициатором или получателем. В современных терминах Bluetooth он попадает в грубые категории Bluetooth Smart или Bluetooth Smart Ready. Подумайте об этом так: устройство, которое инициирует соединение Bluetooth во время первоначального сопряжения, будет устройством Bluetooth Smart Ready.Устройство, с которым выполняется сопряжение, будет устройством Bluetooth Smart. Затем вам нужно будет доказать, действительно ли они являются Smart или Smart Ready, но знание того, какие из них помогут определить, какие пакеты вам нужно будет просмотреть в трассировке анализатора. Некоторые инструменты будут указывать это как Master или Slave или какой-либо другой набор терминов, обозначающих роли.

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

Инструкции по сопряжению . Когда вы получаете новое устройство с поддержкой Bluetooth, оно обычно содержит инструкции по сопряжению. Очевидно, что если на устройствах есть экраны, которые могут отображать значение, и вы можете заметить, что используется числовое сравнение или ввод пароля, отлично. Если используется OOB, даже лучше, так как это самый безопасный метод сопряжения . В этих случаях вы знаете, что современные реализации безопасности Bluetooth по крайней мере поддерживаются. Если вы видите инструкции по сопряжению, которые включают что-то вроде «если вас попросят ввести пароль, используйте xxxx», где xxxx — четырехзначное значение, то вы знаете, что поддерживается устаревшая аутентификация Bluetooth 2.0, а практически все другие современные элементы безопасности, скорее всего, не реализованы.

Однако в большинстве случаев для сопряжения используется Just Works просто потому, что на многих устройствах категории Bluetooth Smart нет экрана. Если устаревшая аутентификация Bluetooth 2.0 не поддерживается, это не означает, что реализованы дополнительные элементы безопасности, но помогает направить дальнейшие исследования.

Сканирование и зондирование . Сканирование устройства с помощью сканера Bluetooth может помочь определить уровни безопасности. Любая информация, которую вы можете получить из сканирования, включая информацию о задействованном наборе микросхем, очень поможет. Если вы можете определить используемый набор микросхем, вы можете посмотреть, на что он способен (например, «он может обрабатывать до восьми подключений и имеет встроенную поддержку AES-128»). Если чипсет «поддерживает новейшие функции Bluetooth 3.0», то вы знаете, что расширенная безопасность не является частью уравнения.

Обратите внимание на MAC-адрес. Если адрес является общедоступным, а OUI находится в базе данных со связанным с ним именем поставщика IoT, они не используют конфиденциальность LE — они всегда используют константу для MAC-адреса. Вы можете проверить это с течением времени с помощью дальнейшего сканирования и зондирования, поскольку MAC-адрес останется прежним.

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

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

В идеале вы хотите получить снифферную трассировку процесса сопряжения. Если вы исследуете инициатор или устройство Bluetooth Smart Ready, вам нужен пакет Pairing Request . И наоборот, если вы проверяете приемник или смарт-устройство Bluetooth, вам нужен пакет Pairing Reply .

Код операции будет 0x01 для запроса на сопряжение и 0x02 для ответа на сопряжение. Емкость ввода-вывода будет одной из следующих:

  • 0x00 Только отображение
  • 0x01 Отображение Да/Нет (как отображение, так и способ обозначения да или нет)
  • 0x02 Только клавиатура
  • 0x03 Нет входа/выхода (например, наушники)
  • 0x04 Дисплей клавиатуры (как клавиатура, так и экран дисплея)
  • 0x05-0xFF Зарезервировано

Флаг данных OOB будет равен 0x00 при отсутствии данных OOB или 0x01 при наличии данных OOB.Максимальный размер ключа шифрования указывает размер ключа шифрования в октетах, а байты распределения ключей инициатора и ответчика сообщают с помощью флагов, какие ключи будут распределены.

Байт запроса аутентификации состоит из пяти полей и использует различные биты в качестве флагов. Вот поля от младшего до старшего бита:

  • Флаги соединения , два бита, либо 0, либо 1 для самого младшего бита, другой бит зарезервирован. Таким образом, 0 означает отсутствие связи, а 1 — связь.Если используется связывание, будет заменен LTK, что означает, что два устройства могут быть сопряжены, а перезагрузка или спящий режим не отключают устройства. Если шифрование поддерживается, это произойдет отдельно после сопряжения.
  • Флаг MITM , один бит, 0 означает, что защита MITM не запрошена, а 1 означает, что защита MITM запрошена.
  • Безопасное соединение , один бит. Если для этого параметра установлено значение 1, устройство запрашивает режим только безопасного подключения, в противном случае для него установлено значение 0.
  • Флаг нажатия клавиши , один бит. Если установлено значение 1, это означает, что необходимо использовать ввод пароля, в противном случае он игнорируется.
  • Последние три бита зарезервированы.

Помните, однако, что всегда проверяйте свои инструменты и не полагайтесь на то, что они вам говорят — получите несколько примеров одного и того же процесса, чтобы убедиться, что вы точно анализируете данные. И не ждите, что каждый производитель будет следовать правилам, как вы, , можете их интерпретировать. Вот пакет Pairing Reply во время сопряжения Apple Watch с iPhone с использованием процесса ввода пароля, который прекрасно иллюстрирует это:

Рис. 2.Интерпретация Wireshark ответного пакета сопряжения Apple Watch. Обратите внимание, что раздел AuthReq не соответствует необработанным данным.

На рисунке 2 основная проблема заключается в том, что значение байта 24 (смещение 0x17) равно 0x0d. В интерпретации Wireshark установлены только биты для связывания и MITM, а значение 0x0d предполагает, что также установлен бит безопасного соединения. Во время трассировки сниффера был выбран метод ввода пароля, но в этом случае интерпретация Wireshark не только не показывает, что он установлен, необработанные данные также предполагают, что он не установлен.

Следует отметить, что использование режима «Только безопасное соединение» подразумевает использование ввода пароля или OOB в качестве метода сопряжения. Поскольку OOB явно не установлен, по умолчанию будет ввод пароля. И это несмотря на то, что бит Keypress не установлен.

Это означает либо две вещи: 1) поскольку использовался только режим безопасного подключения, Apple сочла, что нет причин устанавливать бит нажатия клавиши, поскольку это будет подразумеваться, или 2) на Apple Watch не будет нажатия клавиши. стороны, поскольку во время реализации Apple Passkey Entry не требуется нажимать клавиши с часов.Я предполагаю, что последнее. В своем пакете запроса на сопряжение iPhone сказал, что он может выполнять 0x04 (экран дисплея и клавиатура для ввода), поэтому, если учесть все, что два устройства утверждают, что они могут делать в разговоре, они могут обрабатывать ввод пароля.

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

Это уровень тщательности, необходимый при рассмотрении Bluetooth для подтверждения или опровержения действия или настройки. В отчете или сообщении в блоге об Apple Watch я мог бы просто сформулировать это как «Apple Watch следуют спецификации Bluetooth для 4.2 во время процесса сопряжения», вместо того, чтобы показывать этот уровень детализации.Но, по крайней мере, вы можете твердо заявить об этом.

Конфиденциальность LE

Всякий раз, когда устройству Bluetooth требуется передача, оно переходит в рекламный режим, в котором объявляет миру о своем присутствии. В зависимости от характера устройства оно может делать это только периодически или постоянно. Он использует MAC-адрес во время рекламы, чтобы другие устройства могли потенциально ответить ему.

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

Здесь на помощь приходит LE Privacy. Это решение было введено при создании Bluetooth Smart (стандарт 4. 0) и является эффективным решением проблемы.Во время процесса сопряжения на третьем этапе (как описано выше) устройства обмениваются различными ключами. Одним из таких ключей является ключ разрешения идентификации (IRK). Этот ключ позволяет создавать и разрешать случайные MAC-адреса для использования в рекламных пакетах.

По сути, реальный MAC-адрес устройства на самом деле не меняется, меняется только то, что сообщается через рекламный пакет. Предоставляя IRK парному партнеру устройства, вы сообщаете этому партнеру, как «разрешить» MAC-адрес для последующего распознавания устройства на основе его случайного рекламного адреса.Чтобы обеспечить повторное подключение устройств, устройство LE Privacy создаст рекламный пакет с MAC-адресом назначения своего партнера в паре и случайным MAC-адресом в качестве источника — партнер в паре знает, как быстро определить MAC-адрес, чтобы определить, кто это, поскольку он может быть сопряжен с несколькими устройствами, использующими LE Privacy.

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

LE Privacy чрезвычайно легко обнаружить в лабораторных условиях: вы просто сканируете MAC-адреса и отслеживаете их с течением времени. Выполняя действия на устройстве с LE Privacy, которые будут генерировать трафик, его будет легче обнаружить. Время задержки будет варьироваться, и производитель полностью определяет интервалы между циклами. Я лично видел от 15 до 30 минут, и большинство устройств, реализующих LE Privacy, также используют новый MAC-адрес после каждого выключения и включения питания.

Где код?

Как уже упоминалось, этот тип исследования не является типичным рабочим процессом «декомпиляция APK для получения кода, который управляет параметрами Bluetooth», поскольку код для стека Bluetooth находится в прошивке устройства или в драйвере устройства. Если он находится в прошивке, добраться до него может быть довольно сложно, как мы видели раньше.

Резюме

Безопасность

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

Google Fast Pair Service  | Разработчики Google

Введение

Служба Google Fast Pair ( GFPS ) использует Bluetooth с низким энергопотреблением ( BLE ) для обнаруживать близлежащие устройства Bluetooth, не расходуя заряд батареи телефона, включение «волшебных» сценариев на основе близости устройства.

Характеристики

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

  1. Отображение уведомления, когда устройство находится в режиме сопряжения, для облегчения легкое начальное сопряжение.
  2. Связывание устройства с учетной записью пользователя после первоначального сопряжения завершенный.
  3. Отображение последующего уведомления о сопряжении, когда устройство включено и рядом с другим телефоном, планшетом или настольным компьютером, принадлежащим пользователю, чтобы пользователь не нужно знать, как перевести устройство обратно в режим сопряжения, прежде чем сопряжение с другими устройствами.
  4. Связывание персонализированного имени с устройством.
  5. Отображение сообщения о наличии обновления прошивки.

Зависимости профиля

Реализация службы GFPS совместима с ядром Bluetooth. Спецификация v4.2 или позже.

Порядок октетов

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

Обратите внимание, что хотя это стандартно для байтов, передаваемых по сети, отличается от порядка байтов для многобайтовых полей в Bluetooth SIG спецификации (например, сервисный UUID в рекламе с прямым порядком байтов).

Конфигурация

ролей

Профиль определяет две роли: Fast Pair Seeker и Fast Pair Provider . Искатель обычно представляет собой телефон, который ищет устройство для сопряжения. Провайдер — это устройство, которое объявляет о своем присутствии и готовности к сопряжению (например, обнаруживаемая пара наушников).

Fast Pair Seeker должен использовать роль GAP Central. Провайдер быстрой пары должен использовать роль периферийного устройства GAP.

Обнаружение устройства

Чтобы облегчить обнаружение устройства, провайдер Fast Pair должен объявить полезную нагрузку что указывает на поддержку службы Google Fast Pair (с данными, как описано ниже). Fast Pair Seeker должен периодически сканировать и наблюдать за наличие рекламных рамок Fast Pair Provider и принять меры, если интересно.

Провайдер быстрой пары

Регистрация модели

Все модели поставщиков должны быть зарегистрированы в Google, прежде чем они будут работать с Быстрая пара. После регистрации Google будет распространять идентификатор модели и Защита от спуфинга пары открытый/закрытый ключ. Информация, предоставленная во время регистрация используется в предложении о сопряжении, представленном пользователю, и может быть используется в другом UX.

Пример предложения по сопряжению (возможны изменения)

Для получения информации о регистрации вашего устройства и получении соответствующего идентификатора модели и Anti-Spoofing, см. рядом Документация на устройства.

Примечание. По умолчанию Fast Pair пытается подключиться к A2DP и ​​HFP после привязки к лучше поддерживает сопряжение с наушниками. Если регистрируемый провайдер не поддерживает эти аудиопрофили, то есть вариант при регистрации устройство на «Пропустить подключение аудиопрофилей (например,грамм. A2DP, HFP)», который должен быть включено. Это также относится только к устройствам BLE.

Мощность передачи

Устройства провайдера должны объявлять о низкой мощности передачи ( TxPower ), чтобы ограничить экспозиция рекламируемого устройства. Однако мощность должна быть достаточно высокой, чтобы что реклама видна с любого телефона на расстоянии не менее 1 метра.

Чтобы определить близость, искатель Fast Pair должен знать провайдера Fast Pair. Мощность передачи. Для целей этого профиля TxPower определяется как мощность принятого сигнала в источнике (0 метров), измеренная в дБм (это то же самое способ, которым Эддистоун определяет его).

Примечание: Лучший способ определить значение — измерить фактический выходной сигнал устройство с помощью телефона Android на расстоянии 1 метра, а затем добавьте к этому 41 дБм. 41 дБм — это средняя потеря мощности сигнала на расстоянии 1 метр.

Это измеренное значение должно быть передано одним из следующих способов:

Включено в запись о рекламе
Устройство включает тип данных Tx Power Level , там же. , § 1.5, в его Реклама.
Предоставляется при регистрации модели
Производитель предоставляет Google мощность передачи и модель устройства используется для его измерения во время регистрации модели.
Устройство должно поддерживать постоянную мощность передачи для всех широковещательных используя эту опцию, чтобы измерения расстояния были точными.

Ключи

Пара открытых/закрытых ключей для защиты от спуфинга

После регистрации модели вместе с идентификатором модели Google будет распространять 256-битный закрытый ключ защиты от спуфинга (целое число в [1,n–1] на сервере secp256r1). эллиптическая кривая).Этот ключ должен храниться на устройстве провайдера, и в идеале хранится внутри защитного элемента ( SE ). Обратите внимание, что элемент безопасности строго рекомендуется — при его отсутствии нет гарантии, что злоумышленники смогут не подделывать роль провайдера, потому что может произойти утечка закрытого ключа. Этот ключ утечка открывает возможность атаки человека посередине; следовательно, если обнаружение олицетворения или злоупотребления, функции Fast Pair, использующие этот ключ, могут быть отключены. отключено (например, уведомление «Нажмите для сопряжения», когда провайдер находится в режим сопряжения).

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

Список ключей учетной записи

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

Список должен иметь возможность хранить не менее пяти ключей (т. не менее 80 байтов пространства, выделенного для этого списка).Провайдеры могут дополнительно хранить более того, они просто должны убедиться, что ключи поместятся внутри их рекламный пакет. Точное число, которое можно сохранить, будет зависеть от того, сколько в рекламном пакете доступны свободные байты; см. ключ учетной записи Раздел «Фильтр» для получения дополнительной информации об определении количества байтов будет занимать каждый ключ. Например, чтобы объявить 10 ключей учетной записи, 15 байт должны быть доступны в пакете.

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

BLE-адрес

Чтобы предотвратить отслеживание, реклама BLE должна использовать случайный разрешимый частный адрес ( РПА ). Адрес должен меняться как минимум каждые 15 минут, пока устройство активно рекламируется, и каждый раз состояние меняется с не реклама к рекламе. Для изменения интервал рандомизации адресов.

Реклама: при обнаружении

Когда устройство провайдера доступно для обнаружения BR/EDR (то есть находится в режиме сопряжения), оно должны рекламировать данные идентификатора модели Fast Pair через BLE, а адрес BLE не должен быть повернуты.

Интервал рекламы

Интервал между объявлениями не должен превышать 100 мс (10 Гц). А быстрая скорость позволяет Искателю быстро находить Провайдера, даже при сканировании в маломощный режим.

Рекламная полезная нагрузка: данные идентификатора модели Fast Pair

Объявление должно содержать тип данных Service Data, там же, § 1.11. UUID должен быть UUID Fast Pair Service 0xFE2C . Служебные данные должны содержат следующее:

Октет Тип данных Описание Значение
0-2 uint24 ID 24-битной модели варьируется
Код модели

Каждая модель Provider имеет 24-битный идентификатор модели, который предоставляется Google во время Регистрация модели.

Реклама: когда невозможно обнаружить

Если устройство провайдера недоступно для обнаружения (то есть не в режиме сопряжения), оно должно рекламировать данные учетной записи Fast Pair, используя следующие рекомендации.

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

Интервал рекламы

Интервал между объявлениями должен быть не более 250 мс (4 Гц).

Рекламная полезная нагрузка: данные учетной записи Fast Pair

Объявление должно содержать тип данных Service Data, там же, § 1.11. UUID должен быть UUID Fast Pair Service 0xFE2C . Служебные данные должны содержат следующее:

Октет Тип данных Описание Значение
0 uint8 Флаги 0x00
(все биты зарезервированы для будущего использования)
1 — варьируется Ключевые данные учетной записи варьируется
или 0x00 , если список ключей учетной записи пуст

Данные ключа учетной записи содержат:

Октет Тип данных Описание Значение
0 uint8 Длина и тип поля
0bLLLLTTTT
  • L = длина фильтра ключа учетной записи в байтах
  • T = тип
0bLLLL0000
  • длина = 0bLLLL = варьируется
  • тип = 0b0000 (показать индикацию пользовательского интерфейса) или 0b0010 (скрыть индикацию пользовательского интерфейса), фильтр ключа учетной записи
1 — с Фильтр ключа учетной записи варьируется
с + 1 uint8 Длина поля и тип
0bLLLLTTTT
  • L = длина в байтах
  • T = тип
0b00010001
  • длина = 0b0001 = 1
  • тип = 0b0001, соль (см. Вращение)
с + 2 uint8 Соль варьируется
Фильтр ключа учетной записи

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

Фильтр ключа учетной записи представляет собой фильтр Блума переменной длины, построенный следующим образом:

  1. Пусть n будет количеством ключей учетной записи ( n >= 1) в сохраненном Список ключей учетной записи.
  2. Пусть s , размер фильтра в байтах, будет (1,2 * n + 3) усеченным. Для например, если сохраняется 1 ключ, с = 4 байта.
  3. Инициализируйте фильтр F как массив s байтов, каждый из которых установлен в 0.
  4. Для каждого ключа учетной записи K в списке сохраненных ключей учетной записи:
    1. Пусть V будет concat( K , Соль).
    2. Хэш V с использованием SHA256, получение 32-байтового значения H = {Н 0 , …, Н 31 }.
    3. Разделить H на восемь 4-байтовых целых чисел без знака с обратным порядком байтов, Х = {Х 0 , …, Х 7 }, где X 0 = 0xH 0 H 1 H 2 H 3 .
    4. Для каждого X и :
      1. Пусть M будет X i по модулю числа битов в фильтре, ( с *8).
      2. Получить байт в F по индексу ( M /8), округлить в меньшую сторону.
      3. Внутри байта установите бит в индексе ( M % 8) равным 1.
      4. Другими словами:
         M = X  i  % (s * 8)
        F[M/8] = F[M/8] | (1 << (М % 8)) 

Включите фильтр F в поле Фильтр ключа учетной записи в рекламных данных.Обратите внимание, что для этого значения нет "порядка байтов", так как нет больше или меньше значащий байт — не меняйте порядок байтов.

Вращение

Чтобы уменьшить возможность отслеживания устройств путем мониторинга фильтра ключа учетной записи, Фильтр ключа учетной записи должен быть перегенерирован с новой солью не реже чем каждые 15 минут, пока устройство активно рекламируется. Однако учтите, что если устройство подключено по каналу BR/EDR, то общедоступный адрес одного конца ссылка транслируется в виде кода доступа к каналу, поэтому конфиденциальность ограниченное.

Соляное поле

Соль — это случайное значение, которое добавляется к ключам учетной записи при построении фильтр Блума. Эта соль должна регенерироваться каждый раз, когда RPA обновляется для провайдера, чтобы избежать отслеживания ротации адресов.

Для создания фильтра ключа учетной записи с использованием соли:

  1. Создать случайный байт S .
  2. Используйте байт S в качестве соли на шаге 4(a).
  3. В объявленных данных учетной записи Fast Pair включите сгенерированный фильтр в поле «Фильтр ключа учетной записи» и S в поле «Соль».

Служба ГАТТ

Провайдер Fast Pair должен иметь следующую услугу GATT.

Служба UUID
Услуга быстрой пары 0xFE2C

Эта услуга должна иметь следующие характеристики.

Пользовательские характеристики
Характеристика Fast Pair Service Зашифровано Разрешения UUID
Код модели Читать FE2C1233-8366-4814-8EB0-01DE32100BEA
Сопряжение на основе ключа Написать и сообщить FE2C1234-8366-4814-8EB0-01DE32100BEA
Код доступа Написать и сообщить FE2C1235-8366-4814-8EB0-01DE32100BEA
Ключ учетной записи Написать FE2C1236-8366-4814-8EB0-01DE32100BEA
Старая характеристика службы Fast Pair (цель будет прекращена 1 января 2021 г. ) Зашифровано Разрешения UUID
Код модели Читать 0x1233
Сопряжение на основе ключа Написать и сообщить 0x1234
Код доступа Написать и сообщить 0x1235
Ключ учетной записи Написать 0x1236
Стандартные характеристики
Имя Зашифровано Разрешения UUID
Версия прошивки Читать 0x2A26
Согласование размера ATT MTU

По возможности следует использовать значение MTU 83, но значение по умолчанию 23 разрешено.

Характеристика: ID модели

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

Октет Тип данных Описание Значение
0 - 2 uint24 Идентификатор модели варьируется
Характеристика: сопряжение на основе ключа

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

  • Вариант 1: Предварительно выданный ключ основан на открытом/закрытом ключе защиты от спуфинга. пару, и собственную пару открытого/закрытого ключа Искателя, которая будет меняться для каждого попытка сопряжения.

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

    Обратите внимание, что в режиме сопряжения провайдер, конечно, также может выполнить сопряжение в обычным способом, например, для сопряжения с устройством, не поддерживающим Fast Pair’s Key-based Pairing.

  • Случай 2: Предварительно общий ключ является одним из ключей учетной записи.

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

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

Формат данных

См. процедуру использования каждого формата.

Октет Тип данных Описание Значение Обязательно?
0 - 15 uint128 Зашифрованный запрос варьируется Обязательно
16 - 79 Открытый ключ варьируется Дополнительно

Таблица 1.1: Зашифрованный запрос, записанный Искателем в характеристику.

Октет Тип данных Описание Значение Обязательно?
0 uint8 Тип сообщения 0x00 = Запрос сопряжения на основе ключа Обязательно
1 uint8 Флаги
  • Бит 0 (MSB): устарел и игнорируется Seeker.
  • Бит 1: 1, если Искатель запрашивает, чтобы Провайдер инициировал связывание, и этот запрос содержит адрес BR/EDR Искателя. 0 иначе.
  • Бит 2: 1, если Искатель запрашивает, чтобы Провайдер уведомил существующее имя. 0 иначе.
  • Бит 3: 1, если это для записи ключа учетной записи задним числом. 0 иначе.
  • Биты 4–7 зарезервированы для использования в будущем и должны игнорироваться.
варьируется Обязательно
2 - 7 uint48 Либо:
  • Текущий BLE-адрес провайдера
  • Публичный адрес провайдера
варьируется Обязательно
8 - 13 uint48 Адрес BR/EDR Искателя варьируется Присутствует, только если установлен бит 1 или 3 флага
- 15 Случайное значение (соль) варьируется Обязательно

Таблица 1. 2.1: Необработанный запрос (тип 0x00). Расшифровано из зашифрованного Запрос в таблице 1.1.

Октет Тип данных Описание Значение Обязательно?
0 uint8 Тип сообщения 0x10 = запрос действия Обязательно
1 uint8 Флаги варьируется Обязательно
2 - 7 uint48 Либо:
  • Текущий BLE-адрес провайдера
  • Публичный адрес провайдера
варьируется Обязательно
8 uint8 Группа сообщений варьируется Обязателен, если установлен флаговый бит 0
9 uint8 Код сообщения варьируется Обязателен, если установлен флаговый бит 0
10 uint8 Зависит от флагов:
  • Бит 0 установлен: дополнительная длина данных, менее 6
  • Бит 1 установлен: идентификатор данных
варьируется Обязателен, если флаги бит 0 или 1 установлены
11 - нет Дополнительные данные варьируется Дополнительно
- 15 Случайное значение (соль) варьируется Обязательно

Таблица 1. 2.2: Необработанный запрос (тип 0x10). Расшифровано из зашифрованного Запрос в таблице 1.1.

Октет Тип данных Описание Значение
0 uint8 Тип сообщения 0x01 = ответ сопряжения на основе ключа
1 - 6 uint48 Публичный (BR/EDR) адрес провайдера варьируется
7 - 15 Случайное значение (соль) варьируется

Таблица 1.3: Необработанный ответ. Зашифровано для получения зашифрованного ответа в Таблица 1.4.

Октет Тип данных Описание Значение
0-15 uint128 Зашифрованный ответ варьируется

Таблица 1. 4: Зашифрованный ответ , отправленный Провайдером Искателю через уведомлять.

Процедура

Вместо немедленного вызова любого из обычных связываний BR/EDR или BLE процедуры, Искатель сначала включает уведомления о сопряжении на основе ключа характеристики, а затем записывает данные в Таблицу 1.1 к нему.

При обработке запроса на запись от Fast Pair Seeker, Fast Pair Provider должен сделать следующее:

  1. Если присутствует необязательное поле открытого ключа:
    1. Если устройство не находится в режиме сопряжения, проигнорируйте запись и выйдите.
    2. В противном случае:
      1. Используйте полученный открытый ключ (64-байтовая точка на secp256r1 эллиптическая кривая), предустановленный Anti-Spoofing Private Ключ (тоже secp256r1), и алгоритм Эллиптической кривой Диффи-Хеллмана для генерации 256-битного ключ АЕС.
      2. Используйте SHA-256 для хеширования 256-битного ключа AES.
      3. Возьмите первые 128 бит результата. Это антиспуфинг AES Ключ, используемый на следующем шаге.
  2. Используя AES-128, попытайтесь расшифровать значение. Поскольку значение является единственным 16-байтовый блок AES, режим IV или многоблочного шифрования не требуется.

    1. Какой ключ использовать:
      1. Если на шаге 1 был сгенерирован ключ AES для защиты от спуфинга, используйте этот ключ.
      2. В противном случае попробуйте каждый ключ в списке сохраненных ключей учетной записи.
    2. Если ключ успешно расшифровывает значение, прерывание и переход к следующему шаг.
    3. Значение успешно расшифровано, если выходные данные соответствуют формату в Таблица 1.2.1 или Таблица 1.2.2 (т.е. если содержит либо текущий BLE-адрес Fast Pair Provider, либо Fast Публичный адрес провайдера Pair).
    4. Обратите внимание, что в конце пакета есть соль. Когда возможно, эти соли должны отслеживаться, и если Провайдер получает запрос, содержащий уже использованную соль, запрос следует игнорировать, чтобы предотвратить повторные атаки.
    5. В качестве альтернативы отслеживанию солей, если запись включает частный адрес, еще один способ предотвратить атаки повторного воспроизведения — это принести перенаправить время следующей разрешимой ротации частных адресов, чтобы ротация происходит до того, как следующая запись сопряжения на основе ключа будет принятый.
  3. Если ни один ключ не может успешно расшифровать значение, проигнорируйте запись и выйдите.

    1. Подсчитайте эти сбои. Когда количество неудач достигнет 10, провалите все новые запросы немедленно.Сбросить счетчик отказов через 5 минут, после при включении питания или после успешного завершения.
  4. В противном случае сохраните успешный ключ как K . Отметьте этот K как пригодный для расшифровывая пароль и персонализированное имя, полученные по этому каналу LE, но ни другие записи, ни какие-либо записи по любой другой ссылке. Запустите таймер для сброса K через 10 секунд, если сопряжение не было запущено. Также откажитесь от K , если эта ссылка LE отключается.

  5. Создайте 16-байтовый необработанный ответ, показанный в таблице 1.3, по объединение типа и адреса BR/EDR Провайдера, а затем заполнение остаток пакета с блоком случайных байтов (то есть солью).

  6. Зашифровать необработанный ответ с помощью K, чтобы получить 16-байтовый зашифрованный ответ показано в таблице 1.4. Отправьте это через уведомление о сопряжении на основе ключа характеристика.

  7. Если в байте флагов запроса бит 2 установлен в 1, уведомить Характеристика дополнительных данных с персонализированным именем.

  8. Если байт флагов запроса имеет бит 1, установленный в 1:

    1. Это указывает на то, что Искатель запрашивает у Провайдера инициацию связывание с адресом BR/EDR Искателя, который присутствует в байтах 8-13.
    2. Отправить запрос на сопряжение на адрес BR/EDR Искателя. Пейринг запрос должен быть таким, как описано ниже (шаг «Во время сопряжения»).
    3. Причина, по которой это необходимо: Инициация поставщиком работ по решению проблемы на некоторых устройствах.
  9. Если байт флагов запроса имеет бит 1, установленный на 0:

    1. Подождите до 10 секунд для запроса сопряжения. Если ничего не получено, выйдите.
    2. Обратите внимание, что это может быть запрос BR/EDR с другого адреса (адрес Публичный адрес Искателя вместо его разрешимого частного адреса).Во время сопряжения мы еще раз проверим, что запрашивающее устройство находится в владение K .
  10. Во время сопряжения:

    1. При получении пакета запроса/ответа сопряжения от Seeker: Если Возможности устройства в запросе: NoInput/NoOutput, завершение сопряжения, чтобы избежать использования метода сопряжения Just Works.
    2. Для пакета запроса/ответа на сопряжение, отправленного провайдером: установите В поле «Возможности устройства» укажите Display/YesNo и установите аутентификацию. Требования к Требуется защита MITM .Это запускает числовой Сравнительный метод сопряжения (также известный как подтверждение пароля). на Андроиде). Мы полагаемся на это, чтобы подтвердить, что запрашивающее устройство действительно является быстрым. Пара Искатель, и что нет никакого посредника. См. примеры.
    3. Причина, по которой это необходимо: лучше использовать метод сопряжения по внешнему каналу. подходит, но платформа не выставляет его на всех желаемых версиях Андроид.
  11. Когда требуется подтверждение пароля, подождите до 10 секунд для записи к характеристике пароля.

    1. Обычно при использовании этого метода сопряжения пользователь подтверждает, что пароли, отображаемые на экране каждого устройства, идентичны. Вместо, только для этой пары мы передавать их по BLE, зашифровав с помощью доверенного предварительного общего ключа.
    2. Обратите внимание, что этот подход не следует использовать для устройств с экран или клавиатуру, так как это немного снижает защиту MITM. В настоящее время Fast Pair не поддерживает эти типы устройств из-за это.
    3. Если 10-секундный таймер истекает при записи ключа доступа, затем отбросить K .
  12. Когда значение записывается в характеристику ключа доступа, это зашифрованное Блокировка пароля. Расшифруйте его с помощью K, чтобы получить необработанный блок ключа доступа с форматом показано в Характеристике: Ключ доступа > Таблица 2.2 (тип = Ключ Искателя).

  13. Если расшифровка не удалась, игнорируйте запись и отбрасывайте K .

  14. В противном случае блок Raw Passkey Block содержит 6-значный пароль P Искатель , который является ключом доступа, который ожидает Искатель.

  15. Сравните P Seeker с нашим ожидаемым паролем, P Провайдер .

    1. Если значения равны, ответьте «да» на подтверждение.
    2. В противном случае ответьте «нет» на подтверждение, что приведет к сбою сопряжения.
  16. Независимо от того, не удалось ли выполнить сопряжение, создайте еще один необработанный блок ключа доступа с формат показан в характеристике: ключ доступа > Таблица 2.2, содержащий наш собственный ожидаемый ключ доступа, P Provider .

    1. Убедитесь, что блок имеет правильный тип (пароль провайдера; см. таблицу).
    2. Примечание. Не используйте повторно соль из блока пароля, полученного от Искатель. Создайте новое случайное значение.
  17. Зашифруйте необработанный блок ключа доступа с помощью K и отправьте полученный зашифрованный Блокировка пароля через уведомление о характеристике пароля.

  18. Если Искатель получит и расшифрует правильный пароль P , Искатель также ответьте «да» на подтверждение, и сопряжение будет выполнено успешно.

    1. Если соединение прошло успешно, отметьте K как пригодный для расшифровки учетной записи. Ключ записывает по этой ссылке LE, но не для каких-либо последующих записей пароля или любой пишет по любой другой ссылке. Запустить таймер для сброса K через 10 секунды. Также отбрасывайте K после любой попытки записи ключа учетной записи. и, согласно шагу 4, если канал LE отключается.
    2. Если сопряжение не удалось, сбросьте K .
  19. Переключите поле возможностей устройства обратно на NoInput/NoOutput и Требования аутентификации для MITM Protection Not Required , чтобы новые пары продолжаются, как и ожидалось.

Примеры
Пример 1: Успешная попытка сопряжения (без посредника). Пример 2: Неудачная попытка сопряжения с человек посередине.
Характеристика: Ключ доступа

Эта характеристика используется во время процедуры сопряжения на основе ключа.

Октет Тип данных Описание Значение
0 - 15 uint128 Зашифрованный блок ключей доступа варьируется

Таблица 2. 1: Зашифрованный блок ключей доступа. Видеть Процедура сопряжения на основе ключа для использования.

Октет Тип данных Описание Значение
0 uint8 Тип сообщения Один из:
  • 0x02 = Пароль Искателя
  • 0x03 = Пароль Провайдера
1 - 3 шт.32 6-значный пароль варьируется
4 - 15 Случайное значение (соль) варьируется

Таблица 2.2: Необработанный блок ключей доступа. Расшифрованная версия таблицы 2.1.

Характеристика: Ключ учетной записи

После сопряжения Fast Pair Seeker запишет ключ учетной записи поставщику Fast Pair.

Октет Тип данных Описание Значение
0 - 15 uint128 Ключ учетной записи (зашифрованный) варьируется

Получив запрос на запись, провайдер Fast Pair должен сделать следующее:

  1. Расшифруйте ключ учетной записи, используя общий секрет, созданный на шаге 4 в выше процедура.
    1. Перед расшифровкой убедитесь, что общий секрет использовался для расшифровки запрос пароля с шага 12. Если этот шаг не пройден с помощью этого секрет, игнорируйте это письмо и выходите.
    2. В этот момент общий секрет ( K в приведенной выше процедуре) не будет используется снова для этой пары. Любые запросы, поступающие в зашифрованном виде с помощью этот ключ без перезапуска описанной выше процедуры следует отклонить.
  2. Убедитесь, что расшифрованное значение начинается с 0x04 . Если это не так, игнорируйте это пиши и бросай.
  3. Проверьте, есть ли в сохраненном списке ключей учетной записи место для нового стоимость.
  4. Если нет, удалите из списка наименее использовавшееся значение.
  5. Добавьте новое значение в список.

Ключи учетных записей в списке используются во время сопряжения на основе ключей.

Характеристика: Версия прошивки

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

Октет Тип данных Описание Значение
0 - переменная утф8с Код версии прошивки варьируется

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

.
  1. статус-обновление : если провайдер в настоящее время обновляет прошивку до новой. Как вариант, Провайдер может вернуть версию поставленной прошивки.

  2. статус-аномальный : если провайдер находится в ненормальном состоянии. Например, это вышел из строя из-за сбоя обновления прошивки. Это значение вызовет Искатель, чтобы показать сообщение, чтобы сообщить пользователю, что он должен быть обновлен сейчас.

Удлинители

Уведомление о батарее

Опционально для привязных наушников.

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

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

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

Октет Тип данных Описание Значение Обязательно?
0 uint8 Флаги 0x00
(все биты зарезервированы для использования в будущем)
Обязательно
1 - с Ключевые данные учетной записи Обязательно
с + 1 uint8 Уровень заряда батареи и тип
0bLLLLTTTT
  • L = количество значений батареи
  • T = тип
0bLLLLTTTTT
  • длина = 0b0011 = 3 значения батареи
  • тип = 0b0011 (показать индикацию пользовательского интерфейса) или 0b0100 (скрыть индикацию пользовательского интерфейса)
Дополнительно
с + 2 , с + 3 , с + 4 uint8 Значения батареи
0bSVVVVVVV
  • S = состояние (заряжается или не заряжается)
  • V = значение
  • Значения батареи должны быть упорядочены как левый наушник ( с + 2 ), правый наушник ( с + 3 ) и случай ( с + 4 ).
0bSVVVVVVV
  • статус = 0b1 (заряжается) или 0b0 (не заряжается)
  • Значение
  • = уровень заряда батареи от 0 до 100 процентов, 0bS1111111 для неизвестного.
Дополнительно

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

  1. Получить значение В , где:
    1. Первые 16 байтов: K .
    2. Следующие байты - это Соль (см. Ротация).
    3. Остальные байты - это информация о батарее (от с + 1 до с + 4 включая длину и тип байта из таблицы выше).

Как указано в поле длины и типа батареи выше, тип может быть либо 0b0011 или 0b0100 .Используйте 0b0011 , когда провайдер хочет, чтобы искатель показал индикация в UI значений батареи; используйте 0b0100 , когда провайдер хочет Искатель, чтобы скрыть индикацию, если она уже отображается. Один общий вариант использования для этого нужно использовать 0b0011 , когда корпус открыт, и 0b0100 , когда бутоны был удален из дела или он был снова закрыт.

Чтобы предотвратить отслеживание, провайдер не должен включать необработанные данные батареи в реклама все время.Вместо этого его можно отправить через RFCOMM при подключении к Искатель, см. ниже.

Персонализированное имя

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

Записывает характеристику дополнительных данных с персонализированным имя может встречаться в 2 потоках:

  1. После первоначального сопряжения Искатель может написать персональное имя в Провайдер после написания ключа аккаунта.
  2. После того, как пользователь изменит персонализированное имя на Искателе, Искатель напишите новое имя провайдеру:
    1. рукопожатие от шага 1 до шага 4 в описанной выше процедуре для идентифицировать друг друга и знать, какой ключ учетной записи будет использоваться для шифрование и расшифровка имени. В таблице 1.2.2:
      1. Установить тип сообщения на 0x10
      2. Установите флаговый бит 1 в 1, чтобы указать, что за ним будет следовать Характеристика данных.
      3. Установите для идентификатора данных из таблицы 1.2.2 значение 0x01 в качестве персонального имени.
    2. записать имя в характеристику данных FE2C1237-8366-4814-8EB0-01DE32100BEA .

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

Характеристика: Дополнительные данные

Эта служба должна иметь следующие характеристики.

Характеристика Fast Pair Service Зашифровано Разрешения UUID
Данные Написать и сообщить FE2C1237-8366-4814-8EB0-01DE32100BEA
Старая характеристика службы Fast Pair (цель будет прекращена 1 января 2021 г.) Зашифровано Разрешения UUID
Данные Написать и сообщить 0x1237

Прежде чем писать или уведомлять об этой характеристике, необходимо квитирование через характеристику FE2C1234-8366-4814-8EB0-01DE32100BEA иметь общий секрет. AES-CTR будет использоваться для шифрования данных, проходящих через этот характеристика, алгоритм которой определен ниже. Этот режим более безопасный для данных, которые выходят за пределы одного 16-байтового блока. HMAC-SHA256 будет использоваться для обеспечения целостности данных, что также определено ниже.

Октет Описание Значение
0 - 7 Первые 8 байт HMAC-SHA256. варьируется
8 - 15 Nonce, используемый шифрованием AES-CTR. варьируется
16 - вар Зашифрованные данные. варьируется

Таблица 3.1: Пакет данных , отправленный Провайдером Искателю через уведомить или отправить Искателем Провайдеру посредством записи.

Октет Тип данных Описание Значение
0 - переменная Массив байт Данные варьируется от , расшифруйте его в соответствии с идентификатором данных в таблице 1. AES(ключ, concat((uint8) i, 0x00000000000000, nonce))

где

  1. Ключ AES — это общий секрет из шага 4 описанной выше процедуры.ipad), concat(одноразовый номер, зашифрованные_данные)))))

    где

    1. K генерируется concat(shared_secret, 48-байтовые нули), shared_secret взят из шага 4 описанной выше процедуры.
    2. opad — это внешнее заполнение размером 64 байта, состоящее из повторяющихся байтов со значением 0x5C .
    3. ipad — это внутреннее заполнение размером 64 байта, состоящее из повторяющихся байтов со значением 0x36 .
  2. Возьмите первые 8 байтов из HMAC-SHA256 в качестве префикса данных пакет.AES (ключ, concat ((uint8) i, 0x00000000000000, одноразовый номер))

    где

    1. encryptedBlock[i] — это 16-байтовый блок, начинающийся с зашифрованных_данных[i * 16]. Последний блок может быть меньше 16 байт.
    2. Ключ AES генерируется или идентифицируется из рукопожатия, например.
      1. в потоке именования 1, это из ECDH, и он не будет использоваться снова для этого сопряжения. Любые запросы, поступающие в зашифрованном виде с помощью этого ключа без перезапуска описанной выше процедуры следует отклоненный.
      2. в потоке имен 2, это ключ учетной записи.
  3. Выполните concat(clearBlock[0], clearBlock[1],…) для создания необработанных данных.

Поток сообщений

Fast Pair поддерживает канал RFCOMM для провайдеров, которые хотят поддерживать постоянное подключение к устройству во время работы. Когда провайдер подключается к поддерживаемому Seeker, Seeker попытается подключиться к RFCOMM на следующий канал:

  дф21фе2к-2515-4фдб-8886-ф12к4д67927к
  

После подключения возможен обмен сообщениями в следующем формате:

Октет Тип данных Описание Обязательно?
0 uint8 Группа сообщений Обязательно
1 uint8 Код сообщения Обязательно
2 — 3 uint16 Длина дополнительных данных Обязательно
4 — п Дополнительные данные Дополнительно

Длина дополнительных данных и поля дополнительных данных должны указываться в обратном порядке.

Беззвучный режим

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

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

Имя группы сообщений Значение
Событие Bluetooth 0x01
Кодовое название события Bluetooth Значение
Включить беззвучный режим 0x01
Отключить беззвучный режим 0x02

Длина дополнительных данных для обоих случаев равна 0.

Например, чтобы включить режим тишины, провайдер должен отправить следующее пакет:

  0x01010000
  

где,

  • Первый байт (0x01) означает, что это команда события Bluetooth
  • Второй байт (0x01) означает включение режима тишины
  • Третий и четвертый байты (0x0000) означают, что дополнительные данные не включены

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

Примечание: Поставщик всегда должен отправлять начальное состояние искателю один раз RFCOMM подключается для обеспечения передачи правильного состояния.
События вспомогательного приложения

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

Имя группы сообщений Значение
Событие приложения-компаньона 0x02
Кодовое название события вспомогательного приложения Значение
Буфер журнала заполнен 0x01

Всякий раз, когда Seeker получает сообщение с группой событий сопутствующего приложения, он будет передан в сопутствующее приложение, зарегистрированное для провайдера.В частности, для события заполнения буфера журнала приложения-компаньоны должны зарегистрировать широковещательный приемник, поддерживающий com.google.android.gms.nearby.fastpair.ACTION_LOG_BUFFER_FULL действий в их манифест.

Провайдеры должны использовать событие заполнения буфера журнала для оптимизации через сопутствующее приложение на стороне Seeker.

Информация об устройстве

Провайдеры могут уведомлять Искателя об информации об устройстве через поток сообщений.

Имя группы сообщений Значение
Информационное событие устройства 0x03
Информация об устройстве Кодовое название Значение
Код модели 0x01
Адрес BLE обновлен 0x02
Батарея обновлена ​​ 0x03
Оставшееся время работы от батареи 0x04
Запрос активных компонентов 0x05
Ответ активных компонентов 0x06
Возможности 0x07
Тип платформы 0x08
Код модели

Информация об идентификаторе модели (для Запись AccountKey задним числом) должна быть отправляется Искателю при подключении RFCOMM. Например, 0x03010003AABBCC будет:

  • 0x03: событие информации об устройстве
  • 0x01: значение идентификатора модели
  • 0x0003: Дополнительные данные, длина 3
  • 0xAABBCC: дополнительные данные, идентификатор модели
Адрес BLE

Адресная информация BLE (для Запись AccountKey задним числом), если доступна, также должна быть отправлена ​​на Искатель при подключении RFCOMM и всякий раз, когда адрес повернут. Например, 0x03020006AABBCCDDEEFF будет:

  • 0x03: событие информации об устройстве
  • 0x02: значение адреса BLE
  • 0x0006: Дополнительные данные, длина 6
  • 0xAABBCCDDEEFF: дополнительные данные, адрес BLE
Батарея обновлена ​​

Для провайдеров, поддерживающих уведомления о заряде батареи, информация о батарее также может быть отправлена ​​через RFCOMM. Когда RFCOMM подключается или изменяется значение батареи, необходимо отправить обновление. Раздел дополнительных данных пакет должен содержать данные, идентичные байтам с + 2 , с + 3 , с + 4 при реклама данных батареи через BLE. Например, 0x0303000357417F будет:

  • 0x03: событие информации об устройстве
  • 0x03: Значение батареи
  • 0x0003: Дополнительные данные, длина 3
  • 0x57417F: Дополнительные данные, значения батареи
    • 0x57: значение левого наушника, не заряжается, 87% батареи
    • 0x41: правильное значение бутона, не заряжается, батарея заряжена на 65 %
    • 0x7F: значение случая, не заряжается, неизвестная батарея

Провайдеры также могут обновлять данные об оставшемся времени работы от батареи (если известно). Например, 0x03040001F0 будет:

  • 0x03: событие информации об устройстве
  • 0x04: оставшееся время работы от батареи
  • 0x0001: Дополнительные данные, длина 1 (при необходимости может быть 2 для uint16. )
  • 0xF0: Дополнительные данные, оставшееся время работы от батареи в минутах, 240 минут
Активные компоненты

Искатели могут иногда хотеть знать, какие компоненты в настоящее время активны, это означает, что над ними можно выполнить действие (см. Устройство действия). Когда провайдер получает запрос, содержащий активных компонентов запрашивают код (0x05), ответ должен быть возвращен в течение 1 второе, указывающее текущее состояние провайдера. В ответе будет использоваться активных компонентов отвечают кодом (0x06) и содержат дополнительные данные, указывающие какие компоненты доступны.

Для провайдера с одним компонентом дополнительные данные должны быть установлены на 0x00, если он недоступен. Примером этого может быть режим низкого энергопотребления, когда воспроизведение мультимедиа не будет выполняться. В противном случае необходимо указать дополнительные данные до 0x01.

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

  • 0x00 (0b00000000): ни одна из почек не активна
  • 0x01 (0b00000001): правый наушник активен, левый неактивен
  • 0x02 (0b00000010): левый бутон активен, правый неактивен
  • 0x03 (0b00000011): оба наушника активны
Возможности

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

Сообщение будет содержать список битов, указывающих, какие функции доступны:

  • Бит 0: 1, если сопутствующее приложение установлено, 0 в противном случае
  • Бит 1: 1, если поддерживается режим молчания, 0 в противном случае
  • Все остальные биты зарезервированы для использования в будущем и должны быть установлены на 0

Например, Seeker, на котором не установлено приложение-компаньон, но поддержка режима тишины будет отправлять 0x0307000102 при подключении:

  • 0x03: событие информации об устройстве
  • 0x07: значение возможностей
  • 0x0001: Дополнительные данные, длина 1
  • 0x02: дополнительные данные, поддерживается беззвучный режим
Тип платформы

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

Сообщение будет содержать первый байт, идентифицирующий тип платформы в дополнительные данные:

Название платформы Значение
Андроид 0x01

Второй байт будет настроен для каждой платформы. В Android это будет относиться к версия SDK. Для Например, Android Pie будет иметь значение 28 (0x1C).

Действие устройства

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

Имя группы сообщений Значение
Событие действия устройства 0x04
Код действия устройства Название Значение
Кольцо 0x01
Звонок на устройство

Одним из вариантов использования этих действий является то, что Искатель запрашивает у Провайдера звонок, например, когда пользователь потерял устройство и ему необходимо найти его. Когда получен сигнал вызова, провайдер должен начать воспроизведение предварительно загруженного звука файл на достаточно большом объеме, чтобы пользователь мог его найти. это рекомендуется повышать громкость звука от низкой до максимальной громкости в течение время. Звонок должен продолжаться до тех пор, пока не будет получено дополнительное действие указывает на остановку или истекло значение тайм-аута.

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

Например, если первый байт дополнительных данных установлен на:

  • 0x00 (0b00000000): все компоненты должны перестать звонить
  • 0x01 (0b00000001): Звонок вправо, стоп звонка влево
  • 0x02 (0b00000010): Звонок влево, стоп-звонок вправо
  • 0x03 (0b00000011): звонок и слева, и справа

У провайдеров, которые не поддерживают индивидуальный звонок, должен быть только 1 бит. рассмотрено:

  • 0x00 (0b00000000): остановить звонок
  • 0x01 (0b00000001): Начать звонок
Примечание. Для поставщиков, включающих обнаружение на голове, рассмотрите возможность проверки устройство включено, прежде чем звонить на максимальной громкости.

Второй байт в дополнительных данных, если он присутствует, представляет тайм-аут в секунды. Это значение должно использоваться провайдером, чтобы определить, как долго должен звонить, прежде чем замолчать. Основано на приведенном выше примере правильного кольца и тайм-аут 60 секунд, 0x013C будут переданы в качестве дополнительных данных.

Синхронизация состояния звонка с искателями

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

Поставщик должен использовать тот же формат сообщения, что и в примере. над. Искатель прослушает это сообщение и предоставит подтверждение, когда это получено.

Подтверждение действия

Когда действие получено, оно должно быть подтверждено, чтобы Искатель знал, или не было выполнено действие. Если подтверждение не получено в течение 1 секунда отправки действия (или получения отрицательного подтверждения) Seeker будет считать, что действие в настоящее время не поддерживается.

Благодарности

Некоторые коды сообщений требуют подтверждения от получателя. В этом случае, получатель должен отправить либо подтверждение (ACK), либо отрицательное подтверждение (NAK) в течение 1 секунды после получения сообщения.

Примечание: Не для всех сообщений требуется ACK. ACK следует отправлять только тогда, когда спецификация выше рекомендует это сделать. Получатель должен игнорировать неожиданные ACK.
Имя группы сообщений Значение
Подтверждение 0xFF
Код подтверждения Название Значение
ПОДТВЕРЖДЕНИЕ 0x01
НАК 0x02

Подтверждения следует отправлять сразу после получения сообщения, чтобы отправитель может действовать соответственно. Подтверждение должно содержать группу сообщений и код сообщения, на которое он ссылается. Например, если Провайдер получает сообщение, содержащее кольцевое действие ( 0x0401 ), оно должно подтвердить действие, отправив обратно 0xFF0100020401 , где:

  • 0xFF: событие ACK
  • 0x01: код подтверждения
  • 0x0002: дополнительная длина данных
  • 0x0401: Дополнительные данные, группа сообщений о действиях и код

Для NAK причина также должна быть включена в качестве первого байта дополнительного данные.Причины включают:

  • 0x00: не поддерживается
  • 0x01: устройство занято
  • 0x02: не разрешено из-за текущего состояния

Из предыдущего примера, если бы кольцо было NAK’ировано вместо этого из-за Провайдер занят другой задачей, возвращенный пакет должен быть установлен в 0xFF020003010401 .

Запись ключа учетной записи задним числом

Если Искатель выполняет жеребьёвку традиционным способом (например, через настройки Bluetooth) вместо точки входа Fast Pair будет нет ключа учетной записи, записанного в провайдере. В этом случае пользователь не будет возможность видеть или использовать любые функции Fast Pair, несмотря на наличие Fast Pair устройство. Чтобы пользователи могли пользоваться преимуществами Fast Pair, провайдер позволит Искателю молча написать ключ учетной записи сразу после сопряжения произошел.

  1. Если провайдер связан, не проходя через поток Fast Pair, разрешите новый ключ учетной записи, который будет записан с помощью метода сопряжения на основе ключа на срок до одна минута. Примите только один ключ учетной записи, который будет записан в течение этого времени.
  2. После того, как канал RFCOMM установлен, провайдер должен отправить модель ID и BLE адрес Искателю через Message Stream, Искатель установит соединение GATT и запустит Процедура сопряжения на основе ключей.
  3. . Если получен необработанный запрос с установленным битом 3 флагов, поставщик следует убедиться, что адрес BR/EDR привязанного устройства совпадает с адресом включены в запрос. Если нет, отклоните запрос.
  4. Поскольку устройства уже связаны, соединение BR/EDR и ключ доступа проверка (шаги 8 — 19 процедуры) будет пропущена и Искатель напрямую запишет ключ аккаунта в Поставщик после установления общего секрета.

Приложение

Список изменений

Тестовые примеры

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

SHA-256 Хеширование

Входное значение:

  0x11, 0x22, 0x33, 0x44, 0x55, 0x66
  

Результат хеширования:

  0xBB, 0x00, 0x0D, 0xDD, 0x92, 0xA0, 0xA2, 0xA3, 0x46, 0xF0, 0xB5, 0x31,
0xF2, 0x78, 0xAF, 0x06, 0xE3, 0x70, 0xF8, 0x69, 0x32, 0xCC, 0xAF, 0xCC,
0xC8, 0x92, 0xD6, 0x8D, 0x35, 0x0F, 0x80, 0xF8
  
Шифрование AES

Входное значение:

  0xF3, 0x0F, 0x4E, 0x78, 0x6C, 0x59, 0xA7, 0xBB, 0xF3, 0x87, 0x3B, 0x5A,
0x49, 0xBA, 0x97, 0xEA
  

Секретный ключ:

  0xA0, 0xBA, 0xF0, 0xBB, 0x95, 0x1F, 0xF7, 0xB6, 0xCF, 0x5E, 0x3F, 0x45,
0x61, 0xC3, 0x32, 0x1D
  

Зашифрованный вывод:

  0xAC, 0x9A, 0x16, 0xF0, 0x95, 0x3A, 0x3F, 0x22, 0x3D, 0xD1, 0x0C, 0xF5,
0x36, 0xE0, 0x9E, 0x9C
  
Обмен ключами ECDH

Закрытый ключ Боба:

  0x02, 0xB4, 0x37, 0xB0, 0xED, 0xD6, 0xBB, 0xD4, 0x29, 0x06, 0x4A, 0x4E,
0x52, 0x9F, 0xCB, 0xF1, 0xC4, 0x8D, 0x0D, 0x62, 0x49, 0x24, 0xD5, 0x92,
0x27, 0x4B, 0x7E, 0xD8, 0x11, 0x93, 0xD7, 0x63
  

Открытый ключ Боба:

  0xF7, 0xD4, 0x96, 0xA6, 0x2E, 0xCA, 0x41, 0x63, 0x51, 0x54, 0x0A, 0xA3,
0x43, 0xBC, 0x69, 0x0A, 0x61, 0x09, 0xF5, 0x51, 0x50, 0x06, 0x66, 0xB8,
0x3B, 0x12, 0x51, 0xFB, 0x84, 0xFA, 0x28, 0x60, 0x79, 0x5E, 0xBD, 0x63,
0xD3, 0xB8, 0x83, 0x6F, 0x44, 0xA9, 0xA3, 0xE2, 0x8B, 0xB3, 0x40, 0x17,
0xE0, 0x15, 0xF5, 0x97, 0x93, 0x05, 0xD8, 0x49, 0xFD, 0xF8, 0xDE, 0x10,
0x12, 0x3B, 0x61, 0xD2
  

Закрытый ключ Алисы:

  0xD7, 0x5E, 0x54, 0xC7, 0x7D, 0x76, 0x24, 0x89, 0xE5, 0x7C, 0xFA, 0x92,
0x37, 0x43, 0xF1, 0x67, 0x77, 0xA4, 0x28, 0x3D, 0x99, 0x80, 0x0B, 0xAC,
0x55, 0x58, 0x48, 0x38, 0x93, 0xE5, 0xB0, 0x6D
  

Открытый ключ Алисы:

  0x36, 0xAC, 0x68, 0x2C, 0x50, 0x82, 0x15, 0x66, 0x8F, 0xBE, 0xFE, 0x24,
0x7D, 0x01, 0xD5, 0xEB, 0x96, 0xE6, 0x31, 0x8E, 0x85, 0x5B, 0x2D, ​​0x64,
0xB5, 0x19, 0x5D, 0x38, 0xEE, 0x7E, 0x37, 0xBE, 0x18, 0x38, 0xC0, 0xB9,
0x48, 0xC3, 0xF7, 0x55, 0x20, 0xE0, 0x7E, 0x70, 0xF0, 0x72, 0x91, 0x41,
0x9A, 0xCE, 0x2D, ​​0x28, 0x14, 0x3C, 0x5A, 0xDB, 0x2D, ​​0xBD, 0x98, 0xEE,
0x3C, 0x8E, 0x4F, 0xBF
  

Сгенерированный общий ключ (открытый Алисы + закрытый Боба или Боба). публичный + личный Алисы):

  0x9D, 0xAD, 0xE4, 0xF8, 0x6A, 0xC3, 0x48, 0x8B, 0xBA, 0xC2, 0xAC, 0x34,
0xB5, 0xFE, 0x68, 0xA0, 0xEE, 0x5A, 0x67, 0x06, 0xF5, 0x43, 0xD9, 0x06,
0x1A, 0xD5, 0x78, 0x89, 0x49, 0x8A, 0xE6, 0xBA
  
Ключ AES из общего секрета ECDH

Это шаг 1b описанной выше процедуры.

Общий ключ ECDH:

  0x9D, 0xAD, 0xE4, 0xF8, 0x6A, 0xC3, 0x48, 0x8B, 0xBA, 0xC2, 0xAC, 0x34,
0xB5, 0xFE, 0x68, 0xA0, 0xEE, 0x5A, 0x67, 0x06, 0xF5, 0x43, 0xD9, 0x06,
0x1A, 0xD5, 0x78, 0x89, 0x49, 0x8A, 0xE6, 0xBA
  

Сгенерированный ключ AES:

  0xB0, 0x7F, 0x1F, 0x17, 0xC2, 0x36, 0xCB, 0xD3, 0x35, 0x23, 0xC5, 0x15,
0xF3, 0x50, 0xAE, 0x57
  
Фильтр Блума

Случайная соль:

  0xC7
  

В фильтр добавлен ключ первой учетной записи (в сочетании с приведенной выше случайной солью):

  0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0x00, 0xAA, 0xBB,
0xCC, 0xDD, 0xEE, 0xFF
  

Результирующий фильтр Блума:

  0x0A, 0x42, 0x88, 0x10
  

Данные батареи (если она содержится в рекламе):

  0b00110011, // длина = 3, показать индикацию пользовательского интерфейса. 0b01000000, // левый наушник: не заряжается, уровень заряда батареи = 64.
0b01000000, // правый наушник: не заряжается, уровень заряда батареи = 64.
0b01000000 // случай: не заряжается, уровень заряда батареи = 64.
  

Результирующий фильтр Блума с данными батареи:

  0x4A, 0x00, 0xF0, 0x00
  

В фильтр добавлен второй ключ учетной записи (в сочетании с вышеуказанной случайной солью):

  0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66,
0x77, 0x77, 0x88, 0x88
  

Результирующий фильтр Блума из обоих добавленных ключей учетной записи:

  0x2F, 0xBA, 0x06, 0x42, 0x00
  

Данные батареи (если она содержится в рекламе):

  0b00110011, // длина = 3, показать индикацию пользовательского интерфейса. 0b01000000, // левый наушник: не заряжается, уровень заряда батареи = 64.
0b01000000, // правый наушник: не заряжается, уровень заряда батареи = 64.
0b01000000 // случай: не заряжается, уровень заряда батареи = 64.
  

Результирующий фильтр Блума из обоих добавленных ключей учетной записи с данными батареи:

  0x10, 0x22, 0x56, 0xC0, 0x4D
  
Шифрование AES-CTR

Входные данные: «Чьи-то наушники Google» с кодировкой utf-8

  0x53, 0x6F, 0x6D, 0x65, 0x6F, 0x6E, 0x65, 0x27, 0x73, 0x20, 0x47, 0x6F,
0x6F, 0x67, 0x6C, 0x65, 0x20, 0x48, 0x65, 0x61, 0x64, 0x70, 0x68, 0x6F,
0x6E, 0x65
  

Секретный ключ:

  0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67,
0x89, 0xAB, 0xCD, 0xEF
  

Одноразовый номер:

  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
  

Ожидаемый результат шифрования:

  0xEE, 0x4A, 0x24, 0x83, 0x73, 0x80, 0x52, 0xE4, 0x4E, 0x9B, 0x2A, 0x14,
0x5E, 0x5D, 0xDF, 0xAA, 0x44, 0xB9, 0xE5, 0x53, 0x6A, 0xF4, 0x38, 0xE1,
0xE5, 0xC6
  
HMAC-SHA256

Входные данные:

  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xEE, 0x4A, 0x24, 0x83,
0x73, 0x80, 0x52, 0xE4, 0x4E, 0x9B, 0x2A, 0x14, 0x5E, 0x5D, 0xDF, 0xAA,
0x44, 0xB9, 0xE5, 0x53, 0x6A, 0xF4, 0x38, 0xE1, 0xE5, 0xC6
  

Секретный ключ:

  0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67,
0x89, 0xAB, 0xCD, 0xEF
  

Ожидаемый результат HMAC-SHA256:

  0x55, 0xEC, 0x5E, 0x60, 0x55, 0xAF, 0x6E, 0x92, 0x61, 0x8B, 0x7D, 0x87,
0x10, 0xD4, 0x41, 0x37, 0x09, 0xAB, 0x5D, 0xA2, 0x7C, 0xA2, 0x6A, 0x66,
0xF5, 0x2E, 0x5A, 0xD4, 0xE8, 0x20, 0x90, 0x52
  
Кодировать персонализированное имя в дополнительный пакет данных

Входные данные: «Чьи-то наушники Google» с кодировкой utf-8

  0x53, 0x6F, 0x6D, 0x65, 0x6F, 0x6E, 0x65, 0x27, 0x73, 0x20, 0x47, 0x6F,
0x6F, 0x67, 0x6C, 0x65, 0x20, 0x48, 0x65, 0x61, 0x64, 0x70, 0x68, 0x6F,
0x6E, 0x65
  

Секретный ключ:

  0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67,
0x89, 0xAB, 0xCD, 0xEF
  

Одноразовый номер:

  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
  

Ожидаемый дополнительный пакет данных:

  0x55, 0xEC, 0x5E, 0x60, 0x55, 0xAF, 0x6E, 0x92, 0x00, 0x01, 0x02, 0x03,
0x04, 0x05, 0x06, 0x07, 0xEE, 0x4A, 0x24, 0x83, 0x73, 0x80, 0x52, 0xE4,
0x4E, 0x9B, 0x2A, 0x14, 0x5E, 0x5D, 0xDF, 0xAA, 0x44, 0xB9, 0xE5, 0x53,
0x6A, 0xF4, 0x38, 0xE1, 0xE5, 0xC6
  
Декодировать дополнительный пакет данных для получения персонализированного имени

Входные данные:

  0x55, 0xEC, 0x5E, 0x60, 0x55, 0xAF, 0x6E, 0x92, 0x00, 0x01, 0x02, 0x03,
0x04, 0x05, 0x06, 0x07, 0xEE, 0x4A, 0x24, 0x83, 0x73, 0x80, 0x52, 0xE4,
0x4E, 0x9B, 0x2A, 0x14, 0x5E, 0x5D, 0xDF, 0xAA, 0x44, 0xB9, 0xE5, 0x53,
0x6A, 0xF4, 0x38, 0xE1, 0xE5, 0xC6
  

Секретный ключ:

  0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67,
0x89, 0xAB, 0xCD, 0xEF
  

Ожидаемое имя: «Чьи-то наушники Google» с кодировкой utf-8

  0x53, 0x6F, 0x6D, 0x65, 0x6F, 0x6E, 0x65, 0x27, 0x73, 0x20, 0x47, 0x6F,
0x6F, 0x67, 0x6C, 0x65, 0x20, 0x48, 0x65, 0x61, 0x64, 0x70, 0x68, 0x6F,
0x6E, 0x65
  

Как работает Bluetooth с низким энергопотреблением: 21 интересный факт

Независимо от того, являетесь ли вы новичком или экспертом в разработке Bluetooth с низким энергопотреблением, всегда полезно сделать шаг назад и вернуться к некоторым основам и фактам.

В этом посте я приведу список из 21 факта о технологии Bluetooth Low Energy. Вы можете знать обо всем этом, но всегда полезно время от времени освежать в памяти.

  1. Bluetooth Low Energy обладает обратной совместимостью
    Это означает, что если вы сегодня разработаете устройство BLE, на котором установлена ​​последняя версия Bluetooth (5.2), вы гарантированно сможете взаимодействовать с другим устройством BLE, на котором работает самая первая версия с поддержкой BLE (Bluetooth версии 4.0). Есть исключения из этого правила, особенно когда одно из устройств реализует дополнительную функцию определенной версии Bluetooth, но когда дело доходит до основных функций, обратная совместимость гарантируется спецификацией.
  2. Bluetooth с низким энергопотреблением способен работать на расстоянии более 1 километра
    Когда большинство людей думают о BLE, они думают о связи ближнего действия, и по уважительным причинам, поскольку более ранние спецификации Bluetooth были ориентированы на такие приложения. Однако в Bluetooth 5.0 был представлен новый режим, называемый режимом дальнего действия (кодированный PHY), который позволял устройствам BLE обмениваться данными на гораздо больших расстояниях, до 1,5 км в пределах прямой видимости.
  3. Bluetooth с низким энергопотреблением поддерживает топологии «точка-точка», «звезда» и «ячеистая сеть». Он изначально поддерживает двухточечную связь, например, между вашим смартфоном и фитнес-трекером.Кроме того, он поддерживает топологии «один ко многим», такие как концентратор Bluetooth с низким энергопотреблением, взаимодействующий с несколькими устройствами умного дома одновременно. Наконец, BLE также поддерживает топологию «многие ко многим» (ячеистая сеть) с введением спецификации сетки Bluetooth в июле 2017 года.
  4. Рекламные пакеты Bluetooth Low Energy содержат до 31 байта данных рекламная полезная нагрузка для пакетов, отправляемых по основным рекламным каналам (37, 38 и 39). Однако имейте в виду, что 31 байт будет включать как минимум два байта: один для длины, а другой для типа. Это оставляет 29 байтов для пользовательских данных. Кроме того, имейте в виду, что если у вас есть несколько полей с разными типами рекламных данных, то каждый из этих типов будет использовать два дополнительных байта для длины и типа каждого из них.
    Для рекламных пакетов, отправляемых по вторичным рекламным каналам (представленным в Bluetooth 5.0), полезная нагрузка увеличивается до 254 байтов вместо 31 байта.
  5. В Bluetooth 5.0 представлены два новых режима: высокоскоростной и дальний
    В версии Bluetooth 5.0 были представлены два новых режима (каждый использует новый PHY): высокоскоростной режим (2M PHY) и режим дальнего действия (Кодированный PHY).
  6. Bluetooth Low Energy обеспечивает пропускную способность до 1,4 Мбит/с
    С введением 2M PHY в Bluetooth 5.0 пропускная способность может достигать 1,4 Мбит/с. При использовании стандартного физического уровня 1M максимальная пропускная способность пользовательских данных составляет около 700 кбит/с.
    Причина, по которой пропускная способность не достигает 2 М или 1 М, заключается в том, что пакеты содержат служебные заголовки и промежутки между пакетами, поэтому пропускная способность данных на уровне пользователя снижается.
  7. Многие новые функции, представленные в новых версиях Bluetooth, являются необязательными.
    При поиске набора микросхем Bluetooth с низким энергопотреблением важно помнить, что рекламируемая версия Bluetooth, поддерживаемая версия поддерживается.Например, 2M PHY и Coded PHY являются дополнительными функциями в Bluetooth 5.0, поэтому обязательно изучите техническое описание и спецификации выбранного набора микросхем Bluetooth Low Energy, чтобы убедиться, что он поддерживает интересующие вас функции Bluetooth.
  8. 100 % поставляемых смартфонов, ноутбуков и планшетов будут поддерживать как Bluetooth Low Energy, так и Bluetooth Classic в 2024 г.
    Согласно последнему отчету об обновлении рынка Bluetooth, к 2024 г. 100 % всех устройств на новой платформе будут поддерживать Bluetooth Classic + LE.
  9. Максимальное количество соединений между центральным и периферийными устройствами согласно спецификации Bluetooth не определено.
    Спецификация Bluetooth не устанавливает ограничения на количество соединений между центральным устройством BLE и периферийными устройствами BLE. Однако ваше устройство, вероятно, будет ограничено объемом доступной памяти и реализацией стека Bluetooth. Поэтому обязательно ознакомьтесь с документацией и таблицами поставщиков вашего чипсета на предмет ограничений, накладываемых стеком и доступной памятью.
  10. Любой желающий может бесплатно загрузить последнюю официальную документацию по спецификации Bluetooth
    В отличие от многих других беспроводных технологий с низким энергопотреблением, Bluetooth SIG предоставляет доступ к официальной документации по спецификации Bluetooth для бесплатной загрузки любым пользователем. Вы можете загрузить последние документы базовой спецификации Bluetooth здесь: https://www.bluetooth.com/specifications/bluetooth-core-specification/
  11. Что такое Bluetooth SIG?
    Bluetooth SIG (Special Interest Group) — некоммерческая организация, занимающаяся управлением техническими характеристиками, маркетингом и квалификацией/сертификацией продуктов Bluetooth.Но знаете ли вы, что на самом деле технические спецификации создаются и разрабатываются рабочими группами компаний-членов Bluetooth, таких как Apple, Google, Samsung, Qualcomm и т. д.?
  12. Плата за сертификацию продукта Bluetooth устанавливается в соответствии со списком продуктов.
    Плата за сертификацию продукта Bluetooth, которая включает квалификационные и листинговые сборы, начисляется не на основе роялти, а за отгруженный продукт.
  13. Маяки Bluetooth стали самым популярным решением для навигации внутри помещений и отслеживания активов
    За последние несколько лет, особенно после того, как Apple выпустила популярный стандарт iBeacon (основанный на BLE), использование маяков Bluetooth стало самое популярное решение для внутренней навигации и приложений отслеживания активов.
  14. Bluetooth Low Energy работает в ISM-диапазоне 2,4 ГГц, используемом некоторыми другими беспроводными технологиями, включая Zigbee и Wi-Fi. прыжки . Этот метод позволяет ему сосуществовать с другими радиочастотными сигналами в этом районе, сохраняя при этом надежное соединение между двумя устройствами Bluetooth.
  15. Спектр Bluetooth Low Energy разделен на 40 радиочастотных каналов
    Три из этих каналов называются основными рекламными каналами.Остальные 37 каналов используются для вторичной рекламы и пакетов данных, передаваемых во время соединения. Каждый из этих каналов имеет ширину 2 МГц.
  16. Режим дальнего действия (кодированный физический уровень) может использоваться для повышения надежности
    Кодированный физический уровень может использоваться не только для увеличения дальности связи Bluetooth с низким энергопотреблением, но и для повышения надежности соединений и рекламы при наличии многочисленных препятствий. При работе на закодированном физическом уровне чувствительность приемника повышается, а в передаваемых пакетах используется механизм прямой коррекции ошибок, который позволяет восстанавливать исходные данные из поврежденного пакета.
  17. Вы можете переключаться между тремя уровнями PHY: закодированным PHY, 1M PHY и 2M PHY на лету во время соединения
    Это мощная функция, обеспечивающая гибкость для разработчиков Bluetooth. Это позволяет устройствам настраивать и адаптироваться в зависимости от среды и реализованного приложения. Однако возможность зависит от обоих устройств в соединении, поддерживающем переключение на PHY.
  18. Вы можете использовать разные PHY для использования в каждом направлении
    Спецификация Bluetooth позволяет процедуру обновления PHY, которая может быть отправлена ​​ведущим или запрошена ведомым для использования разных PHY в каждом направлении передачи данных (ведущий -> раб против.подчиненный -> ведущий).
  19. Bluetooth Classic (BR/EDR) и Bluetooth Low Energy несовместимы
    Это означает, что устройство Bluetooth Classic не может взаимодействовать с устройством Bluetooth Low Energy и наоборот. Вот почему большинство смартфонов, планшетов и ПК в настоящее время оснащены двухрежимными радиомодулями Bluetooth, которые позволяют телефону взаимодействовать с обоими типами устройств.
  20. Руководство по разработке периферийного устройства BLE, взаимодействующего с устройством iOS. //разработчик.apple.com/accessories/Accessory-Design-Guidelines.pdf.
    В этом документе Apple излагает рекомендации для различных параметров Bluetooth Low Energy, включая предпочтительные параметры подключения, интервалы рекламы, типы рекламы и т. д. latency

    Для оптимального энергопотребления периферийным устройством Bluetooth с низким энергопотреблением, а также для достижения низкой задержки можно задать ненулевое значение Slave Latency .Параметр «Задержка ведомого устройства» позволяет ведомому устройству пропускать ряд событий соединения, когда данные недоступны для передачи. Это гарантирует, что даже если ведомое устройство пропустит эти события соединения, ведущее устройство не будет считать соединение потерянным. Однако ненулевое значение по-прежнему позволяет ведомому устройству просыпаться и передавать данные в каждом интервале соединения, когда это необходимо, и с низкой задержкой.
    Например, если вы установите значение задержки ведомого устройства, равное 3, и интервал соединения 15 мс, то, если ведомое устройство не получит никаких данных в течение 15 мс, оно может пропустить до 3 последовательных интервалов соединения, а затем активировать радиостанцию. и отправка данных примерно через 45 мс.

Надеюсь, вы узнали что-то новое из этих фактов или хотя бы освежили в памяти некоторые из этих фактов.

Поднимите свои знания BLE на новый уровень!

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

Присоединившись к Bluetooth Developer Academy, вы получите доступ к растущей библиотеке курсов и руководств.

Вот что говорит один член Академии:

Если вы разрабатываете проект BLE, вам нужны две вещи: хороший анализатор BLE и Академия разработчиков Bluetooth. Я очень рад быть частью этого сообщества и с нетерпением жду, что будет дальше.

– Кристофер Гейтс, главный архитектор системы безопасности – Velentium

Текущие курсы включают:

  • Основы Bluetooth с низким энергопотреблением
  • Анализ событий BLE с помощью анализатора BLE
  • Режим дальнего действия (кодированный PHY) с использованием Bluetooth 5.0
  • Разработка приложений nRF52 с использованием кода Visual Studio
  • Обновление прошивки устройства по беспроводной сети (OTA DFU) — пример использования nRF52
  • Начало работы с Zephyr (включая добавление пользовательских сервисов и характеристик GATT)
  • Bluetooth 5. 2
  • SweynTooth: Краткий обзор для разработчиков BLE
  • Введение в безопасность BLE
  • Начало работы с разработкой BlueZ
  • Введение в разработку BLE для iOS
  • …и другие курсы добавляются каждый месяц !

Полный список включенных курсов можно найти в библиотеке курсов здесь:

Библиотека курсов Академии разработчиков Bluetooth

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

Также в Академию включен доступ к частной поддержке лично от меня.

В сообществе вы найдете:

  • Обсуждение новых функций, таких как режим дальнего действия (Bluetooth 5.0) и пеленгация (Bluetooth 5.1).
  • Обсуждение возможностей различных снифферов BLE.
  • Сравнение поддержки и ограничений BLE в iOS и Android.
  • Различные технические вопросы и ответы на эти вопросы.
  • Список вакансий, связанных с Bluetooth.
  • И еще много обсуждений!

Узнайте больше об Академии разработчиков Bluetooth

← Еженедельный отраслевой отчет Bluetooth [24 апреля 2020 г.]Еженедельный отраслевой отчет Bluetooth [1 мая 2020 г.] →

Кодеки Bluetooth 101: все, что вам нужно знать

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

Обновление от 16 ноября 2021 г.: . Эта статья была обновлена, чтобы расширить информацию о Bluetooth LE Audio и кодеке LC3.


Кодеки Bluetooth: что следует знать

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

Терминология

  • Частота дискретизации (Гц): количество точек данных в секунду в аудиофайле. Чтобы точно захватить заданную частоту, вам нужно захватить два образца. Это означает, что звук дискретизируется с удвоенной частотой человеческого слуха (~ 20 Гц). Форматы высокого разрешения экспортируются с частотой 96 кГц или выше.
  • Битовая глубина (-бит): количество битов на аудиовыборку определяет разрешение файла. Качество CD — 16-битное, а диски DVD и Blue-ray могут поддерживать 24-битное аудио.Как и в случае с частотой дискретизации, чем выше битовая глубина, тем больше файлы.
  • Скорость передачи данных (кбит/с): это количество битов, обрабатываемых в единицу времени, которое обычно измеряется в секундах. Обычно мы записываем это как килобиты в секунду (кбит/с) или мегабиты в секунду (Мбит/с). Битрейт рассчитывается как частота дискретизации x битовая глубина x каналы.

Скорость передачи: больше, чем кажется на первый взгляд

Скорость передачи данных Bluetooth нестабильна. SoundGuys продемонстрировал это в отношении LDAC от Sony и кодирования AAC в Android, а также общих проблем с задержкой.Когда компания рекламирует скорость передачи для своего кодека, скорее всего, это не постоянная скорость. Скорее, это оптимальный битрейт, и ваша скорость потоковой передачи может никогда не достичь этого максимума, если условия не всегда оптимальны.

Любой, кто использует исключительно настоящие беспроводные наушники и подписывается на сервисы потоковой передачи музыки без потерь, такие как Amazon Music HD, Apple Music и скоро появится Spotify, не сможет в полной мере воспользоваться преимуществами воспроизведения в высоком разрешении. Опять же, Bluetooth передает звук с потерями, поэтому ваш смартфон не может передавать каждый бит данных в ваши любимые наушники Bluetooth. Существуют даже некоторые ограничения для воспроизведения по проводу, если вы используете AirPods Max с кабелем Lightning-to-3,5 мм и аудиоадаптером Lightning из-за потери данных в процессе повторной оцифровки. Только прямое соединение TRRS может передавать звук 24 бит/48 кГц и выше.

Lily Katz / Android Authority

Более того, Bluetooth-устройства имеют определенный диапазон подключения, обычно три метра для наушников. Чем дальше вы отходите от телефона, тем больше помех приходится преодолевать сигналу.Эти помехи проявляются в виде физических барьеров (например, стен, людей, воздуха) и других резонансных частот (например, радиоволн и сигналов Wi-Fi).

Начните здесь:  Руководство по покупке наушников: все, что вам нужно знать

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


Что такое кодек Bluetooth?

Поздравляем: вы успешно прошли курс Wireless Audio 101. Теперь применим эти знания.

Кодек определяет способ передачи Bluetooth от источника (например, смартфона, планшета или компьютера) к наушникам. Независимо от кодека, он отвечает за кодирование и декодирование цифровых аудиоданных в указанный формат.Цель состоит в том, чтобы передать сигнал высокой точности с минимальной скоростью передачи данных. Это сводит к минимуму требования к пространству и пропускной способности для хранения и воспроизведения. Как вы могли догадаться, просмотрев более ранние определения, низкий битрейт приводит к большему сжатию и снижению качества звука. Между тем, высокая скорость передачи данных приводит к меньшему сжатию и более высокому качеству звука.

Самым большим недостатком Bluetooth является его ограниченная пропускная способность, которая может привести к сбоям в соединении.

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


Анализ алфавита кодеков Bluetooth

Поддиапазонный кодек низкой сложности (SBC)

Lily Katz / Android Authority

Поддиапазонный кодек низкой сложности (SBC) является наименьшим общим знаменателем кодеков Bluetooth.Это минимальное требование Bluetooth Special Interest Group (SIG) для профиля A2DP, которое определяет, как аудио может передаваться между устройствами. Первоначально SBC был разработан для получения сносного качества звука при средних скоростях передачи данных, что сводило к минимуму сложности потоковой передачи. Он разработан с учетом ограничений полосы пропускания Bluetooth и различной вычислительной мощности на разных устройствах. Скорость передачи (максимум: 320 кбит/с) можно контролировать за счет потери данных.

Qualcomm aptX, aptX HD, адаптивный aptX, aptX LL

Также есть Множество кодеков aptX от Qualcomm : aptX, aptX с низкой задержкой (LL) и aptX HD; после выхода aptX Adaptive он заменит aptX LL.Эти кодеки наиболее актуальны для пользователей Android. Они уменьшают задержку потоковой передачи, но скорость уменьшения задержки зависит от того, какой смартфон используется. Пользователям следует обратить внимание на наушники и вкладыши с поддержкой aptX, если они хотят более точного и детального звука. Только aptX поддерживает аудиоданные LCPM 48 кГц/16 бит (352 кбит/с), а aptX HD поддерживает аудиоданные LCPM 48 кГц/24 бит (576 кбит/с). Имея это в виду, оба формата по-прежнему имеют потери.

На данный момент, если у вас есть iPhone, aptX не имеет значения, поскольку устройства iOS поддерживают только SBC и AAC.

Расширенное кодирование звука (AAC)

Расширенное кодирование звука (AAC) является стандартом сжатия цифрового звука с потерями. Это также безлицензионный стандарт для YouTube и предпочтительный способ передачи для Apple. Пользователи iPhone больше всего выигрывают от воспроизведения в высоком разрешении AAC, которое достигает максимальной скорости 250 кбит/с.

Хотя Android поддерживает AAC, его производительность крайне неудовлетворительна из-за нестабильного качества потоковой передачи. Однако это не для того, чтобы критиковать AAC; вместо этого это связано с тем, что ОС Android еще не предоставила универсальный способ обработки AAC.Это энергоемкий кодек, которым Apple может управлять благодаря своей закрытой экосистеме.

Sony LDAC

Adam Molina / Android Authority

Sony LDAC кажется многообещающим. Его переменная скорость передачи данных в теории великолепна и должна последовательно передавать в три раза больше данных, чем SBC. Однако на практике это не так. LDAC имеет три режима: 990 кбит/с, 660 кбит/с и 330 кбит/с. Две самые высокие скорости передачи данных теряют точность выше 20 Гц, а LDAC (330 кбит / с) уступает как aptX, так и SBC.Хотя вариант для LDAC 990 кбит/с великолепен, дело в том, что большинство телефонов по умолчанию используют LDAC 330 кбит/с, что требует от вас входа в настройки разработчика и принудительного выбора более высокого значения.

Наушники с поддержкой LDAC трудно найти, и они часто сопровождаются высокой ценой.

Кодеки LHDC и LLAC от HWA Alliance

Robert Triggs / Android Authority

LHDC — это акроним для аудиокодека с малой задержкой и высокой четкостью, разработанный союзом Hi-Res Wireless Audio (HWA) и Savitech.Android 10 и более поздние версии поддерживают этот кодек в рамках Android Open Source Project (AOSP). Его главное преимущество: он обеспечивает передачу данных в три раза больше, чем позволяет SBC, и поддерживает максимальную скорость передачи данных 900 кбит/с с максимальной частотой дискретизации 96 кГц. Huawei Mate 10 стал первым смартфоном, поддерживающим этот кодек.

Еще один кодек HWA: аудиокодек с малой задержкой (LLAC/LHDC LL) является жизнеспособной альтернативой LHDC и может похвастаться функциями с малой задержкой, что отлично подходит для мобильных геймеров. Оптимальная задержка составляет всего 30 миллисекунд, и он поддерживает высококачественный битрейт (400/600 кбит/с) с максимальной частотой дискретизации 48 кГц.LLAC впервые был поддержан Huawei P30.

Аудиокодек Bluetooth LE Audio LC3

Аудиокодек Bluetooth LC3 значительно повышает эффективность и преимущества потоковой передачи SBC.

Bluetooth-кодек LC3 произвел фурор на выставке CES 2020, и пока мы все еще ждем важных подробностей, мы довольно много знаем об этом универсальном кодеке. Например, LC3 поможет глухим и слабослышащим пользователям, расширив функциональность Bluetooth: один источник сможет передавать поток на несколько устройств Bluetooth.Это означает, что слуховые аппараты с поддержкой Bluetooth смогут передавать потоковое аудио (например, информацию об отправлении поезда), информируя пользователей о том, что их окружает.

LC3 — прозрачный кодек. Полная минимизация гармонических искажений ограничена аппаратной частью телефона, а не LC3.

Аналогичным образом, LE Audio LC3 означает, что разные трансляции можно будет передавать на одну пару настоящих беспроводных наушников. Вместо одного потока 160 кбит/с аудио LC3 разбивает поток на скорости 80 кбит/с каждый.Это здорово, если вы с другом находитесь в пабе и смотрите местную игру: вы можете использовать правый наушник, чтобы настроиться на своего любимого диктора, а ваш приятель может использовать левый наушник, чтобы настроиться на своего любимого диктора.

Для LE Audio требуется новая функция Bluetooth 5.2, которой нет в более ранних версиях Bluetooth. Кодек LC3 в конечном итоге станет обязательным для всех продуктов LE Audio; однако классическое аудио и LE Audio смогут работать вместе на одном телефоне.

Масштабируемый кодек Samsung

Адам Молина / Android Authority

Galaxy Buds Pro

Samsung Galaxy Buds первого поколения поставляются с масштабируемым кодеком Samsung. Это работает аналогично адаптивному aptX, но совместимо только с устройствами Samsung (например, Samsung Galaxy Buds Plus и Samsung Galaxy S20). Samsung Scalable Codec предотвращает прерывание звука, анализируя радиочастотную среду и динамически регулируя битрейт (от 88 кбит/с до 512 кбит/с). Чтобы получить полный список поддерживаемых устройств Samsung, нажмите здесь.

Связанный: Samsung Galaxy Buds 2 обзор


Действительно ли кодеки Bluetooth имеют значение?

Лили Кац / Android Authority

Ну и да и нет.Если вы страдаете от потери слуха из-за шума или слушаете в особенно шумной обстановке, маловероятно, что вы сможете различить различия между SBC, aptX и AAC. Тем не менее, у высококачественных кодеков больше преимуществ, чем качество звука, а именно скорость отклика. Если вы когда-либо пропускали трек с помощью встроенных элементов управления наушников только для того, чтобы подождать секунду, прежде чем на самом деле начнется воспроизведение следующей песни, ваше устройство, вероятно, транслировало через SBC.

Добавить комментарий

Ваш адрес email не будет опубликован.