Métodos de autenticação / criptografia para nós distribuídos?

1

Eu tenho um projeto que vai ver um monte de nós [Raspberry Pis] sendo distribuídos para vários clientes distribuídos geograficamente.

Naturalmente, estou querendo implantar um sistema de autenticação / criptografia entre o servidor mestre e os nós.

Na minha opinião, a visão geral do sistema seria assim:

  • O servidor host teria sua própria chave privada e um banco de dados das chaves públicas dos nós.
  • Cada nó teria sua própria chave privada e a chave pública do Servidor Host.

    A autenticação seria feita da seguinte maneira:

  • Host de contatos do nó com sua ID de CPU do ARM, criptografada com a chave pública do servidor.
  • O servidor descriptografa o ID, localiza o nó em seu banco de dados e criptografa um token de autenticação com a chave pública do nó.
  • O nó decodifica o token de autenticação e a comunicação 'aberta' pode fluir a partir desse ponto.

Eu tentei criar um sistema que possa permitir / impedir ataques MITM e nós próprios. Eu esperava usar o RSA como os algos.

Maneiras mais simples / melhores de fazer o que eu quero fazer? - Existem falhas inerentes ao que estou querendo fazer?
- Existem sistemas / pacotes que já fazem isso?

Obrigado gentilmente.

    
por swx 28.01.2014 / 18:22

2 respostas

1

Você pode usar o Kerberos aqui. Ele fornece um gerenciamento de chaves centralizado, mas requer a instalação de chaves nos clientes finais, assim como quase tudo que está disponível.

Você também pode executar sua própria CA e usar TLS / SSL para tudo e verificar os certificados do servidor e do cliente.

Ou você pode usar o ssh e encontrar os problemas comuns de gerenciamento de chaves que você pode esperar.

    
por 28.01.2014 / 20:20
0

Há algo errado em simplesmente usar o SSH para comunicação?

E como você pode impedir "nós próprios", acho que você precisa de algo como o Tripwire. Nada no fluxo de comunicação vai pegar que um host com uma chave em bom estado tenha sido comprometido.

    
por 28.01.2014 / 19:00