2012-04-03 18 views
5

Pracuję nad aplikacją, która wymaga serwera do wykonania większego podnoszenia ciężarów. Chcę uniemożliwić pirackim klientom wysyłanie żądań na ten serwer. Czy istnieje sposób na przesłanie identyfikatora z prośbami, aby mój serwer mógł zapytać o Android Market, czy ktoś z tym identyfikatorem rzeczywiście kupił aplikację? Jak mam to zrobić?Zapobieganie piractwu Androida z prośbami o serwer

Należy pamiętać, że samo zabezpieczenie aplikacji za pomocą LVL nie będzie działać, ponieważ ludzie mogą dość łatwo napisać aplikację do interfejsu z serwerem i nadal zapewniają taką samą funkcjonalność, jak płatna aplikacja.

Odpowiedz

6

Po pierwsze: nie ma 100% bezpieczeństwa na wszystko, co uruchamiasz na urządzeniu, na które nie masz wpływu (jak urządzenia z systemem Android w twoim przypadku).

Można zrobić „abuse” twardsze przez kilka środków:

  • wydać losowy klucz sesji (kryptograficznie bezpieczne) Po zalogowaniu udanej o terminie więc nowy login musi się zdarzyć po pewnym czas przeszły przez
  • wydania klucza losowego interakcja (kryptograficznie bezpieczne) na każdym etapie komunikacji, która zostanie unieważnione prawo po jednym użytku
  • po udanej logowanie się stanie rozwiązać każdą inną sesję związaną z tych samych danych logowania, co może być aktywny wcześniej zaloguj się
  • „przepustnica” Wykorzystanie, czyli ograniczyć liczbę połączeń na minutę/godzinę lub podobne są akceptowane (może być niemożliwe w zależności od konkretnego zastosowania)

jeśli naprawdę naprawdę chcesz zrobić to bardzo trudno można wydać specyficzny dla urządzenia certyfikat klienta (gdy klient kupuje twoją aplikację) i korzysta z uwierzytelniania klienta opartego na certyfikacie (zdefiniowanego w standardzie SSL) - możesz unieważnić certyfikat związany z urządzeniem, jeśli zauważysz nadużycie bez szkody dla prawowitych użytkowników innych urządzenia ...

+0

Wiem o tym wszystkim, ale jak mam wydać klucz osobie, która kupiła aplikację na rynku? Nie ma takiego połączenia zwrotnego. – Overv

+0

@Overv nie potrzebujesz do tego zwrotnego ... wystarczy, że aplikacja pobierze go po uruchomieniu po raz pierwszy (możesz wygenerować certyfikat w locie) ... jak w przypadku implementacji interakcji rynkowych [Licencjonowanie] (http://developer.android.com/guide/market/licensing/licensing-reference.html) – Yahia

1

Zrobione z mojego rozwiązania z tego postu Android Game Keeps Getting Hacked

zaimplementować własną biblioteką licencjonowania

Chciałbym również odnieść do zapoznania się z tym z Google I/O 2011 nagrywanie YouTube:

Evading Pirates and Stopping Vampires

EDIT:

The Presentation Notes z uchylanie Piraci i zatrzymujące wampiry

Kilka podstawowych keypoints

Noty prezentacyjne zawierają podstawowe przykłady i kierunek zmian.Jednak w wideo na youtube jest dyskusja na temat uwierzytelniania po stronie serwera i jego związku z piractwem i pobieraniem zasobów itp. W szczególności przy użyciu serwera licencji, rozliczeń za aplikację i mechanizmu App Engine. Ale dobra podstawa do nauki, bez względu na to, jak zdecydujesz się podejść do rozwiązania.

Powiązane problemy