[android] идентифицировать клиентский аппарат
Там вроде можно и "на учетку", и "на устройство"
по каким признакам еще можно кроме IMEI идентифицировать что человек запускает приложение на том же самом телефоне?Краткий ответ: наверняка сделать такую проверку невозможно.
Помню, немного изучал эту тему, когда делали приложение для одной фин. организации, где требовалась особая защита и привязка приложения к аппарату-терминалу.
Приложение (apk) можно своровать (с рутованного устройства) и установить на другой смартфон. IMEI можно подделать. Приходится продумывать свой механизм проверки подлинности копии приложения на сервере.
В итоге на это забили и всю ответственность переложили на оператора, под чьим логином/паролем и на чьем устройстве будут осуществляться транзакции. Если приложение своровали с его смартфона (который был рутован), узнали IMEI его телефона, и установили на другой, в котором поменяли IMEI на его, то вина оператора. Т.о. для проверки может использоваться тройка: логин, пароль, imei. Можно добавить еще что-то, но смысл тот же.
Все это управляется с сервера, через который идет работа приложения. В частности, если телефон украдут, можно будет сразу заблокировать соответствующего юзера с его imei, логином и паролем.
а что делать с IMEI на планшетах без GSM-модуля?
Для такого планшета можно взять другой идентификатор железа. Не знаю точно, не изучал этот вопрос.
хочу понять какими способами оно может это делать.
например - IMEI. в каком аккаунте в гугле я сейчас залогинен - может проверить? может какой то уникальный айди хранилища? А может куда то записать свой файл в корневую директорию, который не очистится при удалении приложения? какие еще есть варианты?
http://stackoverflow.com/questions/16869482/how-to-get-uniqu...
и ответ на вопрос "какой эккаунт?"
http://stackoverflow.com/questions/2245545/accessing-google-...
Собственно, для всего этого нужны соответствующие permissions, о которых дроид предупреждает при установке
Conclusion For the vast majority of applications, the requirement is to identify a particular installation, not a physical device. Fortunately, doing so is straightforward.
There are many good reasons for avoiding the attempt to identify a particular device. For those who want to try, the best approach is probably the use of ANDROID_ID on anything reasonably modern, with some fallback heuristics for legacy devices
и ответ на вопрос "какой эккаунт?"
http://stackoverflow.com/questions/2245545/accessing-google-...
The account manager class has access to this.
Собственно, для всего этого нужны соответствующие permissions, о которых дроид предупреждает при установке
кстати вполне логичный вопрос - имея рут права, можно ли запретить эти пермиссион для конкретного приложения либо подменять выдаваемую системой инфу на другую. то есть понятно что можно ибо при наличии рут прав можно всё - вопрос в том как именно?)
http://forum.a-developers.com/showthread.php?t=2109484
http://resources.infosecinstitute.com/android-app-permission...
http://resources.infosecinstitute.com/android-app-permission...
а как подменять отдаваемые гуглоакк и IMEI?
Оставить комментарий
marusya68
по каким признакам еще можно кроме IMEI идентифицировать что человек запускает приложение на том же самом телефоне?