快捷搜索:  创业 手机 疯狂 生态 坏人 华人 发明

使用加密货币进行无密码身份验证

照片由Mark Ba​​sarab在Unsplash拍摄

今天的身份验证系统正在逐渐远离传统的面向密码的解决方案。一个例子是使用指纹的生物认证。由于指纹的独特性,您可以确定认证自己的人是他们所说的人。

指纹的唯一性与加密货币中的钱包种子相似当您创建用于接收加密货币的钱包时,您将以安全的方式生成种子。如果正确生成并且取决于种子的大小,几乎可以保证永远不会再生成这个精确的种子。所以对于所有意图和目的而言,它是独一无二的

如果钱包种子保持安全,那么从钱包观察到的任何活动都可以被认为来自生成其种子的人。如果他们的钱包里有资金,他们就有很大的动力保证种子安全。

由于钱包种子是唯一的,因此它可以用作传统身份验证系统中用户名/密码组合替代品为了避免在身份验证过程中暴露钱包种子,您可以从钱包中发送一些资金来证明您拥有它。

网站可以接收这些资金并为您创建链接帐户。从钱包中观察到的任何未来活动都可用于访问新创建的链接帐户。

应该使用哪种加密货币?

出于身份验证的目的,应该在两个类别下评估加密货币:速度和成本。

速度

当用户在网站上进行身份验证时,他们预计它会相当快。如果花费的时间超过5秒,那么用户体验将会很糟糕,用户最终会感到沮丧。因此,我们不能使用具有长交易确认时间的加密货币。其中最值得注意的是比特币。

成本

支付身份验证对于网站用户来说是完全陌生的,如果不是完全不可接受的话。然而,在我们的例子中,发送一些资金是证明钱包种子所有权的必要条件。如果我们可以退还资金,那么这可能不是问题。但是,大多数加密货币都有与网络上任何活动相关的费用。因此,用于身份验证的理想加密货币应该是免费的。

纳米使它成为可能

考虑到速度和成本作为我们的两个决定因素,目前使用的唯一选择是数字货币Nano。


纳米标志

速度

Nano非常快。最近的数据显示,交易确认时间中位数为0.2秒[1]。这对于身份验证来说已经足够了。

成本

与交易相比,纳米是免费的。因此,在认证之后提供退款将返回用户最初发送的确切金额,并且不会将其留在口袋中。

解释演示

作为一个概念验证,我使用Nano实现了这个认证系统的演示,可以在https://nanocharts.info/passwordless/上找到它允许您注册并登录帐户。这是使用Nano 100%完成的,不需要用户名或密码。


'注册Nano'和'使用Nano登录'按钮
'注册Nano'和'使用Nano登录'按钮。

这个怎么运作

要注册或登录,您必须先指定您的Nano地址。然后,系统会要求您将0.000001和0.000099 NANO之间的随机量Nano发送到指定用于验证目的的特殊Nano范围之一。随机数量是安全措施所必需的(请参阅“攻击矢量 - 蹲下”部分)。

身份验证系统将在网络上侦听包含您的Nano地址和随机数量的Nano指定的发送事务。如果它找到此事务,则证明您可以控制Nano地址。如果这是注册尝试,则创建链接帐户。如果这是尝试登录,您将登录到关联帐户。如果纳米金额与Nano要求的金额完全匹配,则会自动退还已发送的纳米金额

您可以在下面看到身份验证过程的完整流程图。


无密码Nano身份验证系统中注册和登录过程的流程图
无密码Nano身份验证系统中注册和登录过程的流程图

权衡优势和劣势

没有认证系统是完美的。让我们回顾一下这个系统的好坏。

