Exemplo da comunicação segura, criptografia Próximo Generation (CNG)
O exemplo de uma comunicação segura a CNG (Cryptography Próximo Generation) modela uma solução de criptografia para um ataque man-in-the-Meio. Ela simula a comunicação entre três pessoas, Alice e Bob Mallory, em uma empresa fictícia de propaganda. O exemplo usa as classes CNG, um transporte de pipes nomeados e janelas do console interativo para demonstrar as soluções de segurança para um ataque man-in-the-Meio.
Este é um exemplo avançado e assume a familiaridade com a criptografia, a comunicação entre Processo e a segurança de rede.
Dica
As classes da CNG disponível Apenas no Janelas Vista e sistemas operacionais subseqüentes do Janelas.
Este tópico fornece uma visão geral sobre o exemplo a CNG. Ele discute o seguinte:
O cenário de exemplo
Vulnerabilidades de segurança da ferramenta de mensagens Instantâneas
Versão 1: Pipes nomeados
Versões de 2 a 5: Aprimoramentos de segurança incrementais
Resultados de teste
O exemplo de código
As convenções de nomenclatura
Informação Detalhado
O cenário de exemplo
Uma empresa de propaganda desenvolve um ferramenta (IM) que é executado na área de trabalho de sistema de mensagens instantâneas. Todas funcionários podem exibir as mensagens inseridas na ferramenta.
Ana Maria e Luís trabalharem no departamento de vendas. Eles usam a ferramenta de mensagens Instantâneas para enviar uns aos outros contatos de vendas. Mallory é um engenheiro de rede que funciona em operações do sistema. Ele tem sido monitorar mensagens de Alice e Bob secretamente. Uma vez por mês ele copia os contatos de vendas valiosos e vende-los para os concorrentes do lucro pessoal.
Depois vários meses, a empresa percebe que alguém está roubando contatos de vendas e que a comunicação interdepartmental foi comprometida. Eles decidirem criar uma nova ferramenta de mensagens Instantâneas e iniciarão analisando a segurança da ferramenta atual.
Vulnerabilidades de segurança da ferramenta de mensagens Instantâneas
A empresa percebe que a ferramenta de mensagens Instantâneas atual possui as seguintes vulnerabilidades de segurança:
Transfere mensagens de texto não criptografado (não criptografada).
Ele transmite as mensagens na rede corporativa.
As mensagens podem ser visualizadas e até mesmo gravadas por qualquer pessoa.
A empresa decide que a nova ferramenta de mensagens Instantâneas pode corrigir esses problemas, permitindo a comunicação ponto a ponto da rede corporativa.
Versão 1: Pipes nomeados
A empresa cria uma nova ferramenta de mensagens Instantâneas que se baseia em pipes nomeados (ou canais) para comunicação entre processos (IPC). Esta versão não usa criptografia ou assinaturas digital.
Ana Maria e Luís recebem as instruções a seguir:
Criar uma conexão inicial em um canal chamado PublicChannel.
Enviar o nome de um canal particular e desconectem imediatamente de PublicChannel.
Conectar-se usando o canal particular e enviar uns aos outros contatos de vendas.
A empresa espera que canais de comunicação ponto a ponto fornecerá o isolamento do restante da rede corporativa. Eles logo saiba que essa solução é insuficiente. Mallory descobre como driblar o Nova sistema. Ele continua roubar contatos de vendas e começa a Esconder seus misdeeds alterando cuidadosamente endereços dos contatos de vendas.
A empresa decide adicionar proteções de segurança para a ferramenta de mensagens Instantâneas para interromper as thefts.
Versões 2 por meio de 5: Aprimoramentos de segurança incrementais
O Nova software é testado e aprimorado para vários meses. No momento em que os testes são Concluído, criou quatro versões Adicional da ferramenta de mensagens Instantâneas. Cada versão baseia-se a versão anterior:
Versão 2 incorpora criptografia baseadas na CNG, que usa Público/particular chave pares.
Versão 3 usa uma assinatura digital para assinar mensagens e as chaves criptográficas.
A versão 4 adiciona um canal particular para transmitir uma assinatura digital para assinar mensagens e as chaves criptográficas.
Versão 5 pára as invasões por Terminando em a todas as sessões de mensagens Instantâneas que recebem as chaves de Assinado com inválido assinaturas.
Resultados de Teste
Versão 2 usa um algoritmo de criptografia de Alto segurança. Quebrando a criptografia exigiria muitos recursos e a hora. Portanto, a empresa está surpreenda ao saber que esta solução foi comprometida.
Versão 3, que utiliza assinaturas digital, não impede o roubo ou. No entanto, essa versão torna a empresa uma descoberta importante: Se as chaves de criptografia e assinatura digital estão sendo interceptados e substituirá o canal é usado para transmitir as chaves e a assinatura devem ser a Fonte do problema.
Essa idéia é testada pela Adicionando de um canal particular para a versão 4 para transmitir uma assinatura digital. Versão 4 também exibirá um aviso quando uma tecla ou a mensagem tem uma assinatura inválida. Versão 4 é fornecido apenas para Dois pessoas na empresa: Ana Maria e Luís. Ele começará a exibir avisos de segurança sistema autônomo logo sistema autônomo Ana Maria e Luís enviam suas mensagens Primeiro. A empresa finalmente percebe que a rede está sofrendo um ataque man-in-the-Meio.
Versão 5 é a mesma sistema autônomo versão 4, exceto que ele encerra a sessão na Primeiro violação de segurança. Assim que esta versão está instalada, o roubo de vendas entra em contato com paradas.
O código de exemplo
O código é fornecido com este exemplo modelos dessas versões de segurança de cinco. Uma visão geral do código é fornecida no Visão geral do código fonte (CNG exemplo).
Dica
Este exemplo não fornece uma solução abrangente de segurança.Sua única finalidade é demonstrar a API CNG em um cenário de segurança plausível.Um aplicativo de segurança completo está além do escopo deste exemplo.
Convenções de nomenclatura
A documentação para esse exemplo se refere a cinco versões de software e de segurança correspondente níveis pelo número (por exemplo, "Versão 1", "Versão 2" e assim por diante).
Dependendo do contexto, os nomes "Alice", "Bob" e "Mallory" podem se referir às três pessoas envolvidas no cenário de exemplo ou para os três aplicativos do Visual Studio. Para simplificar, a documentação usa o mesmo nome para referir-se a Ambas. Por exemplo, "Alice carregará automaticamente Bob e Mallory" significa que o aplicativo de Alice automaticamente carrega os aplicativos de Bob e Mallory.
Informação Detalhado
Os seguintes tópicos fornecem Informação detalhadas sobre o cenário de exemplo e o código:
A implementação de um ataque man-in-the-Meio descreve como o exemplo demonstra a representação, o que é um ataque típico de man-in-the-Meio.
Visão geral sobre o algoritmo ECDH aborda resumidamente a matemática do algoritmo Diffie-Hellman de curva elíptica (ECDH).
Passo a passo de chave e a troca de mensagens fornece procedimentos para a troca que são usados em cinco versões do exemplo de um guia passo a passo para a chave e a mensagem.
How to: Compilar e executar o exemplo da CNG descreve a arquitetura de exemplo e fornece instruções de uso, Compilar e Hora de execução. Esta seção também contém as listagens de código de Fonte.
Visão geral sobre o código de Fonte descreve a interação e o fluxo dos componentes de código.
Análise de código de classes de Utilitário descreve o Sumário e a finalidade do arquivo Utilities.cs.
Análise de código da classe ChannelManager descreve o Sumário e a finalidade do arquivo ChannelManager.cs.
Análise de código da classe Communicator descreve o Sumário e a finalidade do arquivo Communicator.cs.
Esperado de saída exibe a saída do código de exemplo.
Consulte também
Conceitos
Pacote Microsoft Office 2010 estrutura criptografia Modelo