Freigeben über


Sicherheitsrahmen: Kommunikationssicherheit | Schutzmaßnahmen

Produkt/Dienst Artikel
Azure Event Hub
Dynamics CRM
Azure Data Factory
Identity Server
Webanwendung
Datenbank
Azure Storage
Mobiler Client
WCF
Web-API
Azure Cache für Redis
IoT-Bereichsgateway
IoT-Cloudgateway

Sichere Kommunikation mit Event Hub mit SSL/TLS

Titel Einzelheiten
Komponente Azure Event Hub
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen Event Hubs-Authentifizierung und -Sicherheitsmodell (Übersicht)
Schritte Sichere AMQP- oder HTTP-Verbindungen mit Event Hub mit SSL/TLS

Überprüfen Sie die Berechtigungen des Dienstkontos, und überprüfen Sie, ob die benutzerdefinierten Dienste oder ASP.NET Seiten die Sicherheit von CRM respektieren

Titel Einzelheiten
Komponente Dynamics CRM
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen Nicht verfügbar
Schritte Überprüfen Sie die Berechtigungen des Dienstkontos, und überprüfen Sie, ob die benutzerdefinierten Dienste oder ASP.NET Seiten die Sicherheit von CRM respektieren

Nutzen Sie das Datenverwaltungsgateway, um eine Verbindung zwischen einem lokalen SQL Server und der Azure Data Factory herzustellen.

Titel Einzelheiten
Komponente Azure Data Factory
SDL-Phase Einsatz
Zutreffende Technologien Generisch
Attribute Verknüpfte Diensttypen – Azure und lokal
Informationsquellen Verschieben von Daten zwischen lokal und Azure Data Factory
Schritte

Das Datenverwaltungsgateway (DMG)-Tool ist erforderlich, um eine Verbindung mit Datenquellen herzustellen, die hinter corpnet oder einer Firewall geschützt sind.

  1. Durch das Sperren des Computers wird das DMG-Tool isoliert und verhindert, dass fehlfunktionierende Programme den Datenquellen-Computer beschädigen oder auf ihm schnüffeln können. (Z. B. neueste Updates müssen installiert werden, mindestens erforderliche Ports aktivieren, kontrollierte Kontenbereitstellung, Überwachung aktiviert, Datenträgerverschlüsselung aktiviert usw.)
  2. Der Datengatewayschlüssel muss in häufigen Intervallen gedreht werden, oder wenn das Kennwort für das DMG-Dienstkonto erneuert wird.
  3. Datendurchgänge über den Linkdienst müssen verschlüsselt werden.

Sicherstellen, dass der gesamte Datenverkehr zu Identity Server über HTTPS-Verbindung erfolgt

Titel Einzelheiten
Komponente Identitätsserver
SDL-Phase Einsatz
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen Nicht verfügbar
Schritte Standardmäßig erfordert IdentityServer, dass alle eingehenden Verbindungen über HTTPS übertragen werden. Es ist absolut zwingend erforderlich, dass die Kommunikation mit IdentityServer nur über gesicherte Transporte erfolgt. Es gibt bestimmte Bereitstellungsszenarien wie TLS-Offloading, bei denen diese Anforderung entspannt werden kann. Weitere Informationen finden Sie auf der Seite "Identity Server-Bereitstellung" in den Verweisen.

Überprüfen von X.509-Zertifikaten zur Authentifizierung von SSL-, TLS- und DTLS-Verbindungen

Titel Einzelheiten
Komponente Webanwendung
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen Nicht verfügbar
Schritte

