Идентификаторы Android устройств, актуальные в 2023 году

Способы идентификации Android девайсов на основе IMEI, SIM ID и MAC адресов уходят в прошлое. Разбираемся, какие Android идентификаторы актуальны сегодня.
идентификаторы android андройд устройств

Содержание

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

Идентификаторы, которые уходят в прошлое

старые идентификаторы android

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

IMEI — уникальный идентификатор устройства на уровне железа. Начиная с Android 10 (API level 29) приложению требудется разрешение READ_PRIVILEGED_PHONE_STATE для получения этого идентификатора. Основная причина, по которой стало необходимо получить разрешение — IMEI нельзя изменить или сбросить, поэтому он позволяет отслеживать устройство на протяжении всей его жизни. Разрешение READ_PRIVILEGED_PHONE_STATE может получить только определенный узкий круг приложений (например, предустановленные приложения операторов связи), поэтому IMEI больше недоступен для обычных Android приложений. В Android 6.0 (API level 23) для данного идентификатора требовалось явное разрешение пользователя (runtime permission) на его получение приложением.

IMSI — идентификатор SIM карты. Условия его получения приложением аналогичны IMEI. Одним из способов использования номера SIM карты была проверка на ее перевыпуск. Если карта перевыпущена, возможно, это было сделано мошенниками в целях получения доступа к учетной записи, одноразовые коды для которой приходят в смс на указанный номер. Поэтому в таких случаях проводились дополнительные проверки со стороны интернет-сервиса.

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

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

Современные идентификатры Android девайсов

актуальные идентификаторы android

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

Advertising ID — специальный идентификатор в Android. Он создан для приложений, которые показывают пользователю рекламу. Идентификатор учитывает возможность пользователя отказаться от отслеживания путем переключения флага в настройках устройства. Для использования Advertising ID приложению требуется разрешение com.google.android.gms.permission.AD_ID.

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

Android ID (ANDROID_ID, SSAID — Secure Settings Android ID) — уникальный ID устройства, который не меняется после переустановки приложения, но на современных версиях Android разные приложения (точнее, приложения с разным разработчиком) будут видеть разные ID. На Android 8.0 (API level 26) и выше этот ID уникален для каждой комбинации: ключ для подписи приложения + учетная запись пользователя на устройстве + устройство. Может быть изменен при сбросе устройства к заводским настройкам. На версиях до Android 8.0 (API level 26) этот ID был уникален для каждой комбинации: учетная запись пользователя на устройстве + устройство, таким образом все приложения видели одинаковый ID устройства.

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

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

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

Идентификатор GSF Device ID — получен на основе com.google.android.gsf.gservices и является внутренним идентификатором для сервисов Google на данном устройстве. Официальной документации о данном методе нет, но вы можете найти примеры реализации в сети.

Идентификатор Media Drm Device ID — использует API для работы с зашифрованным (для защиты от несанкционированного копирования) лицензионным медиа контентом. Вы можете найти примеры реализации по ключевым словам: MediaDrm, WideWine, Android, Device ID.

Что будет дальше с идентификаторами Android устройств

будущее идентификаторов android устройств

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

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

Что касается отпечатков устройств, то, возможно, появятся некоторые ограничения на сбор отпечатков или их составных частей. Могут появиться дополнительные разрешения, которые приложению необходимо получить от пользователя, или ограничения количества параметров для сбора за единицу времени (так называемый Privacy Budget, который планируется ввести в браузерах).

Использование Android идентификаторов в антифрод системах

antifraud android, антифрод для андройд

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

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

Производитель российской антифрод системы Web Antifraud регулярно обновляет и совершенствует ее алгоритмы, а также учитывает новые реалии доступности идентификаторов Android устойств для приложений. Web Antifraud Mobile SDK для Android полностью поддерживает последнюю на данный момент версию операционной системы Android 13 (API level 33). Если вы ищете, как защитить мобильное приложение на Android, рекомендуем использовать решение от Web Antifraud. Кроме современных алгоритмов по выявлению мошенников у Web Antifraud есть бесплатный тестовый период, для получения которого оставьте заявку или напишите нам.

Для уведомлений о новых статьях и обсуждения:

Поделитесь записью в соцсетях: