Pergunta

Estou usando o utilitário Botan para executar a criptografia. Quando inicializo minha conexão com uma máquina remota usando SSH, sou capaz de negociar chaves pela conexão SSH segura. No entanto, às vezes eu uso o INTD para estabelecer a conexão e, neste caso, não há segurança na conexão Inetd, mas preciso usá -la para negociar chaves com a máquina remota.

Imagino que exista algum padrão para isso pelo qual enviei uma chave pública sobre um canal inseguro e a extremidade remota usa isso para criptografar uma chave para me enviar de volta para mim sobre o canal inseguro, que posso descriptografar para obter a chave.

Qual seria um exemplo desse tipo de protocolo que o Botan suporta?

Foi útil?

Solução

Sem confiança anterior ou comunicação através de um canal lateral, não há como fazer isso. O Diffie-Hellman Kex permite que você estabeleça um canal seguro contra outras pessoas que não participam da conexão, mas você não pode verificar se está se comunicando com o destinatário pretendido.

Clássico Mitm Exemplo: você se conecta a algum terminal remoto, ele recebe sua chave pública e envia algo assinado com essa chave. No entanto, você não tem como verificar se enviou sua chave para o destino real ou se a resposta vem de um invasor - portanto, você tem um túnel seguro, mas não tem informações com quem está se comunicando com segurança ( O invasor pode até se conectar ao destino pretendido e proxy o tráfego, que passa por ele não criptografado).

Para ter certeza de que você está realmente se comunicando com o terminal pretendido, é necessário trocar algum tipo de identificação do host de antemão ou através de um canal seguro. O SSH faz isso usando as "impressões digitais" - ele pergunta na primeira conexão se você confia nesse host e deve verificar a impressão digital através de um canal independente.

Outras dicas

O que eu fiz em uma situação semelhante foi o primeiro arranjo para trocar um par de chaves públicas/privadas, então eu tinha a chave pública de cada cliente; portanto, quando eles se conectaram a mim, uma mensagem foi passada, que tinha um registro de data e hora nele , que eu poderia então descriptografar.

Se isso passasse, e o registro de data e hora era válido (usei 5 segundos como a vida útil do registro de data e hora), trocaria a chave, já que tínhamos uma maneira de nos comunicar com segurança.

Mas isso exigia fazer algo antecipado.

Se você espera que um usuário anônimo se conecte e tenha alguma segurança impossível.

Um artigo que achei muito útil em questões como essa foi *programar o computador de Satanás ", http://www.cl.cam.ac.uk/~rja14/papers/satan.pdf, onde você está tentando ter uma comunicação segura com um sysadmin não confiável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top