Anwendungen, die SSL, TLS oder DTLS verwenden, müssen die X.509-Zertifikate der Entitäten, mit denen sie eine Verbindung herstellen, vollständig überprüfen. Dazu gehört die Überprüfung der Zertifikate für:

  • Domänenname
  • Gültigkeitsdaten (sowohl Anfangs- als auch Ablaufdaten)
  • Sperrstatus
  • Verwendung (z. B. Serverauthentifizierung für Server, Clientauthentifizierung für Clients)
  • Vertrauenskette. Zertifikate müssen mit einer Stammzertifizierungsstelle verkettet werden, die von der Plattform als vertrauenswürdig eingestuft oder vom Administrator explizit konfiguriert wurde.
  • Die Schlüssellänge des öffentlichen Schlüssels des Zertifikats muss 2048 Bit sein >.
  • Der Hashalgorithmus muss SHA256 und höher sein.

Konfigurieren des TLS/SSL-Zertifikats für benutzerdefinierte Domäne in Azure App Service

Titel Einzelheiten
Komponente Webanwendung
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute EnvironmentType – Azure
Informationsquellen Aktivieren von HTTPS für eine App in Azure App Service
Schritte Standardmäßig aktiviert Azure bereits HTTPS für jede App mit einem Wildcardzertifikat für die Domäne *.azurewebsites.net. Wie alle Wildcarddomänen ist sie jedoch nicht so sicher wie die Verwendung einer benutzerdefinierten Domäne mit eigenem Zertifikat Refer. Es wird empfohlen, TLS für die benutzerdefinierte Domäne zu aktivieren, über die auf die bereitgestellte App zugegriffen wird.

Erzwingen des gesamten an Azure App Service gerichteten Datenverkehr über eine HTTPS-Verbindung

Titel Einzelheiten
Komponente Webanwendung
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute EnvironmentType – Azure
Informationsquellen Erzwingen von HTTPS für Azure App Service
Schritte

Obwohl Azure bereits HTTPS für Azure-App-Dienste mit einem Wildcardzertifikat für die Domäne *.azurewebsites.net aktiviert, erzwingt es nicht HTTPS. Besucher können weiterhin über HTTP auf die App zugreifen, was die Sicherheit der App beeinträchtigen kann und daher HTTPS explizit erzwungen werden muss. ASP.NET MVC-Anwendungen sollten den RequireHttps-Filter verwenden, der die erneute Übermittlung einer ungesicherten HTTP-Anforderung über HTTPS erzwingt.

Alternativ kann das URL Rewrite-Modul, das in Azure App Service enthalten ist, verwendet werden, um HTTPS zu erzwingen. Mithilfe des URL Rewrite-Moduls können Entwickler Regeln definieren, die auf eingehende Anforderungen angewendet werden, bevor die Anforderungen an Ihre Anwendung übergeben werden. URL Rewrite-Regeln werden in einer web.config Datei definiert, die im Stammverzeichnis der Anwendung gespeichert ist.

Beispiel

Das folgende Beispiel enthält eine grundlegende URL-Neuschreibregel, die alle eingehenden Datenverkehr zur Verwendung von HTTPS erzwingt.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Force HTTPS" enabled="true">
          <match url="(.*)" ignoreCase="false" />
          <conditions>
            <add input="{HTTPS}" pattern="off" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Diese Regel funktioniert, indem ein HTTP-Statuscode von 301 (permanente Umleitung) zurückgegeben wird, wenn der Benutzer eine Seite mit HTTP anfordert. Die 301 leitet die Anforderung an dieselbe URL wie der angeforderte Besucher weiter, ersetzt jedoch den HTTP-Teil der Anforderung durch HTTPS. Beispiel: HTTP://contoso.com Wird umgeleitet zu HTTPS://contoso.com.

Aktivieren von HTTP Strict Transport Security (HSTS)

Titel Einzelheiten
Komponente Webanwendung
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen OWASP HTTP Strict Transport Security Cheat Sheet
Schritte

HTTP Strict Transport Security (HSTS) ist eine Opt-In-Sicherheitsverbesserung, die von einer Webanwendung über die Verwendung eines speziellen Antwortheaders angegeben wird. Sobald ein unterstützter Browser diesen Header empfängt, verhindert dieser Browser, dass kommunikationen über HTTP an die angegebene Domäne gesendet werden und sendet stattdessen alle Kommunikationen über HTTPS. Außerdem wird verhindert, dass HTTPS-Click-Through-Aufforderungen in Browsern angezeigt werden.

