Authentifizierung in Apps

  • Hallo alle zusammen.
    Ich habe da einige Fragen und hoffe, dass ihr mir weiterhelfen könnt.


    Ich möchte, dass ein Smartphone über WebServices (SOAP) mit einer Web-Applikation kommuniziert.
    Das wichtige dabei ist, dass sich das Smartphone authentifizieren lassen soll, damit der
    Zugriff überhaupt legitim ist. Die Web-Applikation übernimmt dabei die Überprüfung.
    Damit das geht muss das Smartphone eine kryptografische Identität (Zertifikate) erhalten, die
    der Web-Applikation bekannt ist, so dass sie ihr vertrauen kann. Meine Idee ist also, dass die
    Web-Applikation Schlüsselmaterial erzeugt, welches nun sicher auf das Smartphone gebracht werden muss.


    Der Weg, den ich dabei gern nutzen würde, wäre ein Datenkabel (Denn so kann ich gewährleisten, dass
    das Smartphone, dass angeschlossen ist auch wirklich das Smartphone ist für das ich es halte. Bei
    einer Übertragung über das Web, wäre das ganze nicht so einfach möglich.)


    Damit ist das Medium über das ich übertragen wollen würde klar.
    Die nächste Frage lautet nun wohin ich übertragen will.
    Dazu habe ich in


    http://android-developers.blog…-store-access-in-ics.html


    bereits gelesen, dass es neben dem allgemeinen KeyStore möglich ist anwendungsspezifische
    KeyStores zu halten. Desweiteren wird in dem Blogartikel sogar folgendes erwähnt:
    "authenticate the user to a server via a client certificate"
    Und das ist genau das ist was ich erreichen möchte.


    Was ich mich frage und noch nicht verifizieren konnte ist:


    1. Ist der anwendungsspezifische KeyStore sicher?
    (Ich gehe zurzeit davon aus, dass die darin enthaltenen Schlüssel NUR über die
    Anwendung selbst genutzt werden können)


    2. Kann ich ein Zertifikat über ein Datenkabel in diesen anwendungsspezifischen KeyStore automatisch übertragen?
    (Eine manuelle Übertragung samt Installation in dem KeyStore würde wohl leider die Akzeptanz der
    App senken.)


    3. Ist es möglich eine App direkt mit Zertifikaten auszustatten? Vielleicht über den anwendungsspezifischen
    KeyStore. (Das wäre wichtig um das eigene Zertifikat der Web-Applikation in der App vorzuhalten, damit bei
    späteren Kommunikationen der Kommunikationskanal verschlüsselt werden kann (SSL/TLS))


    4. Wie erfahre ich, welche Krypto-Algorithmen mit welchen Schlüssellängen unterstützt werden? Ist das
    eine Abhängigkeit von Android oder vom Gerät oder sogar von beidem?



    Ich möchte mich jetzt schonmal für Antwort bedanken und hoffe, dass mir hier weitergeholfen werden kann.
    Sollte ich irgendwo etwas übersehen haben, so würde ich mich über einen Verweis auf den entsprechenden
    Eintrag freuen.
    Habe ich mich irgendwo unklar ausgedrückt, so würde ich natürlich versuchen mich noch klarer auszudrücken.



    Anmerkung zu 2.:
    Ich habe auf http://support.google.com/andr…r.py?hl=de&answer=1649774 gelesen, wie man
    Zertifikate benutzen kann. Das liest sich für mich jedoch so als, ob der "allgemeine" KeyStore benutzt
    wird (Schlecht, da so potentiell jede App darauf zugreifen kann) und man muss das Ganze manuell
    übertragen und installieren (SEHR SCHLECHT).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!