Хэш идентификаторов предоставленных устройством что это

Обновлено: 07.07.2024

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

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

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

Идентификация на периферийных устройствах PCI и PCI Express: PCI ID

База Placa PCIe

Любое устройство, подключенное к порту типа PCI или PCI Express, идентифицируется шестнадцатеричным кодом, разделенным на две части:

  • Первые цифры принадлежат производителю, эта идентификация бессрочно присваивается PCI-SIG, консорциумом, который разрабатывает различные стандарты шины PCI Express, а также различные ее достижения.
  • Вторая часть идентификатора присваивается производителем.

Каждая из двух частей идентификационного кода хранится в виде двух 16-битных целых чисел, которые хранятся в определенном регистре. Это означает, что может быть до 65,536 65,536 производителей периферийных устройств PCI, и каждый из них может производить XNUMX XNUMX устройств, использующих этот интерфейс, позвольте нам сказать вам, что даже самым опытным производителям оборудования не удалось произвести такое количество устройств вообще. Погода.

GPU PCIe

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

Идентификация на USB-периферийных устройствах: USB ID


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

  • Дескриптор человеческого интерфейса (HID): Он используется клавиатурами, мышами и даже планшетами и игровыми контроллерами, такими как джойстики и игровые планшеты. Многие периферийные устройства этого типа не имеют собственных контроллеров и используют общие для этого типа устройств.
  • Дескриптор накопителя большой емкости (MSD): Он используется для внешних хранилищ, таких как жесткие диски, USB-ключи и т. Д.

USB-идентификатор Teclado

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

Дискотека Дуро USB

  • ID поставщика (VID) : Идентификационный код производителя периферийного USB-устройства, каждый производитель USB-устройств, независимо от их типа, имеет уникальный идентификатор.
  • Идентификатор продукта (PID): Идентификационный код устройства, его дает производитель.
  • Пересмотр : Если существует несколько версий одного и того же продукта, они также могут иметь идентификацию.

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

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

Чтобы вам было проще изучать, настраивать и оптимизировать аудитории, мы внесли в Google Рекламу следующие улучшения:

  • Новые отчеты об аудитории
    Подробные отчеты о демографических характеристиках, сегментах и исключениях теперь собраны на вкладке "Аудитории", перейти к которой можно из меню выбора страниц слева. Также на этой вкладке можно управлять аудиториями. Подробнее…
  • Новые термины
    Мы добавили в Google Рекламу новые термины, которые встречаются и в отчетах об аудитории. Например, типы аудитории (похожая, особая, заинтересованных покупателей и по интересам) теперь называются сегментами аудитории, а вместо термина "ремаркетинг" используется термин "ваши данные". Подробнее об изменении терминологии…

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

  • Загружать в свой аккаунт идентификаторы MDID, собранные с согласия клиентов, и использовать эти данные для ремаркетинга.
  • Собирать идентификаторы MDID с помощью SDK Google и инструмента аналитики Firebase или стороннего средства аналитики приложений, которое активирует события в результате действий пользователей. Затем можно настроить правила для создания сегментов данных на основе событий.

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

