OCSP-Konfiguration

Dieses Thema bietet einen Überblick über das OCSP, seine Verwendung in Snowflake und Informationen zur Diagnose von OCSP-Problemen.

Unter diesem Thema:

Übersicht zu OCSP

Snowflake verwendet das Online Certificate Status Protocol (OCSP), um maximale Sicherheit zu bieten und zu ermitteln, ob ein Zertifikat gesperrt ist, wenn Snowflake-Clients versuchen, über HTTPS eine Verbindung zu einem Endpunkt herzustellen.

Snowflake wertet mit OCSP jedes Zertifikat in der Vertrauenskette bis zum Zwischenzertifikat aus, das von der Stammzertifizierungsstelle (CA) ausgestellt wird. Indem sichergestellt wird, dass einzelne Zertifikate nicht gesperrt sind, kann Snowflake bei der Identitätsprüfung sichere Verbindungen zu vertrauenswürdigen Akteuren herstellen.

Abhängig von Ihrer Client- oder Treiberversion und der auf dieser Seite beschriebenen Konfiguration können Sie OCSP deaktivieren und die Aktion anpassen, die ausgeführt wird, wenn OCSP feststellt, dass ein Zertifikat widerrufen wurde.

Fail-open- oder Fail-close-Verhalten

Derzeit können Benutzer zwischen zwei Verhaltensweisen wählen, um festzulegen, wie Snowflake-Clients oder -Treiber bei einem OCSP-Ereignis reagieren.

  1. Fail-open

  2. Fail-close

Fail-open

Snowflake unterstützt bei der Auswertung der OCSP CA-Reaktion standardmäßig einen Fail-open-Ansatz. Der Fail-open-Ansatz weist die folgenden Eigenschaften auf:

  • Eine Antwort, die auf ein widerrufenes Zertifikat hinweist, führt zu einer fehlgeschlagenen Verbindung.

  • Eine Antwort mit anderen Zertifikatfehlern oder -status ermöglicht das Herstellen der Verbindung, bezeichnet jedoch die Nachricht in den Protokollen auf der Ebene WARNING mit den relevanten Details im JSON-Format.

Benutzer können die Protokolle für den bestimmten Treiber oder Konnektor überwachen, um die Häufigkeit von Fail-open-Protokollereignissen zu ermitteln.

Diese Ereignisprotokolle können mit der Snowflake-Statusseite kombiniert werden, um das beste Vorgehen zu bestimmen, z. B. vorübergehendes Beschränken des Clientzugriffs oder Wechseln zum Fail-close-Verhalten.

Derzeit gilt der Fail-open-Standardansatz für die folgenden Client- und Treiberversionen.

Client/Treiber

Version

SnowSQL

v1.1.79 oder höher

Python-Konnektor

v1.8.0 oder höher

JDBC-Treiber

v3.8.0 oder höher

ODBC-Treiber

v2.19.0 oder höher

SQL Alchemy

Aktualisieren Sie Python-Konnektor auf v1.8.0 oder höher

Spark

v2.4.14 oder höher, wenn Sie zum Erstellen der Spark-Anwendung Maven oder SBT verwenden. . JDBC v3.8.0 oder höher, wenn JAR-Dateien an den Spark-Cluster angehängt werden. . Fordern Sie Databricks auf, ihren Spark-Konnektor zu aktualisieren, wenn Sie den integrierten Spark-Konnektor von Databricks verwenden.

Go-Treiber

v1.8.0 oder höher

Node.js

v1.8.0 oder höher

Bemerkung

Snowflake unterstützt keine OCSP-Prüfung des .NET-Treibers. Stattdessen verwendet .NET sein eigenes Framework, um die Gültigkeit des HTTPS-Zertifikats zu überprüfen.

Fail-close

Das Fail-close-Verhalten ist bei der Interpretation der OCSP CA-Antwort restriktiver. Wenn der Client oder Treiber aus irgendeinem Grund keine gültige OCSP CA-Antwort erhält, schlägt die Verbindung fehl.

Da dieses Verhalten bei den im Abschnitt Fail-open aufgeführten Versionen nicht Standard ist, muss Fail-close in jedem Treiber oder Konnektor manuell konfiguriert werden.

Setzen Sie den entsprechenden ocsp_fail_open-Parameter auf false, um das Fail-close-Verhalten beizubehalten.

Client/Treiber

Einstellung

SnowSQL

snowsql -o ocsp_fail_open=false

Python-Konnektor

Weitere Informationen dazu finden Sie in der Dokumentation zum Python-Konnektor unter Auswahl des Fail-open- oder Fail-close-Modus.

JDBC-Treiber

Weitere Informationen dazu finden Sie in der JDBC-Treiberdokumentation unter Auswahl des Fail-Open- oder Fail-Close-Modus.

