Este artigo descreve como pode assinar digitalmente um macros no Windows através de um certificado. Se ainda não tiver um certificado digital, terá de obter um.
Dica: Para utilizar ou testar projetos de macros no seu próprio computador, pode criar o seu próprio certificado de autoassinação com a ferramenta Selfcert.exe. Encontrará mais detalhes sobre o que se segue.
Obter um certificado digital
Pode obter um certificado digital a partir de uma autoridade de certificação comercial (AC) junto do seu administrador de segurança interna ou profissional de tecnologias de informação (TI).
Para saber mais sobre as autoridades de certificação que oferecem serviços para produtos Microsoft, consulte a lista de membros do programa de certificados de raiz da Microsoft.
Como um certificado digital criado por você não é emitido por uma autoridade de certificação oficial, os projetos de macro assinados usando esse tipo de certificado são denominados projetos autoassinados. O Microsoft Office confia em um certificado autoassinado somente em um computador que tenha esse certificado adicionado à pasta Trusted Root Certificação Raiz Confiável no repositório Certificados – Usuário Atual. Isto faz com que seja bom para testar ou utilizar no seu próprio computador ou um número muito pequeno de máquinas que gere, mas não é muito bom para distribuir projetos de macros para outras pessoas.
Criar um certificado de autenticação
Ver o certificado no arquivo de Certificados Pessoais
-
Abra o Microsoft Edge.
-
Introduza edge://settings/privacy na barra de endereço.
-
Desloque-se para baixo até à secção Segurança e selecione Gerir certificados.
Assinar digitalmente um projeto de macro VBA no Excel, PowerPoint, Publisher, Visio, Outlook ou Word
-
Abra o arquivo que contém o projeto de macro que você deseja assinar.
-
Na guia Desenvolvedor, no grupo Código, clique em Visual Basic.
Observação: Se a guia Desenvolvedor não estiver disponível: clique na guia Arquivo. Clique em Opções. Clique em Personalizar Faixa de Opções. Na lista Personalizar a Faixa de Opções, clique em Desenvolvedor e em OK.
-
No Visual Basic, no menu Ferramentas, clique em Assinatura Digital.
-
A caixa de diálogo Assinatura Digital será exibida.
-
Selecione um certificado e clique em OK.
Observação: Se você não tiver selecionado um certificado digital ou desejar usar outro, clique em Escolher. Selecione um certificado e clique em OK.
Adicionar um carimbo de data/hora à sua assinatura
Quando as pessoas executam a sua macro VBA, o Office verifica a assinatura e o certificado com o qual foi assinado. Adicionar um carimbo de data/hora à sua assinatura significa que a macro continuará a ser tratada como assinada, mesmo depois de o certificado expirar, desde que o certificado não seja revogado. Isto pode reduzir a interrupção para os utilizadores.
Um certificado que está apenas expirado ainda pode ser utilizado para validar o código, mas não pode ser utilizado para assinar novo código.
Para adicionar um carimbo de data/hora, tem de adicionar três chaves ao seu registo.
Cuidado: A edição incorreta do Registro pode danificar seriamente o sistema. Antes de fazer alterações no Registro, recomendamos que você faça backup de todos os dados valiosos no computador.
Tecla |
Tipo |
Descrição |
---|---|---|
HKCU\Software\Microsoft\VBA\Security\TimeStampURL |
REG_SZ |
O URL do servidor de carimbos de data/hora preferido. (Obrigatório) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryCount |
REG_DWORD |
O número de vezes que o Visual Basic Editor tentará ligar ao servidor de carimbo de data/hora antes de falhar. (Opcional – se não definir esta opção, o Visual Basic Editor apenas tentará contactar o servidor uma vez) |
HKCU\Software\Microsoft\VBA\Security\TimeStampRetryDelay |
REG_DWORD |
O número de segundos (em milissegundos) que o Visual Basic Editor aguardará entre tentar ligar novamente ao servidor de carimbo de data/hora. (Opcional - Se não definir esta opção, não haverá qualquer atraso entre as repetições) |
Depois de adicionar uma entrada TimeStampURL em funcionamento, o Visual Basic Editor adicionará automaticamente um carimbo de data/hora sempre que assinar digitalmente uma macro.
Observações adicionais
-
Recomenda-se que assine macros apenas depois de a sua solução ter sido testada e pronta para distribuição: quando o código num projeto de macro assinado for alterado de qualquer forma, a respetiva assinatura digital é removida. No entanto, se você tiver o certificado digital válido que foi usado anteriormente para assinar o projeto no computador, o projeto de macro será automaticamente assinado novamente quando salvá-lo.
-
Uma forma de impedir que os utilizadores alterem acidentalmente o seu projeto de macro e invalidem a sua assinatura é bloquear o projeto de macro antes de aplicar a assinatura. A sua assinatura digital garante que o projeto não foi adulterado desde que o assinou, mas não prova que escreveu o projeto. Mesmo que tenha bloqueado o seu projeto de macro, outro utilizador poderá ainda conseguir substituir a sua assinatura por outra assinatura. Os administradores empresariais também podem voltar a assinar modelos e suplementos para garantir que apenas o conteúdo aprovado é executado em computadores da empresa.
-
Se você criar um suplemento que adicione código a um projeto de macro, o código deverá determinar se o projeto será assinado digitalmente e notificar os usuários das consequências de qualquer alteração em um projeto assinado antes que eles prossigam.
-
Os utilizadores que utilizam certificados comerciais podem encontrar blocos devido à limitação dos algoritmos hash suportados na assinatura. Pode adicionar um valor-chave de registo DWORD V1HashEnhanced para escolher outro algoritmo hash, em HKCU\SOFTWARE\Microsoft\VBA\Security com regras de algoritmo de valor (1 a SHA1, 2 a SHA256, 3 a SHA384, 4 a SHA512 e outros a MD5). Esta definição está disponível nas versões mais recentes do canal CC.
Saiba mais
Ativar ou desativar macros em ficheiros do Microsoft 365
Observação: Este artigo foi criado por uma pessoa com a assistência de uma inteligência artificial (IA).