В июле прошлого года был запущен проект Eddystone, открытый и расширяемый стандарт от Google, определяющий формат сообщений для Bluetooth Low Energy (BLE) маячков и нативно поддерживаемый в Android, iOS, и браузером Chrome. Маячки могут отмечать важные и интересные места или объекты понятным для мобильных устройств образом. Чтобы сделать это, маячки, как правило, односторонне транслируют открытые сообщения — такие как iBeacon, Eddystone-UID или Eddystone-URL, что делает их уязвимыми к клонированию, компрометации и слежке. Эти проблемы существовали с 2013 года.


В четверг, 14 марта, компания Google в своём security blog анонсировала новый кадр Eddystone-EID, с поддержкой эфемерного идентификатора (Ephemeral ID), для стандарта Eddystone. Так же были представлены зашифрованная версия кадра телеметрии Eddystone-TLM и новый стандартный интерфейс для конфигурирования маячков — Eddystone GATT service.


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


Технические подробности


Для наблюдателя, маячок с поддержкой Eddystone-EID меняет свой 8-байтный AES-encrypted идентификатор псевдо-случайным образом со средним периодом, который задается разработчиком в диапазоне от 1 секунды до 9 часов. Для генерации идентификатора используется ключ(Ephemeral Identity Key или EIK) и таймер на самом маячке. Ключ генерируется во время подготовки и настройки маячка и затем передаётся в службу разрешения, например, Proximity Beacon API, с использованием протокола согласования ключей Дииффи-Хееллмана на эллиптических кривых (Elliptic curve Diffie–Hellman или ECDH). Этот протокол является достаточно надежным и позволяет получить общий секретный ключ, используя незащищённый от прослушивания канал связи, например во время подготовки и настройки маячка. Таким образом, доступ к ключу есть только у маячка и у службы с помощью которой он зарегистрирован.
Что касается регистрации маячка, Google Proximity Beacon API позволяет сделать это двумя способами:


  1. Путем обмена открытыми ключами с маячком, в полностью безопасной end-to-end манере
  2. Путем передачи общего EIK ключа напрямую, что является несколько менее безопасным чем первый вариант

В момент регистрации маячка, в дополнении к ключу, сервису разрешения так же нужно сообщить и текущее значение таймера маячка и показатель периода ротации. Т.е. таймер маячка так же синхронизируется с сервисом. Google Proximity Beacon API поддерживает поддерживает период ротации 2X, где 10 <= X <= 15. Реализация устойчива к отключению энергии на несколько дней. При более длительных отключениях энергии на повторную синхронизацию таймера и периода ротации потребуется некоторое время.


Дополнительные меры безопасности


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


Eddystone GATT service и Beacon Tools


В дополнение к Eddystone-EID и новой зашифрованной версии ранее доступного Eddystone-TLM, был представлен общий протокол конфигрурирования маячков — Eddystone GATT service. Он позволяет настроить любой Eddystone маячок с помощью любых инструментов, поддерживающих этот протокол.


Также было представлено приложение Beacon Tools для Android и iOS. Это дополнительный инструмент для Google beacon platform, который позволяет регистрировать маячки и привязывать к ним данные.


Сценарии использования и преимущества


При правильной реализации и в сочетании с Proximity Beacon API, который поддерживает ряд проверок контроля доступа, Eddystone-EID имеет несколько преимуществ, например:


  • Расположение маячка не может быть подделано. Это идеально подходит для случаев, когда разработчик хочет задействовать дополнительные возможности для пользователя в каком то определенном месте.
  • Eddystone-EID позволяет тем кто занимается развертыванием сети маячков надежно управлять доступом к ней.
  • Маячки с поддержкой Eddystone-EID могут быть встроены в вещи или устройства которые люди носят с собой, не оставляя при этом пользователей уязвимыми к слежке

Что же происходит на клиентском устройстве?


