美文网首页
弱密码检测

弱密码检测

作者: 明翼 | 来源:发表于2020-03-23 13:57 被阅读0次

我们平时需要设置很多密码,比如系统登陆密码,银行卡密码,网站密码等,这些密码直接关联我们系统的安全,那么什么密码才是安全的,怎么安全密码那?就是本篇要聊的,如果你想知道如何设置一个复杂而又容易记的密码可以直接参考最后一部分内容。

一 规则判断

制定一系列规则,用这些规则来判断我们的密码是否安全,常用的规则有:
1. 密码长度是否够长
一般来说密码长的相对于短密码来说,肯定是更为安全。

2. 密码是否包含多种字符
破解密码很多是靠机器猜的,可以按照特定组合猜,也可以根据字典猜,密码中包含的字符种类越多,相对越安全,比如我们可以包含大写字符,小写字母,特殊字符,如果都包含了而且长度够长,显然会安全的多,以包含数字,大写字母,小写字母来说,如果是8位密码,没有规律的话,需要猜测的次数为:(10 * 26*26)8

3.密码是否存储回文或重复
比如密码是不是形如"123abccba321",这种密码存在回文,或"123abc123abc"这种密码存在着重复,也不是安全的。

4. 密码是否存在递增的数字或字符
密码中存在有规律的递增的数字和字符也不安全,比如刚才说的"123abc123abc"密码,除了存在重复,还存在着123 这种数据的递增和"abc"这种字符串递增的情况。

这些都可以通过写代码来进行判断。

二 字典判断

有的密码虽然可能满足上面的要求,但是存在一些特殊的规律,在进行暴力破解的时候,往往会用这些常用的密码去猜测,举个例子"1qaz2wsx" 这个密码8位,包含6个字母,按道理密码强度还可以,但是因为在键盘上是斜着下去的两排,所以也可能被猜中,这是普遍的规律;还有针对于不同的人的,也有不同的规律,比如类似于个人的生日啊,身份证号码了,结婚纪念日之类的。

2.1 cracklib 安装和使用

linux中采用pam pam_cracklib module来实现对密码强度的检测,可以通过配置让linux系统自动检测用户的密码是否为弱密码。
也可以通过一些命令来判断密码是否为弱密码:

$rpm -qa|grep cracklib
cracklib-2.9.0-11.el7.x86_64
cracklib-dicts-2.9.0-11.el7.x86_64

如果没有安装,在centos上可以通过以下命令安装:

yum install cracklib
#ubuntu上可以用以下命令
apt-get install libcrack2
#如果需要依赖此库做开发的话需要安装这个
yum install cracklib-devel

可以通过以下命令来判断密码的强弱性:

[root@localhost ~]# echo "password" | cracklib-check
password: it is based on a dictionary word
[root@localhost ~]# echo "12345abc" | cracklib-check 
12345abc: it is too simplistic/systematic
[root@localhost ~]# echo "12345abAB&*c" | cracklib-check 
12345abAB&*c: it is too simplistic/systematic
[root@localhost ~]# echo "12345abABDGOK&*c" | cracklib-check 
12345abABDGOK&*c: OK

打印OK的是说明密码强度是够的,其他的会给出判断为弱密码的原因。
如果你是个系统管理员,希望用户的密码强度设置的更强些,在linux可以通过配置,调用cracklib进行相关检查:
在centos上配置文件为:/etc/pam.d/system-auth

# pam_cracklib模块和设置的几个模块参数
password required pam_cracklib.so retry=3 minlen=6 difok=3
 #pam_unix模块,MD5表示采用MD5做hash
password required pam_unix.so md5 use_authtok            

如果还需要控制新密码和老密码必须有多少位不相同,需要保存老密码,通过下面命令:

touch /etc/security/opasswd
chown root:root /etc/security/opasswd
chmod 600 /etc/security/opasswd
#编辑刚才的pam文件 remember= 12  你想记录12个旧密码
password required pam_unix.so md5 remember=12 use_authtok

参数说明:

pam_cracklib 主要参数说明:
tretry=N 重试多少次后返回密码修改错误
difok=N 新密码必需与旧密码不同的位数
dcredit=N N >= 0密码中最多有多少个数字;N < 0密码中最少有多少个数字
lcredit=N N >= 0密码中最多有多少个小写字母;N < 0密码中最少有多少个小写字母
ucredit=N N >= 0密码中最多有多少个大写字母;N < 0密码中最少有多少个大写字母
credit=N N >= 0密码中最多有多少个特殊字符;N < 0密码中最少有多少个特殊字符
minclass=N 密码组成(大/小字母,数字,特殊字符)
minlen=N 新密码最短长度

windows下可以搜索密码策略,通过密码策略来控制密码的强度要求。

2.2 判断密码的强度得分

如果你想判断密码强度可以在linux上安装另外一个软件来判断密码强度:

yum install libpwquality

通过以下命令来判断密码的强度:

[root@localhost ~]#  echo "password" | pwscore
Password quality check failed:
 The password fails the dictionary check - it is based on a dictionary word
[root@localhost ~]#  echo "passworD3&*d" | pwscore
72
[root@localhost ~]#  echo "passworD3ab3ioijij" | pwscore
100

2.3 更安全点判断密码是否安全

以上方法虽然可以检测密码是否安全,但是会在shell的历史记录中,有可能会被泄露出去,这就需要另外一个命令:

#会进入交互模式,输入密码给出判断结果
#退出按Ctrl+D
[root@localhost ~]# cat|cracklib-check
abce
abce: it is too short
1218a&aABIJIOJO)
1218a&aABIJIOJO): OK

2.4 密码生成

如果讲究随机性,可以通过以下命令来生成密码,不过这个密码生成的只是随机性好,安全性也一般。

#!/bin/sh
genpasswd() {
local l=$1
[ "$l" == "" ] && l=16
tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs
}
genpasswd

专业一点的,在不同的linux系统中都有不同的密码生成器,比如mkpasswd

[root@localhost ~]# mkpasswd
gSPhb6;o1
[root@localhost ~]# mkpasswd -l 16
kcs^H4dmkp9neUng

如果有密码生成的需求,调用这个来实现也是挺方便的。

三 普通人设置密码

3.1 根据熟悉诗词设置密码

对于普通人来说,如何设置一个合理的密码那,有些比较有意思的技巧,比如你可以用一首你喜欢的唐诗的信息来设置密码,作者名大写,每句诗句的第一个字母小写,再加上字数,加上标点符号就是强度很高,而且容易记的密码了。
比如:

咏鹅
作者:[骆宾王]
鹅鹅鹅,曲项向天歌。白毛浮绿水,红掌拨清波。

我们得到的密码: WBWeqbz18,.,. 如果觉得强度不够再加些自己喜欢的特殊字符。

3.2 根据app或网站名设置密码

比如我们需要在各个网站上设置密码,为了保证安全最好设置不同的密码,但是不同的密码又不容易记录,怎么办?我们可以结合网站的名字来设置账号名和密码。
比如在新浪上注册我们可以设置密码为:sina+我们常用的密码,在网易上可以设置163+我们常用密码,不过这样也有一定规律性,可以稍微再变化下,只要总规律不变,就再也不用担心记不住密码了。
另外注册的用户名和网站或APP名相关,也有个好处,就是下次信息被泄露的时候,可以知道哪个网站注册的信息。

四 auth plain 用户和密码加密

其实也不能叫加密,只是用base64编码处理了下,如下:

echo -en "testmail" | openssl base64
dGVzdG1haWw=

#auth plain密码
echo -en "\000testmail\000testmail" | openssl base64
AHRlc3RtYWlsAHRlc3RtYWls
#或者
>>> import base64
>>> b="testmail"
>>> c=chr(0)
>>> print base64.encodestring(c+b+c+b)
AHRlc3RtYWlsAHRlc3RtYWls

相关文章

  • 弱密码检测

    我们平时需要设置很多密码,比如系统登陆密码,银行卡密码,网站密码等,这些密码直接关联我们系统的安全,那么什么密码才...

  • 京东弱密码检测规则

    许多人的第一个密码都是“123456”,不是因为好记,而是在账号创建之初并没有一个合适的面可以使用,这导致许多人在...

  • Java开发之弱密码检测工具

    Java后台开发中,密码处理是非常常见的,你可能需要控制密码长度,简易密码过滤等...这里整理了个弱密码检测类,能...

  • 使用SSHScan扫描破解ssh密码

    概述 SSHScan是一个枚举SSH密码的测试工具。使用SSHScan,可以轻松检测到弱密码。 工具地址 http...

  • 热钱包”漏洞多于“冷钱包

    “21%的操作存在截屏、录屏记录;26%未检测到系统运行环境;9 %存在钱包APP伪造漏洞;6 %交易密码未检测弱...

  • dart/flutter和php弱密码检测

    1.dart/flutter版本,最少8位,包含大小写数字特殊字符3种组合以上 2.php版本,我不会php,以下...

  • 端口漏洞整理

    端口漏洞描述21FTP弱密码22SSH弱密码23telnet弱密码25邮件伪造,vrfy/expn查询邮件用户信息...

  • 没错...又拿到教务系统最高权限了

    上网千万条,安全第一条。密码弱密码,亲人两行泪。 -----《流浪弱密码》 本次通过一条完整攻击链,拿到了教务系统...

  • Jenkins更换admin账户登录密码

    由于近期公司进行护网行动,要整改所有弱密码问题,奈何本人Jenkins的admin账户密码也弱的不行。便在网上搜罗...

  • 不同版本MySQL密码策略修改

    8.0版本: 查看密码策略 修改密码策略,设置为弱口令,密码最小长度为1 更改密码方式: 5.7版本: 查看密码策...

网友评论

      本文标题:弱密码检测

      本文链接:https://www.haomeiwen.com/subject/kugiyhtx.html