Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A assinatura de nome forte fornece a um componente de software uma identidade globalmente exclusiva. Nomes fortes são usados para garantir que a montagem não possa ser falsificada por outra pessoa e para assegurar que as dependências de componentes e as instruções de configuração sejam mapeadas para o componente e a versão corretos.
Um nome forte consiste na identidade do assembly (nome de texto simples, número de versão e informações de cultura), além de um token de chave pública e uma assinatura digital.
Para obter informações sobre como assinar assemblies em projetos do Visual Basic e C#, consulte Criar e usar assemblies de nome forte.
Para obter informações sobre como assinar assemblies em projetos C++, consulte assemblies com nome forte (C++/CLI).
Observação
A assinatura de nome forte não protege contra engenharia reversa da assembléia. Para proteger contra engenharia inversa, consulte a Comunidade do Dotfuscator.
Tipos de ativo e assinatura
Você pode assinar assemblies do .NET e manifests de aplicativos.
Executáveis (.exe)
Manifestos do aplicativo (.exe.manifest)
Manifestos de implantação (.application)
Assemblies de componente compartilhado (.dll)
Assine os seguintes tipos de ativo:
Componentes, se você quiser implantá-los no GAC (Global Assembly Cache).
Manifestos de aplicativo e implantação do ClickOnce. O Visual Studio habilita a assinatura por padrão para esses aplicativos.
Assemblies de interoperabilidade primários, que são usados para interoperabilidade COM. O utilitário TLBIMP impõe uma nomenclatura forte ao criar um assembly de interoperabilidade primário de uma biblioteca de tipos COM.
Em geral, você não deve assinar executáveis. Um componente fortemente nomeado não pode fazer referência a um componente não fortemente nomeado implantado com o aplicativo. O Visual Studio não assina executáveis de aplicativo; em vez disso, ele assina o manifesto do aplicativo, que aponta para o executável com nome fraco. Evite assinar componentes privados para seu aplicativo, pois a assinatura pode dificultar o gerenciamento de dependências.
Como assinar um assembly no Visual Studio
O procedimento para assinar um assembly depende de qual versão do Designer de Projeto é usada por seu projeto.
Para projetos C# do .NET Core (e .NET 5 e posterior) no Visual Studio 2022:
- Abra a janela propriedades do projeto (clique com o botão direito do mouse no nó do projeto no Gerenciador de Soluções e selecione Propriedades).
- Em Compilação, procure Assinatura Forte e marque a caixa de seleção Assinar o assembly. Opções adicionais para o arquivo de chave e assinatura tardia aparecem quando você marca a caixa.
- Especifique um arquivo de chave.
Se você não tiver um arquivo de chave, poderá usar a linha de comando para criar um .snk
arquivo. Você também pode usar ou gerar um certificado em um .pfx
arquivo usando o processo Publicar, e na etapa Assinar manifestos, você pode criar um certificado de teste que será usado apenas durante o desenvolvimento e testes, ou, para produção, usar um certificado emitido pelo departamento de TI ou por uma fonte autorizada. Consulte Implantar um aplicativo da Área de Trabalho do Windows .NET com o ClickOnce.
Para projetos do .NET Framework e do Visual Basic no Visual Studio 2022 ou no Visual Studio 2019:
- Abra a guia Assinatura da janela propriedades do projeto (clique com o botão direito do mouse no nó do projeto no Gerenciador de Soluções e selecione Propriedades). Selecione a guia Assinatura.
- Selecione a opção Assinar o assembly.
- Especifique um arquivo de chave. Se você optar por criar um novo arquivo de chave, novos arquivos de chave sempre serão criados no formato .pfx . Você precisa de um nome e senha para o novo arquivo.
Aviso
Você sempre deve proteger seu arquivo de chave com uma senha para impedir que outra pessoa o use. Você também pode proteger suas chaves usando provedores ou repositórios de certificados.
Você também pode apontar para uma chave que você já criou. Para obter mais informações sobre como criar chaves, consulte Criar um par de chaves pública-privada.
Se você tiver acesso apenas a uma chave pública, poderá usar a assinatura de atraso para adiar a atribuição da chave. Você habilita a assinatura com atraso selecionando a caixa de seleção Apenas assinatura atrasada. Um projeto assinado com atraso não é executado e você não pode depurá-lo. No entanto, você pode ignorar a verificação durante o desenvolvimento usando a ferramenta de nome forteSn.exe com a opção -Vr
.