Um HSTS zu implementieren, muss der folgende Antwortheader global für eine Website konfiguriert werden, entweder im Code oder in der Konfiguration. Strict-Transport-Security: max-age=300; includeSubDomains HSTS behebt die folgenden Bedrohungen:

  • Eine Benutzerin bzw. ein Benutzer erstellt ein Lesezeichen für https://example.com oder gibt die Adresse manuell ein und wird Opfer eines Man-in-the-Middle-Angriffs: HSTS leitet HTTP-Anforderungen für die Zieldomäne automatisch an HTTPS um
  • Webanwendung, die ausschließlich HTTPS sein soll, enthält versehentlich HTTP-Links oder stellt Inhalte über HTTP bereit: HSTS leitet HTTP-Anforderungen automatisch an HTTPS für die Zieldomäne weiter.
  • Ein Man-in-the-Middle-Angreifer versucht, den Datenverkehr eines Opferbenutzers mithilfe eines ungültigen Zertifikats abzufangen und hofft, dass der Benutzer das ungültige Zertifikat akzeptiert: HSTS erlaubt es einem Benutzer nicht, die ungültige Zertifikatnachricht außer Kraft zu setzen.

Sicherstellen der SQL Server-Verbindungsverschlüsselung und Zertifikatüberprüfung

Titel Einzelheiten
Komponente Datenbank
SDL-Phase Bauen
Zutreffende Technologien SQL Azure
Attribute SQL-Version: V12
Informationsquellen Bewährte Methoden zum Schreiben sicherer Verbindungszeichenfolgen für SQL-Datenbank
Schritte

Alle Kommunikationen zwischen SQL-Datenbank und einer Clientanwendung werden mit Transport Layer Security (TLS) verschlüsselt, zuvor als Secure Sockets Layer (SSL) bezeichnet, jederzeit. Die SQL-Datenbank unterstützt keine unverschlüsselten Verbindungen. Um Zertifikate mit Anwendungscode oder Tools zu überprüfen, fordern Sie explizit eine verschlüsselte Verbindung an, und vertrauen Sie den Serverzertifikaten nicht. Wenn Ihr Anwendungscode oder Ihre Tools keine verschlüsselte Verbindung anfordern, erhalten sie weiterhin verschlüsselte Verbindungen.

Sie können jedoch die Serverzertifikate nicht validieren und somit anfällig für "Man in the middle"-Angriffen sein. Um Zertifikate mit ADO.NET-Anwendungscode zu validieren, setzen Sie Encrypt=True und TrustServerCertificate=False in der Datenbankverbindungszeichenfolge. Um Zertifikate über SQL Server Management Studio zu überprüfen, öffnen Sie das Dialogfeld "Mit Server verbinden". Klicken Sie auf der Registerkarte 'Verbindungseigenschaften' auf 'Verbindung verschlüsseln'.

Erzwingen der verschlüsselten Kommunikation mit SQL Server

Titel Einzelheiten
Komponente Datenbank
SDL-Phase Bauen
Zutreffende Technologien Lokal
Attribute SQL-Version - MsSQL2016, SQL-Version - MsSQL2012, SQL-Version - MsSQL2014
Informationsquellen Aktivieren von verschlüsselten Verbindungen mit dem Datenbankmodul
Schritte Das Aktivieren der TLS-Verschlüsselung erhöht die Sicherheit von Daten, die netzwerkübergreifend zwischen Instanzen von SQL Server und Anwendungen übertragen werden.

Sicherstellen, dass die Kommunikation mit Azure Storage über HTTPS erfolgt

