Sichern Sie Ihre API-Schlüssel lokal wie ein Champion

Oft möchten wir API-Schlüssel sicher in unserer App speichern, um verschiedene Serviceaufrufe darüber zu tätigen. Hier meine ich mit „API-Schlüsseln“ den YouTube-Schlüssel, den Fabric-Crashlytics-Schlüssel oder den Firebase-Cloud-Messaging-Schlüssel .

ZB eines Youtube-API-Schlüssels: AIzaSyDhEeq_FYAdCzMMSigmMcRwF_nQEhUXS-0

Probleme beim Speichern von API-Schlüsseln in unserer Android-App:

  1. Wir können diese Schlüssel nicht in einer einfachen Java-Klasse schreiben. Wenn dies erledigt ist, kann es leicht durch Reverse Engineering der apk gestohlen werden.
  2. Kann nicht in der Datei strings.xml gespeichert werden. Sogar es ist anfällig für Reverse Engineering.
  3. Das Erstellen einer SQLite-Datenbank zum Speichern dieser Schlüssel wäre ein Overkill.

Also um diese Probleme anzugehen. Ich stelle Ihnen eine sehr einfache, übersichtliche und effektive Lösung vor, um diese sensiblen Schlüssel zu speichern, ohne befürchten zu müssen, dass sie durch Reverse Engineering gestohlen werden.

SecureStore

Ich verwende die Leistungsfähigkeit von C++ (NDK), um diese Schlüssel in die C++-Dateien zu schreiben und diese Schlüssel bei Bedarf an Java-Klassen durch die Leistungsfähigkeit von zu übergeben JNI.

Grund, warum ich C++ verwende, um diese Schlüssel zu speichern, ist:

  1. C++ wird im Allgemeinen direkt in nativen Maschinencode kompiliert.
  2. C++ ist viel schwieriger zu dekompilieren

Notiz : Dies ist keine Wunderwaffe, um Hacking und die Kompromittierung der gespeicherten Schlüssel vollständig zu vermeiden. Aber es ist sehr schwierig, einen C++-Code zu dekompilieren. Es braucht einen erfahrenen Hacker (viele sind nur Skript-Kiddies auf dem Markt), um es zu dekompilieren. Sie können über den folgenden Link mehr über NDK erfahren:

Jetzt haben Sie eine große Frage. Wie kann ich es sofort in meinem Projekt implementieren, ohne viel Zeit damit zu verschwenden, über NDK zu lesen und seinen Kern zu verstehen. Die Antwort auf Ihre Frage lautet:

  1. Laden Sie NDK herunter und richten Sie es mit Ihrem Android-Studio ein. (Link zum Download: downloads/ältere_versionen)
  2. Kopieren Sie die folgenden drei Dateien und fügen Sie sie in das entsprechende Verzeichnis in Ihrem Projekt ein:

> KeyHandler.java

> native-lib.cpp

> CMakeLists.txt

> Prüfen build.gradle des App-Moduls zur Konfiguration

Ich hoffe, Ihnen gefällt dieser süße und einfache Artikel. Schätzen Sie mich mit einem Klatschen, wenn Sie es nützlich fanden.

Similar Posts

Leave a Reply

Your email address will not be published.