O Firefox é muito lento ao estabelecer sessões SSL

1

Usando o wireshark, descobri que o Firefox v3.0 fica preso toda vez antes do estágio "troca de chave de cliente, alterar especificação de criptografia" ao estabelecer uma sessão SSL.

Especificamente, demora 0,8 a 1,8 segundo antes do Firefox enviar a solicitação "Client Key Exchange". Isso é inaceitável, pois nosso aplicativo é apenas HTTPS.

Eu testei isso no IE6 e IE8, ambos funcionam bem. Alguma pista?

[Atualização]

Por fim, descobri que o motivo de 1 a 2 segundos é exibido exibindo todos os pacotes capturados no Wireshark. Após o estágio "server hello", o Firefox faz uma solicitação para ocsp.verisign.com combinada com uma pesquisa de DNS adicional para esse domínio. O Firefox deve esperar o status de revogação do OCSP antes de entrar no próximo estágio do SSL. Depende de se o cache do DNS está em vigor, esse processo leva de 1 a 2 segundos.

Uma observação interessante é que o pacote IP contém "troca de chave de cliente" tem uma alta possibilidade de se perder e, portanto, uma retransmissão TCP é necessária. Quando isso acontece, o processo pode levar 3 segundos na pior das hipóteses. Não tenho certeza se isso é uma coincidência ou um bug. De qualquer forma, aqui está o resultado do Wireshark:

(delta-time)

0.369296 src-ip dst-ip TCP [ACK] Seq = 161 Ack = 2741 Win = 65340 Len = 0

2.538835 Troca de chave de cliente TLSv1 src-ip dst-ip, especificação de cifra de alteração, concluída

2.987034 src-ip dst-ip TLSv1 [Retransmissão TCP] Troca de chave do cliente, alterar especificação de cifra, concluída

A diferença entre o Firefox e o IE é esta: O Firefox 3 permite que o OCSP verifique por padrão onde, como o IE, apenas suporta. Portanto, não há problema com o IE6 e o IE8. Este é realmente um problema de "revogação de certificado". Obrigado

    
por yanglei 01.12.2009 / 16:58

3 respostas

2

O IE está configurado para verificar certificados revogados? No mesmo lugar que o Firefox? Você pode tentar desabilitar ambos e ver se isso corrige isso?

Nesse caso, o local "revogar certificado" está inativo ou o DNS está com problemas.

    
por 01.12.2009 / 17:13
1

Isso tudo é apenas um palpite, porque eu não estou familiarizado com a fonte do Firefox.

O ponto no handshake SSL que você está descrevendo é onde a implementação SSL do Firefox tem que executar alguns dos cálculos de "levantamento pesado" (gerando números aleatórios criptograficamente seguros, criptografia de chave assimétrica). Gostaria de saber se você está vendo alto uso da CPU no cliente nesse período.

Eu suspeitaria que o IE poderia ser mais rápido, no mesmo hardware, porque está usando uma Crypto API (a CryptoAPI do Windows) que é muito mais apta a tirar proveito da aceleração de criptografia de hardware do que o Firefox, que acredito usar seu próprio crypto. implementação.

    
por 01.12.2009 / 17:13
0

O problema é com o OCSP e não com o CRL. O Firefox, por padrão, verifica as CRLs do OCSP e para determinar a validade de um certificado. O IE suporta o OCSP, mas, por padrão, apenas verifica as CRLs. Você pode desativar o OCSP no Firefox através da página about: config. Fazer isso eliminou completamente os tempos de espera de 20 a 30 segundos para mim em páginas SSL. Esse mesmo problema existe no OS X e no Linux e não está relacionado (de acordo com meus testes) a API de hardware ou criptografia.

Mais informações sobre OCSP no link

    
por 25.03.2010 / 14:59

Tags