Преимущества

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

  • Преимущества использования сегментов данных, содержащих идентификаторы MDID, перед списками электронных адресов:
    • С помощью кампаний Google Рекламы можно охватывать пользователей, которые взаимодействовали с вашим приложением.
    • С помощью Firebase или стороннего средства аналитики приложений можно создавать сегменты данных на основании определенных действий пользователей в вашем приложении.
    • Можно охватывать пользователей, которые не посещали сайт, но взаимодействовали с мобильным приложением.
    • Можно загрузить список MDID клиентов, чтобы показывать им объявления через Google Рекламу.

    Использование сегментов данных, содержащих идентификаторы MDID

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

    1. Собрать идентификаторы MDID для создания списка, который можно загрузить в Google Рекламу.
    2. На основе собранных идентификаторов мобильных устройств создать список пользователей, который будет использоваться в кампаниях Google Рекламы.

    Принципы работы

    Сбор списка идентификаторов мобильных устройств

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

    Вы можете экспортировать идентификаторы устройств в BigQuery для дальнейшей обработки. Подробнее о схеме BigQuery Export…

    Примечание. Вместо Google Аналитики для Firebase можно использовать сторонние инструменты, например Emma, Appsflyer или Adjust.

    Загрузка списков идентификаторов устройств через Google Рекламу

    Загрузка списков идентификаторов устройств через Google Ads API

    • Поле mobile ID (идентификатор мобильного устройства) относится к типу UserIdentifier службы OfflineUserDataJobService. Оно позволяет пользователям, которым предоставлен доступ, загружать данные об идентификаторах AAID (для Android) и IDFA (идентификатора для iOS).
    • При загрузке идентификаторов мобильных устройств поле upload_key_type должно иметь значение MOBILE_ADVERTISING_ID.

    И в интерфейсе Google Рекламы, и в Google Ads API можно добавлять клиентов в существующий сегмент, удалять определенных клиентов и заменять сегмент клиентов новым.

    Как собирать данные для создания списков пользователей

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

    1. Вы можете сканировать устройства клиентов во время посещений магазина или другими способами собирать информацию в офлайн-режиме. При этом необходимо соблюдать правила Google в отношении использования собственных данных. Чтобы создать сегмент на основе этих данных, нужно загрузить собранные идентификаторы MDID через интерфейс Google Рекламы или API.
    2. Также можно собирать данные о событиях в приложении для определенных действий пользователей с помощью Firebase или стороннего средства аналитики. Чтобы создавать сегменты на основе этих данных, нужно настроить правила для интересующих вас событий.

    Созданные таким образом сегменты аудиторий можно использовать в Google Рекламе.

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

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

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

    Какая информация позволяет отследить ваше Android-устройство

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

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

    Еще один уникальный идентификатор, MAC-адрес, нужен для подключения устройства к сети, а заодно может быть использован, чтобы ограничить набор гаджетов, которые имеют право подключаться к вашему домашнему WiFi. Наконец, Android ID (он же SSAID) разработчики приложений используют, чтобы продавать лицензии на ограниченное количество копий для платных версий своих продуктов.

    Долгое время какого-то отдельного идентификатора для рекламы вообще не существовало, поэтому приложения отправляли своим партнерам те, к которым имели доступ. При этом спрятаться от объявлений по интересам пользователь практически не мог: те же IMEI или MAC-адреса — это уникальные номера, по которым устройство опознается однозначно. Каждый раз, когда очередное приложение передает в рекламную сеть один из них, та понимает, что его установили именно вы.

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

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

    Рекламный идентификатор — ожидание

    В 2013 году в качестве компромисса между интересами пользователей Android и рекламщиков компания Google ввела специальный рекламный идентификатор. Его задают сервисы Google Play, и пользователь при желании может сбросить его и создать новый. Делается это в меню Настройки > Google > Реклама > Сброс рекламного идентификатора. С одной стороны, такой идентификатор позволяет рекламным сетям отслеживать привычки и увлечения владельцев устройств. С другой — если же хочется избавиться от слежки рекламщиков, вы можете в любой момент без лишних трудностей его сбросить.

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

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

    Увы, в действительности все несколько иначе.

    Рекламный идентификатор — реальность

    Как обнаружил исследователь Серж Эгельман (Serge Egelman), более 70% приложений в Google Play используют хотя бы один дополнительный идентификатор без предупреждения. Некоторые из них, например 3D Bowling, Clean Master и CamScanner, скачали многие миллионы человек.

    Чаще всего в ход идет Android ID, хотя IMEI, MAC-адреса и серийные номера разработчики тоже задействуют. Некоторые приложения отправляют партнерам сразу три идентификатора и более. Так, игра 3D Bowling — видимо, для верности — использует и рекламный идентификатор, и IMEI, и Android ID.

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

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

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

    Борьба с навязчивой рекламой

    Конечно, Google не бездействует. Компания принимает меры, чтобы ограничить возможность злоупотребления идентификаторами. Например, начиная с Android Oreo тот же Android ID для каждого приложения задается свой, так что в глазах рекламной сети, полагающейся на этот ID вместо рекламного, ваш Instagram будет установлен на одном устройстве, а Snapchat — на другом.

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

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

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

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

    Хэш еще называют свёрткой, в этом очень точно описывается суть этой математической операции.

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

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

    Берем огромный роман "Война и мир" и получаем от него короткий, тридцатидвухбайтный хэш (256 бит). И этот хэш (результат вычисления хэш-функции) уникально идентифицирует текст "Войны и мира".

    Представим, допустим, что кто-то взял и изменил этот текст. Например, изменил одну букву где-то в середине романа. Снова вычисляем хэш от нового, измененного текста. Полученное значение будет очень сильно отличаться от прошлого. Т.е. новый текст даст другой хэш, пусть даже изменилась всего одна буква!

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

    Собственно, это главная функция хэша - получать некую уникальную числовую характеристику блока информации. И характеристика эта - фиксированного размера, не зависит от размера исходного блока информации. Вот для этого изначально хэш и придуман.

    Как теперь сравнить два разных текста? А просто вычисляем хэш от каждого. Если хэши разные - то и исходные тексты разные. Даже если разница в одном символе в огромном романе. Кстати, в программировании так время от времени делают: чтобы не париться с посимвольным сравнением огромных текстов, просто сравнивают вычесленные от них хэши. Или чтобы организовать хранение данных по парам "ключ-значение", используют хэш-таблицу.

    Иногда на некоторых сайтах можно увидеть интересные надписи, вроде "контрольная сумма MD5". Смысл такой: скачиваете файл, но вдруг возникает сомнение, а не подменил ли кто-то файл? Проверить это можно разными способами, один из них - вычислить контрольную сумму. Контрольная сумма, кстати - это один из способов хэширования, смысл практически тот же самый. Из большого текста получить маленькую числовую характеристику. А MD5 - это название конкретного алгоритма хэширования.

    Так вот, скачиваете файл, вычисляете от него хэш MD5 (есть утилиты для этого) и сравниваете с тем, что на сайте написано. Совпадает? Все отлично! Нет? Упс. Или недокачался, или кто-то файл подменил. Кстати, антивирусы имеют базу данных, в которой для каждого системного файла есть его хэш. Если на компьютере пользователя у системного файла другой хэш - это значит, что файл поврежден и заражен. И иногда антивирус так и говорит: "не совпадают контрольные суммы системных файлов" или "не совпадают хэши файлов".

    Как рассчитывают хэш? Можно придумать самый простой алгоритм вроде такого. Берем исходный блок чисел, и просто последовательно перемножаем их друг на друга. Когда число становится слишком большим (превышает размер требуемого хэша) - отрезаем лишнее . И дальше перемножаем. Снова слишком большое число? Снова отрезаем . В итоге получится какое-то число, которое и будет хэшем. Если в исходной последовательности байт (в исходном тексте) изменить одно значение - то произведение, скорее всего, изменится, и изменится (скорее всего) наше обрезаное значение. Это пример примитивной хэш-функции. На практике никто таким алгоритмом не пользуется, потому что он не стойкий к ряду неприятностей. Например, если просто поменять местами два символа рядом - произведение не изменится. А текст-то изменился!

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

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

    Чтобы представить себе, как вообще такое возможно - каждому тексту поставить в соответствие уникальную числовую характеристику, я в свое время придумал себе такую картинку. Допустим, каждый текст, написаный когда-либо человеком, имеет порядковый номер. Вот пусть этот поряковый номер и будет уникальной характеристикой (хэшем) текста. Если размер хэша у нас 256 бит (большинство алгроитмов генерируют хэш от 140 до 256 бит), то с помощью числа такого размера можно пронумеровать каждый электрон во вселенной! Потому что во вселенной всего 10 в степени 80 электронов, а это сопоставимо с двойкой в степени 256. Т.е. понятно, что человечесво не способно даже близко наделать столько текстов; так что для каждого из них найдется какой-нибудь отдельный номер из этого огромного количества возможных номеров. Так что это возможно - каждому тексту дать уникальный хэш.

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

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

    Подписывайтесь на канал "Технологии Денег" в Яндекс.Дзен и Телеграм ! У меня много интересного материала!

    Читайте также: