2016-05-10 7 views
0

Angenommen, ich möchte eine App erstellen, die vertrauliche Benutzerdaten verarbeitet, und Benutzer würden ihr möglicherweise nicht vertrauen, wenn sie nicht selbst überprüfen könnten, dass die iOS/Android-App mit der Quelle im GitHub-Repository identisch ist.Möglich, eine Self-Hash-App in Native React zu machen?

Gibt es eine Möglichkeit in React Native, dass ich meine App einen MD5-Hash in der Datei mainjs.bundle ausführen lassen und diese in der App anzeigen könnte? Dann könnte ein technisch versierter Benutzer theoretisch das GitHub-Repo klonen, es erstellen und seinen eigenen MD5-Hash unter mainjs.bundle ausführen und sehen, dass es übereinstimmt.

Zugegeben, das wäre nicht absolut narrensicher. Ein böswilliger Entwickler könnte einfach ein privates Repo haben, in dem er den Hash fest codiert und bösartigen Code einfügt, um ihn dann im AppStore zu veröffentlichen. Aber das könnte ein guter Ausgangspunkt sein. Ich bin auch offen für andere/bessere Ideen!

+0

Dies ist eigentlich ein schwieriges Problem. Abgesehen von der Bereitstellung von APK-Dateien außerhalb des App Stores und der digitalen Signierung von Dateien mit bekannten GPG-Schlüsseln gibt es nicht viel, was Sie tun können. Jeder Hash, den Sie aus einem Build generieren können, kann trivial reproduziert und fest codiert werden. –

Antwort

2

Alles, was Sie in der App zeigen, ist ziemlich wertlos, weil eine modifizierte Version der App dasselbe anzeigen kann.

Was Sie tun möchten, ist es, Menschen Schritte zur Ausführung zu geben, um zu testen, ob die App, die sie haben, die richtige ist.

Würde etwa so aussehen

  • eine Tabelle mit den veröffentlichten Version -> git commit
  • Schritte, um die js Bündel von der apk/ipa
  • Schritte zu extrahieren das Bündel von der Quelle zu bauen

Wenn Sie eine Shrinkwrap-Datei haben, sollten Builds reproduzierbar sein.

Beachten Sie, dass es keine Schritte zum Vergleichen des systemeigenen Codes enthält, der auch eine Malware enthalten kann:

+0

Sie müssten also die IPA-Datei zurückentwickeln, um die 'mainjs.bundle'-Datei zu erhalten, das Paket aus der Quelle zu erstellen und die Hashes der beiden Dateien zu vergleichen? – ffxsam