Implementando um ataque man-in-the-middle (CNG exemplo)
O exemplo de comunicação segura a CNG (Cryptography Next Generation) demonstra um ataque man-em-the-middle em que um terceiro (Mallory) insere-se entre dois pontos finais de comunicação (Alice e Bob).
O exemplo a CNG usa pipes nomeados para fornecer comunicação entre processos.Alice sempre atua sistema autônomo um servidor de pipe nomeado e Bob sempre atua sistema autônomo um cliente de pipe nomeado.Mallory assume uma função do cliente com Ana Maria (ou seja, ele personifica Bob) e uma função de servidor com Bob (ou seja, ele personifica Alice).Isso é chamado de substituição, que é um ataque man-in-the-middle clássico.
Para obter informações detalhadas sobre esse cenário, consulte Passo a passo mensagem Exchange (CNG exemplo) e chave.
No exemplo a CNG, a palavra "representação" é usada para referir-se a substituição de Mallory para Bob ou Mallory para Alice.No entanto, representação também tem um significado específico refere-se a pipes nomeados, conforme discutido na documentação para o NamedPipeServerStream.RunAsClient(PipeStreamImpersonationWorker) método.
Assinaturas digital
Assinaturas digital são usadas para impedir ataques man-in-the-middle.Normalmente, as chaves de assinatura são fornecidas e mantidas por uma infra-estrutura de chave pública (PKI).A PKI é raramente local no computador.Ele geralmente é suporte de segurança ou agrupar de administração de uma autoridade de certificação.O uso de tal infra-estrutura está além do escopo desse exemplo.Em vez disso, o exemplo mostra como usar as classes CNG para criar chaves de assinatura digital local.
Pontos de inserção
Um ataque man-in-the-middle requer um ponto de inserção na cadeia de sinal.Isso pode ocorrer quando os dispositivos de hardware físico que lidar com sistema de sistema sistema de mensagens foram comprometidos.Por exemplo, fios podem ser comutados ou redirecionados e servidores de telecomunicações podem ser violadas e possivelmente eletricamente reconfigurados.No entanto, uma técnica mais provável que envolve reconfigurar o software que mantém a rede.Por exemplo, as portas podem ser reatribuídas ou redirecionadas e um ponto de inserção de software pode ser estabelecido no aplicativo de comunicação.
Um Loophole minúscula
Quando um arquivo é aberto no modo de gravar, ele está bloqueado contra o uso por outros aplicativos.Da mesma forma, quando um cliente de conexão se conecta a um servidor de pipe, o pipe é bloqueado para uso exclusivo pelo cliente e permanece bloqueado até que o cliente foi desconectado.
Um canal de cliente/servidor estabelecida é muito difícil de violar.No entanto, no exemplo a CNG Mallory é com com facilidade capaz de interceptar e alterar as mensagens entre Alice e Bob.Mallory não, na verdade, invadir um canal pipe estabelecidos.Em vez disso, Mallory tira proveito de uma pequena loophole que foi ignorada pelos protocolos de comunicação da empresa.
Alice e Bob foi instruído a usar o PublicChannel pipe compartilham o nome de um canal em particular e, em seguida, usar o canal particular de contatos de vendas. Essas instruções permitem Mallory obter o nome do canal particular e inserir-se entre Alice e Bob.As duas próximas seções explicam como.
Intervalo
Em geral, o sucesso de um ataque man-in-the-middle depende algo sutis, sistema autônomo o tempo.O exemplo a CNG demonstra esse conceito.
Mallory sabe que o novo software (IM) que a empresa desenvolveu de sistema de sistema sistema de mensagens de instantâneas depende de pipes nomeados.Ele sabe que Alice e Bob irá em aberto um pipe nomeado PublicChannel. Ele também sabe que Alice enviará o nome de um segundo pipe para Roberto.Alice e Bob fechará o PublicChannel pipe, em seguida, abra e use o pipe segundo para trocar informações sobre contatos de vendas.
Para roubar as informações de contato de vendas, Mallory precisa obter o nome do pipe segundo de Alice e impedir que Bob obtenção.Para fazer isso, tudo o que ele precisa fazer é em em aberto lado do cliente do PublicChannel pipe antes de Bob.
O código de fonte usa 200 milissegundos de espera no System.Threading.Thread.Sleep(200) demonstrativo do Bob Run método para permitir que esta interceptação. The wait demonstrativo é deliberada e altamente visíveis, pois a finalidade do exemplo é demonstrar um ataque man-em-the-middle. No mundo real, cenários de segurança são muito mais difíceis analisar.Eles envolvem uma combinação de aplicativos de software, protocolos de transmissão, autenticação de rede, contas de usuário, registro em registrar registrar registrar em log, permissões, treinamento, monitoramento, o tráfego do usuário e Outros técnicas de análise.
Apesar desses métodos sofisticados, um atraso de propagação de 200 milissegundos simples em um servidor de rede pode com com facilidade passar desapercebido durante meses.É por isso que cinco versões separadas do exemplo CNG foram criadas antes dos interceptions foram finalmente derrotadas.
Substituição
Por interceptar o nome do pipe segundo (AliceAndBobChannel), Mallory é capaz de interceptar a comunicação de Alice e Bob e alterar as mensagens que enviam uns aos outros. Aqui está como ele realiza essa substituição:
Alice abre o PublicChannel pipe no modo de servidor e aguarda Bob para se conectar.
Mallory conecta o PublicChannel no modo de cliente de pipe e recebe o nome na segunda (pipeAliceAndBobChannel) de Alice.
Alice e Mallory fechar o PublicChannel pipe.
Alice abre o AliceAndBobChannel pipe no modo de servidor e Mallory conecta a ele no modo cliente.
Mallory se conecta a Bob sistema autônomo um servidor sobre o PublicChannel pipe e Bob conecta-se sistema autônomo um cliente.
Mallory envia Bob o nome de pipe AliceAndBobChannel1 (ou seja, ele altera o nome de um pouco). Bob acredita que ele está recebendo essas informações de Alice.
Mallory e Bob Desconecte o PublicChannel pipe.
Mallory abre o AliceAndBobChannel1 pipe sistema autônomo um servidor e Bob conecta a ele sistema autônomo um cliente.
Mallory agora com êxito inseriu si entre Alice e Bob.
Mallory continua a funcionar sistema autônomo um cliente para Alice (sobre o AliceAndBobChannel pipe) e sistema autônomo um servidor de Bob (sobre o AliceAndBobChannel1) pipe. Agora ele pode ler, alterar e retransmitir mensagens conforme ele deseja.Nem Alice Bob percebe que alguém está interceptando e alterando suas mensagens.
Um ataque man-in-the-middle bem-sucedido com freqüência é sutil.Para escapar à detecção, Mallory mantém um analisar baixo e altera os contatos de vendas apenas ligeiramente.Ele não deseja que suas alterações para ser notado.
Conclusão
Descobrir o homem no meio leva time, Paciência e muita atenção.Este exemplo diz respeito a única e 200 milissegundos de espera.Um quinto de segundo é o suficiente para comprometer o departamento de vendas inteira.
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. |