.NET SslStream è sempre in fase di trattativa per il meno sicuro di crittografia che ho.Come posso cambiare questo?

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

  •  01-07-2019
  •  | 
  •  

Domanda

SslStream dovrebbe negoziare il tipo di crittografia, la lunghezza della chiave, algoritmo di hash, etc.con la sua peer SSL stack.Quando si utilizza nel mio codice, trovo che la trattativa sempre di default RC4 & MD5.Vorrei utilizzare il 3DES o AES per alcuni una maggiore sicurezza.

Cercando in giro per il web trovo solo un paio di riferimenti a questo problema e non della soluzione;un poster che rivendicano questo rende effettivamente senso, dal momento che il minimo comune denominatore tra le due pile è al sicuro, mentre ha il vantaggio di essere più veloce/che utilizza meno risorse di CPU.Mentre questo può essere tecnicamente corretto, il mio particolare trade-off tra i costi e la complessità è altrove (io preferisco usare AES con una lunga chiave).

Se qualcuno può aiutarmi sarei grato.

È stato utile?

Soluzione

È possibile selezionare quali protocolli sono disponibili per la selezione facendo alcune semplici modifiche al registro di sistema.Togliamo la possibilità di selezionare RC4, per esempio.Hai solo bisogno di fare la modifica ad una estremità della connessione (ad esempio, server), in quanto il client e il server negoziare per trovare comunemente supportati algoritmo

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

I migliori auguri James

Altri suggerimenti

SSLStream utilizza Schannel che viene fornito con il sistema operativo.Le suite sono elencati in ordine di default in cui vengono scelti da Microsoft Schannel Fornitore di :

Windows Vista:

RSA CON AES_128 CBC SHA
RSA CON AES_256 CBC SHA
RSA CON RC4_128 SHA

...

Windows XP:

RSA CON RC4 A 128 MD5
RSA CON RC4 A 128 SHA

RSA CON 3DES-CBC SHA

....

È inoltre possibile modificare l'elenco delle suite di cifratura configurando il Ordine Suite di Crittografia SSL impostazioni di criteri di gruppo utilizzando l'Oggetto Criteri di Gruppo snap-in Microsoft Management Console (Windows Vista)

Ma il problema è che Windows XP non include AES nella lista di codici disponibili per SSLStream.Tuttavia, è possibile cambiare le impostazioni del Registro di sistema in Windows XP:HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy 1 per ottenere 3DES cipher.

Dovrebbe essere utilizzando il più sicuro insieme di algoritmi che sono stati in entrambe le liste.Trovo difficile credere che non lo è, perché SslStream avvolge la SSPI SChannel, e se fosse rotto quindi Internet Explorer, IIS e tutto il resto su Windows sarebbe rotto troppo.

Potrebbe essere che hai una versione obsoleta di SChannel.dll/Secur32.dll.Quale sistema operativo e la versione di Internet Explorer hai installato?

È possibile disattivare i protocolli in SCHANNEL.Potresti controllare che questo non è stato fatto?

Sto usando XP SP3 e IE7 con tutti gli aggiornamenti.Il registro di sistema sembra configurato con tutto attivato.

In Java è possibile ordinare i vari algoritmi/cifre in base alle vostre esigenze e preferenze.Può essere c'è un simile API .NET...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top