Ankündigung

Einklappen
Keine Ankündigung bisher.

Abhörsichere Web-API

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abhörsichere Web-API

    Ich würde gerne eine WebAPI in PHP realisieren.

    Über den Aufruf z.B. von "http://www.example.com/webapi.php" wird per HTTP-Post ein Request gesendet.
    * Auszuführende Aktion (z.B. User-Details abrufen)
    * Parameter (z.B. User-ID)

    Zurück kommt beispielsweise eine JSON oder XML, was auch immer. Hab mich da noch nicht festgelegt.

    Ich möchte aber, dass die gesamte WebAPI eine Authentifikation besitzt (verschiedene Benutzer haben unterschiedliche Rechte) und dass der gesamte Datenverkehr zwischen Client und WebAPI abhörsicher ist.

    Legt z.B. ein Admin einen Benutzer an, so soll das Passwort natürlich über einen sicheren Kanal zwischen Server (WebAPI) und Client gesendet werden.

    Damit ein Request an die WebAPI trotzdem möglichst schnell abläuft, sollte das ganze möglichst ohne aufwändigen Handshake ablaufen. Ist das möglich?


    HTTPS?

    Sollte ich einfach HTTPS verwenden?
    Ich muss zugeben, dass ich HTTPS nicht wirklich verstehe. :\

    Ist HTTPS mit dem aufwänidgen Zertifkatsystem und Vereinbarung des Sitzungsschlüssels für den späteren symmetrischen SSL-Tunnel nicht was zu aufwändig?

    Immerhin müsste ich dann mehrere Pakete senden und empfangen, bis ich endlich die Antwort habe, obwohl bei HTTP bereits ein einzelner Request und eine einzelne Antwort vom Server reicht.

    Ich nehme an, dass sowas selten auf Billig-Webspace mit PHP funktioniert?


    Eigenbau mit RSA?

    Reicht es nicht einfach direkt RSA zu verwenden?

    Der Client weiß bereits den Public-Key des Servers (WebAPI-URL und PublicKey sind beide in der Konfiguration des Clients gespeichert).
    Der Request wird dann mit dem Public-Key verschlüsselt und an den Server über simples HTTP gesendet.

    Der Server kann den Request mit seinem Private-Key entschlüsseln, prüft Benutzernamen und Passwort im jetzt wieder lesbaren Request und sendet die Antwort an den Client.

    Das wäre 1 Paket hin und 1 Paket zurück, ganz ohne Handshake etc.

    Kennt mir jemand eine gute Klasse für RSA empfehlen? Gibt ja relativ viele und da fällt die Entscheidung schwer :>
    Oder besitzt PHP bereits fertige Funktionen für RSA, die ich bisher übersehen habe?


    Welche Variante zur Absicherung der WebAPI würdet ihr nehmen?

  • #2
    Bei einer SSL-Verschlüsselung (SOAP) musst du in der Regel gar nichts selbst machen, ausser auf dem Server ein entsprechendes Zertifikat installieren und dem Client die richtige Adresse mitteilen.
    Bei den meisten anderen Methoden läuft das genau gleich.
    Ob weitere Verschlüsselung notwendig ist hängt davon ab, wie sensitiv die Daten sind.
    VokeIT GmbH & Co. KG - VokeIT-oss @ github

    Kommentar


    • #3
      Hmm. SOAP und Konsorten kannte ich noch gar net.

      Hab mich daraufhin mal für JSON-RPC und HTTPS entschieden.

      Kommentar

      Lädt...
      X