2008-09-18 9 views
5

SslStream soll den Verschlüsselungstyp, die Schlüssellänge, den Hash-Algorithmus usw. mit seinem Peer-SSL-Stack aushandeln. Wenn ich es in meinem Code verwende, finde ich, dass die Verhandlung immer auf RC4 & MD5 vorbesetzt wird. Ich würde gerne 3DES oder AES für zusätzliche Sicherheit verwenden..NET SslStream verhandelt immer mit der am wenigsten sicheren Chiffre, die ich habe. Wie kann ich das ändern?

Im Web zu sehen finde ich nur ein paar Hinweise auf dieses Problem und keine Lösungen; Ein Poster behauptet, dass dies tatsächlich Sinn macht, da der kleinste gemeinsame Nenner zwischen den beiden Stapeln sicher ist, während er den zusätzlichen Vorteil hat, schneller zu sein/weniger CPU-Ressourcen zu verbrauchen. Während dies technisch korrekt sein kann, liegt mein besonderer Kompromiss zwischen Komplexität und Kosten anderswo (ich bevorzuge AES mit einem langen Schlüssel).

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

Antwort

1

Sie können auswählen, welche Protokolle zur Auswahl stehen, indem Sie einige einfache Registrierungsänderungen vornehmen. Wir entfernen zum Beispiel die Möglichkeit, RC4 auszuwählen. Sie müssen nur die Änderung an einem Ende der Verbindung (zB Server), da der Client und Server machen verhandeln allgemein unterstützter Algorithmus

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

Besten Wunsch James

+0

Danke. Der Link ist zu Windows CE-Dokumentation. Wissen Sie, ob dieselben Registrierungsschlüssel auch für Windows-Server (z. B. Windows 2008) gelten? – Shachar

+0

Entschuldigung, http://support.microsoft.com/kb/245030/ –

0

Es sollte den sichersten Satz von Algorithmen verwenden, die in beiden Listen enthalten waren. Ich finde es schwer zu glauben, dass dies nicht der Fall ist, weil SslStream den SChannel SSPI einpackt, und wenn das kaputt wäre, wären Internet Explorer, IIS und alles andere unter Windows ebenfalls kaputt.

Es könnte sein, dass Sie eine veraltete Version von SChannel.dll/Secur32.dll haben. Welche OS- und Internet Explorer-Version haben Sie installiert?

Es ist möglich, disable protocols in SCHANNEL. Könnten Sie überprüfen, dass dies nicht erfolgt ist?

+0

Ich bin mit XP SP3 finden und IE7 mit allen Updates. Die Registrierung scheint mit allem aktiviert zu sein. – Shachar

0

Ich benutze XP SP3 und IE7 mit allen Updates. Die Registrierung scheint mit allem aktiviert zu sein.

0

In Java können Sie die verschiedenen Algorithmen/Verschlüsselungen nach Ihren Bedürfnissen und Vorlieben bestellen. Möglicherweise gibt es eine ähnliche API in .NET ...

3

SSLStream verwendet Schannel, das 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 sie die SSL Cipher Suite Auftrag Gruppenrichtlinieneinstellungen Konfiguration des Gruppenrichtlinienobjekt-Snap-in in Microsoft Management Console (Windows Vista)

Aber das Problem mit ist, dass Windows XP AES in der Liste der für SSLStream verfügbaren Verschlüsselungen nicht enthält. Es ist jedoch möglich, in Windows XP die Registrierungseinstellungen zu ändern: HKLM \ System \ CurrentControlSet \ Control \ Lsa \ FIPSAlgorithmPolicy 1, um 3DES cipher zu bekommen.