# wie sicher ist der Quellcode in einem apk? bzw wie schützt man ihn?



## JanHH (27. Mai 2016)

Hallo,

wie sicher ist der kostbare selbstgeschriebene Quellcode in einem apk-File? Wird der automatisch obfuskiert oder sonstwie geschützt oder kann sich da jeder simpel aus dem apk-File meinen Quellcode wiederherstellen?

An sich müsste es da doch beste Schutzmechanismen, weil eine Menge kommerzielle Apps angeboten werden, und deren Entwickler haben sicher kein Interesse daran, ihren Quellcode indirekt preiszugeben..

Danke.


----------



## Tobse (27. Mai 2016)

Zum einen: Die Frage "Wie sicher ist X?" kann man nicht beantworten. Man kann fragen "Wie sicher ist X gegen die Bedrohung Y?"

Wir haben das Thema "Sicherheit von kompiliertem Java-Code" hier im Forum regelmäßig und es ist immer lebhaft umstritten, wie sicher der Quellcode genau ist. Auch Obfuscation (z.B. ProGuard) wird als wenig bis sehr wirksam eingeschätzt, je nachdem, wen man fragt. Es kommt auch sehr darauf an, wie fähig und hartnäckig der Angreifer ist (siehe Bedrohung Y).
Fakt und Konsensus ist aber: Der Quellcode kann gelesen werden und es wäre eine Todsünde, Geheime Informationen dort abzulegen (z.B. Zugangsdaten oder Kryptographische Schlüssel).

Siehe dazu:
http://www.java-forum.org/thema/quellcode-absichern.86501/
http://www.java-forum.org/thema/java-jar-sicher.80769/

... siehe Forum suche


----------



## JanHH (27. Mai 2016)

also ist apk da auch nicht anders als die anderen Paket-Formate (jar, war etc.)? Ich hätte gedacht dass google das besonders absichert weil da ja nun sehr stark kommerzielle Anbieter von Apps involviert sind.


----------



## Tobse (27. Mai 2016)

APKs sind höchstens ähnlich wie JARs. Aber das ändert am Prinzip nichts: Das Gerät, welches deine Software ausführt, muss ja wissen, was es zu tun hat (wäre ja ziemlich sinnlos sonst, oder? ). Wenn also _*jedes beliebige*_ Android-Smartphone an die Anweisungen (= den compilierten Code) kommt, dann auch jeder Angreifer. Und wer den compilierten Code hat, kann alles damit anstellen, wonach ihr/ihm der Sinn steht. Je nach dem, wie schwer der Code obfuskiert ist braucht es mehr Wissen und Geschick beim Angreifer, aber es ist definitiv möglich.


----------



## JanHH (27. Mai 2016)

ja, das ist mir schon klar, aber das sind ja eher abstrakte Aspekte. Die konkrete Frage war ja eher ob es von Seiten googles aus, als Gestalter des Android-Systems, da irgendwelche besonderen Vorkehrungen gibt, da die vielen kommerziellen App-Anbieter da ja sicherlich wenig Interesse an der freien Verfügbarkeit ihres Quellcodes haben. Aber ist dann ja anscheinend, ausser den bekannten Maßnahmen wie obfuscation, nicht der Fall.


----------



## Tobse (27. Mai 2016)

Wirklich extra Vorkehrungen gibts nicht, nein. Der Bytecode wird vor dem Packen in ein Android-Spezifisches Format umgewandelt; dabei findet eine Art Obfuscation statt, daber das ist nicht darauf ausgelegt den Code zu schützen sondern um die Ausführung auf Android zu erleichtern. Zusätzlich empfiehlt Google in der Dokumentation zu Android die Verwendung von ProGuard. Von mehr weiss ich nicht.


----------



## JanHH (27. Mai 2016)

und die software intern möglichst schlecht designen und völlig konfus gestalten damit keiner durchblickt und falls doch, sich mit grausen abwendet ;-).

Danke.


----------

