Como um relógio errado quebra o TLS e as verificações de licença
Como um relógio do sistema errado quebra a validação TLS e toda verificação de licença que depende dela, como funciona a sincronização de horário do Windows, os comandos que forçam uma nova sincronização e o problema do deslocamento de relógio em dual boot.
Resposta curta
Quando o relógio local está fora da janela de datas de um certificado, o TLS rejeita um certificado válido, e toda verificação de licença por HTTPS falha. Corrija o relógio primeiro com w32tm /resync, antes de gerar chaves novas, reinstalar o loader ou mexer em regras de firewall.
Nesta página8
- Por que um certificado depende do seu relógio?
- Por que um relógio errado parece problema de licença
- Como funciona a sincronização de horário do Windows?
- Comandos para conferir e corrigir a sincronização de horário do Windows
- Como forçar uma nova sincronização de horário
- Por que o relógio fica horas inteiras errado depois de cada reinício
- Problemas causados por um relógio errado
- Perguntas frequentes sobre o relógio do sistema
Por que um certificado depende do seu relógio?
Todo certificado TLS carrega dois carimbos de tempo, um not-before e um not-after, e quando a sua máquina abre uma conexão HTTPS ela compara esses valores com o próprio relógio. Se o relógio local cair fora dessa janela, o certificado é rejeitado e a conexão falha antes de qualquer dado ser trocado. Não há como contornar isso, porque essa verificação é justamente o motivo de existir uma janela de validade. Uma máquina cujo relógio diz ano passado vai rejeitar um certificado perfeitamente válido, e uma cujo relógio diz ano que vem também.
Por que um relógio errado parece problema de licença
O tráfego de licença e ativação passa por HTTPS, então, quando o relógio está errado, o handshake TLS falha. O aplicativo então relata o que o caminho de erro dele disser: chave inválida, falha de autenticação, não foi possível contatar o servidor ou resposta inesperada. Nenhuma dessas mensagens menciona o relógio, então as pessoas passam uma noite gerando chaves de novo e reinstalando um loader para resolver um problema de dois minutos. Alguns serviços também assinam requisições com um carimbo de tempo e rejeitam qualquer coisa fora de uma tolerância, o que falha do mesmo jeito mesmo quando o TLS em si passa.
Como funciona a sincronização de horário do Windows?
O Windows mantém a hora com um serviço chamado Horário do Windows, o w32time, que fala NTP com um par configurado. Ele não corrige o relógio continuamente; em vez disso, acorda em um intervalo, pergunta a hora atual a um servidor de tempo e ajusta. Na prática, três coisas quebram isso. O serviço pode estar parado ou com início manual, caso em que nada nunca sincroniza. O par configurado pode estar inacessível, o que é comum em uma rede restrita ou atrás de um firewall agressivo. Ou a máquina pode estar tão longe da hora certa que o Windows considera a correção implausível e recusa um salto grande. Os três casos aparecem iguais: a chave nas Configurações parece certa, mas o relógio continua errado.
Comandos para conferir e corrigir a sincronização de horário do Windows
Rode estes comandos em um prompt de comando de Administrador, nesta ordem. A consulta de status vem primeiro porque é ela que diz se o problema é o serviço, o par ou o deslocamento.
w32tm /query /status
w32tm /query /source
w32tm /query /configuration
net start w32time
w32tm /resync
w32tm /resync /rediscover
w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly
w32tm /config /manualpeerlist:"time.windows.com,0x8" /syncfromflags:MANUAL /update
sc config w32time start= autoComo forçar uma nova sincronização de horário
Comece pelo segundo PC, porque é ali que a autenticação acontece, e depois repita no PC de jogo se alguma nota do produto pedir.
- Abra Configurações, Hora e idioma, Data e hora, e confirme que o fuso horário está certo, porque a hora certa no fuso errado continua sendo um relógio errado
- Desligue Definir horário automaticamente, ligue de novo e clique em Sincronizar agora
- Se nada mudar, abra um prompt de comando de Administrador
- Rode w32tm /query /status e leia o Last Successful Sync Time e o Source
- Se o serviço não estiver rodando, rode net start w32time e depois coloque em início automático com o sc config
- Rode w32tm /resync e leia o resultado, que ou informa sucesso ou diz o motivo da falha
- Se o par estiver inacessível, defina um par específico com o comando de config e sincronize de novo
- Confira o relógio contra qualquer outro aparelho e então repita a verificação de licença antes de mudar qualquer outra coisa
Atenção
Por que o relógio fica horas inteiras errado depois de cada reinício
Este problema parece defeito de hardware, mas não é. O Windows guarda o relógio de hardware em horário local, enquanto Linux e macOS, por convenção, guardam em UTC. Em uma máquina com dual boot, cada sistema operacional corrige o relógio de hardware compartilhado pela própria convenção, então cada reinício desloca a hora pelo seu deslocamento de UTC. O mesmo acontece com uma máquina virtual cujo host e convidado discordam, ou quando os guest additions sincronizam contra um host que também está errado. O sintoma é um relógio que erra por um número exato de horas inteiras, se redefine a cada boot e parece ignorar uma sincronização bem-sucedida. Corrija a convenção ou o host, não o relógio.
Problemas causados por um relógio errado
Confira o relógio antes de tentar qualquer uma das correções mais longas, porque a checagem leva trinta segundos e não custa nada.
| Sintoma | Causa provável | Solução |
|---|---|---|
| Licença inválida, chave rejeitada ou falha de autenticação com uma chave válida | A validação TLS falhou porque o relógio local está fora da janela de validade do certificado | Rode w32tm /query /status e depois w32tm /resync, confirme o relógio e o fuso horário e tente de novo antes de gerar qualquer coisa outra vez |
| Erros de certificado em um navegador na mesma máquina | Confirmação de que a causa é o relógio, e não o aplicativo | Corrija o relógio primeiro, porque, se um navegador também não alcança um site HTTPS comum, nenhum aplicativo daquela máquina vai autenticar |
| Sincronizar agora não faz nada e o relógio continua errado | O serviço Horário do Windows está parado ou com início manual | Rode net start w32time, coloque em automático com o sc config e então sincronize de novo |
| A sincronização informa que o par está inacessível | O servidor de tempo configurado está bloqueado ou não resolve nesta rede | Defina um par específico e acessível com o comando manualpeerlist e sincronize, e então confirme que nenhuma política do roteador está bloqueando o NTP de saída |
| O relógio erra por uma ou mais horas inteiras e se redefine a cada boot | Divergência entre as convenções UTC e horário local em dual boot ou em máquina virtual | Faça os dois sistemas concordarem sobre a convenção do relógio de hardware ou corrija o relógio do próprio host, porque corrigir só o convidado não dura |
| O relógio desanda em uma máquina que fica muito tempo offline | Falta de oportunidade de sincronizar e, em hardware antigo, uma bateria de backup fraca | Conecte e sincronize antes de cada sessão e, se a máquina também esquece a data quando está desligada, troque a bateria da placa-mãe |
Perguntas frequentes sobre o relógio do sistema
Quanto o relógio precisa estar errado para quebrar as coisas?
Para o TLS, precisa estar errado o suficiente para cair fora da janela de validade de um certificado, o que pode significar dias. Para assinatura de requisições, alguns serviços rejeitam deslocamentos de poucos minutos, então trate qualquer coisa acima de mais ou menos um minuto como algo a corrigir.
O relógio de qual máquina importa?
O da que faz a autenticação, que normalmente é o segundo PC, então sincronize esse primeiro. Sincronize o PC de jogo também se alguma nota do produto pedir ou se os serviços online dele estiverem falhando.
Basta acertar a hora na mão?
Acertar na mão desbloqueia você na hora, mas o relógio vai desandar de novo, então corrija a sincronização para mantê-lo certo. Confira o fuso horário além da hora exibida.
Um relógio errado pode causar falhas de leitura ou erros de DTB?
Não. O relógio afeta o TLS, o licenciamento e qualquer coisa que assine um carimbo de tempo. Falhas de leitura e erros de DTB pertencem a outra camada: o USB, o mapa de memória ou a build do Windows.
Mudar o fuso horário muda o relógio?
Muda a hora local exibida, não o instante subjacente, então uma máquina pode mostrar a hora local errada com um relógio perfeitamente sincronizado. Isso ainda quebra qualquer coisa que compare carimbos de tempo locais, então acerte o fuso também.
Fontes
Nenhuma das fontes consultadas cobre verificações de relógio no TLS nem a sincronização de horário do Windows, então o material se apoia em administração comum de Windows e nos chamados de licença da própria loja.
Leia em seguida
Ainda travado? Abra um ticket no Discord
Todos os guias