ODBC-Treiber

Wählen Sie eine der folgenden Optionen: . Setzen Sie den Verbindungsparameter auf OCSP_FAIL_OPEN=false .. Verwenden Sie die Umgebungsvariable $SIMBAINI, um die entsprechende Datei zu finden. Legen Sie dann OCSPFailOpen=false fest.

SQL Alchemy

Siehe JDBC-Treibereinstellungen

Spark

Der Spark-Konnektor hat keinen ocsp_fail_open-Parameter. . Fail-close kann bei Spark nur beibehalten werden, wenn der JDBC-Treiber verwendet wird.

Go-Treiber

Führen Sie einen der folgenden Schritte aus: . - Setzen Sie den Verbindungsparameter OCSPFailOpen in Config auf ocspFailOpenTrue oder ocspFailOpenFalse. Beispiel: . import ( ... sf "github.com/snowflakedb/gosnowflake ... ") . config: &Config{ Account: "xy12345", ...,  OCSPFailOpen: sf.ocspFailOpenFalse, ... } . - Setzen Sie den ocspFailOpen-Verbindungsparameter in der Verbindungszeichenfolge auf true oder false, zum Beispiel . user:pass@account/db/s?ocspFailOpen=false. . Beachten Sie die Unterschiede zwischen Groß- und Kleinschreibung. . Weitere Informationen zu Go-Verbindungsparametern finden Sie in der GoDoc gosnowflake-Dokumentation.

Node.js

Legen Sie den globalen Parameter ocspFailOpen=false fest. Weitere Details dazu finden Sie unter Verwenden des Node.js-Treibers.

Ältere Client- und Treiberversionen

Wenn Ihre Client- oder Treiberversion älter ist als die im Abschnitt Fail-open angegebene, stellt das Fail-open-Verhalten keine Option dar. Daher ist das Fail-close-Verhalten Standard.

Für Snowflake-Umgebungen mit älteren Client- und Treiberversionen in Bezug auf OCSP stehen drei Optionen zur Verfügung:

  1. Aktualisieren von Client oder Treiber auf die neueste Version (beste Option).

  2. Weiteres Verwenden des Fail-close-Verhaltens.

  3. Deaktivieren der OCSP-Überwachung (d. h. unsicherer Modus), wie hier beschrieben.

Bewährte Methoden

Um Risiken zu minimieren und für eine sichere Kommunikation zu sorgen, empfiehlt Snowflake folgende bewährte Methoden.

  1. Verwenden Sie AWS PrivateLink, und blockieren Sie den öffentlichen Zugriff auf Snowflake.

  2. Sorgen Sie dafür, dass Clienttreiber nur auf verwalteten Desktops und Servern ausgeführt werden dürfen.

  3. Senden Sie Protokolle von Clienttreibern an ein Verwaltungssystem, oder laden Sie sie in Snowflake hoch. Überwachen Sie die Verbindungen, die ohne OCSP-Prüfung hergestellt werden.

Bemerkung

Für die Unterstützung von AWS PrivateLink ist Business Critical (oder höher) erforderlich. Wenden Sie sich für ein Upgrade direkt an den Snowflake-Support.

Überprüfen der Kommunikation mit Ihrer CA-Website oder Ihrem OCSP-Responder

So prüfen Sie, ob die Kommunikation blockiert ist:

Schritt 1: URL für Ihr Zertifikat abrufen

