Sistema e-DOC da Justiça do Trabalho não funciona após atualizar o Windows
O e-DOC - Sistema Integrado de Protocolização e Fluxo de Documentos Eletrônicos da Justiça do Trabalho - é um sistema desenvolvido pela Justiça do Trabalho utilizando HTML, Java e JavaScript , que serve para protocolar e assinar documentos eletrônicos para serem enviados aos Tribunais Regionais do Trabalho (TRTs) espalhados pelos estados brasileiros.
Sua aparência é bastante espartana e o sistema é extremamente simplório. Mesmo em tempos de inclusão digital, ele só funciona com o browser Internet Explorer e Windows XP ou Vista. O Windows 7 já está disponível a mais de um ano, mas nem sinal do simples e-DOC se adaptar ao mesmo.
Pois bem, desde o começo de agosto estava com dificuldades para acessar o sistema. Ao tentar abrir a tela de logon, o sistema solicitava o certificado digital e na seqüencia mostrava a página de erro padrão do Internet Explorer. Liguei diversas vezes para o pessoal da Justiça do Trabalho mas eles apenas admitiam a existência de casos isolados de mal funcionamento e que o sistema estava funcionando perfeitamente. Tive que descobrir na marra o que estava ocasionando o não funcionamento do sistema.
Descobri que após a instalação de algumas atualizações do Windows o sistema deixou de funcionar. Investiguei e descobri que o problema estava com a Atualização de Segurança KB980436. O boletim de segurança que descreve o problema relacionado com esta atualização é o MS10-049.
Mas então fiquei curioso: O problema é da Microsoft que fez uma atualização problemática ou do e-DOC que esqueceu de fazer alguma coisa em seu servidor? Difícil responder. A Microsoft agiu corretamente e lançou uma atualização para uma falha de segurança, porém deixou incompatível a solução para o caso de o cliente estar atualizado e o servidor não. Por outro lado o pessoal que administra o servidor do e-DOC esqueceu de atualizar seu servidor.
Este tutorial descreve duas soluções para o problema, até que o servidor do e-DOC seja atualizado. A primeira envolve uma simples configuração do Internet Explorer, e a segunda fala sobre como remover a atualização problematica manualmente. Além disso este artigo descreve como utilizar script para executar estas duas solução de maneira automatizada para computadores membros de um domínio Microsoft Active Directory e também discorre um pouco sobre as causas do problema, que pode afetar outros sistemas executando em servidores desatualizados como o do e-DOC.
Pré-Requisitos
Para seguir este tutorial é muito fácil, basta ter um computador em que o e-DOC não funcione, e que o motivo do não funcionamento seja a instalação da Atualização de Segurança KB 980436. Provavelmente é seu caso, senão não estaria lendo este tutorial.
Resumo
São esses os passos que iremos seguir:
- Análise do problema.
- Solução 1: Desabilitar o TLS 1.0 do Internet Explorer.
- Script para automatizar o processo de desabilitar o TLS 1.0 do Internet Explorer.
- Solução 2: Remoção da Atualização de Segurança KB980436.
- Script para remoção automatizada da Atualização de Segurança KB980436.
Tutorial
Vamos por a mão na massa.
1. Análise do problema
Utilizando o Wireshark, capturei uma seqüencia de pacotes durante a tentativa de acesso ao e-DOC.
A imagem abaixo mostra os pacotes de inicio da sessão SSL capturados enquanto a Atualização de Segurança KB980436 estava instalada:

Observe que o Internet Explorer tenta inicializar a sessão com a camada de transporte TLS e o comando Client Hello. O Servidor do e-DOC responde com uma mensagem de argumento ilegal e fecha a sessão. O Internet Explorer tenta iniciar a sessão com SSL3, que por algum motivo (provavelmente por ainda não existir um certificado apresentado para a aplicação) não é aceita pelo servidor e a sessão é encerrada.
Na seqüencia abaixo, após a remoção da Atualização de Segurança KB980436, o browser envia um pedido de conexão TLS e é prontamente atendido pelo servidor que solicita o certificado digital e o browser por sua vez solicita o certificado ao usuário. A conexão é estabelecida com sucesso.

Bem, a principal diferença entre essas duas comunicações está no primeiro pacote de solicitação de conexão TLS. Vamos olhar estes pacotes mais de perto.
Primeiro o pacote com erro (KB980436 instalado):

E abaixo a mesma solicitação de conexão TLS com a KB980436 desinstalada:

Observe que a diferença está na parte final do pacote, nas parte das extensões. O pacote que funciona não possui nenhuma extensão e o que não funciona possui uma extensão de renegociação, que parece não ser entendida pela servidor do e-DOC.
Esta extensão (renegotiation_info) esta descrita na RFC5746 e é justamente sobre uma vulnerabilidade da negociaçao do TLS, descoberto em agosto de 2009. A RFC, que é de fevereiro deste ano, trata da correção dessa falha de segurança de forma a previnir ataques do tipo man-in-the-middle. A microsoft implementou essa RFC na Atualização de Segurança KB980436 de 09 de agosto de 2010. Um ano se passou entre a descoberta da falha e a implementação pela Microsoft.
Não consegui descobrir qual o Sistema Operacional utilizado pelo e-DOC, mas se eles instalassem a atualização de segurança KB980436 ou a equivalente para o Sistema Operacional utilizado, resolveriam o problema de todos, além de deixar seu servidor mais seguro. Já entrei em contato alertando sobre este problema e solicitando a instalação desta atualização.
Esta falta de atualização poderá afetar outras aplicações executando em servidores desatualizados na Internet.
2. Solução 1: Desabilitar o TLS 1.0 do Internet Explorer.
Uma forma de contornar o problema é configurar seu browser para não utilizar TLS 1.0, utilizando apenas SSL 3.0 para inicializar sessões de segurança com outros servidores na Internet.
O TLS é o sucessor do SSL, mas nem por isso seu sistema ficará mais vulnerável. Não tenho como garantir que os ajustes aqui propostos irão impactar outras aplicações, mas pelo menos é uma forma de contornar esta falha do servidor do e-DOC.
Para desativar o TLS 1.0 no Internet Explorer 8.0 (para outras versões os passos são semelhantes), vá em Ferramentas, Opções da Internet, aba Avançadas e desmarque a opção Usar TLS 1.0, que fica quase no final da página de Configurações, conforme ilustra a figura a seguir:

