分布式节点的身份validation/encryption方法?

我有一个项目,将看到一堆节点[树莓派]被分发到各个地理分布的客户端。

当然,我想在主服务器和节点之间部署一个authentication/encryption系统。

在我的脑海里,系统概述是这样的:

  • 主机服务器将拥有自己的私钥和节点公钥的数据库。
  • 每个节点都有自己的私钥和主机服务器的公钥。

    身份validation将发生如下:

  • 节点联系主机,其ARM CPU ID使用服务器的公钥encryption。
  • 服务器解密该ID,在其数据库中find该节点,并使用该节点的公钥对auth令牌进行encryption。
  • 该节点解密authentication令牌,并且“开放”通信可以从这一点stream动。

我试图devise一个系统,可以允许/ thwarts MITM攻击和拥有节点。 我曾经期望使用RSA作为algorithm。

– 有没有更简单/更好的方法来做我想做的事情?
– 我想要做什么有什么固有的缺陷?
– 有没有系统/软件包已经这样做?

谢谢。

你可以在这里使用Kerberos。 它提供了一个集中的密钥pipe理,但它也需要在最终客户端上安装密钥,几乎所有的东西都在那里。

或者,您可以运行您自己的CA,并使用TLS / SSL进行检查,并检查服务器和客户端证书。

或者你可以使用ssh,并运行通常的密钥pipe理问题。

简单地使用SSH进行通信有什么问题吗?

而对于如何阻止“拥有节点”,我认为你需要像Tripwire这样的东西。 通信stream中没有任何东西可以捕捉到具有已知密钥的主机已经被入侵。