Ale*_*art 16 security random encryption cryptography
我正在寻找一个系统,我需要为每个用户分配一个独特的密码以确保安全性.用户只能输入此密码作为识别自己的方法.因此,我不希望用户能够猜测其他用户的密码.假设我将拥有的最大用户数是100000,这个密码应该是多长时间?
例如1234 4532 3423
我应该通过某种算法生成此代码吗?或者我应该随机生成它?
基本上我不希望人们能够猜出其他人的pincode,它应该支持足够数量的用户.
很抱歉,如果我的问题听起来有点令人困惑,但很乐意澄清任何疑问.
非常感谢你.
UPDATE
阅读下面的所有帖子后,我想补充一些细节.
我无法添加额外的安全性(例如用户名和密码),因为它会阻止用户使用刮刮卡.我想尽可能地在限制范围内猜测密码.
谢谢你们再次提出惊人的回复.
如果你将它附加到唯一的已知用户ID(仍然可以是数字),则应该有4个随机数字[按照starblue的建议]
伪随机数发生器也应该没问题.您可以使用可逆加密(AES)或单向散列将它们存储在数据库中
您主要担心的是一个人在被锁定之前可能错误地输入了多少次.这应该是低的,大约三个......这将阻止人们猜测其他人的数字.
任何超过6位数的人都会忘记它们,或者更糟糕的是,将它们写在显示器上的便利贴上.
假设一个帐户锁定有3次不正确的尝试,那么拥有一个4位数的引脚加上一个用户ID组件UserId(999999)+ Pin(1234)会给你一个3/10000的机会猜测.这可以接受吗?如果不使引脚长度为5并获得3/100000
我可以建议另一种方法吗?看看Perfect Paper Passwords及其提示的衍生产品.
您可以"按原样"使用此按钮生成一次性PIN,或者只是为每个用户生成一个PIN.
请记住,重复的PIN本身并不是一个问题:任何攻击都只需要尝试多个用户ID.
(里程警告:我绝对不是安全专家.)
这是第二个答案:从重新阅读开始,我认为你不需要这样的用户ID - 你只是在验证一组已发布的刮刮卡.我还假设您不想使用字母PIN.
您需要选择PIN长度,以便猜测有效PIN的概率小于1 /(您可以保护的尝试次数).因此,例如,如果您有100万个有效的PIN,并且您想要防止10000次猜测,则需要一个10位数的PIN.
如果您使用John Graham-Cumming的Perfect Paper Passwords系统版本,您可以:
我怀疑这是一个通用程序,例如,它也可用于生成25个字母数字的产品ID.
很抱歉通过逐次逼近来做到这一点; 我希望你能找到更接近你想要的东西.
如果我们假设最多有 100,000 个用户,那么他们可以拥有 0-99,999 的唯一 PIN,即。5位数。
但是,这将使猜测具有最大用户数的 PIN 变得更容易。如果您可以限制 PIN 的尝试次数,那么您可以使用较短的 PIN。例如。每个 IP 每天最多 10 次失败尝试。
这也取决于你所保护的东西的价值,以及如果这个奇怪的人真的出来了将会是多么的灾难性。
如果您想保持简短,我会选择 9 位数字,如果您想从自动猜测中获得更多安全性,我会选择 12 位数字。
为了生成 PIN 码,我会使用高分辨率版本的时间以及一些盐和伪随机数,生成哈希并使用前 9 位或 12 位数字。确保在新的 PIN 生成之间存在合理且随机的延迟,因此不要循环生成它们,如果可能,让它们由用户发起。
例如。Left(Sha1(DateTime + Salt + PseudoRandom),9)
到目前为止有很多很棒的答案:简单、有效、优雅!
我猜这个应用程序有点像彩票,因为每个用户都会获得一张刮刮卡,并用它来询问您的应用程序是否“他已经赢了!” 因此,从这个角度来看,一些新问题浮现在脑海中:
战争拨号,或其互联网等效物:恶意用户是否可以反复点击您的应用程序,例如连续猜测每个 10 位数字?如果可能的话,请考虑限制从特定位置进行尝试的次数。一种有效的方法可能就是拒绝回答多次,例如,从同一 IP 地址每 5 秒尝试一次。这使得机器驱动的攻击效率低下,并避免了锁定问题。
锁定问题:如果您在尝试多次失败后永久锁定帐户,则很容易遭受拒绝服务攻击。上述攻击者可以有效地锁定每个用户,除非您在一段时间后重新激活帐户。但只有当您的 PIN 明显由用户 ID + 密钥串联组成时,这才是问题,因为攻击者可以尝试给定用户 ID 的每个密钥。该技术还大大减少了密钥空间,因为只有少数 PIN 数字是真正随机的。另一方面,如果 PIN 只是随机数字序列,则只需对源 IP 地址应用锁定。(如果尝试失败,则不会影响任何有效帐户,那么您会“锁定”什么?)
数据存储:如果您确实正在构建某种类似彩票的系统,您只需要存储中奖 PIN 即可!当用户输入 PIN 码时,您可以搜索相对较小的 PIN 码/奖品列表(或同等内容)。如果经济条件允许,您可以将“丢失”和无效 PIN 与“抱歉,下次好运”消息或“默认”奖品等同对待。
祝你好运!
| 归档时间: |
|
| 查看次数: |
11374 次 |
| 最近记录: |