C++ RSA 2048-Bit Key aus APK/IPA Extrahieren möglich?

isyyy

Lieutenant
Registriert
Aug. 2010
Beiträge
672
Guten Abend zusammen.

Weiß einer vllt ob es möglich ist aus einer APK für Android oder IPA für Ios, Programmcode zu extrahieren?
Ich muss auf der App-Seite einen RSA 2048 Bit Public Key in einer Variable halten um die Komunikation
zwischen Server und Client zu verschlüsseln.

Die App ist in C++ geschrieben (Qt-Creator C++). Zum verschlüsseln und entschlüsseln wurde die OpenSSL Lib implementiert.
Der RSA Public Key ist in einer Funcktion A, mit einer Privaten Variable B abgelegt.

Falls JA muss ich das natürlich verhindern. Wie muss/kann ich dieses Problem lösen?

Lg
 
Zuletzt bearbeitet:
Du kannst den Public-key nicht schützen, Aber warum sollte das ein Problem sein?
 
Zur Tatsache, dass du den public key nicht schützen musst sollte hinzugefügt werden, dass es mit der momentanen Technologie gar nicht möglich ist eine Binary vor Reverse Engineering zu schützen. Letztendlich muss sie irgendwann entschlüsselt werden.

Mit homomorphischer Verschlüsselung sollte so ein Vorhaben zwar möglich sein, aufgrund deren Geschwindigkeitsanforderungen (Relais-Rechner sind schneller) is dies aber momentan nicht praktikabel.
 
Mir ist bewusst das mit dem Public Key das verschlüsselte nicht entschlüsselt werden kann.
Aber das Serverseitig verschlüsselte kann entschlüsselt werden. Das soll aber verhindert werden.

Ich möchte auch verhindern das jemand den Public Key benutzt um an den Server Request zu senden, die er dann selber verschlüsselt und dadurch versucht den Server auf jegliche Art lahm zu legen.
 
Zuletzt bearbeitet:
Es ist praktisch nicht möglich irgendwas in einer Binary sicher aufzubewahren, wenn die Binary selbst auch darauf zugreifen muss. Du kannst es nur aufwendiger machen an die Daten zu kommen.

Wenn du verhindern willst, dass dritte an den Client gesendete Daten entschlüsseln können, dann darf da kein Schlüssel (zum entschlüsseln) fest einprogrammiert sein. Du musst dann für jede Verbindung/Session einen neuen Schlüssel austauschen. Also entweder ein Schlüssel für eine symmetrische Verschlüsselung mit dem Public Key verschlüsseln und dem Server mitgeben oder einfach direkt TLS nutzen - du nutzt ja sowieso schon OpenSSL.

Und vergiss gleich wieder das mit den Client absichern um den Server zu schützen. Das einzige was den Server vor Angriffen schützen kann ist der Server selbst - also muss das dort implementiert werden.
 
Zuletzt bearbeitet:
Zurück
Oben