Internet Explorer 8 - Erro Fatal TLS Close Notify - Apache HTTP Server - Oracle 2.2.22.0

1

Eu apliquei a correção POODLE para o Apache via "SSLProtocol All -SSLv2 -SSLv3" no arquivo ssl.conf para o nosso servidor Apache, mas estou tendo problemas com a autenticação do Cliente CAC via "SSLVerifyClient require". Eu confirmei se eu definir "SSLVerifyClient none" nosso aplicativo da web pode ser acessado via HTTPS e usa o protocolo correto de TLSv1 mas depois que eu definir "SSLVerifyClient require" (que é necessário porque nosso aplicativo da Web é habilitado para CAC) recebo uma página não ser exibido no IE (o IE tem SSLv2 e SSLv3 desativado, mas TLS1.0-3 ativado).

O cliente é o Windows 7 de 32 bits com o IE 8. O servidor é o Windows 2003 SP2.

Eu fiz uma captura de pacotes entre o cliente e o servidor. O primeiro cliente hello é para TLSv1.2, um erro fatal Close Notify é então enviado. Como meu servidor não suporta TLSv1.1 ou TLSv1.2, um Client Hello é enviado para TLSv1. O processo vai até a solicitação de certificado do cliente Server Hello Done e, em seguida, outro erro fatal Close Notify é enviado pelo cliente ..

Screen Cap here: link

Aqui estão os fluxos completos do TCP:

O primeiro stream de um cliente hello é enviado e tenta negociar o TLSv1.2 que o servidor rejeita, pois ele não suporta e envia uma notificação de fechamento. O segundo fluxo envia um cliente Olá por TLSv1.0 é enviar etc .. Mas isso é de uma única conexão para o servidor web ..

1º stream: i.imgur.com/pmiXn9t.jpg 2º fluxo: i.imgur.com/NIh1lsZ.jpg

A conexão está em TLSv1, como verifiquei no link . O servidor concorda mesmo com uma cifra TLS.

O Chrome funciona bem, mesmo com SSLv2 e SSLv3 desativados por meio de "chrome.exe --ssl-version-min = tls1"

Além disso, esta versão do Apache usa mod_ossl "O módulo mod_ossl permite criptografia strong para o Oracle HTTP Server. Este módulo da Oracle é um plug-in para o Oracle HTTP Server que permite que o servidor use SSL. É muito semelhante ao módulo OpenSSL O módulo mod_ossl é baseado na implementação do SSL da Oracle, que suporta SSL versão 3 e TLS versão 1, e é baseado na tecnologia Certicom e RSA Security. " Eu não sei como fazer upgrade para suportar o TLS v1.1 e o TLS v1.2, já que estou com a versão mais recente do OHS 11g da Oracle e este é um módulo personalizado feito pela Oracle.

ATUALIZAÇÃO:

Eu habilitei o nível de log de depuração nos logs do Apache OHS. Agora recebo os seguintes erros ao usar o IE para tentar acessar o aplicativo da Web:

[Mon Nov 10 08:16:05 2014] [error] [client X.X.X.X] OHS:2079 nzos handshake error, nzos_Handshake returned 28858(server X.X.X.X:443, client X.X.X.X)
[Mon Nov 10 08:16:05 2014] [error] OHS:2171 NZ Library Error: SSL protocol error [Hint: the client probably speaks HTTPS over HTTP protocol]
[Mon Nov 10 08:16:05 2014] [info] [client X.X.X.X] OHS:2073 Connection to child 107 closed with standard shutdown(server X.X.X.X:443, client X.X.X.X)
[Mon Nov 10 08:16:05 2014] [info] [client X.X.X.X] Connection to child 107 established (server X.X.X.X:443)
[Mon Nov 10 08:16:06 2014] [info] [client X.X.X.X] OHS:2079 nzos handshake error, nzos_Handshake returned 28864(server X.X.X.X:443, client X.X.X.X)
[Mon Nov 10 08:16:06 2014] [info] OHS:2171 NZ Library Error: SSL IO error [Hint: the client stop the connection unexpectedly]
[Mon Nov 10 08:16:06 2014] [info] [client X.X.X.X] OHS:2073 Connection to child 107 closed with standard shutdown(server X.X.X.X:443, client X.X.X.X)

