O que o carimbo de tempo de um handshake do WireGuard realmente lhe diz
A hora de um handshake não é um histórico de navegação, mas liga uma conta a um evento. Compare o que WireGuard e OpenVPN registam, e o que a precisão esconde.
Uma única linha dizendo «último handshake, há dois minutos» parece prova de atividade contínua e é mais fraca do que isso. Ela marca a última troca de chaves concluída para um par, que ocorre segundo um temporizador fixo de renovação de chaves enquanto o tráfego flui e para quando o par silencia. Se essa hora liga uma pessoa a alguma coisa depende dos identificadores guardados ao lado e dos relógios dos dois sistemas. Veja como o registo se comporta nas duas pilhas mais comuns e onde a sua leitura erra.
Dois registos, dois significados diferentes
O WireGuard mantém um carimbo de tempo de handshake por par, substituído a cada renovação de chaves, além de contadores de bytes em cada direção. O OpenVPN normalmente registra o início de uma sessão, uma desconexão e tudo o que a verbosidade configurada acrescenta, o que faz da unidade do registo uma sessão e não uma troca de chaves.
Essa diferença decide o que significa uma ausência:
| Question | WireGuard handshake | OpenVPN session log |
|---|---|---|
| Did the peer send recently? | Strong hint within the rekey window | Not answered by start time alone |
| Did the peer stop? | Weak, because idle peers also stop rekeying | Only if a disconnect was written |
| What was visited? | Nothing | Nothing |
Por que um handshake não é uso contínuo
O WireGuard renova as chaves aproximadamente a cada dois minutos enquanto há dados a proteger, e um par que fica inativo simplesmente para. Um handshake antigo pode, portanto, significar que o portátil dorme, que o utilizador parou de trabalhar ou que a rede descartou os pacotes que teriam desencadeado a troca seguinte. O carimbo de tempo é um limite inferior de atividade, não um rastreador de atenção.
O erro inverso é igualmente fácil. O tráfego keepalive persistente mantém o túnel quente num dispositivo inativo, pelo que um handshake recente pode aparecer numa máquina que ninguém tocou durante uma hora. Os contadores de bytes ajudam aqui, porque distinguem um par que envia dados reais de um que só troca keepalives, e também dizem qual direção levou o volume. Nada disso revela um destino, uma página ou uma consulta.
Os identificadores viajam com o carimbo de tempo
Uma hora sem conta, chave pública ou endereço de origem é órfã. Emparelhe o carimbo de tempo com a identidade do par e a observação torna-se ligável: uma chave pública persiste através de mudanças de endereço, enquanto um endereço de origem pode ser partilhado por muitos assinantes atrás da tradução de endereços do operador.
Essa assimetria é o que a maioria das discussões sobre privacidade perde. O endereço parece anónimo porque é partilhado, e a chave parece técnica porque é longa, mas a chave é o identificador estável. Manter um campo e descartar o outro altera o risco de correlação sem alterar a precisão aparente.
A correlação em si é a preocupação documentada. Unir uma hora de ligação a um evento de início de sessão do fornecedor, a um pedido de apoio ou a um registo de pagamento pode associar uma identidade a atividade mesmo quando nunca foi anotado nenhum destino, e é por isso que o emparelhamento importa mais do que a formatação.
A correlação entre sistemas exige cuidado com os relógios
Dois sistemas que reportam o mesmo instante raramente concordam até ao segundo. Um pode aplicar um desvio de fuso horário na sua saída, outro pode correr num relógio errado em vários segundos, e uma máquina virtual pode derivar após uma suspensão.
Antes de concluir que dois eventos aconteceram juntos, converta ambos para o mesmo fuso e verifique o desvio no registo em bruto e não na visualização. Se a lacuna que mede for menor do que o desvio provável, não tem qualquer ordenação.
A regra prática é conservar a precisão de que a tarefa de diagnóstico precisa e não mais. Uma contagem de sessões por hora responde a uma pergunta de disponibilidade sem guardar um histórico por conta, e um agregado pode ser retido muito mais tempo do que as linhas em bruto de que proveio.
Leia o registo com comandos, não com imaginação
Imprima os campos sobre os quais vai raciocinar, nas unidades que a ferramenta armazena e não nas que um painel mostra.
Estas duas linhas mostram a idade do handshake e os contadores de bytes de cada par do WireGuard, e depois o mesmo tipo de material de um ficheiro de estado do OpenVPN:
wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.statusCompare a idade com o intervalo de renovação de chaves antes de tirar uma conclusão, e leia os contadores juntamente com ela. Um par com um handshake recente e quase nenhuma transferência está a trocar keepalives, enquanto um par com um handshake antigo e contadores grandes esteve ocupado até parar. Nenhuma das linhas diz o que foi feito, e dizê-lo claramente é mais exato do que insinuar que o carimbo de tempo prova uma visita.