Eustáquio Rangel

Desenvolvedor, pai, metalhead, ciclista

O Firefox é um lixo!

Publicado em Microsoft


IE no lixo

Vocês podem estar estranhando o título estranho e apelativo, mas não fui eu quem disse isso. Continuem lendo para saber de toda a história ...

No dia 24/09/2009, tivemos aqui na FATEC de São José do Rio Preto a mesa redonda sobre "Software Livre x Software Proprietário", da qual participaram eu, para defender o Software Livre, o Carlos Barini (MCP, MCSA, MCSE*, MCDBA*) para defender o lado do software proprietário e o João Paulo Escola para ficar no meio e apartar os dois. :-) Algumas fotos podem ser vistas nesse álbum do Picasa.

Pois bem, a discussão estava caminhando até que de maneira mais civilizada até o Carlos contar sobre uma situação que envolveu o Internet Explorer, o Vista e o Firefox. A frase final da história foi de onde baseei o título desse post. A situação envolveu o Firefox enviando nome de usuário e senha através da rede sem encriptação. Ele deu méritos para o funcionamento correto do Internet Explorer e sobre o Firefox, disse "quem é o lixo agora?".

Comentei no intervalo com ele que a frase foi foi uma forçada de barra, e ele disse que não aguentou no calor da discussão. Beleza, o pessoal da FATEC disse que íamos ter a segunda parte da mesa redonda em outro dia, pois as 4 aulas dedicadas não estavam cabendo todas as questões, então deixei para analisar isso mais tarde, com mais dados.

No outro dia, perguntei pela web para o Carlos qual foi realmente o problema, e onde isso estava registrado, já que ele mencionou que havia aberto um case ou algo do tipo em nome dele, com o pessoal da Microsoft. Ele me passou uma URL do blog do Danilo Bordini, que é Windows Server Product Manager, onde foi replicado um post do blog do próprio Carlos. Vou destacar a parte pertinente do post, com destaque em um determinado ponto:

O Vista é configurado, por padrão nas GPO local, para não aceitar autentições com nível de segurança inferiores a NTLMv2. Quando se está utilizando o IE7, quem define o nível de autenticação é o sistema operacional, que detecta esta fragilidade e, por padrão, não passa a autenticação abaixo de NTLMv2. Mas quanto, neste mesmo sistema operacional, o usuário utiliza o Firefox, a autenticação no proxy é bloqueada pelo SO, mas o browser ignora o nível mínimo de segurança definida pela GPO local do VISTA e força a passagem da autenticação abaixo do limite, ou seja, usa autenticação NTLM (ou até mesmo LM, vai saber). E o pior disso tudo é que nenhum tipo de mensagem avisando o rebaixamento no nível de segurança é passada para o usuário pelo Firefox.

Aqui temos uma situação interessante da qual podemos derivar alguns pontos.

Primeiro, "neste mesmo sistema operacional, o usuário utiliza o Firefox, a autenticação no proxy é bloqueada pelo SO" porque a autenticação é bloqueada pelo SO quando utilizado o Firefox e não o Internet Explorer? No about:config do Firefox consta a opção network.automatic-ntlm-auth.allow-proxies definida como padrão para true, a qual faz a autenticação de modo silencioso, mas de que adianta tentar autenticar se é bloqueado?

Inclusive, essa opção provavelmente é a causa das dores em "E o pior disso tudo é que nenhum tipo de mensagem avisando o rebaixamento no nível de segurança é passada para o usuário pelo Firefox." Aí eu me pergunto: será que se o Firefox não desse algum tipo de aviso toda hora que acontecesse isso, ele não estaria entrando no estilo paranóico do Vista, enchendo o saco do usuário, que por ser usuário, nem ia saber ou se importar com o que estava acontecendo?

Segundo, "o browser ignora o nível mínimo de segurança definida pela GPO local do VISTA e força a passagem da autenticação abaixo do limite, ou seja, usa autenticação NTLM (ou até mesmo LM, vai saber)". Aqui temos alguns fatos interessantes. Vamos ver a definição do LM e do NTLM, com alguns pontos destacados:

LAN Manager was a Network Operating System (NOS) available from multiple vendors and developed by Microsoft in cooperation with 3Com Corporation. It was designed to succeed 3Com's3+Share network server software which ran atop a heavily modified version of MS-DOS.

NTLM (NT LAN Manager) (not to be confused with LAN Manager) is a Microsoft authentication protocol used with the SMB protocol. MS-CHAP is similar and is used for authentication with Microsoft remote access protocols. During protocol negotiation, the internal name is nt lm 0.12. The version number 0.12 has not been explained. It is the successor of LANMAN (Microsoft LAN Manager), an older Microsoft authentication protocol, and attempted to be backwards compatible with LANMAN.

Ok, esses protocolos são mais velhos que guaraná com rolha, reconheço, mas pelo que parece ainda andam ativos por aí, e reparem por quem foram criados. Uma coisa interessante a se notar é que muito da interoperabilidade do NTLM (e do seu sucessor, o NTLMv2) com sistemas abertos como o GNU/Linux foi feita através de engenharia reversa através da análise do tráfego de rede pelo pessoal do Samba antes que saísse a documentação oficial desses protocolos (que, pelo que eu li por aí, não é tanta assim) na Microsoft. Dadas essas explicações dos protocolos, vem a seguinte afirmação:

Já o Firefox, por padrão, ignora a obrigatoriedade de segurança imposta pelo Vista e assume a autenticação no proxy trafegando os dados de usuário e senha mesmo de forma não segura, expondo os dados dos usuários.

Vou interpretar essa "forma não segura" escrita pelo Carlos como "trafegar dados de usuário e senha como texto puro" conforme dita por ele na mesa redonda. Daí podemos derivar alguns pontos interessantes, levando em conta que o Firefox utilizou LM ou NTLM:

  1. Supondo que a implementação do protocolo utilizado (LM ou NTLM) foi feita de maneira correta através da engenharia reversa: que espécie de babuíno vesgo projeta um protocolo de autenticação, mesmo que antigo, mesmo que na primeira versão, que permite trafegar os dados de autenticação de usuário em texto puro? Tá, ok, existe também o PAP. A culpa agora é do software que utilizou o protocolo, e não do próprio protocolo?
  2. Supondo que a implementação do protocolo utilizado foi feita com falhas. Como que se pode criticar um software por não utilizar direito o seu protocolo se você não fornece documentação suficiente sobre ele? É fácil criticar quando o outro lado pode estar atirando às cegas. Show us the code, dude.
  3. Eu não sou expert em NTLM, mas segundo fiquei sabendo que o NTLM não usa senhas em texto puro, elas são hashed (não sei em relação ao nome de usuário). Se realmente são, não houve chance do Firefox ter transmitido a senha em texto puro, então o artigo inteiro ali faz algum sentido? O que ocorreu então? Há algo de errado ou faltando no artigo?
  4. Porque a porque a autenticação é bloqueada pelo SO quando utilizado o Firefox e não o Internet Explorer?
  5. Levando-se em conta todo o resto de falta de qualidade do Internet Explorer (vocês conhecem toda a história, ia precisar de outro post para fazer uma lista, e, se necessário, farei), mesmo que, de alguma maneira ainda não listada em nenhum dos posts, o Firefox teve a culpa de enviar a maledeta da senha do usuário em texto puro, ele merece ser chamado de "lixo" em comparação com o Internet Explorer? Alguns usuários desse browser podem nem estar lendo esse post por cãibras desse navegador por causa de apenas uma linha de Javascript.

Os comentários estão abertos. Quem é lixo agora?




Comentários

Comentários fechados.

Artigos anteriores