2013-07-15 5 views
8

Ich werde mit sehr sensiblen Daten in einer App arbeiten. Verschleierung durch meine Definition ist keine zusätzliche Sicherheit, es verzögert den Cracker nur mit endlicher Zeit. Ist es möglich, dass Proguard das so gut macht, kann es zusätzliche Sicherheit genannt werden?Wie sicher ist Proguard gegen Reverse Engineering?

Was am empfindlichsten ist sind einige Netzwerk-Anrufe. Es wird schwer sein, das Passwort zu erkennen, da wir das Passwort auf beiden Seiten generieren und überprüfen, ob es mit Zeitstempeln gültig ist. Problem ist, dass die App reverse engineered ist und der generierte Algorithmus ausgenutzt werden kann.

Es ist nicht möglich, den Algorithmus lokal in einer Datei zu halten, weil mit einem verwurzelten Telefon kann der Cracker der Lage sein, um es abzurufen. Es funktioniert nicht, den Algorithmus vom Server herunterzuladen, da das gleiche Problem hier gilt, wenn der Cracker die App zurückentwickelt, um zu sehen, woher der Algorithmus stammt.

Jede Eingabe, wie sehr geschätzt wird, fortzufahren!

bearbeiten

Was ich versuche, der Algorithmus generieren zu schützen, ist so der Cracker nicht viele Daten an unseren Server senden.

+0

Sichere gegen _what_? Welche spezifischen Angriffe versuchen Sie zu verhindern? – SLaks

+0

@SLaks Siehe meine Bearbeitung. –

+0

Sie haben Ihre Frage in der ersten Zeile beantwortet: "Verschleierung durch meine Definition ist keine Sicherheit hinzugefügt" bitte als gelöst markieren und löschen :) –

Antwort

12

Im Allgemeinen können Sie das härteren Cracker Leben machen. Je härter du es machst, desto weniger werden bleiben. Vor allem, wenn der finanzielle Anreiz begrenzt ist.

Ihre Code-Verschleierung Optionen sind:

  • Verwendung proguard, es macht einen guten Job, nicht perfekt natürlich, aber gut
  • Verwendung DexGuard, die noch härter Reverse Engineering machen, wie durch Verschlüsselung Strings oder Erfassungscode
  • schreiben kritische Teile in C

Unabhängig von Code-Verschleierung Manipulation, Ihr Netzwerkprotokoll macht auch schwer zu Durcheinander mit: Nachrichten verschlüsseln und signieren, sicherstellen, dass Nachrichten nicht wiederholt werden können (Zeit oder Sequenz verwenden), und den Client authentifizieren

Speichern Sie keine klaren Texte auf der Festplatte, die empfindlich sind.

+2

Sehr gute Punkte. Mir hat das "Schreibe kritische Teile in C" sehr gut gefallen. –

+2

Warum ist das Schreiben kritischer Teile in C eine gute Idee? – Micro