Titel Einzelheiten
Komponente Azure Storage
SDL-Phase Einsatz
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen Azure Storage-Transport-Level-Verschlüsselung – Verwenden von HTTPS
Schritte Um die Sicherheit von Azure Storage-Daten während der Übertragung sicherzustellen, verwenden Sie immer das HTTPS-Protokoll, wenn Sie die REST-APIs aufrufen oder auf Objekte im Speicher zugreifen. Außerdem bieten Shared Access Signatures (SAS), die zum Delegieren des Zugriffs auf Azure Storage-Objekte verwendet werden können, die Möglichkeit, festzulegen, dass nur das HTTPS-Protokoll genutzt werden kann. Dies stellt sicher, dass jeder, der Links mit SAS-Token sendet, das richtige Protokoll verwendet.

Überprüfen des MD5-Hash nach dem Herunterladen des Blobs, wenn HTTPS nicht aktiviert werden kann

Titel Einzelheiten
Komponente Azure Storage
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute Speichertyp - Blob
Informationsquellen Übersicht über Windows Azure Blob MD5
Schritte

Der Windows Azure Blob-Dienst stellt Mechanismen bereit, um die Datenintegrität sowohl auf den Anwendungs- als auch auf transportebenen sicherzustellen. Wenn Sie aus irgendeinem Grund HTTP anstelle von HTTPS verwenden müssen und mit Block-Blobs arbeiten, können Sie die MD5-Überprüfung verwenden, um die Integrität der übertragenen Blobs zu überprüfen.

Dies hilft beim Schutz vor Netzwerk-/Transportschichtfehlern, aber nicht unbedingt bei zwischengeschalteten Angriffen. Wenn Sie HTTPS verwenden können, das Sicherheit auf Transportebene bereitstellt, ist die Verwendung der MD5-Überprüfung redundant und unnötig.

Verwenden eines SMB 3-kompatiblen Clients zur Gewährleistung der Verschlüsselung von Daten während der Übertragung an Azure-Dateifreigaben

Titel Einzelheiten
Komponente Mobiler Client
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute StorageType – Datei
Informationsquellen Azure Files, Azure Files SMB-Unterstützung für Windows-Clients
Schritte Azure Files unterstützt HTTPS bei Verwendung der REST-API, wird jedoch häufiger als an eine VM angefügte SMB-Dateifreigabe verwendet. SMB 2.1 unterstützt keine Verschlüsselung, sodass Verbindungen nur innerhalb derselben Region in Azure zulässig sind. SMB 3.x unterstützt jedoch Verschlüsselung und kann mit Windows Server 2012 R2, Windows 8, Windows 8.1 und Windows 10 verwendet werden, sodass der regionsübergreifende Zugriff und sogar der Zugriff auf den Desktop möglich ist.

Implementieren des Anheftens von Zertifikaten

Titel Einzelheiten
Komponente Azure Storage
SDL-Phase Bauen
Zutreffende Technologien Allgemein, Windows Phone
Attribute Nicht verfügbar
Informationsquellen Anheften von Zertifikaten und öffentlichen Schlüsseln
Schritte

Das Anheften von Zertifikaten dient zur Abwehr von MITM-Angriffen (Man-in-the-Middle). Beim Anheften wird ein Host mit dem erwarteten X.509-Zertifikat oder öffentlichen Schlüssel verknüpft. Sobald ein Zertifikat oder ein öffentlicher Schlüssel für einen Host bekannt oder angezeigt wird, wird das Zertifikat oder der öffentliche Schlüssel dem Host zugeordnet oder "angeheftet".

Startet ein Angreifer nun einen TLS-MITM-Angriff, unterscheidet sich der Schlüssel des für den Angriff verwendeten Servers beim TLS-Handshake vom Schlüssel des angehefteten Zertifikats, woraufhin die Anforderung verworfen und der MITM-Angriff abgewehrt wird. Das Anheften von Zertifikaten kann durch Implementieren des ServicePointManager-Delegaten ServerCertificateValidationCallback erreicht werden.

Beispiel

using System;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography;

