2011-01-12 11 views
9

Ich benutze die Dropbox-API. In der Beispielanwendung umfasst es die folgenden Zeilen:Speichern von API-Schlüsseln in Android, ist die Verschleierung genug?

// Replace this with your consumer key and secret assigned by Dropbox. 
// Note that this is a really insecure way to do this, and you shouldn't 
// ship code which contains your key & secret in such an obvious way. 
// Obfuscation is good. 
final static private String CONSUMER_KEY = "PUT_YOUR_CONSUMER_KEY_HERE"; 
final static private String CONSUMER_SECRET = "PUT_YOUR_CONSUMER_SECRET_HERE"; 

Ich bin sehr wohl bewusst, das Mantra ‚Geheimhaltung ist nicht Sicherheit‘, und Verschleierung wirklich nur leicht erhöht den Aufwand erforderlich, um die Schlüssel zu extrahieren. Ich stimme ihrer Aussage "Obfustion is good" nicht zu. Was soll ich tun, um die Schlüssel zu schützen? Ist obfustication gut genug, oder sollte ich etwas ausführlicher betrachten?

+2

Bitte lesen Sie die Diskussion zu diesem Thema hier: https://groups.google.com/d/topic/android-developers/quD5gYIZ4Ig/discussion –

Antwort

5

Sie können mir nicht helfen. Wenn der Benutzer (Angreifer) über die geschützten Daten und den Code verfügt, der den Schutz aufheben kann, kann der Benutzer schließlich Zugriff auf die Daten erhalten. So einfach ist das. Ein Debugger und ein Breakpoint zur richtigen Zeit sind alles was sie brauchen. Das und viel Freizeit und Entschlossenheit.

Ob Ihre Geheimhaltung für Ihre Zwecke gut genug ist oder nicht, hängt von Ihren Geschäftsanforderungen ab. Aber im Allgemeinen in der mobilen Welt, wenn der Kunde sich Sorgen macht, dass seine Daten gestohlen werden, implementieren sie hochgradige Diebstahl- und Verlustkontrollen. Dinge wie Fernlöschung, obligatorische Bildschirmsperre usw. Ich glaube nicht, dass es Sache des Anwendungsprogrammierers ist, all diese Dinge zu duplizieren.

2

Sicherheit kann niemals perfekt sein, daher liegt es an Ihnen zu entscheiden, wie viel Arbeit Sie tun möchten. Sie können das Konsumentengeheimnis in mehrere Strings für eine einfache Änderung zerlegen, die ein Minimum an zusätzlicher Sicherheit bietet, oder Sie können einen Algorithmus erstellen, um das Geheimnis auf andere Weise darzustellen (alles durch Einfügen von Zeichen, die nicht alle X Leerzeichen in der Zeichenfolge verwendet werden) um jedes Zeichen zu modifizieren, vielleicht basierend auf der numerischen Darstellung).

Sie müssen die Arbeit vs. Nutzen berücksichtigen. Wenn es sich um eine App handelt, die Sie und ein paar Freunde verwenden werden, spielt das wahrscheinlich keine Rolle. Wenn es sich um eine App handelt, die von 10 Millionen Menschen genutzt wird, ist die Sicherheit offensichtlich ein größeres Problem.