Clique em OK e acesse o e-DOC normalmente.
3. Script para automatizar o processo de desabilitar o TLS 1.0 do Internet Explorer
Para forçar com que todos os computadores membros de um domínio Microsoft Active Directory tenham o TLS 1.0 desabilitado no Internet Explorer, você pode utilizar o script a seguir:
' Desabilita TLS 1.0 no Internet Explorer
' Blog do Nerd (c) 2010
On Error Resume Next
Dim objShell, RegLocate
TLSv1 = Not 128 ' 128 = 0x00000080
Set objShell = CreateObject("WScript.Shell")
RegLocate = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\SecureProtocols"
objSecureProtocol = objShell.RegRead(RegLocate)
objSecureProtocol = objSecureProtocol And TLSv1
objShell.RegWrite RegLocate, objSecureProtocol, "REG_DWORD"
WScript.Quit(0)
Salve-o com o nome desabilitaTLSv1IE.vbs e insira numa GPO de logon de usuários.
Note que isto não impede que os usuários reabilitem o TLS 1.0 manualmente.
4. Solução 2: Remoção da Atualização de Segurança KB980436
Para remover manualmente esta atualização é muito fácil, basta ir em Iniciar, Painel de Controle, Adicionar ou remover Programas e na tela que se abre, certificar-se de marcar a opção Exibir atualizações. Dai é só procurar a Atualização de Segurança para Windows XP (KB980436) e remove-la. Ela é de 09 de agosto de 2010 e esta informação pode ser utilizada para facilitar sua busca.
A imagem a seguir mostra a janela de remoção de programas com a KB980436 selecionada e pronta para a remoção.

5. Script para remoção automatizada da Atualização de Segurança KB980436
Se desejar realizar a desinstalação em massa dessa atualização em uma rede com computadores membros de um domínio Microsoft Active Directory, basta utilizar o script a seguir:
Desinstala atualização do Windows KB980436
' Blog do Nerd (c) 2010
On Error Resume Next
Set objWSHShell = CreateObject("WScript.Shell")
Set objEnv = objWSHShell.Environment("Process")
Set WshSysEnv = WshShell.Environment("SYSTEM")
Set sWinDir = WshSysEnv("WINDIR")
sUpdate = "KB980436"
sSP = "SP4"
sWindows= "Windows XP"
sUpdateInstalled = objWSHShell.RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Updates\" & sWindows & "\" & sSP & "\" & sUpdate & "\Description")
sUninstallExe = sWinDir & "\$NtUninstall" & sUpdate & "$\spuninst\spuninst.exe"
sPatchCmd = sUninstallExe + " /quiet /norestart"
If sUpdateInstalled <> "" Then
Call fn_CheckIfFileExists (sUninstallExe, bUninstallFileExists)
If bUninstallFileExists Then
objWSHShell.Run sPatchCmd
Else
WScript.Quit(1)
End If
End If
WScript.Quit(0)
Function fn_CheckIfFileExists(fnFilePathName, boolResult)
Dim objFSO, objFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(fnFilePathName)
If objFSO.FileExists(fnFilePathName) Then
boolResult = True
Else
boolResult = False
End If
Set objFSO = Nothing
End Function
Salve-o com o nome removekb980436.vbs e insira numa GPO de logon de computadores.
Observações
Não testei esse procedimento no Windows Vista, mas é muito provável que a solução seja a mesma.
Se os administradores de sistemas de TI tomassem conta corretamente de suas máquinas, instalando as correções de segurança mais relevantes no momento oportuno, esse tipo de problema seria fatalmente minimizado.
Espero que o pessoal do e-DOC solucione em breve esta falha de segurança em seus servidores.
Qualquer dúvida, sugestão ou relato de erros é só postar nos comentários.
.
Referências
- e-DOC - Sistema Integrado de Protocolização e Fluxo de Documentos Eletrônicos da Justiça do Trabalho.
- Atualização de Segurança KB980436.
- MS10-049.
- RFC5746 - Transport Layer Security (TLS) Renegotiation Indication Extension.



Preciso de ajuda para conseguir utilizar o e-doc através do windows 7. Mesmo no windows7 também preciso fazer a remoção da Atualização de Segurança KB980436??? Outra coisa, como faço para gravar o arquivo C:\Windows\MSKeyStoreJNI.dll.???? Eu não consegui localizar este arquivo, tenho que baixa-lo e salva-lo na pasta???? Se for caso onde vou conseguir fazer o download??? Grato.