A cifra RC4 não funciona no Windows 2008 R2 / IIS 7.5

1

Eu tenho o schannel configurado para não permitir protocolos e cifras inseguros de acordo com as recomendações padrão, mas eu só posso reportar relatórios AES & 3DES como opções de codificação disponíveis. Embora o RC4 deva estar habilitado e esteja configurado como a cifra preferida, ele simplesmente não surge como uma opção.

As configurações do registro do schannel são configuradas da seguinte forma:

HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
  Ciphers
    AES 128/128: Enabled (1)
    AES 256/256: Enabled (1)
    DES 56/56: Enabled (0)
    NULL: Enabled (0)
    RC2 128/128: Enabled (0)
    RC2 40/128: Enabled (0)
    RC2 56/128: Enabled (0)
    RC4 128/128: Enabled (1)
    RC4 40/128: Enabled (0)
    RC4 56/128: Enabled (0)
    RC4 64/128: Enabled (0)
    Triple DES 168/168: Enabled (1)
  Protocols
    PCT 1.0
      Server: Enabled (0)
    SSL 2.0
      Server: Enabled (0)
    SSL 3.0
      Server: Enabled (1)
    TLS 1.0
      Server: Enabled (1)
    TLS 1.1
      Server: DisabledByDefault (0), Enabled (1)
    TLS 1.2
      Server: DisabledByDefault (0), Enabled (1)
HKLM\SYSTEM\CurrentControlSet\Control\

A saída do SSLScan é:

Supported Server Cipher(s):
Rejected  SSLv2  168 bits  DES-CBC3-MD5
Rejected  SSLv2   56 bits  DES-CBC-MD5
Rejected  SSLv2  128 bits  IDEA-CBC-MD5
Rejected  SSLv2   40 bits  EXP-RC2-CBC-MD5
Rejected  SSLv2  128 bits  RC2-CBC-MD5
Rejected  SSLv2   40 bits  EXP-RC4-MD5
Rejected  SSLv2  128 bits  RC4-MD5
Failed    SSLv3  256 bits  ADH-AES256-SHA
Failed    SSLv3  256 bits  DHE-RSA-AES256-SHA
Failed    SSLv3  256 bits  DHE-DSS-AES256-SHA
Failed    SSLv3  256 bits  AES256-SHA
Failed    SSLv3  128 bits  ADH-AES128-SHA
Failed    SSLv3  128 bits  DHE-RSA-AES128-SHA
Failed    SSLv3  128 bits  DHE-DSS-AES128-SHA
Failed    SSLv3  128 bits  AES128-SHA
Failed    SSLv3  168 bits  ADH-DES-CBC3-SHA
Failed    SSLv3   56 bits  ADH-DES-CBC-SHA
Failed    SSLv3   40 bits  EXP-ADH-DES-CBC-SHA
Failed    SSLv3  128 bits  ADH-RC4-MD5
Failed    SSLv3   40 bits  EXP-ADH-RC4-MD5
Failed    SSLv3  168 bits  EDH-RSA-DES-CBC3-SHA
Failed    SSLv3   56 bits  EDH-RSA-DES-CBC-SHA
Failed    SSLv3   40 bits  EXP-EDH-RSA-DES-CBC-SHA
Failed    SSLv3  168 bits  EDH-DSS-DES-CBC3-SHA
Failed    SSLv3   56 bits  EDH-DSS-DES-CBC-SHA
Failed    SSLv3   40 bits  EXP-EDH-DSS-DES-CBC-SHA
Accepted  SSLv3  168 bits  DES-CBC3-SHA
Failed    SSLv3   56 bits  DES-CBC-SHA
Failed    SSLv3   40 bits  EXP-DES-CBC-SHA
Failed    SSLv3  128 bits  IDEA-CBC-SHA
Failed    SSLv3   40 bits  EXP-RC2-CBC-MD5
Failed    SSLv3  128 bits  RC4-SHA
Failed    SSLv3  128 bits  RC4-MD5
Failed    SSLv3   40 bits  EXP-RC4-MD5
Failed    SSLv3    0 bits  NULL-SHA
Failed    SSLv3    0 bits  NULL-MD5
Failed    TLSv1  256 bits  ADH-AES256-SHA
Failed    TLSv1  256 bits  DHE-RSA-AES256-SHA
Failed    TLSv1  256 bits  DHE-DSS-AES256-SHA
Accepted  TLSv1  256 bits  AES256-SHA
Failed    TLSv1  128 bits  ADH-AES128-SHA
Failed    TLSv1  128 bits  DHE-RSA-AES128-SHA
Failed    TLSv1  128 bits  DHE-DSS-AES128-SHA
Accepted  TLSv1  128 bits  AES128-SHA
Failed    TLSv1  168 bits  ADH-DES-CBC3-SHA
Failed    TLSv1   56 bits  ADH-DES-CBC-SHA
Failed    TLSv1   40 bits  EXP-ADH-DES-CBC-SHA
Failed    TLSv1  128 bits  ADH-RC4-MD5
Failed    TLSv1   40 bits  EXP-ADH-RC4-MD5
Failed    TLSv1  168 bits  EDH-RSA-DES-CBC3-SHA
Failed    TLSv1   56 bits  EDH-RSA-DES-CBC-SHA
Failed    TLSv1   40 bits  EXP-EDH-RSA-DES-CBC-SHA
Failed    TLSv1  168 bits  EDH-DSS-DES-CBC3-SHA
Failed    TLSv1   56 bits  EDH-DSS-DES-CBC-SHA
Failed    TLSv1   40 bits  EXP-EDH-DSS-DES-CBC-SHA
Accepted  TLSv1  168 bits  DES-CBC3-SHA
Failed    TLSv1   56 bits  DES-CBC-SHA
Failed    TLSv1   40 bits  EXP-DES-CBC-SHA
Failed    TLSv1  128 bits  IDEA-CBC-SHA
Failed    TLSv1   40 bits  EXP-RC2-CBC-MD5
Failed    TLSv1  128 bits  RC4-SHA
Failed    TLSv1  128 bits  RC4-MD5
Failed    TLSv1   40 bits  EXP-RC4-MD5
Failed    TLSv1    0 bits  NULL-SHA
Failed    TLSv1    0 bits  NULL-MD5

