{"id":10,"date":"2026-06-10T09:14:21","date_gmt":"2026-06-10T09:14:21","guid":{"rendered":"https:\/\/shattered.io\/pt\/2026\/06\/10\/assinaturas-digitais\/"},"modified":"2026-06-10T13:35:45","modified_gmt":"2026-06-10T13:35:45","slug":"assinaturas-digitais","status":"publish","type":"post","link":"https:\/\/shattered.io\/pt\/cryptography\/assinaturas-digitais\/","title":{"rendered":"Como Funcionam as Assinaturas Digitais"},"content":{"rendered":"<p>Uma assinatura digital prova duas coisas ao mesmo tempo: que uma mensagem veio mesmo de quem afirma t\u00ea-la enviado e que n\u00e3o foi alterada pelo caminho. \u00c9 o equivalente eletr\u00f3nico de uma assinatura manuscrita, mas com garantias matem\u00e1ticas que uma rubrica em papel nunca poder\u00e1 oferecer. Por detr\u00e1s dela est\u00e3o duas ferramentas que j\u00e1 aparecem noutros artigos desta sec\u00e7\u00e3o: uma fun\u00e7\u00e3o de hash e um par de chaves assim\u00e9tricas. Este texto explica como se combinam, passo a passo, e por que motivo uma colis\u00e3o de hash, como a do SHAttered, amea\u00e7a diretamente a sua seguran\u00e7a.<\/p>\n<h2 id=\"as-duas-pecas-hashing-e-chaves-assimetricas\">As duas pe\u00e7as: hashing e chaves assim\u00e9tricas<\/h2>\n<p>Para perceber uma assinatura digital, conv\u00e9m ter presentes os dois blocos que a comp\u00f5em.<\/p>\n<p>O primeiro \u00e9 a fun\u00e7\u00e3o de hash criptogr\u00e1fica. Como se descreve no artigo sobre <a href=\"\/pt\/cryptography\/funcoes-hash\/\">fun\u00e7\u00f5es de hash<\/a>, ela reduz uma mensagem de qualquer tamanho a um resumo de comprimento fixo, que funciona como impress\u00e3o digital dos dados. O resumo \u00e9 determin\u00edstico e sens\u00edvel \u00e0 m\u00ednima altera\u00e7\u00e3o, gra\u00e7as ao efeito de avalanche.<\/p>\n<p>O segundo \u00e9 a criptografia assim\u00e9trica, tamb\u00e9m chamada de chave p\u00fablica. Em vez de uma \u00fanica chave secreta partilhada, cada pessoa tem um par de chaves matematicamente ligadas: uma chave privada, que se mant\u00e9m em segredo, e uma chave p\u00fablica, que se pode distribuir livremente. O que uma das chaves faz, s\u00f3 a outra do par desfaz. Esta rela\u00e7\u00e3o \u00e9 o que permite a uma pessoa provar identidade sem revelar o seu segredo.<\/p>\n<p>A combina\u00e7\u00e3o destas duas pe\u00e7as \u00e9 mais eficiente do que assinar a mensagem inteira diretamente. Em vez de aplicar a opera\u00e7\u00e3o de chave, que \u00e9 relativamente lenta, sobre todo o documento, aplica-se apenas sobre o resumo, que \u00e9 curto e de tamanho fixo. Assina-se a impress\u00e3o digital, n\u00e3o o documento completo.<\/p>\n<h2 id=\"assinar-o-processo-passo-a-passo\">Assinar: o processo passo a passo<\/h2>\n<p>Do lado de quem assina, o procedimento tem tr\u00eas passos.<\/p>\n<p>Primeiro, calcula-se o resumo da mensagem com uma fun\u00e7\u00e3o de hash criptogr\u00e1fica. O documento, por maior que seja, fica reduzido a uma cadeia curta de bytes que o identifica de forma fi\u00e1vel.<\/p>\n<p>Segundo, aplica-se a chave privada sobre esse resumo. O resultado desta opera\u00e7\u00e3o \u00e9 a assinatura. Repare-se que s\u00f3 o detentor da chave privada consegue produzir uma assinatura v\u00e1lida, porque s\u00f3 ele possui essa chave. Este \u00e9 o passo que liga, de forma inquebr\u00e1vel, a identidade do signat\u00e1rio \u00e0quele resumo concreto.<\/p>\n<p>Terceiro, a assinatura \u00e9 enviada ou guardada junto da mensagem. A mensagem em si n\u00e3o fica cifrada nem escondida; continua leg\u00edvel por todos. A assinatura \u00e9 um acr\u00e9scimo que permite a qualquer pessoa verificar a sua autenticidade e integridade.<\/p>\n<h2 id=\"verificar-confirmar-autoria-e-integridade\">Verificar: confirmar autoria e integridade<\/h2>\n<p>Do lado de quem recebe, a verifica\u00e7\u00e3o espelha o processo de assinatura e usa a chave p\u00fablica.<\/p>\n<p>O verificador come\u00e7a por calcular, ele pr\u00f3prio, o resumo da mensagem recebida, com a mesma fun\u00e7\u00e3o de hash. Em seguida, aplica a chave p\u00fablica do alegado signat\u00e1rio sobre a assinatura, o que devolve o resumo que estava l\u00e1 guardado no momento de assinar. Por fim, compara os dois resumos: o que calculou a partir da mensagem e o que obteve da assinatura.<\/p>\n<p>Se os dois coincidem, ficam provadas duas coisas em simult\u00e2neo. A mensagem n\u00e3o foi alterada, porque qualquer altera\u00e7\u00e3o, por m\u00ednima que fosse, teria mudado o resumo calculado e a compara\u00e7\u00e3o falharia. E a mensagem veio mesmo do dono daquela chave privada, porque s\u00f3 a chave p\u00fablica correspondente consegue recuperar o resumo de uma assinatura feita com a chave privada certa.<\/p>\n<p>Se os resumos n\u00e3o coincidem, a verifica\u00e7\u00e3o falha, e isso pode significar que a mensagem foi adulterada, que a assinatura foi forjada ou que a chave p\u00fablica usada n\u00e3o corresponde a quem assinou de facto. Em qualquer dos casos, a assinatura n\u00e3o merece confian\u00e7a.<\/p>\n<h2 id=\"por-que-uma-colisao-de-hash-ameaca-as-assinaturas\">Por que uma colis\u00e3o de hash amea\u00e7a as assinaturas<\/h2>\n<p>Aqui est\u00e1 o ponto em que toda a sec\u00e7\u00e3o se liga. Como a assinatura cobre o resumo, e n\u00e3o o documento inteiro, a seguran\u00e7a de todo o esquema depende de o resumo ser \u00fanico para aquele documento. Se a fun\u00e7\u00e3o de hash for resistente a colis\u00f5es, isso est\u00e1 garantido. Se n\u00e3o for, abre-se uma brecha grave.<\/p>\n<p>Imagine que um atacante consegue preparar dois documentos diferentes com o mesmo resumo, um inofensivo e um malicioso. Apresenta o documento inofensivo para ser assinado. A assinatura, feita sobre o resumo desse documento, \u00e9 igualmente v\u00e1lida sobre o documento malicioso, porque ambos partilham exatamente o mesmo resumo. O atacante troca depois um pelo outro, e a assinatura continua a verificar na perfei\u00e7\u00e3o. A v\u00edtima assinou uma coisa e fica vinculada a outra.<\/p>\n<p>Foi precisamente este cen\u00e1rio que a nossa investiga\u00e7\u00e3o tornou concreto. O SHAttered produziu dois ficheiros PDF diferentes com o mesmo hash SHA-1, e o artigo sobre a <a href=\"\/pt\/cryptography\/colisao-sha1\/\">colis\u00e3o de SHA-1<\/a> descreve o caso em detalhe. A partir do momento em que uma colis\u00e3o \u00e9 pr\u00e1tica, qualquer assinatura assente nessa fun\u00e7\u00e3o de hash deixa de ser de confian\u00e7a. Foi esta amea\u00e7a, e n\u00e3o uma preocupa\u00e7\u00e3o meramente te\u00f3rica, que acelerou o abandono do SHA-1 em assinaturas e certificados, a favor do <a href=\"\/pt\/cryptography\/sha-256\/\">SHA-256<\/a>.<\/p>\n<h2 id=\"onde-as-assinaturas-digitais-aparecem\">Onde as assinaturas digitais aparecem<\/h2>\n<p>O mecanismo \u00e9 o mesmo em muitos contextos, ainda que com nomes e formatos diferentes.<\/p>\n<h3 id=\"certificados-e-tls\">Certificados e TLS<\/h3>\n<p>Quando um navegador estabelece uma liga\u00e7\u00e3o segura, confia num certificado que associa um nome de dom\u00ednio a uma chave p\u00fablica. Esse certificado \u00e9 assinado por uma autoridade de certifica\u00e7\u00e3o, e a assinatura \u00e9 verificada com a chave p\u00fablica dessa autoridade. \u00c9 uma cadeia de assinaturas digitais que sustenta toda a confian\u00e7a no cadeado do navegador. Se um atacante conseguisse forjar uma assinatura sobre um certificado em colis\u00e3o, poderia fazer-se passar por um site leg\u00edtimo, e \u00e9 por isso que a resist\u00eancia a colis\u00f5es da fun\u00e7\u00e3o de hash usada nos certificados \u00e9 t\u00e3o cr\u00edtica.<\/p>\n<h3 id=\"assinatura-de-codigo\">Assinatura de c\u00f3digo<\/h3>\n<p>Os sistemas operativos e as lojas de aplica\u00e7\u00f5es verificam se um programa vem de um autor identificado e se n\u00e3o foi alterado depois de empacotado. O autor assina o software com a sua chave privada, e o sistema verifica essa assinatura antes de permitir a instala\u00e7\u00e3o. Isto protege os utilizadores contra programas adulterados ou substitu\u00eddos por terceiros. Uma colis\u00e3o na fun\u00e7\u00e3o de hash usada permitiria, em teoria, fazer passar um bin\u00e1rio malicioso como se fosse o leg\u00edtimo, sob a mesma assinatura.<\/p>\n<h3 id=\"documentos-e-contratos-eletronicos\">Documentos e contratos eletr\u00f3nicos<\/h3>\n<p>A assinatura digital de documentos legais, faturas e contratos segue exatamente a mesma l\u00f3gica de assinar um resumo com uma chave privada e verificar com a p\u00fablica. \u00c9 o que d\u00e1 valor probat\u00f3rio a um contrato assinado eletronicamente, e \u00e9 tamb\u00e9m onde o cen\u00e1rio da colis\u00e3o \u00e9 mais intuitivo: assinar um contrato inofensivo e ficar vinculado a um malicioso \u00e9 precisamente o tipo de fraude que uma fun\u00e7\u00e3o de hash s\u00f3lida impede.<\/p>\n<h2 id=\"resumo\">Resumo<\/h2>\n<p>Uma assinatura digital combina uma fun\u00e7\u00e3o de hash com um par de chaves assim\u00e9tricas para provar, de uma s\u00f3 vez, autoria e integridade. Assina-se o resumo da mensagem com a chave privada e verifica-se com a chave p\u00fablica, comparando o resumo recuperado com o resumo calculado de novo. Como tudo assenta no resumo, a fun\u00e7\u00e3o de hash tem de ser resistente a colis\u00f5es; caso contr\u00e1rio, uma assinatura sobre um documento pode valer sobre outro, como o SHAttered demonstrou para o SHA-1. Para situar as assinaturas no conjunto mais amplo das ferramentas criptogr\u00e1ficas, veja o <a href=\"\/pt\/cryptography\/\">artigo central de criptografia<\/a>.<\/p>\n<h2 id=\"perguntas-frequentes\">Perguntas frequentes<\/h2>\n<h3 id=\"uma-assinatura-digital-cifra-a-mensagem\">Uma assinatura digital cifra a mensagem?<\/h3>\n<p>N\u00e3o. A mensagem permanece leg\u00edvel. A assinatura \u00e9 um acr\u00e9scimo que prova quem a enviou e que n\u00e3o foi alterada. Confidencialidade e assinatura s\u00e3o objetivos distintos: se tamb\u00e9m se quiser esconder o conte\u00fado, cifra-se a mensagem \u00e0 parte.<\/p>\n<h3 id=\"por-que-se-assina-o-resumo-em-vez-do-documento-inteiro\">Por que se assina o resumo em vez do documento inteiro?<\/h3>\n<p>Por efici\u00eancia e robustez do esquema. A opera\u00e7\u00e3o de chave \u00e9 relativamente lenta, e o resumo \u00e9 curto e de tamanho fixo, o que torna a assinatura r\u00e1pida independentemente do tamanho do documento. Desde que a fun\u00e7\u00e3o de hash seja resistente a colis\u00f5es, assinar o resumo \u00e9 t\u00e3o seguro como assinar o documento completo.<\/p>\n<h3 id=\"o-que-acontece-se-a-funcao-de-hash-usada-for-quebrada\">O que acontece se a fun\u00e7\u00e3o de hash usada for quebrada?<\/h3>\n<p>A seguran\u00e7a da assinatura fica comprometida. Se um atacante conseguir produzir dois documentos com o mesmo resumo, uma assinatura v\u00e1lida sobre um vale sobre o outro. Foi por isso que a colis\u00e3o pr\u00e1tica do SHA-1, demonstrada pelo SHAttered, levou \u00e0 sua substitui\u00e7\u00e3o pelo SHA-256 em assinaturas e certificados.<\/p>\n<div class=\"shat-sources\">\n<h2 id=\"fontes\">Fontes<\/h2>\n<ul>\n<li><a href=\"https:\/\/csrc.nist.gov\/pubs\/fips\/186-5\/final\" rel=\"noopener\">NIST FIPS 186-5: Digital Signature Standard<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc8032\" rel=\"noopener\">RFC 8032: Edwards-Curve Digital Signature Algorithm<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"shat-related\">\n<h2 id=\"artigos-relacionados\">Artigos relacionados<\/h2>\n<ul>\n<li><a href=\"https:\/\/shattered.io\/pt\/cryptography\/colisao-sha1\/\">A Colis\u00e3o SHAttered do SHA-1, Explicada<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/pt\/cryptography\/sha-256\/\">SHA-256 Explicado: o Padr\u00e3o Atual de Hashing<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/pt\/cryptography\/funcoes-hash\/\">Fun\u00e7\u00f5es de Hash Criptogr\u00e1ficas Explicadas<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/pt\/cryptography\/\">Hashing e Criptografia Explicados<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Uma assinatura digital prova duas coisas ao mesmo tempo: que uma mensagem veio mesmo de quem afirma t\u00ea-la enviado e que n\u00e3o foi alterada pelo caminho. \u00c9 o equivalente eletr\u00f3nico\u2026<\/p>\n","protected":false},"author":2,"featured_media":25,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-10","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cryptography"],"_links":{"self":[{"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":2,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":41,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/posts\/10\/revisions\/41"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/media\/25"}],"wp:attachment":[{"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shattered.io\/pt\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}