it-swarm.com.de

Sollte ich Zeit damit verbringen, die Piraterie meiner App zu verhindern?

Der Titel sagt schon alles. Je mehr ich über Piraterie und die Tools zum Knacken einer App recherchiere, desto mehr denke ich, dass es nur Zeitverschwendung ist.

Meine größte Bedrohung besteht darin, dass meine App innerhalb von Minuten nach der Veröffentlichung geknackt und erneut hochgeladen wird. Aber ich bin mir nicht sicher, wie schädlich es für meine Einnahmen sein wird, wenn es überhaupt Einnahmen geben wird. Vielleicht kann sich jemand etwas einfallen lassen, es ist meine erste App, die ich veröffentlichen werde, und ich habe keine Erfahrung damit. Meine App wird mit Anzeigen kostenlos sein. Ich denke, dies ist eine weitere Verteidigungslinie, da meiner Meinung nach der Schwerpunkt auf kostenpflichtigen Apps liegt, da diese in vielen Ländern nicht verfügbar sind.

Mein aktueller Ansatz ist, dass ich nur Proguard verwende, um das Knacken nicht wirklich zu erschweren (wahrscheinlich den Code zu verstehen), da Sie den Code nicht einmal verstehen müssen, wenn Sie ihn einfach zurücktreten und dieselbe Anwendung auf die Website hochladen Im Playstore müssen Sie nur den Paketnamen ändern. Mein Hauptanliegen bei der Verwendung von Proguard ist es, die App zu verkleinern.

Ist das ein "guter" Ansatz?

30
Mike

Nein.

Die meisten Anwendungen von großen Entwicklern mit echtem Kopierschutz in Industriequalität werden innerhalb von Tagen nach Veröffentlichung in geknackten Torrents angezeigt. Es ist äußerst zweifelhaft, ob ein kleinerer Entwickler dem entsprechen kann. Wenn Sie dies versuchen, verschwenden Sie nur Ihre Zeit und haben weniger Zeit für die Entwicklung von Funktionen/Apps, mit denen Sie Geld verdienen können.

Vielleicht möchten Sie triviale Arbeit leisten, um "Gelegenheitskopierer" in Schach zu halten, aber mit trivial meine ich etwas, das Sie in ein paar Stunden zusammenwerfen können. (Das heißt so etwas wie proGuard.) Sie werden die Leute mit technischem Know-how, die Ihre App aktiv knacken möchten, nicht aufhalten.

50
Gort the Robot

Sollte ich Zeit damit verbringen, die Piraterie meiner App zu verhindern?

Sie stellen die falsche Frage. Technische Sicherheitsvorkehrungen wie Proguard sind ein Muss, versuchen jedoch, das Problem auf die harte Tour zu lösen.

Die erste Frage sollte lauten: "Enthält meine App etwas, das wirklich geschützt werden muss?" wie einen komplexen oder proprietären Algorithmus. Wenn ja, ist die beste Lösung, dies aus der App auf einen Server zu verschieben, mit dem die App kommuniziert. Die App wird lediglich zu einer UI-Ebene über dem Server. Dies bedeutet natürlich, dass Sie einen Server (oder Server) und einen geeigneten Authentifizierungsmechanismus für jeden Benutzer (einen ganzen anderen Beitrag) verwalten müssen. Es ist auch für nicht verbundene oder sehr reaktionsschnelle Apps ungeeignet.

Die zweite Frage sollte lauten: "Warum sollten Leute meine App raubkopieren?" Wenn dies eine finanzielle Motivation ist, veröffentlichen Sie eine kostenlose Version der App mit einem reduzierten Funktionsumfang. Wenn es sich um ein Spiel handelt, machen Sie das Kernspiel und die ersten Level kostenlos und verkaufen Sie dann zusätzliche Level/Charaktere/Upgrades/was auch immer über In-App-Käufe. Alternativ können Sie eine kostenlose Version veröffentlichen, die aus In-App-Werbung finanziert wird (ja, ich weiß, dass viele Menschen sie hassen, aber es ist die Welt, in der wir leben).

