2016-12-01 128 views
0

我有一个需要使用用户名和密码访问服务的树莓派。在设备上存储用户凭证的标准程序是什么?如何在设备上安全地存储密码?

我知道电话上的用户会输入用户名和密码,以获得在某段时间内有效的令牌。这允许!不!本地存储凭据。

但是,我的设备(DVR)需要全天候运行,用户无法定期输入密码。所以我不知何故需要在设备上存储密码以便每隔一段时间或重新启动后登录。

我很担心,因为该设备是可公开访问的,有人可能会将其插入计算机并从存储中读取密码。

回答

0

你必须考虑一下你想要防范的确切攻击。 TL; DR是你无法保护它免于想到的任何事情。

一个问题是当设备启动时是否可以输入某种秘密(密码)。你说它是全天候运行的,所以重启应该不会很频繁。如果你担心有人拿着树莓并从磁盘读取密码(或卡,如果是Pi),你可以尝试将其保存在内存中。启动时需要输入密码,但是无论谁携带设备(或卡)身体都无法学习密码。当然,这不是完全安全的,有人可以从内存中读取密码,而不必使用Pi(您说他们有物理访问权限),或者他们可以保持电力,以便密码保存在内存中。但它比将密码写入存储更安全。

您可以做的另一件事是分配设备某种令牌。如果您认为令牌已被泄露(有人以任何方式了解它),则可以将令牌更改为新令牌。但是您仍然需要一种方法来发现证书被盗时的情况。但是无论如何你都需要这个。

您可以监视设备的物理篡改或盗窃。如果它被篡改或被盗,您可以认为凭证已被泄露,然后您可以向您的服务颁发新凭据。

另外你说它运行24/7,所以我认为它有一个固定的IP地址。您可以在与凭证连接的服务上实施IP地址限制,因此即使证书被破坏,攻击者的连接位置也非常有限(但您提到了一种通常使用UDP流量的DVR,而且它通过UDP伪造源IP地址比通过TCP更容易)。

可能不用多说,但显然你应该在这个设备上使用唯一的证书,你无处可用,没有其他的目的。

请注意,如果您想防范不同的威胁或深度构建防御,您可以选择其中的几个。但是你必须记住,无论你给用户(潜在的攻击者)什么都会丢失,你可以放心地认为他们完全可以控制。然而,努力程度是不同的,如果你能够使攻击者感到困难或危险,那么在许多情况下这可能是相当不错的。