Страница 1 из 2
Как получить id телефона?
Добавлено: 27 июн 2014, 12:23
qw123
Здравствуйте, подскажите пожалуйста что можно взять в качестве идентификатора, различного на всех устройствах? Я пробовал получить IMEI, но почему-то вылезает ошибка и приложение закрывается. Тоже самое происходит даже при попытке получить модель телефона или серийника симки. Может нужно какие-то разрешения добавить для получение подобной информации?
Re: Как получить id телефона?
Добавлено: 27 июн 2014, 13:49
altwin
android.telephony.TelephonyManager.getDeviceId().
Но сначала в манифест:
[syntax=java5]<uses-permission android:name="android.permission.READ_PHONE_STATE" />[/syntax]
 Но зачем вам уникальность подобным способом? А если несколько человек пользуются девайсом(к примеру корпоративный)? Не лучше ли авторизовать пользователя через google api и использовать уникальный идентификартор пользователя...
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 09:58
qw123
У меня цель ограничить распространение. А если один человек получит ключ для своего гугл аккаунта, то он сможет распространять приложение уже своим аккаунтом.
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:18
Mikhail_dev
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:21
qw123
А мас адрес возможно подменить?
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:25
altwin
qw123 писал(а):У меня цель ограничить распространение. А если один человек получит ключ для своего гугл аккаунта, то он сможет распространять приложение уже своим аккаунтом.
Тогда пользователю придется заводить левый аккаунт с поддтвержденной инфой о кредитных картах и соц. id... которым будет делиться... google довольно серьезно контролирует аккаунты и я сильно сомневаюсь, что кто -то отдась свои данные в пользование кому -то, вы же понимаете, что активность такая будет замеченна, а все данные в логах google сохранятся - этот человек сразу засветится сам и засветит всех своих "клонов", а вам это наруку.... да и дело в том, что IMEI данную проблему решит лишь частично. Пользователь имеющий ваше приложение может банально декомпилировать приложение и с помощью простого дебагера найти код отвечающий за проверку, он просто будет отправлять вам в ответ зарегестрированный ключ - это элементарно, далее уже распространять в любом виде...Конечно IMEI -отличная штука для того, чтобы привязывать устройства к пользователю, но ограничить распространение у вас так не получится, как минимум не помешало бы поступить так, как поступают большинство - добавить ограничение на пользование. Т.е. предоставьте пользователю лимит заранее превышающий средние потребности одного девайса, можете даже сказать о том, что в случае необходимости - пусть пишет в поддержку и ему увеличат его(но придется сказать зачем). Таким образом даже 2 юзера под одним id очевидно лимит превысят и он задумается.
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:30
altwin
qw123 писал(а):А мас адрес возможно подменить?
подменить можно все. Да и зачем если я могу вам отправить тот, который вы ожиадаете подменяя пакеты... Если приложение попало к пользователю - он бог. Вам не нужно ограничивать его - это путь в никуда... вам нужно максимально прозрачно контролировать активность и собирать максимум информации. Ваша задача не от пользователя защититься, а от злоумышленника. Иначе вы усложните работу именно пользователю, а злоумышленник всегда найдет способ обойти вашу защиту Google аккаунт вполне защищен, вам нужно лишь контролировать активность.
P.S. да и кто мешает пользователю добавить миллион устройств с IMEI который вы ожидаете.
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:33
qw123
Ну а скажем, если я собираюсь продавать приложение. Неужели всё это так легко обойти? Мне же нужно ликвидировать лишь бесплатное распространение
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:41
altwin
qw123 писал(а):Ну а скажем, если я собираюсь продавать приложение. Неужели всё это так легко обойти? Мне же нужно ликвидировать лишь бесплатное распространение
Легче чем вы можете себе представить. Если вы продаете приложение а не функционал/контент, как только я его купил - оно будет на торренте без всех ваших проверок... Поймите ваша задача - защитить вашего пользователя, а не защититься от него. Отслеживайте логи, к примеру простая проверка на колличество ip адресов с которых был доступ в течении дня -даст очень много. еще лучше локаций. Сохраняйте информацию и предупредите пользователя о наличии лицензии и защите прав. Вам нужно обезопасить его от потери аккаунта и все. Да и если колличество покупок выростет на столько, что ваше приложение начнут ломать - считайте, что у вас уже есть деньги нанять специалиста... А если вы просто хотите продать пару копий платной книжки - забудьте.. сломает первый, кому она попадет в руки
P.S. продавать приложение, если это не игрушка - дурная затея и бесполезная, особенно на рынке Android... продавать нужно функционал, еще лучше открыто отдавать его бесплатно и продавать либо advance фичи, поддержку, контент либо исходники. Да и даже игрушки приносят прибыть те, где "затянутый" пользователь совершает in-app покупки, а не те, которые покупают в магазине... если конечно вы не wargaming... Но из любых правил и законов есть исключения... хотя я пока не видел заведомо коммерческих продуктов выстреливших на столько же, как и случайность в отлично продуманной халяве.
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:44
qw123
ну так я же не просто продаю апк файл, а как раз шифр для конкретного id, который должен быть привязан к устройству либо симке
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:48
altwin
qw123 писал(а):ну так я же не просто продаю апк файл, а как раз шифр для конкретного id, который должен быть привязан к устройству либо симке
А если я покупаю у вас его и меняю симку или устройство? а если у меня более 20 android девайсов? А если я компания и их сотня или тысяча? Настолько ли ваше приложение нужно мне, если потеряв симку или сменив девайс я потеряю доступ? Единственно, что вам нужно - поддтержденный google id - все. Если пользователь нарушил лицензию - отслеживайте это и подавайте в суд... больше прибыли получите. да в конце концов есть такая штука как двухуровневая авторизация... используйте телефон или к примеру отличная штука
google authenticator при входе пользователя.. он даже не заметит, как вы подтянете ключ и сгенерируете токен... никаких паролей и смс -ок а все плюсы двухфакторной аутентификации тут.
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 10:54
qw123
altwin писал(а):qw123 писал(а):ну так я же не просто продаю апк файл, а как раз шифр для конкретного id, который должен быть привязан к устройству либо симке
А если я покупаю у вас его и меняю симку или устройство? а если у меня более 20 android девайсов? А если я компания и их сотня или тысяча? Настолько ли ваше приложение нужно мне, если потеряв симку или сменив девайс я потеряю доступ? Единственно, что вам нужно - поддтержденный google id - все. Если пользователь нарушил лицензию - отслеживайте это и подавайте в суд... больше прибыли получите. да в конце концов есть такая штука как двухуровневая авторизация... используйте телефон или к примеру отличная штука
google authenticator при входе пользователя.. он даже не заметит, как вы подтянете ключ и сгенерируете токен... никаких паролей и смс -ок а все плюсы двухфакторной аутентификации тут.
Ну так пользователи обычно меняют либо симку, либо устройство. Одновременно большая редкость. Да и потом, а если он даст свой гугл ид брату, свату, жене, как это отследить... И никто из моих знакомых не использует этот сервис, каждый должен будет регистрироваться?
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 11:01
altwin
qw123 писал(а):altwin писал(а):qw123 писал(а):ну так я же не просто продаю апк файл, а как раз шифр для конкретного id, который должен быть привязан к устройству либо симке
А если я покупаю у вас его и меняю симку или устройство? а если у меня более 20 android девайсов? А если я компания и их сотня или тысяча? Настолько ли ваше приложение нужно мне, если потеряв симку или сменив девайс я потеряю доступ? Единственно, что вам нужно - поддтержденный google id - все. Если пользователь нарушил лицензию - отслеживайте это и подавайте в суд... больше прибыли получите. да в конце концов есть такая штука как двухуровневая авторизация... используйте телефон или к примеру отличная штука
google authenticator при входе пользователя.. он даже не заметит, как вы подтянете ключ и сгенерируете токен... никаких паролей и смс -ок а все плюсы двухфакторной аутентификации тут.
Ну так пользователи обычно меняют либо симку, либо устройство. Одновременно большая редкость. Да и потом, а если он даст свой гугл ид брату, свату, жене, как это отследить... И никто из моих знакомых не использует этот сервис, каждый должен будет регистрироваться?
Это функция google, и да ему придется установить приложение. Если пользователь не зарегестрирован в google - да зарегестрируется а как иначе? Вы даже 20% безопастности которую дает google не обеспечите всеравно. Большая редкость - это в вашем окружении.. а пользователя android во всем мире живут... как думаете сколько пользователей facebook ежедневно теряют/воруют телефоны? Если он даст свой гугл id брату свату жене - он нарушит правила лицензионного соглашения со всеми вытекающими... Да и в чем проблема - создавайте сессию и запретите множественный вход. Да и какая разница? Если вы работаете с аккаунтами то либо пользователь должен иметь свой - иначе теряется смысл.. к примеру зачем мне dropbox жены... либо нафига ему покупать вообще? Не забывайте - передача аккаунта подразумевает вход под своим логином и паролем на другом устройстве - и что тут плохого? Это его собственность. Неужели если пользователь вместо передачи аккаунта даст жене телефон/планшет почитать - будет вам легче жить?
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 11:06
qw123
altwin писал(а):qw123 писал(а):altwin писал(а):qw123 писал(а):ну так я же не просто продаю апк файл, а как раз шифр для конкретного id, который должен быть привязан к устройству либо симке
А если я покупаю у вас его и меняю симку или устройство? а если у меня более 20 android девайсов? А если я компания и их сотня или тысяча? Настолько ли ваше приложение нужно мне, если потеряв симку или сменив девайс я потеряю доступ? Единственно, что вам нужно - поддтержденный google id - все. Если пользователь нарушил лицензию - отслеживайте это и подавайте в суд... больше прибыли получите. да в конце концов есть такая штука как двухуровневая авторизация... используйте телефон или к примеру отличная штука
google authenticator при входе пользователя.. он даже не заметит, как вы подтянете ключ и сгенерируете токен... никаких паролей и смс -ок а все плюсы двухфакторной аутентификации тут.
Ну так пользователи обычно меняют либо симку, либо устройство. Одновременно большая редкость. Да и потом, а если он даст свой гугл ид брату, свату, жене, как это отследить... И никто из моих знакомых не использует этот сервис, каждый должен будет регистрироваться?
Это функция google, и да ему придется установить приложение. Если пользователь не зарегестрирован в google - да зарегестрируется а как иначе? Вы даже 20% безопастности которую дает google не обеспечите всеравно. Большая редкость - это в вашем окружении.. а пользователя android во всем мире живут... как думаете сколько пользователей facebook ежедневно теряют/воруют телефоны? Если он даст свой гугл id брату свату жене - он нарушит правила лицензионного соглашения со всеми вытекающими... Да и в чем проблема - создавайте сессию и запретите множественный вход. Да и какая разница? Если вы работаете с аккаунтами то либо пользователь должен иметь свой - иначе теряется смысл.. к примеру зачем мне dropbox жены... либо нафига ему покупать вообще? Не забывайте - передача аккаунта подразумевает вход под своим логином и паролем на другом устройстве - и что тут плохого? Это его собственность. Неужели если пользователь вместо передачи аккаунта даст жене телефон/планшет почитать - будет вам легче жить?
В любом случае такое приложение уже не сможет работать оффлайн, а это уже большой минус
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 11:13
altwin
Да и как бы поймите google api достаточно усложняет атаку, но передача аккаунта -это дело польователя и его личные данные, если он решает поделиться - это его дело. Просто отсеивайте "левые" аккаунты. Вы можете усложнить чтение кода, можете закрыть известные уязвимости, можете противостоять известным атакам, но никогда не получите гаррантии безопастности от человеческого фактора. Даже в NSA учитывая ежесекундные смены паролей и ключей и наличие десятков операторов в real time, как и в американских банках с той же системой защиты которую писали наши программисты и используем к примеру мы - есть огромная дыра - пользователь. Продавая контент вы уже по сути своей жертва, поскольку я его всегда могу скопировать. Опять же усложнение - защита от копирования, которая тоже снимается... Т.е. вы должны определить вектор возможной атаки и строить целевую защиту. Вам дорог контент - защищайте его... Вы продаете сервис - проверяйте тех, кому его предоставляете, но никогда аккаунт пользователя вас не защитит, он рожден, чтобы защизать только пользователя. Да и в своей системе аутентификации вы 100% сделаете столько ошибок первый год как минимум, что даже простой openid будет надежнее.
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 11:16
altwin
qw123 писал(а):
В любом случае такое приложение уже не сможет работать оффлайн, а это уже большой минус
Нет приложение аутентификатор от гугла раотает оффлайн и вы можете получать ключ прямо с него, когда оно есть на устройстве, да и что мешает написать такое -же. Но на самом деле - поймите простую вещь - защиты офлайн -нет. Просто не существует. Пользователь даже не будет аккаунт передавать а просто скопирует контент. Злоумышленник - удалит защиту из вашего приложения.
P.S. даже если вы зашифруете текст и закроете возможность чтения его без своего приложения(опять же оффлайн -это не возможно практически), пользователь просто сделает фото... Но в любом случае если приложение на устройстве - все, что оно принесло с собой - тоже на устройстве, т.е. его можно скопировать и передать кому угодно просто следуя куче мануалов в гугл.
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 11:20
qw123
Вопрос: как можно скопировать контент, если для доступа к содержимому приложения нужен зарегистрированный аккаунт?
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 11:21
altwin
qw123 писал(а):Вопрос: как можно скопировать контент, если для доступа к содержимому приложения нужен зарегистрированный аккаунт?
сделать фото? скопировать из зарегестрированного аккаунта? оно же работает оффлайн, т.е. контент уже на устройстве - подключить usb и скопировать...
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 11:23
qw123
Ладно, поясню, что прилдожение содержит не информацию, а скорее функционал. Другое приложение функционал для удобного доступа к информации (скринить всё, каждую кнопку просто не удобно, как и потом читать и искать что-либо в скринах)
Re: Как получить id телефона?
Добавлено: 30 июн 2014, 11:24
altwin
qw123 писал(а):Ладно, поясню, что прилдожение содержит не информацию, а скорее функционал. Другое приложение функционал для удобного доступа к информации (скринить всё, каждую кнопку просто не удобно, как и потом читать и искать что-либо в скринах)
ок а что мешает мне однажды купив его - открыть код и удалить проверку а авторизацию? К примеру следуя простому туториалу по декомпиляции apk -
http://developer.alexanderklimov.ru/and ... atitis.php Это же java, т.е. ваши исходники мне всегда доступны. Или же просто скопировать вашу базу....