2012-04-03 5 views
0

Wie Sie wissen, kann jeder mit einem Hex-Editor auf Zeichenfolgen in einer nativen Anwendung zugreifen.
In einer Java-Anwendung ist es möglich, die Bytecodes und Zugriffsfolgen und andere Dinge (wie Anwendungslogik) zu dekompilieren.
Wenn ich jetzt eine Verbindung zu einer Datenbank herstelle, wird mein Passwort in Anwendungsstrings gespeichert.
Wie kann ich diese Zeichenfolgen (Passwörter, ...) gegen Hex-Editoren schützen & Dekompilierung?Sicherheit von Datenbankkennwörtern (und anderen wichtigen privaten Zeichenfolgen) in einer Java-Anwendung

Dank

+1

Sie können versuchen, diese Saiten mit Verschleierung zu schützen, aber grundsätzlich gibt es keinen starken Schutz. Dies ist, was DRM versucht zu tun, und es erfordert in der Regel Hardware-Unterstützung, um erfolgreich zu sein. – alberge

+3

Was ist dieses erfolgreiche DRM-Schema, von dem Sie sprechen, und wie kaufe ich eine Aktie? :) Es gibt keine Möglichkeit, Informationen, die Sie freigeben, vor einem ausreichend motivierten Angreifer zu schützen. Wenn es wichtig ist, legen Sie einen Anwendungsserver vor die Datenbank. – Affe

+2

Sie sollten das Kennwort nicht innerhalb des Anwendungscodes an erster Stelle speichern. –

Antwort

4

Nichts, was Sie für die Öffentlichkeit freizugeben ist privat. Es gibt kein Schutzschema, das ein ausreichend motivierter Angreifer nicht brechen kann. Wenn jemand einen hätte, würden sie Millionen machen, die es nach Hollywood verkaufen! (Viele Leute machen Millionen verkaufen diejenigen, die nicht funktionieren ...)

Sie haben drei grundlegende Optionen:

1) Entwerfen Sie die Datenbank mit Verfahren und Berechtigungen, so dass die direkte Anmeldung mit nicht erlauben Sie dem Benutzer, alles zu tun, was sie durch die Anwendung sowieso nicht hätten tun können.

2) Verknüpfen Sie Benutzerkonten mit Datenbankkonten und lassen Sie sich Benutzer mit ihrem eigenen Benutzernamen anmelden.

3) Legen Sie einen Anwendungsserver vor die Datenbank. Ihr Client stellt eine Verbindung zum Anwendungsserver her und ruft Servicemethoden darauf auf. Daher werden nur die Funktionen, die Sie auf dem App-Server bereitstellen, der Öffentlichkeit zugänglich gemacht. Dies ist die übliche Vorgehensweise.

+0

+1 für "* Es gibt kein Schutzschema ... *" –