确保网站中的密码格式

时间:2015-04-10 19:41:21

标签: security passwords

我目前正在为客户开发内部网站,根据密码管理我遇到了问题。用户必须登录才能访问该网站。我将手动管理新用户帐户的创建。例如,经理将向我提供他想要访问该网站的所有员工的列表。我将使用生成的密码(每个用户不同的密码)创建每个用户帐户,该密码仅在几天内有效。首次登录时,用户必须将密码更改为另一个密码。新密码将有一些要求(即长度,大写字母,其中有一个数字,......)。这很常见。

我的问题是,由于此应用程序将在网络(它是一个Intranet)中工作,我无法在客户端验证密码(客户端可以禁用Javascript,或者数据可以在网络上更改(即另外,我认为通过网络发送一个干净的密码是不安全的,所以我在发送到网络之前使用SHA-1在客户端散列密码。

我的问题是,由于服务器获取密码哈希值,因此无法验证长度或符合格式要求。

我正在使用C#和MVC 5框架,但我的问题更多的是设计问题,而不是编程问题。

对于长篇介绍感到抱歉,非常感谢您的回答

此致

皮尔

1 个答案:

答案 0 :(得分:1)

  

另外,我不认为通过网络发送干净的密码是安全的,所以我在发送到网络之前使用SHA-1在客户端散列密码。

这不是必需的。

让我们看一下潜在的攻击向量:

  • 数据包嗅探(窃听者)

    可以查看网络流量的攻击者只需通过线路查看SHA-1即可。由于您没有对其进行腌制,因此您没有重播保护。这意味着攻击者可以重新使用SHA-1结果并进行身份验证。

    单独使用SSL(无客户端哈希)将对抗此攻击。

  • 中间人

    可以MITM内容的攻击者可以在散列之前注入自己的代码来嗅探密码。

    单独使用SSL(无客户端哈希)将对抗此攻击。

  • 服务器端攻击者

    如果有人可以将代码放到您的服务器上,那么无论如何都要搞砸了。

简而言之,就是使用SSL。不需要"预先哈希" ...

相关问题