优势:

  • 无需记住用户名和密码。手上拿着你的Nano钱包吧。
  • 如果正确实施则安全。您需要失去对钱包种子的控制权才能失去对关联帐户的控制权。由于您将有一些资金与您的钱包种子相关联,因此您更有可能保证其安全。
  • 注册垃圾邮件预防 如果在服务的条款和条件下保留在注册期间发送的资金,即没有退款,那么每次创建帐户时都会花费垃圾邮件发送者Nano。因此,创建垃圾邮件帐户不具有经济意义。
  • 注册资金作为收入。有些服务收取注册费即可成为会员。使用上面详述的认证系统,在注册过程中发送的资金可以被视为注册费,即不退还。通过这种方式,服务可以取消单独的系统,仅用于收取注册费用,而是将其转入Nano认证系统。新注册的用户必须明确注册资金。
  • 蛮力攻击向量是多余的。由于没有密码系统,攻击者无法使用暴力猜测攻击来访问帐户。此外,几乎无法猜出钱包种子。

弱点:

  • “蹲”攻击矢量,请参阅下面的部分。
  • 如果实施薄弱,则隐私问题。如果有人知道网站使用的接收Nano地址来检查来自网络的身份验证数量,那么您就会知道哪些Nano地址正在登录,他们登录的次数以及登录日期。为了解决这个问题,网站应该使用各种身份验证Nano地址。理想情况下,网站应在每次身份验证尝试时使用新的Nano地址。在为本文创建的概念验证演示中,多个Nano地址用于身份验证。
  • 用户必须输入冗长且繁琐的Nano地址。如果他们手头有Nano地址来复制和粘贴这不是一个问题,但用户喜欢只需输入用户名和密码的便利。
  • 认证系统的实施必须是健壮的。由于将执行退款,系统背后的代码和硬件必须能够处理网络问题。如果由于某些无法预料的错误导致退款失败,则必须在不久之后再次尝试退款,以维持用户对系统的信心。

攻击矢量 - 蹲

虽然用户只有在他们控制与链接帐户关联的钱包种子时才能登录,但恶意用户可能会尝试蹲在 Nano地址上。这是通过输入您无法控制的Nano地址来实现的,如果该地址恰好在特定时间段内进行身份验证,则系统将授予对所有侦听浏览器的访问权限。

为了防止下蹲尝试,身份验证系统要求您在0.000001和0.000099 NANO之间发送随机数量,并强制执行2分钟的时间窗口进行身份验证。如果在时间限制内出现具有完全随机量Nano请求的发送事务,则系统将授予访问权限。否则,身份验证尝试将失败。

如果擅自占地者要在他们的浏览器中同时打开100次蹲式尝试以试图完全覆盖整个0.000001 - 0.000099 NANO范围的随机数量,那么它仍然可能蹲下。但是,他们需要每2分钟刷新一次会话以考虑身份验证时间窗口。

使蹲下几乎不可能的一种方法是增加可以发送的随机纳米量的范围。然而,大多数钱包不允许您发送少于0.000001 NANO的数量,因此当前范围是安全性和仅请求少量Nano之间的折衷。如果将来可以以某种方式将范围增加到0.000000000000001到0.000001 NANO(10亿可能的数量),那么几乎不可能蹲下。

结论

本文介绍了传统的基于密码的身份验证系统的替代方法,它使用加密货币作为用户证明他们所说的人的手段。在实施过程中应注意考虑隐私问题并确保支付退款,但今天可能会小规模使用此类身份验证系统。

没有强大的加密货币支持,这种认证系统就不可行。Nano加密货币的安全,超快和免费品质使这成为可能。

资料来源:

[1] https://www.repnode.org/network/propagation-confirmation - 2019年8月24日的中位确认时间读数

谢谢:

感谢Nano社区经理DotcomJoohansson对测试和DPoW集成的帮助。
 

弗兰克基尔利

全栈开发者http://monivea.com

您可以还会对下面的文章感兴趣:

  • 使用加密货币进行无密码身份验证
  • Crypto.com列出纳米(NANO币)
  • nano币评级
  • nano币地址持仓成本分析
  • 权力下放与绩效
  • 最新评论

    留言与评论(共有 0 条评论)
       
    验证码: