我目前正在开展一个项目,我们正在为我的组织创建一个大型公共网站。该网站将允许客户注册并登录以获取敏感的个人信息。
根据经验,我知道一些基本知识,例如需要复杂的密码,并且需要使用电子邮件地址来重置常用的密码。
基本上我正在寻找的是针对这些要求的某种记录良好的建议或标准(如NIST或ISO)。
我需要向坚持我们的更高级别的导演提出这个问题:
如果我能提出某种类型的行业标准,说明为什么会出现这样的风险,那将会有所帮助。
答案 0 :(得分:3)
好的,让我回答你的Pointy-Haired导演的建议(我知道你知道他错了,不要亲自接受),我无法抗拒:
- 不要求用户拥有电子邮件地址
欢迎使用虚假账户。
- 要求我们允许用户通过验证姓名,生日和SSN来让我们的网站将密码显示给用户
在我的国家和文化中,隐私是一个真正的问题,所以你永远不会得到我的SSN,我不会在任何网站上注册这个问题。顺便说一句,如果这是一个可以在网上找到的信息(我在美国听说过这种情况),这似乎并不安全。为什么不添加一些个人熵的安全问题?
- 以纯文本形式通过电子邮件发送密码,而不是通过电子邮件发送临时密码并让他们来我们的网站重置密码。
LOL!首先,如果您没有用户的电子邮件地址(并且在注册期间没有验证它),您将如何执行此操作?然后,能够发回密码意味着您不会存储盐渍密码的哈希值。馊主意。您是否计划存储明确的密码(在最坏的情况下)或使用对称加密(在最好的情况下)?在后一种情况下,我想知道他计划存储对称加密密钥的位置。也许在他的键盘下的便利贴上。不确定值得一提的是电子邮件不安全。
- 要求我们分配简单的系统生成的用户名,例如姓氏的第一个初始,前3个字符和4位随机生成的数字(而不是用户选择他们想要的任何名称)
系统建议 可用的用户名是可以的(特别是当很难找到可用的用户名时)但我不喜欢他们不允许我选择用户名。话虽如此,我不认为强制用户名是主要威胁。
所以,换句话说,我真的不相信有这种做法的网站,也不会给它任何明智的信息。实际上,我根本不会提供任何信息(即没有注册),但我不是lambda用户。
我知道这不是这个问题的直接答案,但是,严肃地说,那些对某些事情毫无头绪的人什么时候开始让那些有更好理解的人做他们的工作?这太荒谬了。
现在,有些建议可以回答这个问题:
答案 1 :(得分:2)
OWasp专门用于包含安全标准,尽管它有很多文章过于具体而无法满足您的需求。您可能想尝试their development guide或在论坛上询问相同的问题。
答案 2 :(得分:1)
W3C的security group负载为bumf。它可能包含您想要的东西。 WASC也有很多信息,看起来很有用。