Egal was Sie tun, wie Steven in seiner Antwort andeutet, einige Leute werden es für eine technische Herausforderung tun und den Riss freigeben, um ihre Fähigkeiten zu demonstrieren. Sie können diese nicht aufhalten, daher lohnt es sich nicht, sich darüber Sorgen zu machen.

30
akton

Vor vielen, vielen Jahren habe ich ein Buch über Spieleentwicklung gekauft. Es gab ein Kapitel über Piraterie. Es enthielt die folgende Zusammenfassung:

Es ist nicht möglich, Piraterie mit Technologie zu verhindern. Die einzige Möglichkeit, Piraterie zu verhindern, besteht darin, ein Spiel so cool und aufregend zu gestalten, dass die Piraten sich dafür entscheiden, eine Kopie zu kaufen.

Sie können niemals Piraterie verhindern. Sie können die Piraterie eindämmen, Sie können die Piraterie überwachen, aber es gibt keine Tools, die dies wirklich verhindern können. Ich betone dies, weil dieses starke Wort "verhindern" Menschen dazu bringen kann, exorbitante Maßnahmen zu ergreifen und zu denken: "Wenn ich nur X mache, kann ich Piraterie verhindern." Sie sind immer traurig über das Ergebnis, und das alles liegt an einer Wortwahl.

Um die wichtigsten Punkte von akton in einer Terminologie neu zu formulieren, die traditionell in der Informationssicherheit verwendet wird: Sie müssen ein Bedrohungsmodell entwickeln, das Ihre Angreifer beschreibt. Wenn Ihr Angreifer ein Script-Kiddie ist, der einige Skripte aus dem Internet herunterlädt, Dann können Sie Ihre Sicherheit fokussieren, indem Sie online nachsehen, was Script-Kiddies finden können, und sich gegen diese verteidigen. Wenn Sie wirklich daran interessiert sind, dass Ihre Geheimnisse nicht in die Hände der chinesischen und/oder amerikanischen Regierung fallen, müssen Sie an der Sicherheitsfront ein bisschen mehr tun.

Eine schöne Sache bei der Formulierung als "Bedrohungsmodell" ist, dass Sie auch in einer hervorragenden Position sind, um Sicherheitsprobleme wie Anmeldungen und Kreditkartennummern richtig zu behandeln und was nicht. Sie sind der Kurve voraus.

Wenn Sie sich nur um Script-Kiddies sorgen, ist es auch nützlich, nicht nur die Google-Suche nach AntiLVL durchzuführen, die Sie in Ihren Kommentaren erwähnt haben, sondern auch mit einigen davon zu spielen. Erfahren Sie, was sie können und was nicht. Erkenne deinen Feind.

8
Cort Ammon

Wenn möglich, sollten Sie den Ratschlägen in https://news.ycombinator.com/item?id=2623102 folgen und das Material, für das Sie bezahlen möchten, auf einen Server verschieben. Und dann den Zugriff dort verwalten. Es kann davon ausgegangen werden, dass die App selbst so oft gestohlen und raubkopiert wird, wie sie möchte. Das Kopieren Ihres Servers ist schwieriger.

Natürlich hat diese Lösung den Nachteil, nicht cool oder clever zu sein. Aber es funktioniert.

4
btilly

Es ist unmöglich, Piraterie vollständig zu verhindern.

Sie müssen akzeptieren, dass Ihr Code auf den Computern anderer Personen ausgeführt wird. Diese Personen können Ihren Code auf ihren Computern speichern und alles damit tun, einschließlich Änderungen und (illegal) Weitergabe.

Sie können das Rechtssystem Ihres Landes nutzen, wenn Sie der Meinung sind, dass Ihre Rechte verletzt wurden. Beispielsweise kann ein amerikanischer Staatsbürger eine DMCA-Abnahmeanforderung gegen eine Entität ausstellen, die seine Arbeit verteilt. Es wird jedoch schwieriger sein, ein international verteiltes Netzwerk abzubauen, beispielsweise aus Torrent-Links.

