Planen und Implementieren von Transport Layer Security (TLS) in Anwendungen, einschließlich Azure App Service und API Management
Transport Layer Security (TLS) ist ein kryptografisches Protokoll, das zur Sicherung der Kommunikation über Netzwerke entwickelt wurde, indem Verschlüsselung, Authentifizierung und Datenintegrität bereitgestellt werden. Es funktioniert, indem ein sicherer Handshake zwischen einem Client und einem Server eingerichtet, Verschlüsselungssammlungen verhandelt und Von vertrauenswürdigen Zertifizierungsstellen ausgestellte Zertifikate überprüft werden. Dieser Prozess stellt sicher, dass vertrauliche Informationen, wie Anmeldeinformationen und Anwendungsdaten, in verschlüsselter Form übertragen werden, um sie vor Abfangen oder Manipulationen während der Übertragung zu schützen. TLS wurde durch mehrere Versionen weiterentwickelt, wobei TLS 1.2 und TLS 1.3 eine stärkere Verschlüsselung, schnellere Handshakes und einen verbesserten Datenschutz im Vergleich zu früheren Iterationen bieten.
Im Kontext von Azure spielt TLS eine wichtige Rolle bei der Sicherung von Daten über Dienste wie App Service, API-Verwaltung, Azure Storage und SQL-Datenbank hinweg. Azure erzwingt TLS für alle Verbindungen, um die Verschlüsselung während der Übertragung sicherzustellen und Risiken wie Man-in-the-Middle-Angriffe zu verringern. Moderne TLS-Versionen (1.2 oder höher) sind erforderlich. Azure richtet sich an Branchensicherheitsstandards und bietet Features wie Perfect Forward Secrecy und authentifizierte Verschlüsselung, die die Resilienz gegenüber sich entwickelnden Bedrohungen verbessern. Neuere Versionen von TLS schützen nicht nur Kundendaten, sondern stellen auch die Einhaltung gesetzlicher Anforderungen sicher, wodurch TLS zu einer grundlegenden Komponente des Sicherheitsstatus von Azure wird.
Funktionsweise der Transport Layer Security für Ihre Anwendungen
Transport Layer Security (TLS) verschlüsselt Daten, die zwischen Clients und Servern übertragen werden, und verhindert Abhöraktionen und Manipulationen. Wenn ein Benutzer eine Verbindung mit Ihrer Webanwendung oder API herstellt, erstellt TLS einen verschlüsselten Tunnel, der vertrauliche Informationen – z. B. Authentifizierungstoken, personenbezogene Daten und Geschäftstransaktionen – vor Abfangen schützt.
Moderne Organisationen verlassen sich auf TLS, um:
- Erfüllen Sie die gesetzlichen Anforderungen: Standards wie PCI DSS, HIPAA und andere Standards verlangen die Verschlüsselung von Daten während der Übertragung.
- Kundenvertrauen aufbauen: Browsersicherheitsindikatoren und Zertifikatwarnungen schaffen direkt vertrauen.
- Verhindern von Datenschutzverletzungen: Unverschlüsselte Verbindungen machen Anmeldeinformationen, Sitzungstoken und Geschäftsdaten für Netzwerkangreifer verfügbar.
TLS ersetzt das veraltete SSL-Protokoll (Secure Sockets Layer). Konfigurieren Sie Immer Dienste für die Verwendung von TLS 1.2 oder höher, wobei TLS 1.3 für optimale Sicherheit und Leistung empfohlen wird.
Warum TLS in Azure wichtig ist
Azure-Dienste verarbeiten täglich Millionen von Kundenanfragen in globalen Regionen. TLS bietet drei wichtige Schutzmaßnahmen:
- Authentifizierung: Zertifikate belegen Ihre Dienstidentität und verhindern, dass Man-in-the-Middle-Angriffe verhindert werden, bei denen Angreifer Ihre Endpunkte identitätswechseln.
- Vertraulichkeit: Verschlüsselung stellt sicher, dass nur autorisierte Parteien übertragene Daten lesen können, auch wenn Datenverkehr nicht vertrauenswürdige Netzwerke überschreitet.
- Integrität: Kryptografische Signaturen erkennen alle Manipulationen bei der Übertragung.
Ohne TLS kann ein Angreifer im selben Netzwerk wie Ihre Benutzer Anmeldeinformationen, API-Schlüssel oder Kundendatensätze erfassen. Azure umfasst integrierte TLS-Unterstützung für plattformübergreifende Dienste, Sie müssen jedoch Mindestversionen und Zertifikatrichtlinien so konfigurieren, dass sie Ihren Sicherheitsanforderungen entsprechen.
Von Bedeutung
TLS schützt nur Daten während der Übertragung. Sie müssen ruhende Daten separat mit Azure Storage-Verschlüsselung, transparenter Datenbankdatenverschlüsselung oder Azure Disk Encryption verschlüsseln.
Konfigurieren von TLS für Azure App Service
In Ihrem Anwendungscode können Sie auf die öffentlichen oder privaten Zertifikate zugreifen, die Sie Azure App Service hinzufügen. Ihr App-Code kann als Client fungieren und auf einen externen Dienst zugreifen, der eine Zertifikatauthentifizierung erfordert. Es kann auch erforderlich sein, kryptografische Aufgaben auszuführen.
Dieser Ansatz zur Verwendung von Zertifikaten in Ihrem Code verwendet die Tls-Funktionalität (Transport Layer Security) in App Service, die erfordert, dass Ihre App auf der Ebene "Einfach" oder höher ist. Wenn sich Ihre App auf der Stufe "Frei" oder "Freigegeben" befindet, können Sie die Zertifikatdatei in Ihr App-Repository einschließen.
Wenn Sie Zulassen, dass App Service Ihre TLS/Secure Sockets Layer (SSL)-Zertifikate verwaltet, können Sie die Zertifikate und den Anwendungscode separat verwalten und Ihre vertraulichen Daten schützen.
Azure App Service bietet verwaltete TLS-Beendigung mit automatischer Zertifikatverlängerung. Sie steuern die mindeste TLS-Version und können HTTPS für alle Verbindungen erzwingen.
Erzwingen der mindesten TLS-Version
- Navigieren Sie im Azure-Portal zu Ihrer App Service-Ressource.
- Klicken Sie unter Einstellungen auf Konfiguration.
- Wählen Sie die Registerkarte Allgemeine Einstellungen aus.
- Legen Sie mindeste TLS-Version auf 1.2 oder 1.3 fest (1.3 empfohlen).
- Wählen Sie Speichern aus, um die Änderung zu übernehmen.
Clients, die versuchen, eine Verbindung mit älteren TLS-Versionen herzustellen, erhalten einen Verbindungsfehler und verhindern, dass ältere Systeme schwache Kryptografie verwenden.
HTTPS-Verbindungen erfordern
- Wählen Sie in Ihrer App Service-Ressource unter "Einstellungen" die Option "Konfiguration" aus.
- Wählen Sie die Registerkarte Allgemeine Einstellungen aus.
- Legen Sie HTTPS nur auf "Ein" fest.
- Wählen Sie Speichern aus.
Azure leitet HTTP-Anforderungen automatisch an HTTPS weiter, um sicherzustellen, dass der gesamte Datenverkehr verschlüsselte Verbindungen verwendet. Verschlüsselte Verbindungen beseitigen Warnungen mit gemischtem Inhalt in Browsern und vereinfachen Complianceüberwachungen.
Hinzufügen eines benutzerdefinierten Domänenzertifikats
App Service-Apps erhalten ein kostenloses *.azurewebsites.net Zertifikat. Für Produktionsworkloads mit benutzerdefinierten Domänen:
- Kaufen oder importieren Sie ein Zertifikat, das Ihrem Domänennamen entspricht.
- Wählen Sie in Ihrem App-Dienst unter "Einstellungen" die Option "Zertifikate" aus.
- Wählen Sie "Zertifikat hinzufügen" aus, und folgen Sie dem Assistenten, um Ihr Zertifikat hochzuladen oder ein von App Service verwaltetes Zertifikat zu erstellen.
- Binden Sie das Zertifikat an Ihre benutzerdefinierte Domäne unter "Benutzerdefinierte Domänen".
Verwaltete Zertifikate werden vor Ablauf automatisch verlängert. Private Zertifikate erfordern manuelle Verlängerung und erneutes Laden.
Konfigurieren von TLS für Azure-API-Verwaltung
Azure API Management befindet sich zwischen Clients und Back-End-APIs, behandeln von Authentifizierung, Ratelimitierung und Transformation. Sie konfigurieren TLS sowohl auf der Gatewayebene (clientseitig) als auch im Back-End -Layer (Service-to-Service).
Festlegen der mindesten TLS-Version für das Gateway
- Öffnen Sie im Azure-Portal Ihre API-Verwaltungsinstanz.
- Wählen Sie unter "Sicherheit" die Option "Protokolle + Chiffre" aus.
- Deaktivieren Sie die Kontrollkästchen für SSL 3.0, TLS 1.0 und TLS 1.1.
- Stellen Sie sicher, dass TLS 1.2 aktiviert ist (TLS 1.3-Unterstützung hängt von Ihrer Dienstebene ab).
- Wählen Sie Speichern aus.
Das Festlegen einer mindesten TLS-Version verhindert, dass Clients schwache Protokollversionen aushandeln. Testen Sie ihre API-Verbraucher, bevor Sie TLS 1.1 deaktivieren, wenn Sie ältere mobile Apps oder ältere Systeme unterstützen.
Erzwingen von HTTPS für API-Endpunkte
- Navigieren Sie zu APIs in Ihrer API-Verwaltungsinstanz.
- Wählen Sie die API aus, die Sie sichern möchten.
- Suchen Sie unter "Einstellungen" die URL-Schemaoption .
- Wählen Sie nur HTTPS aus.
- Wählen Sie Speichern aus.
DIE API-Verwaltung lehnt HTTP-Anforderungen mit einer 403 Verbotenen Antwort ab und schützt vor versehentlicher Gefährdung unverschlüsselter Endpunkte.
Konfigurieren der Back-End-TLS-Überprüfung
Wenn API-Verwaltung Back-End-Dienste aufruft, überprüfen Sie, ob diese Verbindungen auch TLS verwenden:
- Wählen Sie in Ihrer API "Entwurf" und dann einen Vorgang aus.
- Wählen Sie im Abschnitt "Back-End " das zu bearbeitende Bleistiftsymbol aus.
- Aktivieren Sie "Zertifikatkette überprüfen " und "Zertifikatnamen überprüfen".
- Laden Sie vertrauenswürdige Stammzertifikate hoch, wenn Ihr Back-End private oder selbst signierte Zertifikate verwendet.
Überprüfen Sie gesicherte Verbindungen, um zu verhindern, dass die API-Verwaltung ungültige oder abgelaufene Zertifikate von Back-End-Diensten akzeptiert, wobei die End-to-End-Verschlüsselung beibehalten wird.
Tipp
Verwenden Sie Azure Key Vault, um Zertifikate sowohl für App Service als auch für die API-Verwaltung zu speichern und zu drehen. Ein zentralisierter Zertifikatlebenszyklusverwaltungsprozess vereinfacht die Compliance-Berichterstellung.
Planen der TLS-Konfiguration
Vor der Bereitstellung von TLS-Änderungen in der Produktion:
- Überwachen vorhandener Clients: Identifizieren Sie alle Systeme, die TLS 1.0 oder 1.1 verwenden, und planen Sie ihre Upgrades.
- Zertifikatverlängerungen testen: Überprüfen Sie die automatisierte Erneuerung für verwaltete Zertifikate und dokumentieren Sie manuelle Erneuerungsverfahren für private Zertifikate.
- Konfigurieren der Überwachung: Einrichten von Azure Monitor-Warnungen für TLS-Handshake-Fehler und Zertifikatablaufwarnungen.
- Dokumentcompliancezuordnungen: Aufzeichnen, welche TLS-Einstellungen bestimmte behördliche Anforderungen für Überwachungspfade erfüllen.
Durch das Deaktivieren älterer TLS-Versionen kann die Kompatibilität mit Legacyclients unterbrochen werden. Koordinieren Sie mit Anwendungsbesitzern und planen Sie einen phasenweisen Rollout mit klarer Kommunikation mit API-Verbrauchern.
Wichtigste Erkenntnisse
- Konfigurieren Sie die minimale TLS-Version auf 1.2 oder höher für alle Azure-Dienste, um schwache Kryptografierisiken zu verhindern.
- Erzwingen Sie HTTPS-verbindungen in App Service und API-Verwaltung, um unverschlüsselten Datenverkehr zu beseitigen.
- Aktivieren Sie die Back-End-Zertifikatüberprüfung in der API-Verwaltung, um die End-to-End-Verschlüsselung über Dienstgrenzen hinweg aufrechtzuerhalten.
- Verwenden Sie Azure Key Vault für zentralisierte Zertifikatverwaltung und automatisierte Erneuerungsworkflows.
- Testen Sie TLS-Konfigurationsänderungen in Stagingumgebungen vor dem Produktionsrollout, um Clientkompatibilitätsprobleme zu identifizieren.
Empfohlene nächste Schritte
- Überwachen Sie Ihre vorhandenen Azure App Service- und API-Verwaltungsinstanzen, um Dienste zu identifizieren, die weiterhin TLS 1.0 oder 1.1 zulassen.
- Erstellen Sie einen Azure Key Vault, und migrieren Sie den Zertifikatspeicher von manuellen Uploads zur zentralisierten tresorbasierten Verwaltung.
- Konfigurieren Sie Azure Monitor-Warnungen für den Ablauf von Zertifikaten (30 Tage vor Ablauf) und TLS-Handshakefehler, um Dienstunterbrechungen zu verhindern.