Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Uma organização pode ter par de chaves bem protegido que os desenvolvedores não têm acesso diário.A chave pública geralmente está disponível, mas o acesso a chave privada é restrito a apenas alguns indivíduos.Ao desenvolver conjuntos de módulos com nomes de alta segurança, cada conjunto que referencia destinos de conjuntos com nome de alta segurança contém o símbolo do chave pública usado para fornecer um nome de alta segurança ao assembly em questão.Isso requer que a chave pública esteja disponível durante o processo de desenvolvimento.
Você pode usar a autenticação atrasada ou parcial no tempo de compilação para reservar espaço no arquivo executável portátil (PE) para a assinatura de nome com alta segurança, mas adiar a autenticação real até algum estágio posterior (normalmente antes de entregar o assembly).
As seguintes etapas descrevem o processo de autenticar com atraso um conjunto de módulos (assembly):
Obtenha a parte da chave pública do pat de chaves que a organização que fará a eventual assinatura.Normalmente essa chave está no formato de um arquivo .snk, que pode ser criado usando a ferramenta Strong Name (Sn.exe) fornecida pelo Windows Software Development Kit (SDK).
Anote o código-fonte para o assembly com dois atributos personalizados de System.Reflection:
AssemblyKeyFileAttribute, que passa o nome do arquivo que contém a chave pública como um parâmetro para seu construtor.
AssemblyDelaySignAttribute, que indica que o atraso na assinatura está sendo usado por passar TRUE como um parâmetro para o construtor.Por exemplo:
<Assembly:AssemblyKeyFileAttribute("myKey.snk")> <Assembly:AssemblyDelaySignAttribute(true)>[assembly:AssemblyKeyFileAttribute("myKey.snk")] [assembly:AssemblyDelaySignAttribute(true)]
O compilador insere a chave pública no manifesto do assembly e reserva espaço no arquivo PE para a assinatura completa com nome de alta segurança.A chave pública real deve ser armazenada enquanto o assembly é compilado para que outros conjuntos que fazem referência a este conjunto de módulos (assembly) possam obter a chave para armazenar em sua própria referência de assembly.
Porque o assembly não tem uma assinatura válida com nome de alta segurança, a verificação dessa assinatura deve ser desativada.Você pode fazer isso usando a opção –VR com a ferramenta Strong Name.
O exemplo a seguir desativa a verificação para um conjunto de módulos (assembly) denominado myAssembly.dll.
sn –Vr myAssembly.dll
Cuidado:Use o -VR opção durante o desenvolvimento.Adicionar um conjunto de módulos à lista de ignorar verificação cria uma vulnerabilidade na segurança.Um assembly mal-intencionado poderia usar o nome de assembly totalmente especificado (nome de assembly, versão, cultura e símbolo de chave pública) do conjunto adicionado à lista de ignorar verificação para forjar sua identidade.Isso permitiria que o conjunto mal-intencionado também ignorasse a verificação.
Posteriormente, normalmente apenas antes da remessa, envie o conjunto de módulos (assembly) para a autoridade de autenticação de sua organização para a assinatura de nome com alta segurança usando a opção – R com a ferramenta Strong Name.
O exemplo a seguir assina um conjunto de módulos (assembly) denominado myAssembly.dll com um nome de alta segurança usando o par de chaves sgKey.snk.
sn -R myAssembly.dll sgKey.snk
Consulte também
Tarefas
Como: Criar um público / emparelhar de chaves emparelharticular
Conceitos
Referência
Ferramenta Strong Name (Sn.exe)