А ничего особенного! Маячки с поддержкой Eddystone-EID могут быть задействованы в проектах где используется Nearby Messages API, компонент Google beacon platform сканирующий маячки и получающий от них сообщения, без каких либо изменений в коде. Когда клиентское устройство обнаруживает маячок транслирующий кадр Eddystone-EID и подписывается на него, текущий EID отправляется в Google Proximity Beacon API вместе с API-ключом приложения. Google Proximity Beacon API проверяет есть ли у представленного API-ключа полномочия получить вложение которое было привязано к маячку. Если такие полномочия есть, то приложение получает вложение обычным образом, как объект Nearby message. В противном случае, если полномочий нет, Google Proximity Beacon API возвращает пустое значение, как если бы маячок не был вовсе зарегистрирован.


Поддержка Eddystone-UID у производителей маячков


Google очень активно сотрудничает с игроками отрасли, так, например, за прошлый год количество производителей маячков поддерживающих формат Eddystone, выросло с 5 до более чем 25. А 15 следующих производителей уже поддерживают формат Eddystone-EID:


  • Accent Systems
  • Bluvision
  • Reco/Perples
  • Beacon Inside
  • Estimote
  • Sensoro
  • Blesh
  • Gimbal
  • Signal360
  • BlueBite
  • Nordic
  • Swirl
  • Bluecats
  • Radius Networks
  • Zebra

Помимо производителей маячков, Google активно сотрудничает и с целым рядом инновационных компаний, чтобы продемонстрировать преимущества Eddystone-UID в самых различных сценариях. Так, например:


  • Samsonite совместно Accent Systems разработали чемодан транслирующий Eddystone-EID, для того что бы пользователи могли безопасно следить за своим личным багажом.
  • K11 — музей в Гонконге и в розничная сеть используют маячки Sensoro с поддержкой Eddystone-UID для экскурсии посетителей и поощрения клиентов.
  • Monumental Sports Entertainment в Вашингтоне, округ Колумбия, использует маячки с поддержкой Eddystone-EID от Radius Networks для доставки призов клиентам во время спортивных событий Washington Wizards и Capitals.
  • Sparta Digital выпустила приложение под названием Buzzin, которое использует маячки транслирующие Eddystone-EID, развернутые в городе Манчестере, Великобритания.

Заключение


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




Более подробно о безопасности BLE маячков и эфемерных идентификаторах можно прочитать в этой статье


С техническими деталями спецификации пакета Eddystone-EID можно ознакомиться на github


О Google beacon platform я подробно писал в своих предыдущих статьях:
Google's beacon platform. Часть 1 — Proximity beacon API
Google's beacon platform. Часть 2 — Nearby meassages API

