在机器级别授权用户?

时间:2013-07-27 21:33:08

标签: ruby-on-rails ruby security http

是否可以在机器级别授权用户。例如,只有使用授权计算机(我的个人笔记本电脑或其他管理员的电脑)才能访问管理页面?任何其他计算机都应该获得拒绝访问消息或其他内容。授权计算机可能仍然提供自己的管理员用户名和密码,以防人们伪造机器的身份。我不是安全专家。

2 个答案:

答案 0 :(得分:1)

如果我误解了,请纠正我,但是您要求只允许特定计算机上的访问者访问您的网站?

直接跳到解决方案中。第一个问题是你怎么知道哪些机器是"经理"机器吗?你有他们的IP地址列表吗?你还有其他身份证吗?

如果你有他们的IP地址,那么IP将它们列入白名单,并阻止所有其他IP地址。

如果您没有他们的IP地址,那么您是有限的。没有可通过Web浏览器访问的计算机ID,因此您需要通过设置长期cookie和注册过程来创建自己的ID。

由于您已经有登录过程,因此下一部分非常简单。您以前使用过此解决方案。当您登录谷歌邮件并点击"记住我"并且在下次您的计算机重新启动时不需要登录,谷歌已基本标记(设置一个cookie)您的计算机。

现在,如果您想获得超级想象,企业可以设置NAC。在允许连接到网络之前,每个系统都已被识别。某些系统比其他系统具有更多访问权限。例如,在软件开发公司,工程师可以访问生产网络,而销售人员则不能。当他们连接时,销售人员在确定他们是谁以及机器属于谁之后移动到受限制的vlan。如果您的公司就是这种情况,那么您可以将整个子网块列入白名单。

最后一点。大通银行使用机器cookie概念如下:首次登录时,他们会询问您的用户名和密码。然后将代码发送到您的手机或某些第三方频道。输入代码后,设置机器cookie(相同的旧cookie)。下次登录时,他们要求输入用户名和密码,然后查找机器cookie。如果机器cookie在那里,那么他们就不会让你再次输入代码。

除了向经理提供他们可以输入的代码之外,您可以进行注册过程。我不认为您想要比注册机器的静态密码复杂得多,但如果您这样做,您可以按照rfc 4226中的规范生成一次令牌。

答案 1 :(得分:0)

您不能限制对特定计算设备的访问(因为使用了许多类型的设备,并且没有通用的东西可以绑定)但是根据您的应用程序设计,您仍然可以解决您的问题。您需要不绑定到计算机,而是绑定到其他无法复制的硬件设备。

其中一个设备是硬件密码或密码卡,其中包含证书和私钥。用户将设备分别插入USB或读卡器,然后使用存储在此设备上的证书和私钥在服务器上进行身份验证。使用证书的客户端身份验证是一个很大但众所周知的主题,因此我不在此讨论它。

虽然可以将加密设备移动到另一个计算机系统,但是无法复制它或从中提取私钥。因此,您可以(具有一定的高可靠性)假设只存在私钥的一个副本,并且它存储在某个特定设备上。

当然,您需要为每个设备创建另一个证书,但这不是问题 - 这些证书的唯一目的是服务器接受,因此服务器可以在需要时颁发新证书。