namespace CertificatePinningExample
{
    class CertificatePinningExample
    {
        /* Note: In this example, we're hardcoding the certificate's public key and algorithm for 
           demonstration purposes. In a real-world application, this should be stored in a secure
           configuration area that can be updated as needed. */

        private static readonly string PINNED_ALGORITHM = "RSA";

        private static readonly string PINNED_PUBLIC_KEY = "3082010A0282010100B0E75B7CBE56D31658EF79B3A1" +
            "294D506A88DFCDD603F6EF15E7F5BCBDF32291EC50B2B82BA158E905FE6A83EE044A48258B07FAC3D6356AF09B2" +
            "3EDAB15D00507B70DB08DB9A20C7D1201417B3071A346D663A241061C151B6EC5B5B4ECCCDCDBEA24F051962809" +
            "FEC499BF2D093C06E3BDA7D0BB83CDC1C2C6660B8ECB2EA30A685ADE2DC83C88314010FFC7F4F0F895EDDBE5C02" +
            "ABF78E50B708E0A0EB984A9AA536BCE61A0C31DB95425C6FEE5A564B158EE7C4F0693C439AE010EF83CA8155750" +
            "09B17537C29F86071E5DD8CA50EBD8A409494F479B07574D83EDCE6F68A8F7D40447471D05BC3F5EAD7862FA748" +
            "EA3C92A60A128344B1CEF7A0B0D94E50203010001";


        public static void Main(string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://azure.microsoft.com");
            request.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) =>
            {
                if (certificate == null || sslPolicyErrors != SslPolicyErrors.None)
                {
                    // Error getting certificate or the certificate failed basic validation
                    return false;
                }

                var targetKeyAlgorithm = new Oid(certificate.GetKeyAlgorithm()).FriendlyName;
                var targetPublicKey = certificate.GetPublicKeyString();
                
                if (targetKeyAlgorithm == PINNED_ALGORITHM &&
                    targetPublicKey == PINNED_PUBLIC_KEY)
                {
                    // Success, the certificate matches the pinned value.
                    return true;
                }
                // Reject, either the key or the algorithm does not match the expected value.
                return false;
            };

            try
            {
                var response = (HttpWebResponse)request.GetResponse();
                Console.WriteLine($"Success, HTTP status code: {response.StatusCode}");
            }
            catch(Exception ex)
            {
                Console.WriteLine($"Failure, {ex.Message}");
            }
            Console.WriteLine("Press any key to end.");
            Console.ReadKey();
        }
    }
}

HTTPS aktivieren – Secure Transport-Kanal

Titel Einzelheiten
Komponente WCF
SDL-Phase Bauen
Zutreffende Technologien .NET Framework 3
Attribute Nicht verfügbar
Informationsquellen MSDN, Fortify Kingdom
Schritte Die Anwendungskonfiguration sollte sicherstellen, dass HTTPS für den gesamten Zugriff auf vertrauliche Informationen verwendet wird.
  • ERKLÄRUNG: Wenn eine Anwendung vertrauliche Informationen verarbeitet und keine Verschlüsselung auf Nachrichtenebene verwendet, darf sie nur über einen verschlüsselten Transportkanal kommunizieren.
  • EMPFEHLUNGEN: Stellen Sie sicher, dass der HTTP-Transport deaktiviert ist, und aktivieren Sie stattdessen DEN HTTPS-Transport. Ersetzen Sie z. B. das <httpTransport/>-Tag durch das <httpsTransport/>-Tag. Verlassen Sie sich nicht auf eine Netzwerkkonfiguration (Firewall), um sicherzustellen, dass nur über einen sicheren Kanal auf die Anwendung zugegriffen werden kann. Aus philosophischer Sicht sollte die Anwendung nicht von dem Netzwerk für seine Sicherheit abhängen.

Aus praktischer Sicht verfolgen die für die Sicherung des Netzwerks verantwortlichen Personen nicht immer die Sicherheitsanforderungen der Anwendung, während sie sich entwickeln.

