Este artigo descreve como pode assinar digitalmente um projeto de macro no Windows através de um certificado. Se ainda não tiver um certificado digital, terá de obter um.
Sugestão: 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.
Visto um certificado digital criado por si não ser emitido por uma autoridade de certificação fidedigna formal, os projetos de macro assinados através da utilização de um certificado deste tipo são conhecidos como projetos autoassinados. O Microsoft Office só confia em certificados autoassinados em computadores que tenham o certificado de autoassinatura adicionado à pasta Certificação de Raiz Fidedigna no arquivo Certificados – Utilizador 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 autoassinado
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 ficheiro que contém o projeto de macro que pretende assinar.
-
No separador Programador, no grupo Código, clique em Visual Basic.
Nota: Se o separador Programador não estiver disponível, clique no separador Ficheiro. Clique em Opções. Clique em Personalizar Friso. Na lista Personalizar o Friso, clique em Programador e, em seguida, clique em OK.
-
No Visual Basic, no menu Ferramentas, clique em Assinatura Digital.
-
É apresentada a caixa de diálogo Assinatura Digital.
-
Selecione um certificado e clique em OK.
Nota: Se não tiver selecionado um certificado digital ou pretender utilizar 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.
Atenção: A edição incorreta do registo pode danificar seriamente o sistema. Antes de fazer alterações ao registo, deve criar uma cópia de segurança de todos os dados importantes 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.
Notas 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. Contudo, se tiver o certificado digital válido anteriormente utilizado para assinar o projeto no computador, o projeto de macro é novamente assinado de forma automática assim que for guardado.
-
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 criar um suplemento que adiciona códigos a um projeto de macro, o código deverá determinar se o projeto é assinado digitalmente e notificar os utilizadores das consequências de modificar um projeto assinado antes de continuarem.
-
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
Nota: Este artigo foi criado por uma pessoa com a assistência de uma inteligência artificial (IA).