Beispiele für Sicherheitskanalebenen

Die folgenden Beispiele veranschaulichen die Sicherheit auf der Kanalebene.

Windows Transportsicherheit über TCP: Client: RequestReplyTcpClientWithWindowsTransportSecurityExample, Server: RequestReplyTcpServerWithWindowsTransportSecurityExample.

Windows Transportsicherheit über Named Pipes: Client: RequestReplyNamedPipesClientWithWindowsTransportSecurityExample, Server: RequestReplyNamedPipesServerWithWindowsTransportSecurityExample.

SSL-Transportsicherheit: Client: HttpClientWithSslExample, Server: HttpServerWithSslExample.

Sicherheit für Benutzername über SSL im gemischten Modus: Client: HttpClientWithUsernameOverSslExample, Server: HttpServerWithUsernameOverSslExample.

Sicherheit für Benutzername über SSL im gemischten Modus: Client: HttpClientWithKerberosOverSslExample, Server: HttpServerWithKerberosOverSslExample.

Sicherheit für Benutzername über SSL im gemischten Modus: MetadataImportWithUsernameOverSslExample. Ausgestelltes Token über SSL-Sicherheit im gemischten Modus: MetadataImportWithIssuedTokenOverSslExample. X509-Zertifikat über SSL-Sicherheit im gemischten Modus: MetadataImportWithX509OverSslExample.

One-Time-Setup für Sicherheitsbeispiele

Zum Ausführen von WWSAPI-Sicherheitsbeispielen müssen Sie die Client- und Serverzertifikate für SSL sowie ein lokales Benutzerkonto für die HTTP-Headerauthentifizierung einrichten. Bevor Sie beginnen, benötigen Sie die folgenden Tools:

  • MakeCert.exe (verfügbar im Windows 7 SDK)
  • CertUtil.exe oder CertMgr.exe (CertUtil.exe ist ab Windows Server 2003 in den Windows SDKs verfügbar. CertMgr.exe ist im Windows 7 SDK verfügbar. Sie benötigen nur eines dieser Tools.)
  • HttpCfg.exe: (Sie benötigen dies nur, wenn Sie Windows 2003 oder Windows XP verwenden. Dieses Tool ist in Windows XP SP2-Supporttools verfügbar und auch in der CD Windows Server 2003 Resource Kit Tools enthalten.)

Wenn Sie die WWSAPI-Beispiele erhalten, indem Sie das Windows 7 SDK installieren, finden Sie die MakeCert.exe und CertMgr.exe unter %ProgramFiles% \ Microsoft SDKs \ Windows \ v7.0 \ bin.

Führen Sie das folgende fünfstufige Setup über die Eingabeaufforderung aus (mit erhöhten Rechten, wenn Sie Windows Vista und höher verwenden):

  1. Generieren Sie ein selbstsigniertes Zertifikat als Zertifizierungsstelle oder Aussteller: MakeCert.exe -ss Root -sr LocalMachine -n "CN=Fake-Test-CA" -cy authority -r -sk "CAKeyContainer"
  2. Generieren Sie ein Serverzertifikat mit dem vorherigen Zertifikat als Aussteller: MakeCert.exe -ss My -sr LocalMachine -n "CN=localhost" -sky exchange -is Root -ir LocalMachine -in Fake-Test-CA -sk "ServerKeyContainer"
  3. Suchen Sie den Fingerabdruck (einen SHA-1-Hash mit 40 Zeichen) des Serverzertifikats, indem Sie einen der folgenden Befehle ausführen und nach dem Zertifikat namens localhost mit dem Aussteller Fake-Test-CA suchen:
    • CertUtil.exe -store My localhost
    • CertMgr.exe -s -r LocalMachine My
  4. Registrieren Sie den Fingerabdruck des Serverzertifikats ohne Leerzeichen mit HTTP.SYS:
    • Auf Windows Vista und höher (die Option "appid" ist eine beliebige GUID): Netsh.exe http add sslcert ipport=0.0.0.0:8443 appid={00112233-4455-6677-8899-AABBCCDDEEFF} certhash=<40CharacterThumbprint>
    • Auf Windows XP oder 2003: HttpCfg.exe ssl -i 0.0.0.0:8443 -h <40CharacterThumbprint->
  5. Erstellen eines lokalen Benutzers: Net user "TestUserForBasicAuth" "TstPWD@ * 4Bsic" /add

Führen Sie die folgenden Befehle aus, um die Zertifikate, die SSL-Zertifikatbindung und das in den vorherigen Schritten erstellte Benutzerkonto zu bereinigen. Wenn mehrere Zertifikate mit dem gleichen Namen vorhanden sind, benötigen CertMgr.exe Ihre Eingabe, bevor sie gelöscht werden.

  • CertMgr.exe -del -c -n Fake-Test-CA -s -r LocalMachine Root
  • CertMgr.exe -del -c -n localhost -s -r LocalMachine My
  • Netsh.exe http delete sslcert ipport=0.0.0.0:8443 (oder HttpCfg.exe ssl -i 0.0.0.0:8443 löschen)
  • Net user "TestUserForBasicAuth" /delete

Stellen Sie sicher, dass nur ein Stammzertifikat mit dem Namen Fake-Test-CA vorhanden ist. Wenn Sie sich nicht sicher sind, ist es immer sicher, diese Zertifikate mithilfe der oben genannten Bereinigungsbefehle zu bereinigen (und Fehler zu ignorieren), bevor Sie mit dem fünfstufigen Setup beginnen.