Rufen Sie die von Snowflake für OCSP-Prüfungen auf Ihrem signierten Snowflake-Zertifikat verwendete URL ab:

  1. Melden Sie sich in Google Chrome bei der Snowflake-Weboberfläche an.

  2. Klicken Sie auf das Symbol in der rechten oberen Ecke des Browserfensters („Google Chrome anpassen und steuern“). Klicken Sie dann auf More Tools » Developer Tools.

  3. Der Rahmen für Developer Tools wird angezeigt. Klicken Sie im Rahmen auf die Registerkarte Security.

  4. Klicken Sie auf die Schaltfläche View certificate, und erweitern Sie dann den Abschnitt Details.

  5. Scrollen Sie durch die Details, bis Sie die passende Erweiterung gefunden haben, und notieren Sie sich die URL für:

    Online Certificate Status Protocol (z. B. http://ocsp.netsolssl.com)

    Beispiel:

    Viewing OCSP URL for certificate in Developer Tools

Als Nächstes testen Sie, ob Sie auf die URL zuzugreifen können (siehe Schritt 2). Verschiedene Netzwerkprobleme könnten den Zugriff des Snowflake-Clients auf die URL verhindern. So kann beispielsweise Ihre Firewall den Zugriff auf die von Snowflake genutzten Websites blockieren.

Schritt 2: URL testen

Führen Sie die Betriebssystem-spezifischen Schritte durch, um zu überprüfen, ob Sie die URL (<OCSP-URL>) erreichen können, die Sie in Schritt 1 abgerufen haben:

Windows
  1. Öffnen Sie ein PowerShell-Fenster auf dem Host, auf dem das Konnektivitätsproblem weiterhin besteht.

  2. Führen Sie den folgenden Befehl aus:

    Invoke-WebRequest <ocsp_url>
    

    Der Befehl Invoke-WebRequest sendet eine HTTP-Anfrage an eine Webseite oder einen Webservice und gibt eine Antwort zurück.

Linux/macOS
  1. Öffnen Sie ein Terminalfenster auf dem Host, auf dem das Konnektivitätsproblem fortbesteht.

  2. Führen Sie den folgenden Befehl aus:

    curl -I <ocsp_url>
    

Wenn erfolgreich, gibt der Befehl etwa folgende Ergebnisse zurück:

HTTP/1.1 200 OK
Server: Apache
X-OCSP-Responder-ID: dwdccaocsp27
Content-Length: 5
Content-Type: application/ocsp-response
Date: Thu, 09 Aug 2018 19:19:20 GMT
Connection: keep-alive

Wenn der Befehl einen Fehler zurückgibt, melden Sie das Problem an Ihren Netzwerkadministrator zur weiteren Diagnose. Möglicherweise muss der OCSP-Host, der zur Überprüfung Ihres Zertifikats verwendet wird, explizit auf die Whitelist gesetzt werden.

Wenn der Befehl einen anderen Statuscode als 200 zurückgibt, wenden Sie sich an den Snowflake-Support.

CA-Website und OCSP-Responder-Hosts, die von Snowflake verwendet werden (von Cloudplattform und Region)

Snowflake verwendet die folgenden Hosts für OCSP-Zertifizierungsprüfungen. Beachten Sie, dass sich die Hosts einer Cloudplattform je nach Region unterscheiden können.

Wichtig

Dies sind Beispiele für die am häufigsten verwendeten Hosts. Für jede Region (oder jedes einzelne Konto) kann Snowflake ein Zertifikat verwenden, das von einem anderen CA ausgestellt wurde, was zu unterschiedlichen Hosts und URLs führt. Beispiel:

  • Für die meisten Konten in US West (auf AWS) verwendet Snowflake derzeit Digicert-signierte Zertifikate von Network Solutions.

  • Für andere Regionen (auf AWS) verwendet Snowflake hauptsächlich Zertifikate von Amazon CA.

Darüber hinaus kann Snowflake Zertifikate ändern, wenn diese ablaufen oder erweitert werden müssen, was zu unterschiedlichen Hosts und URLs führt.

Eine vollständige Liste der Hosts und URLs für Ihr Konto erhalten Sie vom Snowflake Support.

Snowflake auf AWS

Host

US West

Andere Regionen

Anmerkungen

ocsp.snowflakecomputing.com:80

OCSP-Antwort-Cacheserver von Snowflake. Beachten Sie, dass der Hostname anders ist, wenn AWS PrivateLink aktiviert ist.

*.amazontrust.com:80

*.digicert.com:80

*.netsolssl.com:80

*.ss2.us:80

*.usertrust.com:80

Snowflake auf Microsoft Azure

Host

East US 2

Anmerkungen

ocsp.snowflakecomputing.com:80

OCSP-Antwort-Cacheserver von Snowflake.

*.digicert.com:80

*.msocsp.com:80

Snowflake auf Google Cloud Platform

Host

us-central1

Anmerkungen

ocsp.snowflakecomputing.com:80

OCSP-Antwort-Cacheserver von Snowflake.

ocsp.digicert.com:80

ocsp.pki.goog:80

OCSP-Zertifizierungsprüfungen erfordern Port 80

Die gesamte Kommunikation mit Snowflake erfolgt über Port 443. Allerdings werden OCSP-Zertifizierungsprüfungen über Port 80 übertragen. Wenn sich Ihre Workstation hinter einer Firewall befindet, stellen Sie sicher, dass der Netzwerkadministrator Ihres Unternehmens die Firewall für den Datenverkehr an Port 443 und Port 80 geöffnet hat.

JDBC- und ODBC-Treiber verwenden keine CRL mehr

Eine CRL (Zertifikatssperrliste) gibt die Zertifikate an, die explizit von einer bestimmten CA gesperrt wurden. Ältere Versionen der JDBC- und ODBC-Treiber verwendeten entweder CRL oder OCSP zur Überprüfung von TLS/SSL-Zertifikaten. Ab den folgenden Versionen verwenden die Treiber für die gesamte Zertifikatsprüfung nur noch OCSP:

  • JDBC 3.5.0 (oder höher)

  • ODBC 2.15.0 (oder höher)