标签: password-policy

密码中允许使用哪些字符的最佳规则是什么?

没有考虑它我只想说我应该允许每个角色.它在任何情况下都会被哈希,我不想限制想要创建强密码的人.

然而,考虑更多,有很多人物,我不知道他们对事物有什么影响.外来字符,ascii符号等等.

我试图谷歌,但我找不到任何人的确切标准.甚至大多数专业组织似乎都不知道.对于许多网站而言,完全不允许使用特殊字符似乎是一种常见做法,这只是愚蠢而不是我想做的事情.

无论如何,对长度,允许的角色等有任何标准建议吗?

我不确定它是否重要,但我将使用ASP.NET w/C#

passwords special-characters password-policy

20
推荐指数
2
解决办法
4735
查看次数

密码最大长度与bcrypt,河豚

我的问题来自于 如何使用河豚散列长密码(> 72个字符)

我使用bcrypt(河豚)来哈希密码.所以,正如我从这个问题中发现的那样 https://security.stackexchange.com/questions/39849/does-bcrypt-have-a-maximum-password-length

它的字符数限制为72.

所以,我开始考虑限制密码的最大长度,但是在这些问题及其答案之后

https://security.stackexchange.com/questions/33470/what-technical-reasons-are-there-to-have-low-maximum-password-lengths

为什么要限制密码的长度?

我应该在密码上加上最大长度吗?

所有人都说是反对的.提到的东西,比如

  • 节省存储空间
  • 旧的Unix系统经验
  • 与不支持长密码的旧系统交互
  • 公约(即"我们总是这样做")
  • 简单的天真或无知.
  • 以明文存储
  • 此外,a maximum length specified on a password field should be read as a SECURITY WARNING通过这个答案 - /sf/answers/6980711/
  • 等等

所以,我认为我不符合其中一个案例.当然,我同意愚蠢的限制,例如最大长度10,甚至更糟,8或6,但不是30,40或更长的密码(盐渍)被认为是安全的?从这篇文章(虽然有点旧),但它说

it can make only 71,000 guesses against Bcrypt per second
Run Code Online (Sandbox Code Playgroud)

http://arstechnica.com/security/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/

这适用于8个字符的密码.因此,我想象自定义彩虹表会蛮力一个30个或更多字符密码(考虑到每个密码都有自己的盐),因为彩虹表大小呈指数增长

引用同一篇文章的评论

每次在密码中添加一个字符时,都会以指数方式增加通过暴力破解所需的难度.例如,8-char密码的密钥空间为95 ^ 8组合,而20-char密码的密钥空间为95 ^ 20组合.

因此,对于一个20长度密码与bcrypt根据那将是必要95 ^ 20 /(71 000*3600*24*365)~10年28度(如果我做对了)

qsn1:现在,在这种情况下,使用blowfish有一个意思是不要将密码最大长度限制为72,因为在任何情况下都会被截断,因此这里没有额外的安全性增益.

qsn2:即使存在salt(每个用户都是唯一的并保存在db中),毕竟我想在密码中添加pepper(在应用程序中硬编码而不是保存在db中).我知道是否会增加一些额外的安全性,但我认为以防万一db(或db backup)只是泄露,胡椒将是有用的. https://security.stackexchange.com/a/3289/38200 所以,为了能够添加20个字符胡椒,我需要将密码最大长度设置为50左右.我想这样:让我们说用户是使用70个字符,在大多数情况下(如果不是全部),它将是一些短语或类似的,而不是生成强大的字符,因此将用户限制为50最大长度并添加另一个20-22更安全字符胡椒肯定更安全/随机.另外,让我们说黑客正在使用"常用短语"的彩虹表,我认为有更高的机会,这72 character common phrase将被黑客攻击,而不是50 character common phrase + 22 character …

encryption passwords password-policy password-storage password-encryption

6
推荐指数
1
解决办法
8194
查看次数

在Java中使用HMAC的PBKDF2

我正在开发一个Java项目,我必须确保用户密码的机密性和完整性保存在纯文本文件中.

为此,我将只在文件中写入密码的哈希值.更具体地说,我的目的是编写密码的哈希值和随机盐,以及随机盐本身,以避免使用彩虹和查找表.我还想使用PBKDF2进行键拉伸,以使计算哈希计算成本高昂.最后,我想使用密钥哈希算法HMAC作为最后一层保护.

我试图在Java代码中实现我的想法,我已经找到了一些上面提到的操作示例:

private static byte[] pbkdf2(char[] password, byte[] salt, int iterations, int bytes)
    throws NoSuchAlgorithmException, InvalidKeySpecException
{
    PBEKeySpec spec = new PBEKeySpec(password, salt, iterations, bytes * 8);
    SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
    return skf.generateSecret(spec).getEncoded();
}
Run Code Online (Sandbox Code Playgroud)

我真的无法理解的是如何输入我的密钥作为HMAC算法使用的密钥,因为它似乎不是函数的输入.我查看了Java文档,但是找不到我的问题的解决方案.

在这一点上,我不确定我是否正确理解加密机制的不同部分是如何工作的,所以我会接受有关该主题的任何帮助.

