Предотвращение нескольких учетных записей пользователей на Android (ну, собственно, потоки пользователей) - PullRequest
0 голосов
/ 02 апреля 2011

Итак, у меня есть уникальная проблема безопасности. (Ну, в любом случае, я так думаю, но я могу просто не знать, что я делаю?)

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

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

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

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

Так что было бы здорово, если бы API позволял следующее действие. 1. Человек запускает мое приложение. 2. Приложение отправляет начальный контакт на мой сервер. (Это будет включать номер телефона пользователя) 3. Мой сервер получает это и запрашивает серверы провайдера, запрашивая у сервера провайдера конкретный номер телефона, чтобы убедиться, что у него есть действительный идентификатор оборудования, чтобы быть в этой сети, и что этот конкретный телефон работает с экземпляром моего приложения. *

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

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

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

(можете ли вы догадаться, что мое приложение?)

Ответы [ 4 ]

1 голос
/ 02 мая 2011

Пожалуйста, прочитайте, а не просто пытайтесь быть отрицательным няней. У меня большой опыт борьбы с пиратством, и я могу сказать, что ваши усилия тщетны. Здесь дело, время, потраченное на сложную профилактику пиратства, потрачено впустую. Если вы продадите его через Android Market, честные пользователи останутся честными. Кому интересно, если я передам его своему другу? Если это хорошее приложение, ему нужны обновления, и мне придется покупать его, потому что у меня нет возможности просто копировать новую версию и отправлять электронные письма в Dropboxing и т. Д. *

Пираты просто собираются скачать бесплатную копию, так что вы НИКОГДА НЕ ПОЛУЧАЕТЕ, ЧТОБЫ ПОЛУЧИТЬ ИХ ДЕНЬГИ, ПОЗВОЛЬТЕ ЕГО !!! Это как девушка, которая достаточно привлекательна, чтобы заниматься сексом, но она тебе не нравится как личность. ты не собираешься изо всех сил делать ее своей девушкой. Пираты смотрят на ваше программное обеспечение так же: «Я хочу, чтобы оно было бесплатным, но в остальном ... ме ...»

Вы вкладываете всю эту работу в наполовину запутанную схему, тратя впустую время, которое вы должны использовать для обновления своего приложения и поддержки платных пользователей. Все это усилие, чтобы не быть "украденным" у. Вы знаете, что я собираюсь сделать, чтобы взломать эту программу (не буквально я, просто пример). Я собираюсь отредактировать ее или отредактировать код и полностью удалить ваши вызовы для аутентификации. Я мог бы создать службу по телефону для проверки подлинности и просто взломать ваше приложение для проверки подлинности по шлейфу 127.0.0.0/8.

Независимо от того, насколько хороша защита, если она предназначена для работы в многопользовательской среде, она будет сломана, если смотреть на HD-DVD и Blu-ray. Я присутствовал во время взлома этих защит, и они были очень впечатляющими и сложными, но в конечном итоге их было легко сломать.

ИРОНИЯ ЭТОГО ОГРАНИЧЕНИЯ DRM - ЭТО ТО, ЧТО МНЕ ОСТАВЛЯЕТСЯ ОТ ПОКУПКИ ФИЛЬМОВ, ИГР И ПРОГРАММ. ПОДЕЛИТЬСЯ УХОДИТ !!!! что еще важнее, это БЕСПЛАТНАЯ РЕКЛАМА !!!!!!!!!!!

Я не могу сказать вам, сколько игр на CD с фильмами ... ммм ... Pr0nsites>,> свистит Я купил / потратил деньги в результате пиратства. Если вы создадите замечательную программу и будете постоянно обновлять ее, люди купят ее. Если вы попытаетесь сохранить его привязанным к платформе или определенному устройству, HAHAHAHA, удачи вам, спросите swype, как у них дела, чтобы их клавиатуру выпускали только через OEM-производителей. Даже при поддержке производителя устройства, аппаратной эмуляции и отладке, чтобы взломать его.

