我们在野外部署了大量小型设备,通过REST API与中央服务器进行通信。它将定期发送状态更新和一些传感器数据,并且还会询问服务器是否需要应用任何软件更新。如果有,它会下载等。
我想要一些方法来阻止我的服务器API被未经授权的客户端使用。以下是我所拥有的解决方案以及我预期的问题。这个问题有点开放,但主要是一个最佳实践的问题,我认为是一个常见的情况。
那么,我该怎么做?
在我们的设置中,我们为预先创建的每个设备分配了主机名。一旦设备打开,他们将使用他们的主机名联系服务器,从而进行自我注册。 MAC地址和其他信息作为初始注册握手的一部分传递。
因此,Noksi在答案(和评论)中提到的“唯一标识符”是主机名。这很容易被欺骗(因为主机名有一个模式)。但是,当设备首次上线时,我们可以获取mac,之后,如果请求来自同一台mac,则只刷新令牌。这开启了第一次发生假登记的可能性。
答案 0 :(得分:1)
如果有某种方法可以唯一地识别每个设备(类似于MAC地址),那么这将是关键。保留设备的注册表,每个设备都将注册到服务器。服务器将为设备提供令牌并将其(令牌)与注册的设备相关联。设备使用该令牌发出请求。可以根据需要使令牌过期和更新,或者如果需要可以将其列入黑名单。这似乎与拟议选项中的选项3相似。