.NET ist SslStream verhandelt immer auf die am wenigsten sichere Chiffre ich habe. Wie kann ich das ändern?

StackOverflow https://stackoverflow.com/questions/91304

  •  01-07-2019
  •  | 
  •  

Frage

SslStream soll den Verschlüsselungstyp, Schlüssellänge, Hash-Algorithmus usw. mit seinem Peer-SSL-Stack verhandeln. Wenn es in meinem Code verwenden, finde ich, dass die Aushandlung standardmäßig immer RC4 & MD5. Ich möchte 3DES oder AES für einige zusätzliche Sicherheit verwendet werden.

Suchen Sie rund um die Web ich nur ein paar Hinweise auf dieses Problem und keine Lösungen finden; ein Plakat behauptet, dies tatsächlich Sinn macht, da der kleinste gemeinsame Nenner zwischen den beiden Stapeln zu sichern, während ist, hat den zusätzlichen Vorteil, schneller zu sein / mit weniger CPU-Ressourcen. Während dies technisch korrekt sein kann, mein besonderer Kompromiss zwischen Komplexität und Kosten liegt woanders (Ich ziehe es mit einem langen Schlüssel AES verwenden).

Wenn jemand helfen kann ich es schätzen würde.

War es hilfreich?

Lösung

Sie können wählen, welche Protokolle für die Auswahl, indem sie einige einfache Änderungen in der Registrierung zur Verfügung stehen. Wir entfernen die Fähigkeit RC4 zu wählen, zum Beispiel. Sie müssen nur die Änderung an einem Ende der Verbindung (zB Server) machen, weil der Client und Server verhandeln allgemein unterstützten Algorithmus finden

http://msdn.microsoft.com/en-us/library /ms925716.aspx

Die besten Wünsche James

Andere Tipps

SslStream verwendet Schannel, die mit dem Betriebssystem geliefert wird. Die Suiten sind in der Standard-Reihenfolge aufgeführt, in der sie von dem Microsoft Schannel Provider gewählt werden:

Windows Vista:

  

RSA MIT AES_128 CBC SHA
  RSA MIT AES_256 CBC SHA
  RSA MIT RC4_128 SHA

     

...

Windows XP:

  

RSA MIT RC4 128 MD5
  RSA MIT RC4 128 SHA

     

RSA mit 3DES-CBC SHA

     

....

Sie können auch die Liste des Chiffriersätze ändern, indem die Konfiguration der SSL Cipher Suite Order Gruppenrichtlinieneinstellungen des Gruppenrichtlinienobjekt-Snap-in in Microsoft Management Console (Windows Vista) mit

Aber das Problem ist, dass Windows XP ist AES nicht enthalten in der Liste der Chiffren für SslStream verfügbar. Allerdings ist es möglich, Registry-Einstellungen in Windows XP zu ändern: HKLM \ System \ CurrentControlSet \ Control \ Lsa \ FipsAlgorithmPolicy 1 für immer 3DES Chiffre.

Es sollte mit dem sichersten Satz von Algorithmen, die in beiden Listen waren. Ich finde es schwer zu glauben, dass es nicht ist, weil SslStream die SChannel SSPI wickelt, und wenn das gebrochen wurden dann Internet Explorer, IIS und alles andere auf Windows wäre zu brechen.

Es könnte sein, dass Sie eine veraltete Version von Schannel.dll / Secur32.dll haben. Was für OS und Internet Explorer Version tun Sie installiert haben?

Es ist möglich, Protokolle in SCHANNEL zu deaktivieren. Könnten Sie getan hat, dies nicht überprüfen das?

Ich bin mit XP SP3 und IE7 mit allen Updates. Die Registry scheint konfiguriert mit allem, was aktiviert ist.

In Java können Sie die verschiedenen Algorithmen / Chiffren bestellen Sie Ihre Bedürfnisse und Vorlieben entsprechend. Kann es eine ähnliche API in .NET ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top