Token OAB Certisign no Linux: a saída pela VM

Batalhei semanas com drivers Linux quebrados do token USB da OAB. A solução limpa não é consertar o driver — é isolar o Windows numa VM e fazer passthrough USB.

O problema

Sou advogado e uso Linux (um sistema operacional alternativo ao Windows). No Brasil, essa é uma combinação problemática: toda petição eletrônica precisa ser assinada com um token USB criptográfico da OAB — pense nele como um “pendrive de segurança” com sua assinatura digital (geralmente emitido pela Certisign, e dos modelos SafeNet ou GD Burti).

O grande drama é que os drivers desses tokens para Linux são historicamente quebrados. Para quem não sabe, o driver é o “tradutor” que faz o sistema operacional entender o peça de hardware que você plugou. No Linux, esses tradutores são mal mantidos e dependem de compilações infernais de bibliotecas PCSC antigas (programas internos que leem cartões e tokens). Para piorar, eles quebram a cada atualização do kernel — que é o “coração” do sistema operacional.

Eu batalhei semanas. Tentei instalar o driver oficial, tentei forks da comunidade (versões modificadas por outros programadores), tentei compilar o pcsc-lite na mão. Funcionava por um dia e quebrava no primeiro apt upgrade (comando que atualiza os programas do sistema). O meu grito de guerra era “por mim eu abriria mão do Windows de vez” — mas o token não deixava.

A solução que finalmente estabilizou não foi consertar o driver no Linux. Foi parar de tentar. A saída foi isolar o Windows dentro de uma Máquina Virtual (VM) e fazer um passthrough USB do token (ou seja, fazer o Windows “enxergar” o pendrive direto, como se estivesse num computador de verdade). Leva um setup inicial de uma hora e funciona para sempre, sobrevivendo a qualquer atualização do Linux host (o seu computador principal).

A estratégia da VM

A ideia é simples: eu rodo o Windows, mas só dentro de uma janela, exclusivamente para assinar os documentos. O Linux continua sendo meu sistema principal; a VM funciona como um “ambiente de assinatura” isolado.

Por que isso funciona melhor do que tentar ajeitar o driver no Linux? Porque o driver oficial funciona perfeitamente no Windows. O problema nunca foi o token físico, mas sim a camada de tradução do Linux. Ao remover essa camada problemática (em vez de gastar energia tentando consertá-la), o token funciona exatamente como foi desenhado para funcionar.

O setup, passo a passo

1. VirtualBox + Extension Pack

Recomendo usar o VirtualBox (um programa gratuito para criar computadores virtuais) pela facilidade com que ele gerencia portas USB. Instale-o no seu Linux principal (Ubuntu, MX Linux, etc).

Para que o VirtualBox consiga “roubar” o pendrive USB do Linux e entregá-lo para o Windows virtual (chamado de “convidado”), você precisa de duas coisas:

  • Baixar e instalar o VirtualBox Extension Pack (um pacote de expansão; sem ele, a passagem direta do USB não funciona).
  • Adicionar seu usuário do Linux ao grupo vboxusers (uma lista de permissões do sistema):
sudo usermod -aG vboxusers $USER

Esse segundo passo é o que as pessoas mais esquecem. Sem pertencer a esse grupo de permissões, o VirtualBox não tem autorização para mexer no USB — e o erro que aparece não é óbvio. Depois de rodar o comando, faça logout e login de novo (ou reinicie o computador) para a regra fazer efeito.

2. Windows leve na VM

Crie uma máquina virtual com o Windows 10. Você não precisa de uma máquina potente: 2GB de memória RAM bastam, e 30GB de espaço no disco já é até excesso.

Uma boa sugestão: use uma ISO otimizada (uma imagem de instalação limpa, tipo a versão LTSC) ou use scripts de debloat (como os do Chris Titus, que removem programas inúteis do Windows). O objetivo é que a VM seja apenas um ambiente de assinatura bem leve, e não um Windows cheio de programas pesados acumulando lixo.

Não instale nada além do essencial: o driver do token, os programas dos tribunais (PjeOffice ou Shodo) e um leitor de PDF. Quanto mais enxuta a VM, mais rápido ela liga e por mais tempo fica estável.

3. Configurar o passthrough

Com a sua Máquina Virtual desligada:

  1. Vá nas Configurações da VM → abra a aba USB.
  2. Marque a opção Controladora USB 3.0 (xHCI). (A opção USB 2.0 funciona, mas é lenta; a 1.1 nem tente).
  3. Insira o token Certisign físico na porta USB do computador.
  4. Clique no ícone “Adicionar Filtro” (um desenho de um plugue com um sinal de +).
  5. Selecione o seu dispositivo na lista (por exemplo: SafeNet Token JC ou GD Burti).

Agora, inicie a VM. Quando ela liga, o Linux “desconecta” o token dele mesmo e o entrega diretamente para o Windows virtual. Dentro do Windows, instale o driver oficial da Certisign. Tudo funciona instantaneamente, sem nenhuma gambiarra.

O porquê do filtro em vez de captura manual: o filtro diz ao VirtualBox “sempre que esse dispositivo aparecer, mande para a VM automaticamente”. Sem o filtro, você teria que clicar para conectar o token manualmente toda vez que ligasse a VM. Com o filtro, o processo fica 100% automático.

O fluxo de trabalho

Quando você gera um arquivo PDF ou DOCX (uma petição ou contrato) no seu Linux:

  1. Pasta compartilhada. Configure uma Shared Folder (uma pasta compartilhada entre o Linux principal e a VM Windows — é uma configuração única que fica salva para sempre).
  2. Salve o arquivo nessa pasta a partir do Linux.
  3. Abra na VM, insira a senha do token e assine o documento usando o PjeOffice ou Shodo.
  4. O arquivo assinado aparece automaticamente de volta na pasta do Linux, prontinho para ser enviado no PJe ou Eproc do tribunal.

Depois de tudo configurado, o ciclo inteiro (salvar → assinar → enviar) leva menos de um minuto. A VM pode ficar minimizada o tempo todo; você só abre a janela dela na hora de digitar a senha do token.

O que aprendi

A lição que fica, e que serve para muitas outras situações: quando uma camada do sistema é cronicamente quebrada, a solução pode ser remover essa camada em vez de tentar consertá-la. Eu gastei semanas tentando ajeitar o driver de Linux do token. A solução de verdade foi parar de tentar rodar esse driver no Linux — e usar o driver original do Windows dentro de uma VM isolada. Isso não é desistir; é engenharia: isolar o problema onde ele não pode mais te atrapalhar.

E o segundo aprendizado, mais geral: quando o assunto é compatibilidade de hardware proprietário (equipamentos com código fechado), a Máquina Virtual é o seu adaptador universal. Isso não serve só para o token da OAB — serve para leitor de cartão smartcard, impressora fiscal ou qualquer outro aparelho cujo fabricante só lança driver para Windows. Em vez de ficar esperando a boa vontade do fabricante lançar um driver para Linux (que pode nunca vir), a VM resolve o seu problema hoje e continua funcionando mesmo se o seu sistema atualizar. Vale super a pena o setup inicial de uma hora para nunca mais dor de cabeça com isso.

Leia também

Comentários

Carregando comentários…

Deixe um comentário