这种散列验证是否安全?

时间:2010-09-05 14:02:19

标签: authentication hash salt verification

我要问的问题仅仅是因为我很好奇。我认为我做的是正确的,但我想确保 是正确的。这是关于哈希。

我目前正在构建的网站具有几个Ajax编辑的组件。首先,未登录的用户无法使用这些组件。其次,登录的用户只能以自己的名义进行请求。伪造很容易,因为我发送了User-id's。

我的验证方法如下。每个用户在数据库中都有一个包含随机信息的列,如8个字符的随机字符串。除了用户发出的每个Ajax请求外,此随机字符串也作为散列字符串发送。当服务器收到Ajax请求时,此哈希与用户表匹配,以确保ID和哈希是有效的一对。如果是,则该请求有效。

“秘密”随机字符串永远不会进入用户领域,并且不容易被猜到,这意味着用户永远不会生成散列。这种安全请求是否安全?有什么缺点吗?如果我会使用一些盐会更好吗?

另一方面,这种验证确实让我感兴趣。我参加了交互设计课程。 “我们”拥有'世界知识和头脑知识'的原则。 Hashing确实使用该技术将元数据从“头部”传输到“世界”(反之亦然)。头部和世界都有他们比较和解密元数据的方法,因此无法模仿请求。只要世界不知道头脑知道什么。

嗯,那就是说,我想知道我的请求是否(相对)安全。提前谢谢!

雷因德

1 个答案:

答案 0 :(得分:0)

是的,有几点需要注意。

1)如果散列是以明文形式发送的,则会受到欺骗。截获哈希的攻击者现在可以模拟有效用户。为了真正的安全性,您需要保护通道(HTTPS)。

2)确保使用现有的加密安全散列。不要试图自己动手。我建议远离MD5。鉴于这是一个绿地情况并且SHA1实现存在,没有理由使用MD5。