WCF: Festlegen der Sicherheitsstufe für Nachrichten auf EncryptAndSign

Titel Einzelheiten
Komponente WCF
SDL-Phase Bauen
Zutreffende Technologien .NET Framework 3
Attribute Nicht verfügbar
Informationsquellen MSDN-
Schritte
  • ERKLÄRUNG: Wenn die Schutzebene auf "none" festgelegt ist, wird der Nachrichtenschutz deaktiviert. Vertraulichkeit und Integrität werden mit einem angemessenen Einstellungsniveau erreicht.
  • EMPFEHLUNGEN:
    • when Mode=None – Deaktiviert den Nachrichtenschutz
    • when Mode=Sign - Signiert, aber nicht verschlüsselt die Nachricht; sollte verwendet werden, wenn die Datenintegrität wichtig ist.
    • when Mode=EncryptAndSign – Signiert und verschlüsselt die Nachricht

Erwägen Sie das Deaktivieren der Verschlüsselung und nur das Signieren Ihrer Nachricht, wenn Sie nur die Integrität der Informationen ohne Bedenken der Vertraulichkeit überprüfen müssen. Dies kann für Vorgänge oder Dienstleistungsverträge nützlich sein, in denen Sie den ursprünglichen Absender überprüfen müssen, aber keine vertraulichen Daten übertragen werden. Achten Sie beim Verringern des Schutzniveaus darauf, dass die Nachricht keine personenbezogenen Daten enthält.

Beispiel

Das Konfigurieren des Diensts und des Vorgangs, um nur die Nachricht zu signieren, wird in den folgenden Beispielen gezeigt. Dienstvertragsbeispiel: ProtectionLevel.SignNachfolgend sehen Sie ein Beispiel für die Verwendung von ProtectionLevel.Sign auf Dienstvertragsebene:

[ServiceContract(Protection Level=ProtectionLevel.Sign] 
public interface IService 
  { 
  string GetData(int value); 
  } 

Beispiel

Beispiel eines Operationsvertrags von ProtectionLevel.Sign (für granulare Kontrolle): Im Folgenden ist ein Beispiel für die Verwendung von ProtectionLevel.Sign auf der Ebene des OperationContract:

[OperationContract(ProtectionLevel=ProtectionLevel.Sign] 
string GetData(int value);

WCF: Verwenden eines Am wenigsten privilegierten Kontos zum Ausführen Ihres WCF-Diensts

Titel Einzelheiten
Komponente WCF
SDL-Phase Bauen
Zutreffende Technologien .NET Framework 3
Attribute Nicht verfügbar
Informationsquellen MSDN-
Schritte
  • ERKLÄRUNG: Führen Sie keine WCF-Dienste unter Administrator- oder Hochprivilegierungskonto aus. im Falle einer Kompromittierung von Diensten führt dies zu einer hohen Auswirkung.
  • EMPFEHLUNGEN: Verwenden Sie ein Konto mit den geringsten Rechten, um Ihren WCF-Dienst zu hosten, da dadurch die Angriffsfläche Ihrer Anwendung reduziert und der potenzielle Schaden reduziert wird, wenn Sie angegriffen werden. Wenn für das Dienstkonto zusätzliche Zugriffsrechte für Infrastrukturressourcen wie MSMQ, das Ereignisprotokoll, Leistungsindikatoren und das Dateisystem erforderlich sind, sollten diesen Ressourcen entsprechende Berechtigungen erteilt werden, damit der WCF-Dienst erfolgreich ausgeführt werden kann.

Wenn Ihr Dienst im Namen des ursprünglichen Anrufers auf bestimmte Ressourcen zugreifen muss, verwenden Sie den Identitätswechsel und die Delegierung, um die Identität des Anrufers für eine nachgeschaltete Autorisierungsprüfung zu übermitteln. Verwenden Sie in einem Entwicklungsszenario das lokale Netzwerkdienstkonto, bei dem es sich um ein spezielles integriertes Konto handelt, das über eingeschränkte Berechtigungen verfügt. Erstellen Sie in einem Produktionsszenario ein benutzerdefiniertes Domänendienstkonto mit den geringsten Rechten.

Erzwingen des gesamten an Web-APIs gerichtete Datenverkehr über eine HTTPS-Verbindung

Titel Einzelheiten
Komponente Web-API
SDL-Phase Bauen
Zutreffende Technologien MVC5, MVC6
Attribute Nicht verfügbar
Informationsquellen Erzwingen von SSL in einem Web-API-Controller
Schritte Wenn eine Anwendung sowohl über ein HTTPS als auch über eine HTTP-Bindung verfügt, können Clients weiterhin HTTP für den Zugriff auf die Website verwenden. Um dies zu verhindern, verwenden Sie einen Aktionsfilter, um sicherzustellen, dass Anforderungen an geschützte APIs immer über HTTPS liegen.

Beispiel

Der folgende Code zeigt einen Web-API-Authentifizierungsfilter, der nach TLS sucht:

public class RequireHttpsAttribute : AuthorizationFilterAttribute
{
    public override void OnAuthorization(HttpActionContext actionContext)
    {
        if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
        {
            actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
            {
                ReasonPhrase = "HTTPS Required"
            };
        }
        else
        {
            base.OnAuthorization(actionContext);
        }
    }
}

Fügen Sie diesen Filter zu beliebigen Web-API-Aktionen hinzu, für die TLS erforderlich ist:

public class ValuesController : ApiController
{
    [RequireHttps]
    public HttpResponseMessage Get() { ... }
}

Sicherstellen, dass die Kommunikation mit Azure Cache für Redis über TLS erfolgt

Titel Einzelheiten
Komponente Azure Cache für Redis
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen Azure Redis TLS-Unterstützung
Schritte Redis-Server unterstützt TLS nicht von Haus aus, aber Azure Cache für Redis unterstützt es jedoch. Wenn Sie eine Verbindung mit Azure Cache für Redis herstellen und Ihr Client TLS unterstützt, z. B. StackExchange.Redis, sollten Sie TLS verwenden. Standardmäßig ist der Nicht-TLS-Port für neue Azure Cache für Redis-Instanzen deaktiviert. Stellen Sie sicher, dass die sicheren Standardwerte nicht geändert werden, es sei denn, es gibt eine Abhängigkeit von der TLS-Unterstützung für Redis-Clients.

Bitte beachten Sie, dass Redis darauf ausgelegt ist, von vertrauenswürdigen Clients in vertrauenswürdigen Umgebungen zugegriffen werden zu können. Dies bedeutet, dass es in der Regel nicht sinnvoll ist, die Redis-Instanz direkt im Internet oder in einer Umgebung verfügbar zu machen, in der nicht vertrauenswürdige Clients direkt auf den Redis TCP-Port oder UNIX-Socket zugreifen können.

Sichere Kommunikation zwischen Gerät und Feldgateway

Titel Einzelheiten
Komponente IoT-Bereichsgateway
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen Nicht verfügbar
Schritte Bei IP-basierten Geräten könnte das Kommunikationsprotokoll in der Regel in einem SSL/TLS-Kanal gekapselt werden, um Daten während der Übertragung zu schützen. Bei anderen Protokollen, die SSL/TLS nicht unterstützen, untersuchen Sie, ob sichere Versionen des Protokolls vorhanden sind, die Sicherheit auf Transport- oder Nachrichtenebene bereitstellen.

Sicheres Gerät zur Cloudgateway-Kommunikation mit SSL/TLS

Titel Einzelheiten
Komponente IoT-Cloudgateway
SDL-Phase Bauen
Zutreffende Technologien Generisch
Attribute Nicht verfügbar
Informationsquellen Wählen Sie Ihr Kommunikationsprotokoll aus.
Schritte Sichere HTTP/AMQP- oder MQTT-Protokolle mit SSL/TLS.