Sign assemblies using strong names

Description

70-483 C# Flashcards on Sign assemblies using strong names, created by Thiago Russo on 25/05/2017.
Thiago Russo
Flashcards by Thiago Russo, updated more than 1 year ago
Thiago Russo
Created by Thiago Russo over 7 years ago
6
0

Resource summary

Question Answer
O CLR oferece suporte a dois tipos diferentes de assemblies: assemblies strong-named (fortemente nomeados) e assembleias regulares. o que são? Assembly regular é o q Visual Studio gera para vc por padrão. É estruturalmente idêntico a um assembly fortemente nomeado. Ambos contêm metadados, cabeçalho, manifesto e todos os tipos q estão em seu assembly. Assembly de nome forte é assinado com um par de chaves pública / privada que identifica o publicador do assembly e o conteúdo do assembly. Um nome forte consiste no simples texto do nome do assembly, seu nº de versão e informações de cultura. Ele também contém uma chave pública e uma assinatura digital.
Nomear fortemente um assembly tem várias vantagens: ■ Os nomes fortes garantem a unicidade. Sua chave privada única é usada para gerar o nome para o seu assembly. Nenhum outro conjunto pode ter o mesmo nome forte exato. ■ Os nomes fortes protegem suas versões. Devido ao fato de vc controlar a chave privada, vc é o único que pode distribuir atualizações para seus assemblies. Os usuários podem ter certeza de q a nova versão se origina do mesmo publisher (editor). ■ Nomes fortes fornecem fornecem uma forte verificação de integridade. O .NET verifica se um assembly de nome forte mudou desde o momento em q foi assinado. No geral, vc pode ver q um assembly de nome forte garante aos usuários q eles podem confiar a origem e o conteúdo de um assembly.
assinatura de um assembly Vc gera um assembly de nome forte usando sua própria chave privada para assinar o assembly. Outros usuários podem verificar o assembly utilizando a chave pública que é distribuído com o assembly. Assinatura de um assembly pode ser feita tanto via linha de comando ou usando o VS. O 1º passo q vc tem q tomar é a de gerar um par de chaves. Um par de chaves é geralmente um arquivo com uma extensão .snk que contém as informações de chave pública / privada.
gerando chave via prompt de comando Ao usar o prompt de comando desenvolvedor (developer command prompt), você pode executar o seguinte comando para gerar um novo arquivo de par de chaves: sn -k myKey.snk
gerando chave de assinatura pelo VS
como é a referência entre assemblies desse tipo? Um assembly de nome forte pode referenciar apenas outros assemblies q tb são fortemente nomeados. Isso é para evitar falhas de segurança em que um assembly dependente poderia ser mudado para influenciar o comportamento de um assembly de nome forte. Qdo vc add uma referência a um assembbly regular e tentar invocar o código do assembly, o compilador emite um erro: Assembly generation failed -- Referenced assembly ‘MyLib’ does not have a strong name
visualizar a chave pública de um assembly
token de chave pública o q é? O token de chave pública é uma pequena string q representa a chave pública. Ele é gerado pelo hash da chave pública e pega os últimos oito bytes. Se vc faz referência a outro assembly, vc armazena apenas o token de chave pública, q preserva o espaço no manifesto do assembly. O CLR n utiliza o token de chave pública na tomada de decisões de segurança pq pode acontecer de várias chaves públicas terem o mesmo tokem de chave pública.
delayed or partial signing Dentro de uma organização, é importante proteger a chave privada. Se todos os funcionários têm acesso à chave privada, alguém pode vazar ou roubar a chave. Mas sem acesso à chave privada, os desenvolvedores não podem assinar o assembly e usá-lo durante a construção da aplicação. Para evitar esse problema, vc pode usar um recurso chamado assinatura atrasada ou parcial (delayed or partial signing). Ao usar assinatura atrasada (deleyed), vc só pode usar a chave pública para assinar um assembly e você atrasa usando a chave privada até que o projeto esteja pronto para implantação. ao configurar a assinatura do assembly, vc pode ver que há uma opção para ativar a assinatura delayed no Visual Studio.
Origem do assembly de nome forte Autenticidade! Uma coisa q é importante entender é q um assembly fortemente nomeado ñ prova q o assembly vem do editor original. Isso só mostra q a pessoa q criou o assembly tem acesso à chave privada. Se vc quiser ter certeza de q os usuários podem verificar vc como o editor, tem que usar algo chamado Authenticode, q é uma tecnologia q utiliza certificados digitais para identificar o editor de um aplicativo. Vc precisa comprar um certificado on-line e, em seguida, usar esse certificado para assinar seu aplicativo.
Show full summary Hide full summary

Similar

Porova teórica C# mod l
Cursos Professor Jonatã
Linguagem C#
Alex Araujo Furado
Prova teorica C# mo ll
Cursos Professor Jonatã
Entity framework - code first
José Fernandes
Flashcard Módulo 1 - XAMARIN LATINO AMERICA
Marcone Barbosa
Entity framework
José Fernandes
C# and ASP.NET
Kalebi Fiorentini
Linguagens de programação
Rodrigo Barbosa7452
Conceitos do ASP.NET CORE (Incompleto)
José Fernandes Rezende Neto
Dates and times .NET
Felipe Couto Viola
Fluxo Game UC 8
Lucas Coluzzo