我设计了一个认证系统,作为一个网络安全类的项目。我想让你批评一下。下面是一个简短的解释:
注意:对不起,没有图片,但我将提供创建帐户和登录过程的视频链接
我们的身份验证系统由四个身份验证阶段组成,第三个阶段在默认情况下被禁用(稍后将提供解释)。用户首先选择用户名并输入他们的全名。在第一阶段,用户通过单击注册时显示在屏幕上的网格来绘制线模式。对于登录到第一阶段,将显示相同的网格,但每个框中都有一个字符。用户需要通过使用虚拟键盘从显示在网格中的字符集中输入字符来指示相同的行模式。用户需要根据其在网格中的位置选择字符,以便与创建帐户时绘制的模式相匹配。字符集是十位数字(0-9)和英文字母(小号和大写字母),这使得总共26 + 26 + 10 =62个可能的条目。字符随机出现在网格框中,因此观察登录过程的人很难获得任何有价值的信息。图1和图2说明了第一阶段。
图1:第一阶段的模式创建
图2:按照模式输入字符
在第二阶段,用户需要输入四个字符--使用虚拟键盘--根据注册时指定的特定数字代码从一组十个字符中选择。这十个字符的顺序是随机的,它们与第一阶段的字符集相同(完整的字母数字集=62个字符)。数字代码被秘密地传递给用户。图3显示了注册和登录时的第二阶段。
图3:第二个身份验证阶段
在第三阶段,系统为用户提供了他们需要输入到智能手机中的种子值,以生成密码并输入到系统中。注册时,认证系统生成一个复杂的数学公式,并将其与用户关联。这个数学公式是秘密传达给用户的。用户在智能手机中的Excel程序中输入公式。登录时,用户将随机生成的种子值插入到智能手机的Excel表中,以获得输出。然后,用户最终将输出(密码)输入到第三阶段的登录屏幕中以进行身份验证。图4显示了第三个阶段。
图4:第三个身份验证阶段
在第四阶段,用户将需要回答从注册时创建的一组问题中选择的安全问题,如图5所示。
图5:如您所见,第四阶段,为了最大限度地提高可用性,我们选择使用主要来自“了解的东西”类别的因素来减少我们的解决方案的缺点。只有一个因素(第三阶段)可以被视为“你拥有的东西”类别中的一个因素。我们之所以使用这一因素是为了给系统增加一些多样性,而这个项目需要携带的事实是智能手机。智能手机并不是一个额外的项目,因为假设现在每个人都拥有一部智能手机,所以通常伴随着“你拥有的东西”类别的因素的缺点在这里并不适用。但是,第三阶段在默认情况下是禁用的,这也是为了最大限度地提高可用性和最小化用户的工作量。我们还为系统添加了一些属性,以提高系统的整体性能。属性是: a.每个阶段的超时选项为60秒,在此之后,用户将不得不重新开始。在第一阶段,用于模式创建的最小框数为9.c。登录尝试的最大次数为10.d。如果不活动5分钟,系统将记录用户退出。安全问题询问有关用户的事实。这使得用户更容易记住安全问题的答案。我们还选择通过允许用户启用/禁用身份验证阶段来使系统更加灵活,根据上面的讨论,两个阶段是最小的阶段数。我们提出的方法使用了共享秘密的变化,目的是尽量减少用户的工作量,但却可以阻止几乎所有类型的攻击。
以下是视频:
创建帐户创建帐户过程:
使用第三阶段启用登录进程登录:
我知道拟议的制度是过火的。大多数人都不喜欢。一个很好的防御方法是说,该系统是针对敏感的应用程序的,就像在军队中发现的那样。但实际的目标是想出一个平衡安全性和可用性的系统。
我最多需要两个阶段都有很好的安全。
谢谢
发布于 2016-07-24 20:19:34
你已经说过了,这太过分了。我怀疑你会对用户下手。你所有的因素都是知识因素。在网格中画一条线。根据已知的线路识别号码。回答关于我的已知事实。
据我所知,你正在结合几种不同的知识。但是,关于双因素或多因素身份验证的思想不是要求两个或多个密码,而是要求不同的身份验证类型。为什么?因为攻击者不擅长攻击所有不同的类型。我喜欢谈论攻击者的技能简介。如果攻击者能够破解您的8个字符密码,他还可以破解两个8个字符的密码。但他可能无法偷走真正的财产。
您想为每个用户创建一个新的公式吗?为什么要这样?你是专业密码师吗?您应该使用RFC4246或RFC6238。这些是RFC和标准化的。
我建议看一看我的privacyIDEA解决方案。我不是一个密码学家,所以我不发明新的公式,而是坚持开放的标准。尽管如此,用户可以使用TOTP,HOTP,智能手机,硬件,yubikeys,问题.
https://security.stackexchange.com/questions/130891
复制相似问题