Was ist Public Key Pinning?

Normalerweise basiert der Datenverkehr zwischen einer Client-Anwendung und ihrer serverseitigen Anwendung auf Public Key Infrastructure (PKI). Während dieser Mechanismus für den meisten Internetverkehr ausreicht, erfordert die Okta Secure Identity Commitment, dass wir fortgeschrittene, hartnäckige, gezielte Angreifer in Betracht ziehen, sogar Akteure auf staatlicher Ebene.

Okta verwendet PKI und TLS als Grundlage für die gesamte Kommunikation zwischen Diensten, einschließlich Okta Verify. In fortgeschrittenen Angriffsszenarien könnte jedoch ein öffentliches Zertifikat außerhalb der Kontrolle von Okta kompromittiert und vom Betriebssystem eines Geräts akzeptiert oder vom Benutzer dieses Geräts explizit als vertrauenswürdig eingestuft werden. In solchen Fällen kann ein Bedrohungsakteur dann den Datenverkehr zwischen Okta Verify und den serverseitigen Endpunkten von Okta über einen Man-in-the-Middle (AITM)-Angriff inspizieren und manipulieren, was eine Reihe von Problemen verursacht, die wir später erläutern werden.

Public Key Pinning ist eine Möglichkeit, nur die von der Client-Anwendung erwarteten Zertifikate auf eine Positivliste zu setzen und alle anderen zu blockieren. Dies bedeutet, dass selbst im Falle einer Kompromittierung einer öffentlichen Zertifizierungsstelle (z. B. Digicert) unsere Client-Anwendungen diese Zertifikate nicht akzeptieren. Stattdessen müsste ein Angreifer die intern gespeicherten privaten Schlüssel von Okta gestohlen haben, um unsere Server zu imitieren.

Angriffsbeispiel: Gefälschtes WLAN oder VPN

Stellen Sie sich vor, ein Benutzer arbeitet in einem Café. Ein anderer Kunde im Café hat eine Ananas im Rucksack. Dieses Gerät kann das WLAN des Shops nachahmen und Verbindungen aggressiv übernehmen, indem es unter anderem eine hohe Signalstärke vortäuscht.

Wenn sich ein Gerät mit einem WLAN-Netzwerk verbindet, übernimmt es Netzwerkeinstellungen wie DNS- und Proxy-Einstellungen, die es ihm ermöglichen, den gesamten Datenverkehr an sich selbst zu leiten, bevor er an das richtige Ziel gesendet wird. Mit einem von einem Dritten gestohlenen SSL-Zertifikat (oder akzeptiertes Profil) kann selbst HTTPS-Datenverkehr ohne Alarmierung entschlüsselt werden.

Sobald dies eingerichtet ist, werden Flüsse wie OpenID Connect anfällig für Traffic-Umleitungen, wodurch Zugriffs-Token gestohlen oder auf eine andere URL gesetzt werden können.

 

 

Im obigen Ablauf tritt folgende Sequenz auf:

  1. Okta Verify versucht, eine Verbindung zur openid-configuration der Organisation herzustellen, die von der Protokollspezifikation gefordert wird.
  2. Der Datenverkehr wird zur Infrastruktur des Angreifers umgeleitet.
  3. Die von der Infrastruktur des Angreifers zurückgegebenen Werte ändern wichtige Parameter:
    1. Ändern Sie keys_uri zum Keys-Endpunkt des Angreifers. Dies ermöglicht es dem Angreifer, JWTs zu senden, die die Verifizierung bestehen, obwohl sie keine legitimen privaten Schlüssel haben.
    2. Ändern Sie Endpunkte wie token_endpoint, die dazu führen könnten, dass Token-Exchange-Flows, die durch den Standard definiert sind, zur Infrastruktur des Angreifers geleitet werden (die dann abgefangen werden kann).
  4. An diesem Punkt hat der Angreifer die Angriffsfläche erheblich erweitert, was potenziell zu einer Kontoübernahme führen kann, wenn dies mit einer Art von Phishing kombiniert wird.

Wie Pinning Sie schützt

Die drei Hauptziele des Pinnen unserer TLS-Verbindungen sind: Authentizität, Integrität und Datenschutz.

Authentizität

Die Client-Anwendungen von Okta werden mit Manipulationsschutz und eingebrannten Public Keys bereitgestellt. Die Infrastruktur von Okta enthält die privaten Schlüssel, daher verwenden wir diese, um die Identität des Servers anhand dieser fest einprogrammierten Schlüssel zu bestätigen. Dies bedeutet, dass Okta Verify nicht dazu verleitet werden kann, sich mit einer Phishing-Site oder einer anderen vom Angreifer kontrollierten Infrastruktur zu verbinden.

