PHP Magazin

PHP, JavaScript, Open Web Technologies
X

Unser neues Quickvote: Welche PHP-Version nutzt ihr?

Wie Sie OAuth zur Autorisierung verwenden

Weitere Sicherheitsmaßnahmen

In der OAuth-Spezifikation RFC 5849 [8] werden eine Reihe von Sicherheitsüberlegungen aufgeführt, die bei der Implementierung von OAuth berücksichtigt werden sollten:

  • Die Sicherheit der RSA-SHA1-Signatur ist von der Sicherheit des privaten Schlüssels des Clients abhängig. Das ist aber kein Argument gegen RSA, denn die Sicherheit der HMAC-SHA1-Signatur ist von der Sicherheit des Shared Secret abhängig, dass von Client und Server geschützt werden muss.
  • Wird der Authorization HTTP Header nicht verwendet, können vertrauliche authentifizierte Daten in Proxies oder Caches gespeichert und eventuell ausgespäht werden. Als Gegenmaßnahme kann z. B. der Cache Control HTTP Header verwendet werden.
  • Die Shared Secrets werden als Klartext benötigt und könnten auf dem Client oder Server ausgespäht werden, sofern keine zusätzlichen Sicherheitsmaßnahmen ergriffen werden. Das Speichern der HASH-Werte, der übliche Schutz für Passwörter, ist in diesem Fall nicht möglich.
  • Die Client Credentials sollten nicht als einziges Identifizierungsmerkmal verwendet werden, da nicht sicher gestellt ist, dass sie keinem Dritten bekannt sind. Sie können z. B. bei Open-Source-Clients aus dem Sourcecode kopiert oder aus Desktopanwendungen auf mit Schadsoftware infizierten Rechnern ausgespäht werden.
  • OAuth stellt keine Möglichkeit bereit, den Gültigkeitsbereich der Autorisierung einzugrenzen. Sind Einschränkungen erwünscht, müssen sie vom Server implementiert werden.
  • Sofern die Datenübertragung nicht über TLS oder SSL geschützt wird, können die Credentials ausgespäht und analysiert werden. Werden sie nicht zufällig genug erzeugt, lassen sie sich eventuell vom Angreifer voraussagen.
  • Mehrere Features von OAuth können unter Umständen für einen DoS-Angriff durch Belegen vieler Ressourcen ausgenutzt werden. So müssen z. B. die ausgegebenen Nonces protokolliert werden. Ein Angreifer, der sich in kurzer Zeit viele Nonces ausgeben lässt, könnte die Kapazität des Servers überlasten.
  • Der Hash-Algorithmus SHA-1 enthält einige Schwachpunkte und sollte eigentlich nicht mehr eingesetzt werden. Der Einsatz in Verbindung mit HMAC sollte noch sicher sein, beim Einsatz mit RSA bestehen Zweifel. Praktisch sind zwar noch keine Angriffe relevant, ihre Möglichkeit sollte aber berücksichtigt werden.
  • Der Signature Base String wurde für den Einsatz mit den spezifizierten Signaturmethoden entwickelt. Werden andere Signaturmethoden verwendet, ist seine Kompatibilität damit zu prüfen. Da nicht der vollständige HTTP Request geschützt wird, sollte geprüft werden, ob weitergehende Schutzmaßnahmen nötig sind.
  • Die automatische Verarbeitung von wiederholten Autorisierungsanfragen durch bereits zuvor autorisierte Clients birgt Gefahren. Wurden die Client Credentials kompromittiert, kann ein Angreifer den Ressource Owner mit den gefälschten Client Credentials zwecks Autorisierung zum Server weiterleiten, der die Autorisierung automatisch genehmigt. Ohne diesen Automatismus müsste der Angreifer sich die Autorisierung über Social Engineering erschleichen.
  • Dipl.-Inform. Carsten Eilers ist als freier Berater und Coach für IT-Sicherheit und technischen
    Datenschutz tätig und als Autor verschiedener Artikel und des Buchs "Ajax Security"bekannt. Zu erreichen ist er unter ceilers-it.de, sein Blog finden Sie unter ceilers-news.de.
 
Verwandte Themen: 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).