Cifra (s) de servidor preferida (s):     SSLv3 168 bits DES-CBC3-SHA     TLSv1 256 bits AES256-SHA

Como você pode ver, o RC4 não é aceito como uma opção. Eu usei a mesma configuração (exceto para o TLS 1.1-1.2) nos servidores Windows 2003R2 / IIS6 antes e o RC4 não foi um problema.

Alguém pode me ajudar a descobrir por que o RC4 128/128 não está funcionando?

Obrigado!

    
por Jason Duffett 29.04.2012 / 14:24

1 resposta

2

O problema pelo qual o RC4 não está funcionando é que ele precisa ser configurado para 0xfffffff ou 4294967295 no registro, não 1 para ativá-lo.

Veja algumas funções do PowerShell que foram usadas para configurar nossas instalações do IIS com o PCI:

Esta função é usada para ativar / desativar os protocolos necessários

function Set-IISSecurityProtocols {
$protopath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols"
& reg.exe add "$protopath\PCT 1.0\Server" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$protopath\SSL 2.0\Server" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$protopath\SSL 3.0\Server" /v Enabled /t REG_DWORD /d 00000001 /f
& reg.exe add "$protopath\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 00000001 /f
& reg.exe add "$protopath\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 00000001 /f
& reg.exe add "$protopath\TLS 1.1\Server" /v DisabledByDefault /t REG_DWORD /d 00000000 /f
& reg.exe add "$protopath\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 00000001 /f
& reg.exe add "$protopath\TLS 1.2\Server" /v DisabledByDefault /t REG_DWORD /d 00000000 /f
& reg.exe add "$protopath\TLS 1.1\Client" /v Enabled /t REG_DWORD /d 00000001 /f
& reg.exe add "$protopath\TLS 1.1\Client" /v DisabledByDefault /t REG_DWORD /d 00000000 /f
& reg.exe add "$protopath\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 00000001 /f
& reg.exe add "$protopath\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 00000000 /f

}

E esta função é onde você define quais cifras podem ser usadas ou não usadas

function Set-IISSupportedCiphers {
$cipherpath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers"
& reg.exe add "$cipherpath\NULL" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$cipherpath\DES 56/56" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$cipherpath\RC2 40/128" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$cipherpath\RC2 56/128" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$cipherpath\RC2 128/128" /v Enabled /t REG_DWORD /d 00000000 /f 
& reg.exe add "$cipherpath\RC4 40/128" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$cipherpath\RC4 56/128" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$cipherpath\RC4 64/128" /v Enabled /t REG_DWORD /d 00000000 /f
& reg.exe add "$cipherpath\RC4 128/128" /v Enabled /t REG_DWORD /d 4294967295 /f
& reg.exe add "$cipherpath\Triple DES 168/168" /v Enabled /t REG_DWORD /d 4294967295 /f
& reg.exe add "$cipherpath\AES 128/128" /v Enabled /t REG_DWORD /d 4294967295 /f 
& reg.exe add "$cipherpath\AES 256/256" /v Enabled /t REG_DWORD /d 4294967295 /f

}

Uma vez que estas alterações tenham sido definidas (é necessária uma reinicialização afaik), você pode definir a prioridade na qual as cifras são usadas.

Para imunizar a vulnerabilidade do BEAST, recomenda-se que você use o RC4 primeiro, conforme descrito @ link

Este será o caso até que

  • Todos os navegadores corrigem a vulnerabilidade do BEAST
  • Ou todos começam a suportar o TLS1.2
por 13.07.2012 / 20:56