2015-04-21 14 views
9

Possiedo un'applicazione Web ospitata su Microsoft Azure Web-Role. Come posso disabilitare il cifrario RC4?Come disattivare il cifrario RC4 sui ruoli Web di Azure

+0

Perché disattivarlo? Qualche grande vulnerabilità? – sharptooth

+0

@sharptooth Sì, la crittografia RC4 è debole. –

+1

Prova questo script: https://gist.github.com/sidshetye/29d6d48dfa0c2f5488a4 che risolve i problemi di sicurezza e anche il problema di PowerShell. – Rory

risposta

9

Il problema che ho riscontrato usando uno script PowerShell era che le chiavi che richiedono la modifica contengono una barra diretta e Powershell considera questo come separatore di percorso e lo script fallisce.

La soluzione era quella di creare un'applicazione console e impostare che per l'esecuzione all'avvio:

class Program 
{ 
    static void Main(string[] args) 
    { 
     string[] subKeys = new string[] 
     { 
      "RC4 40/128", 
      "RC4 56/128", 
      "RC4 64/128", 
      "RC4 128/128", 
     }; 

     RegistryKey parentKey = Registry.LocalMachine.OpenSubKey(
      @"SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", true); 

     foreach (string keyName in subKeys) 
     { 
      var newKey = parentKey.CreateSubKey(keyName); 
      newKey.SetValue("Enabled", 0); 
      newKey.Close(); 
     } 
     parentKey.Close(); 
    } 
} 

Copiare il file di output (DisableRc4.exe nel mio caso) alla radice del WebRole e impostare Copia sempre

Creare un file contenente DisableRc4.cmd

.\DisableRc4.exe 
EXIT /B 0 

Aggiornamento ServiceDefinition.csdef per il vostro ruolo web come segue

<Startup> 
    <Task commandLine="DisableRc4.cmd" executionContext="elevated" taskType="simple" /> 
</Startup> 

ho verificato il supporto RC4 è stato rimosso usando https://www.ssllabs.com/ssltest/index.html

Prima della messa modificato Before startup cmd

Dopo After startup cmd

+0

il tuo codice e la spiegazione sono abbastanza buoni, ma nel mio caso c'è un errore nella lettura del Registro: "L'accesso al registro richiesto non è permesso". Non ti è successo? – nrod

+0

No, non ha mai avuto quel problema. Hai 'executionContext =" elevato "' nell'avvio? –

+1

Il mio codice è come: ' ​​ ' (non provate ancora sullo sfondo, era semplice) – nrod

1

SSL 3.0 è disabilitato nelle immagini del sistema operativo guest PaaS dopo la release di gennaio. Vedi http://azure.microsoft.com/en-us/documentation/articles/cloud-services-guestos-update-matrix/ per maggiori informazioni.

Perché pensi che SSL 3.0 sia ancora abilitato?

+0

Scusa, è stata colpa mia. Voglio disabilitare la crittografia RC4 non SSL 3.0 –

+1

@ m.samy Quindi dovresti aggiornare la tua domanda, o chiudere questa e chiederne una nuova. – BenV

+0

È possibile utilizzare lo script all'indirizzo http://azure.microsoft.com/blog/2014/10/19/how-to-disable-ssl-3-0-in-azure-websites-roles-and-virtual-machines/per abilitare o disabilitare qualsiasi suite di crittografia scelta. – kwill

0

vedo pochi di noi discutere di PowerShell ed emissione tramite avanti "/"in script, ma il sotto risolve il problema. Funziona.

([Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,$env:COMPUTERNAME)).CreateSubKey('SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128') 
1

La settimana scorsa c'era un aggiornamento del post sul blog che disattivare RC4 cifra di default su servizi cloud. https://azure.microsoft.com/en-us/blog/azure-services-ssl-tls-cipher-suite-update-and-removal-of-rc4/

Questo aggiornamento deve essere srotolare questo mese e se la versione del sistema operativo è configurato come automatico verrà installato automaticamente sul servizio cloud (vedi immagine sotto)

prossimo ospite OS: WA-guest- OS-4.31_201604-01
data di uscita: 2 maggio 2016

Operation system version configuration