Ferramentas de desenvolvedor · Decodificador JWT
JWT As cargas úteis não são criptografadas: qualquer pessoa com o token pode lê-las
· Por que é importante
jwt privacidade segurança
Base64url parece embaralhado, mas é uma codificação reversível. Esta postagem mostra quão legíveis são as declarações de um token assinado, o que pertence a elas e quando você precisa de JWE.
Parece criptografado – o mal-entendido que coloca dados pessoais em tokens
Longos segmentos de base64url parecem embaralhados, o que leva as equipes a tratá-los como dados ocultos. O efeito visual é enganoso. Qualquer pessoa que possua um JWT assinado pode reverter a codificação pública e ler uma carga útil JSON sem possuir uma chave de assinatura ou verificação.
ToolAcre demonstra essa propriedade decodificando o cabeçalho e a carga localmente. Ele não quebra a criptografia porque cargas úteis JWS comuns não são criptografadas. A facilidade de inspeção deve moldar o design do token: codificar apenas informações que todo detentor legítimo e todo destinatário acidental possam ver.
Assinado, não selado: um JWS válido pode proteger a integridade, não a confidencialidade da carga útil
Uma assinatura válida ou MAC pode permitir que um verificador configurado corretamente detecte alterações e relacione o token ao material de chave confiável. Isso é evidência de integridade e origem dentro da política do verificador. Ele não oculta o conteúdo protegido do cliente, proxy, registrador ou qualquer outra pessoa que obtenha a string compacta.
O decodificador não consegue estabelecer nem mesmo essa integridade porque nunca verifica. Ele mostra o que o token diz sobre si mesmo e relata os bytes de assinatura como não verificados. Esta distinção evita dois erros opostos: assumir que legível significa forjado e assumir que assinado significa confidencial.
O que um decodificador mostra — cada reivindicação, em formato JSON simples, sem necessidade de chave
Para cabeçalho e carga útil, ToolAcre traduz base64url, restaura preenchimento, recupera bytes como UTF-8 e analisa objetos JSON. Nenhum segredo participa. A tabela de declarações mostra valores de string diretamente e valores estruturados como texto JSON, com descrições para nomes registrados como `sub`, `aud` e `exp`.
Esse resultado é uma ajuda à transparência, não um oráculo da verdade. Um token fabricado pode exibir o mesmo assunto e função de um token legítimo. A leitura de uma afirmação não requer chave; acreditar que isso requer verificação bem-sucedida, além de verificações de emissor, público, tempo e aplicação no serviço consumidor.
Onde os tokens vazam – logs, URLs, cabeçalhos de referência, histórico do navegador e scripts de terceiros
Os tokens podem vazar através de logs de aplicativos, mensagens de suporte copiadas, URLs, propagação de referenciadores, histórico do navegador, capturas de tela e scripts que podem acessar o campo. Os caminhos exatos dependem do sistema, mas a legibilidade da carga significa que um token expirado ou inutilizável ainda pode divulgar informações pessoais ou operacionais.
Mantenha as credenciais compactas fora das strings de consulta URL e dos logs de rotina. Edite-os antes de comcomcompartilhar diagnósticos. Uma assinatura não limpa as declarações e a criptografia de transporte protege apenas os dados enquanto viajam entre terminais; endpoints autorizados e armazenamento acidental ainda podem ver caracteres de token de texto simples.
O que pertence a uma carga útil – identificadores e dados de autorização, nunca segredos ou dados que o detentor não deve ver
As cargas geralmente precisam de identificadores e contexto de autorização para que os destinatários possam tomar decisões após a verificação. Eles não devem conter senhas, chaves privadas ou informações que o detentor do token deve ser impedido de ler. Minimize os dados pessoais e evite a duplicação conveniente de campos de perfil que nenhum serviço consumidor precisa.
As funções e os escopos não são secretos apenas porque estão codificados, mas ainda não são confiáveis até serem verificados. Projete o conjunto de reivindicações em torno do mínimo de divulgação e também do mínimo de privilégios. Se um consumidor não precisar de um campo para realizar seu trabalho documentado, deixar esse campo de fora reduzirá todas as consequências de vazamento.
Exemplo resolvido – decodificando um token de amostra e listando exatamente o que um espectador aprenderia
Decodifique uma carga sintética contendo `sub`, `email`, `tenant`, `roles`, `iat` e `exp`. Um espectador aprende o identificador da conta nomeada, o endereço, o contexto da organização, as permissões declaradas e o tempo sem uma chave. Se essas afirmações são genuínas é uma questão diferente; seu texto já foi divulgado.
Repita a auditoria com cada perfil de token produzido pelo seu emissor, usando apenas material expirado ou de teste. Registre cada campo e seu consumidor. ToolAcre pode ajudar a enumerar conteúdo visível, mas não pode decidir regras de processamento legal, confidencialidade ou retenção para sua organização.
Os tokens compactos criptografados têm cinco partes, que este decodificador JWS identifica em vez de descriptografar
Quando as reivindicações devem permanecer confidenciais do titular ou dos intermediários, pode ser necessário um design criptografado. Compact JWE tem cinco partes e usa chaves de descriptografia de destinatário. ToolAcre identifica cinco segmentos como entrada criptografada e explica que não pode revelar o conteúdo sem uma chave.
A criptografia introduz distribuição de chaves, política de algoritmos e modos de falha operacional além deste decodificador. Também não elimina a necessidade de verificações de integridade e autorização. Escolha-o a partir de um modelo de ameaça, em vez de uma atualização cosmética para uma carga útil que deveria conter menos dados.
Conclusão: suponha que a carga útil seja pública - decodifique um de seus próprios tokens no decodificador ToolAcre JWT e audite o que ele expõe
Suponha que uma carga útil JWT comum seja legível onde quer que o token viaje. Use a visualização somente decodificação de ToolAcre para auditar a exposição de reivindicações, não para provar quem emitiu os valores. Remova segredos e campos pessoais desnecessários em vez de confiar no base64url para ocultá-los.
Se a confidencialidade for genuinamente necessária, use um mecanismo cujas propriedades de segurança documentadas a incluam e gerencie as chaves adequadamente. Seja assinada ou criptografada, a confiança ainda vem da validação e política criptográfica configurada, nunca do fato de um decodificador exibir uma saída estruturada.