我有一个需要使用用户名和密码访问服务的覆盆子pi。在设备上存储用户凭据的标准过程是什么。
我知道手机上的用户会输入用户名和密码,以获得在特定时间段内有效的令牌。这允许!不!在本地存储凭据。
但是,我的设备(DVR)需要全天候运行,用户无法定期输入密码。所以我需要在设备上存储密码,以便每隔一段时间或重启后登录。
我很担心,因为该设备是公开可访问的,有人可能会接受它,将其插入计算机并从存储中读取密码。
答案 0 :(得分:0)
您必须考虑要防范的确切攻击。 TL; DR是你无法保护它免受一切想到的事情。
一个问题是,当设备启动时是否可以输入某种秘密(密码)。你说它全天候运行,所以重启应该不是很频繁。如果你担心的是有人拿着Raspberry并从磁盘读取密码(或卡,如果是Pi),你可以尝试将其保存在内存中。启动时需要输入密码,但无论是谁在物理上取得设备(或卡)都无法学习密码。当然这不是完全安全的,有人可以从内存中读取密码而不需要Pi(你说他们有物理访问权限),或者他们可以保持电源,同时服用它以便密码保存在内存中。但它比将密码写入存储更安全。
您可以做的另一件事是为设备分配某种令牌。如果您认为令牌已被泄露(有人以任何方式学习它),您只需将令牌更改为新令牌即可。但是你仍然需要一种方法来发现证书被盗的时间。但无论如何你都需要这个。
您可以监控设备是否有物理篡改或被盗。如果它被篡改或被盗,您可以认为凭据已泄露,然后您可以向您的服务发放新凭据。
你也说它全天候运行,所以我认为它有一个固定的IP地址。您可以使用凭据对其连接的服务实施IP地址限制,因此即使凭据遭到破坏,攻击者在可以连接的位置也非常有限(但您提到了DVR,它通常使用UDP流量,而且它和#39;通过UDP伪造源IP地址比通过TCP更容易。
可能不用说了,但显然你应该在这个设备上使用你在其他任何地方使用的独特凭证,而不是其他用途。
请注意,如果您希望防范不同的威胁或深入构建防御,则可以选择其中的几种。但是你必须记住,无论你给用户(潜在的攻击者)的任何东西都丢失了,你可以放心地认为他们有完全的控制权。但是,努力程度是不同的,如果你可以为攻击者做出足够的努力或风险,那么在许多情况下这可能是相当不错的。