Я взломал ОС, когда мне было 13 или 14 лет, и у меня не было денег, то же самое с программным обеспечением для записи дисков. Когда мне было 18 лет и я построил новую установку, я купил обе. Я копирую некоторые приложения для Android и думаю, что я купил те, которые мне понравились, и те, где разработчик обновился.

Ваша лучшая схема борьбы с пиратством - быть хорошим разработчиком и реагировать на ваше сообщество. ЗДЕСЬ ВАША ЛУЧШАЯ СХЕМА ЗАЩИТЫ !!! Google теперь принимает платежи в приложении, оооочень ... сделайте ваше приложение бесплатным с помощью кнопки «Пожертвовать для про / покупки» в приложении (дополнительные пожертвования через кнопку меню). Убедитесь, что вы раскрыли описание того, что это в приложении, чтобы не разозлить людей и не получать плохие отзывы.

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

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

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

Вы должны просто использовать Google App Store Drm, хотя, потому что если один из ваших клиентов переходит на новое устройство, они будут раздражены.

Чтобы убедиться, что приложение всегда работает, вы должны взять на себя обязательство выпуститьDrm бесплатный продукт, если разработка когда-либо прекращается.

Drm - это просто боль и беспокойство, и пираты полностью снимают ограничения, поэтому, когда вы посмотрите на платных клиентов с ограничениями или бесплатно и легко, что бы вы выбрали?

Если бы это былоне совсем ясно, извините, я набрал его тремя громко разговаривающими, один из которых был трехлетним, бросающим мне в лицо игрушки.

КОНЕЦ

PS

https://market.android.com/details?id=com.noshufou.android.su.elite&feature=search_result Это приложение НИЧЕГО на данный момент не имеет УСТАНОВЛЕНО: 10 000 - 50 000 покупок только для поддержки разработчика других программ

1 голос
/ 02 апреля 2011

На прошлой неделе в блоге разработчиков Android было сообщение об этом.

Короче говоря: ANDROID_ID - это хорошее начало, хотя оно работает не на всех телефонах(особенно старые).Если вы хотите поддерживать более старые телефоны, вы можете объединить это с IMEI, как предложено выше (но имейте в виду, что не все устройства имеют IMEI. Например, только для WiFi).

0 голосов
/ 02 апреля 2011

Почему бы не использовать уникальный идентификатор оборудования, например IMEI ?

0 голосов
/ 02 апреля 2011

Если бы я действительно хотел привязать приложение к определенному оборудованию, я бы использовал IMEI (GSM) или MEID (CDMA) с телефона и назначил имуникальный cookie.Вы можете использовать разрешение Read Phone State для получения этих номеров с телефона и отправки их на ваш сервер.Для защиты ваших клиентов я бы отправил их только один раз и вернул случайный файл cookie, чтобы они могли использовать их при последующих запросах.Вы можете записать IMEI / MEID в базу данных, а также связанный cookie, чтобы гарантировать, что одно и то же устройство всегда получает один и тот же cookie.Я бы также использовал SSL для этой первоначальной транзакции для обеспечения конфиденциальности клиентов, но при желании файл cookie может быть отправлен открытым текстом.Это свяжет их учетную запись с их телефоном.Я не знаю, имеют ли Android MP3-плееры, планшеты и т. Д. Похожий серийный номер.Телефон GSM также имеет номер, называемый IMSI в дополнение к IMEI, который относится к SIM-карте, а не к телефону.Телефоны CDMA не имеют SIM-карты и имеют только MEID.Наконец, этот файл cookie, о котором я говорю, не обязательно должен быть обычным файлом cookie HTTP, он может быть просто частью URL-адреса, например ?cookie=abcd123, или какой-либо строкой, отправляемой внутри канала независимо от того, какой сетевой протокол вы решили использовать.

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