Exemplo da Secure Communication Cryptography Next Generation (CNG)
O exemplo de comunicação segura a CNG (Cryptography Next Generation) modela uma solução de criptografia a um ataque man-in-the-middle.Ele simula a comunicação entre três pessoas, Alice e Bob Melvin, em uma empresa fictícia de propaganda.O exemplo usa classes, um transporte de pipes nomeados e janelas do console interativo CNG para demonstrar a soluções de segurança para um ataque man-in-the-middle.
Isso é um exemplo avançado e assume familiaridade com criptografia, comunicação entre processos e segurança de rede.
Este tópico fornece uma visão geral do exemplo CNG.Discute o seguinte:
O cenário de exemplo
Vulnerabilidades de segurança da ferramenta IM
Versão 1: Pipes nomeados
Versões de 2 a 5: Aprimoramentos de segurança incrementais
Resultados do teste
O exemplo de código
Convenções de nomenclatura
Informações detalhadas
O cenário de exemplo
Uma empresa de propaganda desenvolve um ferramenta (IM) executada na área de trabalho de sistema de sistema sistema de mensagens instantâneas.Todos os funcionários podem exibir as mensagens inseridas a ferramenta.
Alice e Bob trabalha no departamento de venda.Eles usam a ferramenta de mensagens INSTANTÂNEAS para enviar uns aos outros contatos de vendas.Mallory é engenheiro de rede que trabalha em operações do sistema.Ele tem sido monitorando mensagens Alice e Bob secretamente.Uma vez por mês ele copia valiosos contatos de vendas e vende-los para os concorrentes do lucro pessoal.
Após vários meses, a empresa sabe que alguém é roubo de contatos de vendas e que a comunicação interdepartmental foi comprometida.Decidir criar uma nova ferramenta de mensagens INSTANTÂNEAS e iniciarão analisando a segurança da ferramenta corrente.
Vulnerabilidades de segurança da ferramenta de IM
A empresa percebe que a ferramenta de mensagens INSTANTÂNEAS corrente possui as seguintes vulnerabilidades de segurança:
Ele transfere mensagens de texto não criptografado (não criptografada).
Ele transmite as mensagens na rede corporativa.
As mensagens podem ser visualizadas e gravadas até mesmo por qualquer pessoa.
A empresa decide que a nova ferramenta de mensagens INSTANTÂNEAS pode solucionar esses problemas, permitindo comunicação ponto a ponto na 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.
Alice e Bob recebem as instruções a seguir:
Criar uma conexão inicial em um canal chamado PublicChannel.
Enviar o nome de um canal particular uns aos outros e desconectar imediatamente de PublicChannel.
Conecte-se usando o canal em particular e enviar uns aos outros contatos de vendas.
A empresa espera que canais de comunicação ponto a ponto fornecerá suficiente isolamento do restante da rede corporativa.Eles aprenderão mais rápido que esta solução seja insuficiente.Mallory detecta como driblar o novo sistema.Ele continua roubar contatos de vendas e começará a ocultar seus misdeeds alterando cuidadosamente endereços dos contatos de vendas.
A empresa decide adicionar proteção de segurança para a ferramenta IM para parar os thefts.
Versões 2 por meio de 5: Aprimoramentos de segurança incrementais
O novo software é testado e avançado para vários meses.No momento em que os testes serem concluídos, quatro versões adicionais da ferramenta IM foram criadas.Cada versão tem por base a versão anterior:
Versão 2 incorpora criptografia baseada em CNG que usa pública/particular chave pares.
Versão 3 usa uma assinatura digital para assinar mensagens e as chaves criptográficas.
Versão 4 adiciona um canal para transmitir uma assinatura digital para assinar as chaves criptográficas e mensagens particular.
Versão 5 bloqueia as invasões por final de todas as sessões IM receber chaves assinadas com assinaturas inválidas.
Resultados de Teste
Versão 2 usa um algoritmo de criptografia de alta segurança.Quebrando a criptografia requer muitos recursos e a time.Portanto, a empresa está surpreenda ao saber que essa solução foi comprometida.
Versão 3, que utiliza assinaturas digital, não impede ou roubo.No entanto, esta versão ajuda a empresa faça uma descoberta importante: Se as chaves de criptografia e assinatura digital estão sendo interceptados e substituída, o canal que é usado para transmitir as chaves e assinatura deverá ser fonte do problema.
Essa idéia é testada, adicionando um canal em particular à versão 4 para transmitir uma assinatura digital.Versão 4 também exibe um aviso quando uma tecla ou a mensagem tem uma assinatura inválido.Versão 4 é fornecido apenas para duas pessoas na empresa: Alice e Bob.Ele começará a exibir avisos de segurança sistema autônomo logo sistema autônomo Alice e Bob enviar suas primeiras mensagens.A empresa finalmente percebe que a rede está sofrendo um ataque man in middle.
Versão 5 é a mesma sistema autônomo versão 4, exceto que ele encerra a sessão com a primeira 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 que é fornecido com este exemplo modelos dessas versões de cinco segurança.É fornecida uma visão geral do código em Visão geral do código fonte (CNG exemplo).
Observação: |
---|
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 é além do escopo exemplo. |
Convenções de nomenclatura
Documentação para este exemplo refere-se para as cinco versões de software e a 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 consultar três pessoas envolvidas no cenário de exemplo ou os trêsVisual Studio aplicativos. Para simplificar, a documentação usa o mesmo nome para referir-se a ambos.Por exemplo, "Alice carrega automaticamente Bob e Mallory" significa que o aplicativo de Alice carrega automaticamente os aplicativos de Bob e Mallory.
Informações detalhadas
Os tópicos a seguir fornecem informações detalhadas sobre o cenário de exemplo e o código:
Implementando um ataque man-in-the-middle descreve como o exemplo demonstra a personificação, que é um ataque man-in-the-middle típico.
Visão geral do algoritmo ECDH aborda resumidamente a matemática do algoritmo Diffie-Hellman de curva elíptica (ECDH).
Chave passo a passo e troca de mensagens fornece um guia passo a passo para a chave e mensagem procedimentos para a troca que são usados em cinco versões do exemplo.
Como: Compilação e executar o exemplo da CNG descreve a arquitetura do exemplo e fornece instruções de compilação, time de execução e uso.Esta seção também contém as listagens de código de fonte.
Visão geral do código de fonte descreve a interação e fluxo de componentes de código.
Análise de código de classes da 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.
Saída esperada exibe a saída do código de exemplo.
Consulte também
Conceitos
Visão geral sobre criptografia
.NET estrutura criptografia Model
Outros recursos
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Tópico adicional. |
Aprimoramento de informações. |