Комментарии (9)


  1. Klukonin
    18.04.2016 22:15
    -3

    Решение проблем безопасности BLE маячков — отказ от BLE маячков в пользу контактного метода с RFID и QR.
    Все что сейчас представлено — это балаболия для хипстеров. И если изначально этот стандарт предусматривал суперлегкие и мало потребляющие устройства, которые, например, можно спокойно повесить на связку ключей и найти их в случае утери, то сейчас ВНЕЗАПНО выясняется, что для других задач требуется безопасность и, о май гад, нужно шифрование! Спасибо, КЭП. Но это уход от изначальной концепции легких устройств, живущих от батарейки месяцами.
    То что технологии PAN пытаются пропихнуть в коммерческие решения для геолокации — это наводит тоску. Уже не раз писал про то что маячек в кармане и тысяча маячков в здании ТРЦ — это две большие разницы. Для отслеживания перемещений пользователей вполне хватает включенного на телефоне WiFi. Уже сегодня по WIFI достаточно точно можно определить местоположение, особенно в крупных городах. И по факту в эфире beaconing постоянно присутствует. И мне еще ни разу ни один из интегратов BLE маячков не объяснил внятно как решаются базовые проблемы, такие как «Если маячков в здании 200, 500, 1000. Кто будет периодически менять батарейки?». И «Что делать с особо ушлыми ручками, отслеживающими и ворующими BLE маячки, ставить разом с каждым камеру наблюдения?». Это все какой-то лютый трешак, попытка впихнуть невпихуемое с красивыми хипстерскими песнями о модных технологиях. ИМХО.


    1. zikolach
      18.04.2016 23:26
      +1

      Проблема кражи легко решается снижением стоимости маячков. Да и от объекта зависит — торговый центр (где все на виду) или парковка (камеры).
      Области применения RFID, QR и BLE все-таки различны.
      Точность позиционирования с использованием WiFi к сожалению слишком низка для различных применений.
      На практике батарейки заменить не проблема — нужно лишь использовать толковую систему управления инфраструктурой маячков.


      1. Klukonin
        18.04.2016 23:30
        -1

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

        Можно конкретные цифры по живучести маячков из практики?
        А про систему — это пять баллов. Для пассивных маячков нужно отдельно организовывать, то есть, покупать, систему управления инфраструктурой. То есть, это уже практически ERP, заточенная под маячки в здании.

        И для чего все это? Повысить точность на метр?


    1. zviad
      18.04.2016 23:33
      +1

      Давайте по порядку, RFID и QR немного не о том, несмотря на то что есть какие то пересечения с маячками. Маячки сейчас как раз и есть те самые супер легкие и мало потребляющие энергию устройства. Все они работают достаточно долго, некоторые даже 2-3 года.
      Про шифрование, так оно нужно далеко не всегда и не везде, но согласитесь, лучше ведь иметь такой механизм чем не иметь?
      Про геолокацию, особенно в случае с indoor навигацией, все прекрасно работает, на складах, в зданиях, на промышленных объектах и тд.
      Если говорить про маячки и трекинг, сами маячки ничего трекать не могут в принципе, трекать может приложение установленно в мобильном устройстве и потом передавать эти данные куда то. Но опять же, не всегда нужны приложения, например, в случае с Physical Web, очень советую посмотреть про эту технологию. В этом случае не полуится никак следить за пользователем, потому что нет никакого специального софта, пользователь взаимодействует только по требованию, когда сам этого хочет.
      С помощью WiFi конечно можно трекать пользователей, но в данном случае это не имеет никакого отношения к топику.
      А у кого из серьезых интеграторов вы спрашивали? Если маячков много, то как правило используются промышленные решения, а не маленькие игрушки. Они могут работать от сети или достаточно долго от аккумуляторов. Маячки легко размещаются так что бы их нельзя было украсть или по ркайней мере, сделать это было очень сложно.


      1. Klukonin
        19.04.2016 08:24
        -1

        Хорошо, давайте.

        1) RFID и QR как раз о том. Большинство навигационных приложений либо передают уровень сигналов с разных маячков на сервер и получают обратно данные о местонахождении, либо грузят всю карту с координатами маячков сами и высчитывают его сами. С RFID/QR метками положение определяется с точностью до метра и все происходит по аналогичному сценарию, либо данные на сервер, либо само клиентское устройство выполняет все операции. Так как сами BLE маячки ничего никуда не передают, а все функции выполняет сама система, ей нет никакой разницы откуда брать данные. И в случае с RFID\QR метками не нужно выполнять триангуляцию.

        2) Про шифрование. Можно помимо шифрования понапихать еще много чего. Не, ну а чо, пусть будет, вдруго пригодится когда-нибудь. И вместо узкоспециализированного легкого устройства все это превратится в очередной громоздкий «девайс» со спецификацией в несколько сотен страниц и без малейшего намека на то что было изначально. Хорошо это? ИМХО, это плохо.

        3) А чего это wifi не имеет отношения к топику. Очень даже имеет. Беконы шлет? Работает в том же диапазоне? Принцип триангуляции используется? В больших зданиях беспроводных точек просто дофига. С точки зрения системы, опять же, ей совершенно не важно, будут ли это маячки или беспроводные точки.

        4) Если применяются громоздкие BLE маячки в промышленном антивандальном исполнении, с блоками питания, под них покупается система управления а-ля ERP. Вопрос: А чем это лучше GPS повторителей для indoor инсталляций? Особенно учитывая большую заинтересованность самих ТРЦ в детальном и точном картировании. Хотя можно и студентов нанять и прорисовать все на OSM.
        На порядок дешевле выйдет решение со 100% совместимостью для клиентов. И не нужно никакие приложения качать =)


        1. zviad
          19.04.2016 12:29

          1) При чём тут RFID и уже тем более QR code? BLE-маячки могут и умеют намного больше, они работают по другому. Навигация работает немного не так. Никто не передаёт сигнал маячка на сервер, своё положение вычисляет принимающее устройства, хоть в офлайне. Маячки могут транслировать точные координаты и еще кучу метаданных, типа уровень этажности, описание места или cразу готовый Places API PlaceID. Опять же, при чём тут QR коды для навигации? Они вообще не для этого или вы предлагаете людям и технике ходить и постоянно сканировать QR коды что бы понимать где они находятся??? Даже если говорить не про навигацию, а про транслированные URL, один маячок может транслировать на достаточное расстояние вокруг себя, QR код же еще нужно найти, а затем распознать. Так, например, маячки установлены в лондонских автобусах, т.е. на один автобус один маячок, он транслирует URL, перейдя по которому пассажиры могут в реальном времени получить информацию о маршруте. В случае с QR кодом пришлось бы им залепить весь автобус, потому что пробраться в час пик к одному или нескольким QR кодам будет очень сложно. Тоже самое про стадионы, магазины и тд...
          Про RFID, много вы знаете обычных мобильных устройств из коробки умеющих RFID?


          2) Простите, вы статью читали? Устройства не изменились и никто не собирается их усложнять, они наоборот становятся всё меньше и меньше. Конкретно Eddystone-EID и дургие механизмы безопасности о которых говориться в статье были придуманы не просто так, не для: "Пусть будет, пригодится". Они решают конкретные и серьезные проблемы, которые существовали с момента появления маячков.


          А чего это wifi не имеет отношения к топику. Очень даже имеет. Беконы шлет?

          3) Какие еще беконы? Что вы имеет ввиду? WiFi используется для передачи данных, это устройства другого класса и стоят они намного дороже чем мачки, у них совсем другие цели. Это не решение для indoor навигации и уж точно его нельзя повесить на ключи или вшить в сумку.


          4) Спутниковая навигация так не работает, нет никаких повторителей, без разницы GPS, ГЛОНАСС, GALILEO или что то еще. А промышленные маячки не такие прям "громоздкие". И да, не во всех случаях, но система управления маячками нужна, во первых без неё просто не работает то, о чём я писал в статье. А во вторых, как управлять действительно большим количеством маячков, например в городе Манчестере? Системы управления маячками позволяют привязывать к ним данные и всячески управлять и следить за ними. Раньше приходилось такие системы делать самому, а сейчас есть готовые и универсальные решения, типа той же Google's beacon platfrom.


          1. Klukonin
            19.04.2016 12:43
            -1

            1) Я не говорил о передаче сигнала. Вы понимаете разницу между «уровень сигнала» и «сигнал»?

            QR при том что он великолепно интегрируется в любое место, полностью сохраняя дизайн и смотрится красиво. Погуглите.
            Про RFID в мобильных устройствах — вы вынуждаете меня тыкнуть вас носом и отправить учить матчасть.
            https://www.adafruit.com/products/362

            2-3) Про wifi беконинг опять отправляю вас учить матчасть. Можете почитать тут
            https://en.wikipedia.org/wiki/Beacon_frame
            http://www.wi-fi.org/beacon/rolf-de-vegt/never-lost-indoors-the-promise-of-wi-fi-location
            А так же скачать яндекс навигатор, выключить GPS, оставив только интернет и WIFI. И после этого погулять по Москве, отслеживая свое положение.

            4) В очередной раз отправляю вас учить матчасть и изучать рынок
            http://www.gps-repeaters.com/
            http://www.gps-repeating.com/en/products

            Мда…


            1. zviad
              19.04.2016 13:37

              1) Разницу знаю, знаю что такое сигнал, знаю что такое RSSI, зачем его передавать на сервер?
              2-3) И это я всё прекрасно знаю, только передаются не "беконы", потому что беконы и если уж на то пошло, то биконы, это сами маячки. Цену решений сравнивали? WiFi значительно дороже и больше. Что бы добиться нормальной точности позиционирования нужно установить достаточное количество передатчиков и может оказаться что интернет там вообще никому не нужен, поэтому дешевле и проще установить как раз маячки. Разве это не, как вы сами сказали: "попытка впихнуть невпихуемое".
              4) Вот про gps повторители не знал, спасибо интересно, почитал. Но вы цену решения сравнивали?? И после этого то маячки "громоздкие" и дорогие устройства? И опять же, они умеет чуть больше чем просто навигация.


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


  1. zviad
    19.04.2016 12:25

    del