Alguém sabe como corrigir isso no Apache 2.2.22.0 do Oracle HTTP Server (OHS)

Aqui está um trecho do meu arquivo ssl.conf:

###################################################################
# Oracle HTTP Server mod_ossl configuration file: ssl.conf        #
###################################################################


# OHS Listen Port
Listen 443

<IfModule ossl_module>
##
##  SSL Global Context
##
##  All SSL configuration in this context applies both to
##  the main server and all SSL-enabled virtual hosts.
##

#
#   Some MIME-types for downloading Certificates and CRLs
    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl    .crl

#   Pass Phrase Dialog:
#   Configure the pass phrase gathering process.
#   The filtering dialog program ('builtin' is a internal
#   terminal dialog) has to provide the pass phrase on stdout.
    SSLPassPhraseDialog  builtin

#   Inter-Process Session Cache:
#   Configure the SSL Session Cache: First the mechanism 
#   to use and second the expiring timeout (in seconds).
    SSLSessionCache "shmcb:${ORACLE_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/ssl_scache(512000)"
    SSLSessionCacheTimeout  300

#   Semaphore:
#   Configure the path to the mutual exclusion semaphore the
#   SSL engine uses internally for inter-process synchronization. 
    <IfModule mpm_winnt_module>
      SSLMutex "none"
    </IfModule>
    <IfModule !mpm_winnt_module>
      SSLMutex pthread
    </IfModule>

##
## SSL Virtual Host Context
##
<VirtualHost *:443>
#    ServerAdmin [email protected]
    DocumentRoot "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/htdocs/asset"
    DirectoryIndex remagnum.html
    ServerName TTSDS09083.TIMPO.OSD.MIL
#    ServerAlias www.dummy-host.example.com

  <IfModule ossl_module>

   #  SSL Engine Switch:
   #  Enable/Disable SSL for this virtual host.
   SSLEngine on

   #  SSL Cipher Suite:
   #  List the ciphers that the client is permitted to negotiate.
   #SSLCipherSuite SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA

   SSLCipherSuite ALL:+HIGH:-MEDIUM:-LOW:-SSLv2:-SSLv3

   SSLProtocol All -SSLv2 -SSLv3


   #  Client Authentication (Type):
   #  Client certificate verification type and depth.  Types are
   #  none, optional and require.
   #SSLVerifyClient none
   SSLVerifyClient require

   # SSL Certificate Revocation List Check
   # Valid values are On and Off
   SSLCRLCheck Off

   #Path to the wallet
   SSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"

   <FilesMatch "\.(cgi|shtml|phtml|php)$">
      SSLOptions +StdEnvVars +ExportCertData

   </FilesMatch>

   <Directory "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/cgi-bin">
      SSLOptions +StdEnvVars +ExportCertData

   </Directory>

  </IfModule>
</VirtualHost>

</IfModule>
    
por emvee 07.11.2014 / 21:34

1 resposta

3

SSLCipherSuite ALL:+HIGH:-MEDIUM:-LOW:-SSLv2:-SSLv3

Como você desativa todas as cifras do SSL 3.0 e como o TLS 1.0 e o TLS 1.1 usam apenas as cifras do SSL 3.0 e, como o IE 8 não suporta o TLS 1.2, não haverá cifras compartilhadas. Você provavelmente encontrará algumas mensagens de erro sobre isso em seus arquivos de log.

Note que o ataque POODLE é uma falha de design no protocolo SSL 3.0, não nas cifras SSL 3.0. Assim, você só deve desabilitar o protocolo, não as cifras.

Além disso, o conjunto de cifras atual inclui cifras muito perigosas, porque inclui cifras ADH que não exigem nenhuma forma de identificação do servidor. Com tais cifras são possíveis ataques man-in-the-middle.

Editar: no seu comentário você menciona que o cliente está usando o Windows 7. O Windows 7 deve suportar o TLS 1.2, mas como o cliente obviamente não fez muitas atualizações no sistema (caso contrário não haveria o IE 8 em uso) ele poderia seja que haja problemas com o IE 8 e o TLS 1.2.

    
por 07.11.2014 / 21:43