Integrität

Obwohl die meisten zwischen Client und Server übertragenen Daten bereits in überprüfbaren Strukturen wie JSON Web Tokens gekapselt sind, sind die Endpunkte, die zur Überprüfung dieser Strukturen benötigt werden, möglicherweise nicht (z. B. `/oauth2/v1/keys`). Key Pinning verhindert, dass der Client einen manipulierten Schlüsselsatz akzeptiert, was zu einer großen Angriffsfläche führen könnte, einschließlich Fehlkonfigurationen und Phishing-Angriffen.

Datenschutz

Obwohl Okta bestrebt ist, die Verwendung von personenbezogenen Daten (PII) zu minimieren, umfasst die Natur von Okta Verify Device Assurance die erfolgreiche Identifizierung des Geräts und detaillierte Signale, die damit verbunden sind, um die Sicherheit Ihrer Organisation zu erhöhen. Sollten Dritte diese Daten lesen, könnten sie Informationen über Benutzer und ihre Geräte sammeln, um sie für Angriffe oder die Ernte von Daten zu verwenden.
 

Beispiel für einen Angriff, wenn Pinning aktiv ist

Beispiel für einen Angriff, wenn Pinning aktiv ist

 

Wenn Pinning aktiv ist, untersucht Okta Verify die TLS-Verbindung während des TLS-Handshakes,bevor Daten gesendet oder empfangen werden. Der Client bricht dann die Verbindung ab und schließt sofort jede Möglichkeit aus, dass eine Nicht-Okta-Infrastruktur Daten während der Übertragung liest oder verändert.

Dieser Schutz stellt eine risikomindernde Kontrolle für Okta FastPass dar, die mit anderen Phishing-resistenten Authentifikatoren wie Hardware-Schlüsseln / WebAuthN nicht erreicht werden kann, da diese auf der (ungepinnten) Implementierung von PKI + TLS durch den Browser basieren, um signierte Zusicherungen über das Internet zu senden.

Die Nachteile

Der Hauptnachteil von Pinning für Okta ist die operationelle Komplexität. Wie immer sind wir bereit, diese zusätzliche Arbeit in Kauf zu nehmen, um unsere Kunden besser zu schützen.

Einige Organisationen haben Richtlinien, die den gesamten Datenverkehr innerhalb ihres Netzwerkperimeters überprüfen. Wenn der Okta Verify-Datenverkehr in den Inspektionsregeln enthalten ist, blockiert er seine eigenen Netzwerkverbindungen, so wie er es tun würde, wenn ein Angreifer eine Datenverkehrsinspektion oder -änderung durchführen würde. 

 

Aus den oben genannten Gründen können wir die Überprüfung des Datenverkehrs zwischen Okta Verify und seiner Infrastruktur nicht zulassen, ohne Kunden den oben genannten Angriffsszenarien auszusetzen. Wenn Sie den Datenverkehr in Ihrem Netzwerk überprüfen müssen, können Sie die Okta-Infrastruktur in den Inspektionsregeln auf die Positivliste setzen. Organisationen, die den Login-Datenverkehr zwischen Browsern und der Okta-Infrastruktur überprüfen müssen, können eine benutzerdefinierte Domäne verwenden und den Datenverkehr zu dieser Domäne überprüfen, ohne Okta Verify zu beeinträchtigen.

Wir beobachten diesen Bereich und wären offen für die Prüfung von Alternativen, die Sicherheits- und Betriebsverbesserungen darstellen. Sie können sicher sein, dass die Sicherheitsstandards des Ersatzes mindestens dem aktuellen Niveau entsprechen, falls dies geschieht.

Okta hat sich dazu verpflichtet, Sicherheit an erste Stelle zu setzen. Wir sind jeden Tag bestrebt, Okta Verify zum sichersten Authentifikator der Welt zu machen und Okta und unsere Kunden zu schützen. Key Pinning ist ein wichtiger Bestandteil der gesamten Sicherheit von Okta Verify, und wir werden weiterhin alles tun, um Sie zu schützen.

Haben Sie Fragen zu diesem Blogbeitrag? Kontaktieren Sie uns unter eng_blogs@okta.com.

Entdecken Sie weitere aufschlussreiche Engineering-Blogs von Okta, um Ihr Wissen zu erweitern.

Möchten Sie unserem leidenschaftlichen Team von außergewöhnlichen Ingenieuren beitreten? Besuchen Sie unsere Karriereseite.

Nutzen Sie das Potenzial moderner und fortschrittlicher Identitätsverwaltung für Ihr Unternehmen. Kontaktieren Sie unseren Vertrieb für weitere Informationen.

Setzen Sie Ihre Identity Journey fort