java passwords hmac password-policy pbkdf2

5
推荐指数
1
解决办法
8020
查看次数

是否有现有的算法来检查密码强度?还是重新发明轮子?

我一直在考虑开发一个Android应用程序,它可以告诉用户输入的密码的密码强度。

在检查密码强度方面,我开发了这两种算法来检查。但我正在重新考虑使用这些算法,因为我认为它效率不高。你们有什么感想?

这是我的两种算法:

平均法

Sample input = Password12@

1. Count the lowercase, uppercase, digits and special characters in the given String.
   Eg.
   Lowercase count = 7;
   Uppercase count = 1;
   Digits count = 2;
   SpecialCharacter count = 1;

2. Get the character count and multiply it to the size of given String.
   Eg.
    (Count * Size)
    (7 * 10) = 70
    (1 * 10) = 10
    (2 * 10) = 20
    (1 * 10) = 10 …
Run Code Online (Sandbox Code Playgroud)

passwords password-policy password-checker

5
推荐指数
1
解决办法
3945
查看次数

如何在ApacheDS上解锁用户

我设置了一个启用了默认密码策略的ApacheDS.对于测试建议我通过输入错误的凭证多次锁定一个简单的User(objectClass =使用某个自定义User-objectClass扩展的Person).正如我所料,用户被锁定(错误消息:用户被永久锁定).

现在的问题是:如何再次解锁用户?有没有更好的方法,然后再删除和添加?

我尝试使用扩展用户(objectClass = pwdPolicy),但在用户被锁定时没有添加pwd*属性.

ldap password-policy apacheds

4
推荐指数
2
解决办法
6199
查看次数

ASP.NET配置文件中的密码策略(成员)

在更改密码页面中,我们有这个代码,所以如果我们想要将密码策略更改为"StrongPolicy",我们有办法还是默认情况下?

我们还可以将其改为弱政策吗?

我读过MSDN但找不到它.

Membership mu ; 
mu=Membership.GetUser(txtUserName.Text); 

mu.UnlockUser();
var newPass= mu.ResetPassword();
mu.ChangePassword(newPass,TxtPassword.Text);
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-membership password-policy

4
推荐指数
1
解决办法
9800
查看次数

Keycloak通过Rest API设置密码策略

我想通过 Keycloak RestAPI 更新/添加密码策略。

我浏览了文档,但看起来我只能通过 API 检索密码策略列表。还有其他可能的方式让我可以通过 Rest API 处理密码策略吗?

https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_serverinforepresentation
https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_passwordpolicytyperepresentation

通过 Keycloak 管理面板管理密码策略

我正在使用 Keycloak 11。


更新: 我设法找出密码策略值位于领域表下的密码策略列内。我认为我可能需要重新启动 Keycloak,或使用https://www.keycloak.org/docs-api/11.0/rest-上的 Keycloak Rest API (POST /{realm}/clear-realm-cache) 清除 Keycloak 缓存api/index.html使其在更新表后工作。

在此输入图像描述

password-policy keycloak keycloak-rest-api

4
推荐指数
1
解决办法
4161
查看次数

MySQL validate_password_policy 未知系统变量

我正在使用 MySQL 5.7.25,我想通过在 MySQL 命令中执行此操作来增加我的 MySQL 密码策略:

SET GLOBAL validate_password_policy=2;
Run Code Online (Sandbox Code Playgroud)

但我总是收到一个错误:

错误 1193 (HY000):未知系统变量“validate_password_policy”

我试图列出 validate_password 变量:

SHOW VARIABLES LIKE 'validate_password%'
Run Code Online (Sandbox Code Playgroud)

但它总是返回空集

mysql passwords password-policy

3
推荐指数
2
解决办法
1万
查看次数

验证C#中针对Active Directory的密码复杂性

我正在编写安装SQL的安装程序,事先提示用户输入将为其创建的SA用户名/密码.安装SQL时,它会根据Active Directory策略验证此密码,如果不匹配则会失败.

我想要做的是在继续安装SQL之前验证用户输入的密码是否有效.

如何根据Active Directory规则验证密码是否正确?

注意我没有登录来验证这个答案,而只是验证密码.

我目前正在尝试这个,但是我知道不允许写"密码"不会引发异常

try
{
    System.DirectoryServices.DirectoryEntry localMachine = new System.DirectoryServices.DirectoryEntry("WinNT://" + Environment.MachineName);
    ListPasswordPolicyInfo(Environment.MachineName);
    System.DirectoryServices.DirectoryEntry newUser = localMachine.Children.Add("localuser", "user");
    newUser.Invoke("SetPassword", new object[] { "3l!teP@$$w0RDz" });
    newUser.Invoke("SetPassword", new object[] { "password" });
    //newUser.CommitChanges();
    //Console.WriteLine(newUser.Guid.ToString());
    localMachine.Close();
    newUser.Close();
}
catch(Exception e)
{
    Console.WriteLine(e.Message);
}
Run Code Online (Sandbox Code Playgroud)

c# passwords ldap active-directory password-policy

2
推荐指数
1
解决办法
4710
查看次数