Alternativ können Sie Ihre Philosophie zur Softwareverteilung überarbeiten. Da es Ihren Benutzern bereits möglich ist, mit Ihrem Programm etwas zu tun, können Sie diese Realität akzeptieren. Nehmen Sie dann diese Realität an und gewähren Sie Ihren Benutzern die Freiheit, Ihre Software auszuführen, zu kopieren, zu verteilen, zu studieren, zu ändern und zu verbessern. Dies wird normalerweise erreicht, indem Sie Ihr Programm "freie Software" deklarieren (und wenn ich "frei" sage, spreche ich von "Freiheit und Freiheit", nicht von "Preis").

Die Veröffentlichung Ihres Programms als "freie Software" hat zahlreiche Vorteile:

  • Ihre Benutzer können Ihr Programm problemlos ändern.
    • Wenn Sie ihre Änderungen zu schätzen wissen, können Sie sie wieder in das Hauptprojekt einbinden. Dies ist infolgedessen wertvoller.
    • Wenn [~ # ~] i [~ # ~] Ihr Programm ändern würde, wäre das erste, was ich tun würde, die Werbung zu entfernen, weil Ich finde sie ziemlich nervig. Sie könnten dies als Hinweis darauf nehmen, dass Ihre Anwendung ohne Werbung besser wäre, was Sie dazu anregen würde, sich ein besseres Umsatzmodell vorzustellen ("besser", sowohl hinsichtlich der Zufriedenheit Ihrer Benutzer als auch hinsichtlich des Gewinns).
  • Ihren Benutzern steht es frei, Ihr Programm weiterzugeben.
    • Wenn Sie möchten, dass Ihr Programm "viral" wird, ist es eine gute Sache, alle rechtlichen Hindernisse für die Viralität zu beseitigen.
    • Die Leute können Ihr Programm bereits neu verteilen. Entweder sind sie "böse" oder sie sind wohlwollend , um Dinge mit ihren Nachbarn zu teilen, was ein grundlegendes menschliches Merkmal ist, das uns erfolgreicher macht als Arten ohne Barmherzigkeit. Jetzt können sie sich gut fühlen, wie sie sollten.
  • Andere Menschen können Ihre Arbeit studieren und daraus lernen.
    • Ich habe eine enorme Menge über das Programmieren gelernt, indem ich durch die Quelle von RPGMaker-Spielen gestapft bin, nach denen der Spielcode normalerweise kostenlos durchsucht werden kann. Tatsächlich ist mir bewusst, dass eine ganze Community von Spieleentwicklern aus dem Teilen und Lernen von Codes hervorgegangen ist, erwachsen geworden ist, erfolgreiche Karrieren führt und qualitativ hochwertige Produkte liefert. Sie können sich freuen zu wissen, dass Ihr Programm mehr Menschen als nur Ihnen zugute gekommen ist.

Wenn Sie Ihr Programm "proprietär" machen, wie Sie es beabsichtigen, erhalten Sie die falsche Sicherheit, dass Sie zuerst bezahlt werden müssen, um Ihre Software zu erhalten und zu verwenden. Sie wissen, dass dies aufgrund von Piraterie nicht der Fall ist.

Betrachten Sie also das Gegenteil: Was wäre, wenn Sie den Kunden die Software zuerst anbieten und ihnen sagen würden, dass sie Sie bezahlen würden, wenn sie daraus einen Wert ableiten würden?

Wenn eine "ehrliche" Person bereit war, Sie für Ihre Software zu bezahlen, bevor sie verwendet werden konnte, dann (solange Sie ein qualitativ hochwertiges Produkt bereitstellen ) warum sollte er nicht genauso bereit sein, dich zu bezahlen , nachdem er es genossen hat? (Ich habe den Autor des AdBlock-Plugins von Chrome bezahlt, bei dem es sich um kostenlose Software handelt, die kostenlos erhältlich ist, da ich daraus einen immensen Wert abgeleitet habe.)

Eine "unehrliche" Person, die eine modifizierte Version Ihres Programms von einer illegalen Quelle herunterladen würde, ist sicherlich nicht bereit, im Voraus zu zahlen. Jetzt haben Sie die Möglichkeit, Einnahmen von dieser Person zu erfassen, da der "Freeloader" möglicherweise Wert aus Ihrem Programm ableitet und sich dann entscheidet, Sie zu bezahlen. Wenn Piraten eine erhebliche "Bedrohung" für Ihr Programm darstellen, können Sie in Betracht ziehen, den Spieß umzudrehen, damit Ihre Piraten stattdessen zu potenziellen Kunden werden.

Ich empfehle den Ansatz "Freie Software". Sie könnten weiterhin proprietäre Software erstellen und wahrscheinlich immer noch viel Geld verdienen, so wie es viele Leute tun, die proprietäre Software produzieren. Sie müssten jedoch die "finanziellen und moralischen" Probleme ignorieren, die aufgrund der Natur kreativer Arbeiten unvermeidlich und unheilbar bestehen. Diese "Probleme" werden zu Vehikeln für die Verbesserung Ihres Produkts, wenn Sie Philosophien der freien Software anwenden. Sie hätten einen Vorteil gegenüber Wettbewerbern, die diese Macht nicht verstehen können.

2
Jackson

Nein, es ist sinnlos. Letztendlich funktioniert die Kosten-Nutzen-Analyse einfach nicht.

Zunächst müssen Sie auf eine Plattform mit integrierter Sicherheit abzielen. Realistisch gesehen, unabhängig davon, wie sehr Ihnen die Plattform gefallen mag Android ist einfach nicht so sicher - sie ist so konzipiert, dass sie offen ist.

Die Kosten für die Implementierung einer lohnenden Sicherheit sind wahrscheinlich höher als jeder Gewinn, den Sie als Android haben die niedrigsten Ausgaben pro Benutzer aller mobilen Plattformen, die einzigen Personen, für die es jemals Geld verdienen wird ist Google. Diejenigen, die die billigen Handys nicht kaufen, sind häufig Puristen, die denken, dass der freie (Ausdruck von Ideen) auch speziell der freie (wie bei Bier) Teil ist, also werden sie alles tun, um zu vermeiden, nur als Herausforderung zu zahlen.

Alles, was Sie tun müssen, um Ihre Anwendung zu schützen, muss sich auf den Kern der Benutzererfahrung auswirken und darf im Nachhinein kein Schutz sein. Apps, die in dieser Hinsicht gut abschneiden, sind diejenigen, bei denen das gekaufte Produkt der Inhalt und nicht die App selbst ist.

Da Ihr Hauptanliegen (laut Kommentaren) mit der Authentifizierung (geknackte und neu verpackte Versionen) Ihrer App in den Appstores zusammenhängt, ist dies meistens das zu lösende Problem des Appstores, und Sie sollten besser nach Möglichkeiten suchen, wie sich eine App automatisch registrieren kann dass es neu verpackt wurde, anstatt das Kopieren zu verhindern.

0
James Snell

Fazit

Mein Fazit, nicht in Konflikt mit Q&A Format, nach all diesen tollen Antworten ist es nicht viel Zeit zu investieren, um es so schwer wie möglich zu machen, meine App zu knacken. Für diese App verwende ich nur Proguard wegen des Schrumpfeffekts und weil es schwieriger ist, den Code zu verstehen, wenn jemand ihn ändern möchte ...

Ich verbringe lieber mehr Zeit in SEO/implementiere mehr features wie Steven und nach der Veröffentlichung werde ich versuchen, meine Benutzer besser zu unterstützen als die Piraten! ;) Ich denke, das wird den Unterschied machen und ist eine der besten Möglichkeiten, sie zu bekämpfen.

Alles andere, was passieren wird, ist zusätzliche Erfahrung und wird oder wird nicht ändern, wie ich meine Apps in Zukunft veröffentliche. Vielen Dank!

0
Mike