什么是计算机安全中的 AUTH-KEY?

信息安全 验证 身体的 hmac 欺骗
2021-08-19 09:01:22

我正在研究计算机的安全性,尤其是 URL 欺骗。我了解 URL 欺骗的一种形式是网络钓鱼。然后我读到针对网络钓鱼的对策是身份验证密钥。但是 hocapito autenticcation 关键是什么不好。

在我读到的笔记上:

密钥包含与用户相关的种子、计时器、秘密对称密钥和计数器。相反,服务器上有一个计时器,相同的对称密钥是种子相关实用程序的列表,也是每个用户的计数器。

当用户单击密钥上的按钮时,它会生成一个HMAC(Seed||K||Timer||Counter),以相同的方式在服务器上生成:如果匹配,则授予访问权限。

显然,定时器不会完美同步,然后服务器会生成一些带有一些定时器值的代码HMAC(取决于用户和服务器定时器之间的差距),并会在这些之间寻找匹配。

用户的每次点击都由计数器记录,因此两者是同步的计数器(在服务器和密钥之间)。这会导致无法再使用旧代码(计数器不匹配)。

如果对手特别注意并进行会话劫持,即您刚刚在网络钓鱼站点上输入的数据会立即重新发送到银行的实际站点,则该密钥不起作用。

这就像一个人在中间,对手在银行和用户之间用它的“假”页面做中介。也正是因为这个原因,在执行某些意义之前经常要求另一个密码。

auth-key 是一个密钥(由种子、计时器、计数器和秘密对称密钥组成),它只拥有客户端?种子是什么意思?和计数器有什么关系?什么是 HMAC?如果密钥是秘密的,它怎么能匹配?

我了解的很少。有人会知道用简单的方式解释吗?或者是否有网站更全面、更容易地处理这个主题?

我阅读了维基百科页面,但没有找到更多。

3个回答

种子是用作起点的非秘密值。我不确定它的起点是什么,但大概该算法需要一个(相对精心选择的)数字作为起点。

根据 Wikipedia 文章,密钥不只有客户端知道;服务器也知道。HMAC 是一种伪装共享密钥的方法,任何拦截通信的人都不会知道共享密钥,从而永久访问您的帐户(类似于摘要式身份验证)。

在这种情况下,关键是硬件设备。也称为 Frob 或 Dongle 或 Token(或具有有限防提取保护的应用程序)。它们需要在服务之间共享一个秘密值,并以无法(轻松)提取的方式嵌入到密钥中。

有时这称为种子,有时称为密钥。有时它是硬件唯一的随机数和上传的密钥的组合。在 TOTP 的情况下,迭代计算的种子也是共享密钥。但是在提供新密钥时,它也可能使用种子作为计算共享密钥的基础。

计数器可以是对设备上按钮按下的次数进行计数的计数器,也可以是从某个时间开始的时间间隔。按钮版本的优点是不需要时钟(但需要非易失性计数器存储),定时器版本更易于使用(并且最常见)。

然而,“网络钓鱼保护”是有限的:窃取 OTP 代码的攻击者将能够使用它一次,他们只是无法重复登录。因此,我不会将网络钓鱼防护视为 OTP 的主要安全收益。

就我而言

我使用了一个名为 BetterSeal 的身份验证系统,它使用 Authkeys 为用户/客户端提供身份验证。就我而言,如果有人试图登录我的加载器/面板,那么他们将需要一个生成并存储在 BetterSeals 服务器上的 Authkey,它可以回答您的问题是否是客户端。客户端和服务器都需要通信才能获得访问权限。

种子是什么意思?

它是特定会话或客户端独有的散列或某种键(通常很长)。

和计数器有什么关系?

我认为这意味着会话限制/时间。(例如:1 分钟、1 小时、3 个月、终生)

如果密钥是秘密的,它怎么能匹配?

有一个应用程序/Web Auth Token(看起来也像哈希/种子),用于与 Authkeys 对话。这些是相互连接的。如果应用程序/Web Auth Token 被删除或移除,则 Authkeys 将无法连接,从而导致 Authkeys 无法使用。这基本上就像失去对服务器的访问权限,这使您的登录凭据在服务器启动之前可用。