编者按:密码作为身份认证的重要手段,随着时代的演进而不断更新。1976年,美国密码学家xldby和Herman在一篇题为《密码学的新方向》的文章中提出了一个全新的想法。不仅加密算法本身可以公开,加密密钥也可以公开。但这并不意味着保密程度降低。因为如果加密密钥和解密密钥不同。并对解密密钥保密。这一理论无疑开启了密码学的新篇章。本文选取了cjdjc 《身份危机》博士中的账号密码系统,揭示了账号密码的发展现状以及账号密码的安全性和可用性问题。

smb弱口令(常见弱口令-编程之家

帐户密码开发状态

自20世纪90年代互联网进入千家万户以来,互联网服务(如邮件、电子商务、社交网络)蓬勃发展,账号密码成为互联网世界中保护用户信息安全的最重要手段之一。它也是当今大多数网络系统使用的最简单的访问控制方法,通过匹配密码来确认用户的合法性。系统为每个合法用户建立一个身份/密码对。当用户登录系统时,系统会提示用户输入账号和密码。系统通过检查用户输入的账户密码是否与系统中现有合法用户的ID/PW匹配来验证用户身份。

smb弱口令(常见弱口令-编程之家

“账户密码”认证方式中提到的密码是静态密码,是用户自己设置的一串静态数据。一旦设置了静态密码,它将保持不变,除非用户更改它。这就导致了静态密码的安全缺点,如偷窥、猜测、字典攻击、蛮力破解、窃取、监听、重放攻击、木马攻击等。另一方面,为了防止忘记密码,很多用户经常使用生日、电话号码等容易猜到的字符串作为密码,或者将密码记录在自己认为安全的地方,容易导致密码泄露。当然,为了在一定程度上提高静态密码的安全性,用户可以定期更换密码,但这导致静态密码的使用和管理困难,尤其是当用户有几个甚至几十个密码需要处理时,非常容易造成密码错误、忘记密码等问题,也很难要求所有用户严格定期修改密码。即使用户定期修改密码,密码也会在相当长的一段时间内被固定。密码的缺点主要表现在以下几点:

账号的易用性和安全性是互斥的,不能兼顾。简单易记的密码安全性较弱,复杂的静态密码安全性较高但不易记忆和维护。

密码安全性低,容易受到各种形式的安全攻击;

账号的风险成本高,一旦泄露,很可能造成最大的损失,在损失发生之前,通常不知道静态密码已经泄露;

账号使用维护不方便,尤其是用户有几个甚至十几个静态密码需要使用维护的时候。遗忘后挂失和重置静态密码通常需要花费大量的时间和精力,极大地影响了正常的使用体验。

静态密码认证技术在面对上述形式的网络攻击时非常脆弱,攻击者非法获取合法用户密码并入侵网络系统的安全事件时有发生。为了提高静态密码认证系统的安全性,一些系统对用户的密码管理施加了一定的限制,比如限制密码的长度和内容。

要求定期更改密码。

要求用户在固定时间内登录

要求用户登录固定设备。

不允许多人共享一个用户名和密码等。

尽管帐户密码存在许多安全性和可用性问题,但已经提出了大量新的身份验证技术。这些替代方案有的在安全性上优于账号密码,有的在可用性上优于账号密码,但在可部署性上几乎都不如账号密码,而且每一种都有一些固有的缺陷。由于密码认证简单、成本低、易更改,在可预见的未来,密码认证仍将是互联网中最重要的认证方式。

账户密码市场调查与分析

静态密码是账户密码,账户密码是人生成的,所以账户密码的安全性与人有着必然的联系。大部分是为了方便记忆,习惯性使用弱密码,多个平台使用同一个密码,不定期更换密码等。例如,它也是为12306帐户注册的。有人认为这个账号不重要,用弱密码“111111”作为密码。有些人也用“p@ssword”作为密码,但如果其他人也有同样设置密码的习惯,攻击者就会知道这种用户行为,密码就会变成一种弱密码。有些人习惯用自己的生日作为密码,甚至多个平台使用同一个密码,大大降低了账号密码的安全性。

在第二届全国网络安全宣传周启动仪式上,《我国公众网络安全意识调查报告(2015)》正式发布。此次调查是中国第一次全国性的网络安全意识调查。一个月内,共收集有效问卷25万余份,覆盖全国31个省(区、市),年龄跨度从7岁儿童到60岁以上老人不等。我国公众账号密码安全问题主要表现在以下三个方面:

1.弱密码

1979年,莫里斯和汤普森在他们的开创性论文中分析了3289个真实用户密码,发现其中86%落入了普通字典,33%可以在5分钟内被搜索出来。大量的后续研究表明,用户除了选择单词作为密码外,往往只是简单地改变单词来满足网站密码设置策略的要求。比如“123abc”可以满足“字母数字”的政策要求。这些最流行的单词及其转换形成了国家密码。中文国家密码多为纯数字,英文国家密码包含很多。

字母,这体现了语言对口令行为的影响。有趣的是,爱情这一主题在国民口令中占据了重要地位。高达1.01%~10.44%的用户选择最流行的10个口令,这意味着攻击者只要尝试10个最流行的口令,其成功率就会达到1.01%~10.44%。

2. 未定期更换密码:

《我国公众网络安全意识调查报告(2015)》显示,定期更换密码的被调查者仅占18.36%,而遇到问题才更换密码的被调查者有64.59%,有17.05%的被调查者从来不更换密码(见图6-1)。对此,工业和信息化部电子科学技术情报研究所所长愉快的汽车表示,定期更换密码对保证个人账户安全、防止个人隐私泄露具有重要意义,尤其是个人网银等较为重要的账号应该定期更换密码。

smb弱口令(常见弱口令-编程之家

图6-1 公众更换密码情况分析

3. 多账号同密码

调查指出,公众多账号使用同一密码的情况高达75.93%(见图6-2),多账户使用同一密码更容易遭到黑客攻击,因为黑客可通过防御性较弱的网站获取密码信息,再登录到账户中进行信息窃取。调查显示,我国超七成被调查者存在多账号使用同一密码的问题,特别是青少年多账号使用同一密码的比例高达82.39%。

smb弱口令(常见弱口令-编程之家

图6-2 公众密码设置情况

技术原理

在账号密码技术的运作过程中,系统将账号密码的配对信息以密文形式存储在数据库中,通过系统管理员分配给用户,用户在需要进行身份认证时,在页面输入注册的用户名及密码,系统获取这组输入的信息后,将其与数据库中存储的用户名,密码进行比对,比对一致即视为认可该用户为合法用户,若比对不通过,则视为非法用户。静态密码技术原理图(见图6-3)。

smb弱口令(常见弱口令-编程之家

图6-3 静态密码技术验证流程图

用户名(账号)/密码的对比校验支持在本地完成,对于无需网络支持的系统或者移动端信息系统,例如手机、平板电脑的开机密码,我们称之为本地密码认证,而与之相对的是远程密码认证,一般用于需要网络支持的应用及信息系统,由服务器端来负责验证,例如电子邮件、网络游戏的账号、密码等。

账号密码的存储方式分为:Hash杂凑存储、盐处理存储等,详细介绍如下:

Hash杂凑存储

技术原理

使用杂凑函数为口令文件产生指纹,将每一个用户的账号和密码的杂凑值存储在一个口令文件(数据库)中。当用户需要认证身份时,输入口令后,系统在计算口令的杂凑值,与数据库中存储的杂凑值比对。比对成功,则身份认证成功;反之,若比对失败,则身份认证失败。静态密码杂凑存储技术原理(见图6-4)。

smb弱口令(常见弱口令-编程之家

图6-4 静态密码杂凑存储技术原理

杂凑函数

单向函数就是一个求值相对容易,但求逆却非常困难的函数。也就是说,已知x,很容易计算f(x),但已知f(x),求x却是非常困难的。例如打碎盘子就是一个很好的单向函数。把盘子打碎成碎片是很容易的事情,然而把这些碎片再拼接成一个完整的盘子却是非常困难的一件事情。陷门单向函数是一个有秘密陷门的一类特殊的单向函数。陷门单向函数在一个方向上易于计算,求逆仍然是困难的。但是,如果能够知道那个秘密陷门,也能够容易计算这个函数的逆了。散列函数就是把可变输入长度串转换成固定长度的输出串的一种函数。散列函数是典型的一种多到一的映射,因此不能用散列函数来确定两个串是否相同,但可以用来得到准确性的合理保证。单向散列函数,也叫杂凑函数,消息摘要,是一个确定的函数,它将任意长的比特串映射为定长比特串的杂凑值。杂凑函数具有如下性质:

(1)混合变换:对于任意的输入,输出的杂凑值应当和在其值域中的均匀的二进制串在计算上是不可以区分的。

(2)抗碰撞攻击:找两个不同的输入x和y,且x与y不相等,使得输出的结果相等在计算上是不可行的。

(3)抗原像攻击:已知一个杂凑值h,找出一个输入串x,使得其输出结果等于h,在计算上是不可行的。

虽然杂凑函数MD5和SHA-1等被找出缺陷,使得找到碰撞成为可能,但是这并不意味着数字签名安全大厦的轰然倒塌。Hash函数可以用于检测数据的完整性,它是很多密码体制和协议的安全保证,我们可以采用增强型算法有着广泛的应用领域。

MD5算法简介:

MD5的全称是MessageDigest5(信息摘要算法第5版),20世纪90年代初,由MITLabomtoryforComputerscience和RSADataSecurityInc的RonaldL.Rivest开发,经MD2、MD3和MD4发展而来。它是将一段任意长度报文,即数据文件、文本文件或者二进制文件,通过一系列算法压缩成一段128位的信息摘要MD5算法的本质是一种散列函数(又称啥希函数),其具有四个特点:(1)唯一性。任何一个特定的被计算对象,总是能得到固定的特征值。(2)离散性。被计算对象的微小变化,将引起特征值的很大变化。(3)抗碰撞性。给定消息m,很难找到另一个消息m’,使它们的信息摘要相同。(4)单向性。给定消息m,很容易计算出信息摘要h;给定信息摘要h,很难推算出原始消息m。

MD5算法加密原理 :

Message—Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一个128位的大整数,这种变换只与字节的值有关,与字符集或编码方式无关。MD5算法对字节串的变换是一个不可逆的变换算法,换而言之,即使你看到源程序和算法描述,也无法将一个MD5的值通过某种算法变换回原始的字节串。MD5算法可简单描述为:MD5加密以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由4个32位分组组成,将这4个32位分组级联后将生成一个128位散列值,即“信息摘要”。

MD5算法在用户口令认证应用中的安全隐患

MD5加密算法在网络应用系统,特别是网站后台登录管理系统中应用广泛,网站的用户信息包括管理员信息均保存在数据库文件中,网络攻击者通过服务器漏洞、网站应用程序漏洞等非常规手段入侵服务器,能轻松下载并打开数据库文件,获取关键敏感信息,如管理员登录用户和密码。虽然数据库文件存储的密码是经过MD5算法加密过的,但网络攻击者仍然可以通过某种特定的方法加以破解,对于普通强度的加密口令,可以通过以下三种方式进行破解:

(1) 在线查询密码。一些在线的MD5值查询网站提供MD5密码值的查询,输入MD5密码值,若此密码值在数据库中存在,就可以很快获取其密码明文。如管理员密码明文是”admin123”,其对应MD5值为:“8a30ec6807f71bc69d096d8e4d50lade”,将MD5值输入到在线查询破解网站(www.cmd5.com)的查询窗口,就能快速获取对应密码原文。

(2)使用MD5破解工具。网络上有许多针对MD5破解的专用软件,通过设置字典来进行破解。

(3)随着云计算技术的迅猛发展,MD5算法被暴力破解的代价和成本大幅下降,在2010年亚马逊EC2推出集群GPU运算服务,每一个GPU提供了甚至超过每秒100万兆次的双精度浮点计算的超高的性能。通过GPU实例的数百个内核并行处理能力,工作负载可以被大大加速。在暴力破解MD5算法方面,GPU的速度比四核CPU快数百倍。简单的MD5加密是无法达到绝对安全的,因为普通的MD5加密有多种暴力破解方式,因此如果想要保证信息系统安全,必须提高MD5在口令认证等方面的安全性。

提高MD5算法在口令认证中的安全性

提高MD5算法在口令认证中的安全性可采用对MD5加密过程进行变换,或使用自定义加密算法、局部修改MD5算法等方法,使数据库中密码字段存储的信息不再是常规的MD5密码值。

1.自定义加密算法

(1)增加MD5加密次数。读取提交表单中输入的密码明文,赋值给变量pwd,pwd=md5(pwd)对提交表单中输入的密码明文进行加密,并将MD5值赋值给变量pwd,pwd=md5(md5(pwd))以此类推,可以利用函数的嵌套方法进行两次或多次加密

(2)利用截取函数截取MD5值后作为密码值保存至pwd字段,如:pwd=left(pwd,N)截取MD5值左边N位,因为“信息摘要”由32位16进制数表示,所以N正常取值范围应在1到31之间也可以调用mid()、right()和Reverse()等内置函数对MD5值进行截取变换。

(3)pwd=md5(“R”&pwd)对R和密码明文进行连接后再加密,其中R既可以是任意字符串,也可以是随机数,可用随机函数实现,设计时应将每个用户密码对应的随机函数产生的随机数保存至RandomNumber字段以上方法实现了对MD5加密算法进行变换,也可以对以上三种方法进行任意组合,以增强MD5加密算法的复杂性和安全性。

2.局部修改MD5算法

(1)修改四个缓冲区寄存器的初始值。MD5算法定义了四个常数,A、B、C、D四个缓冲区寄存器,它们的初始值分别为:a=0x67452301、b=0xEFCDAB89、c=Ox98BADCFE、d=Oxl0325476。MD5算法的过程主要是一些异、或、求模等操作的运算,只要把初始值进行稍微改变,比如只改变其中一位,不必改动算法的其它部分,就产生了自定义的新MD5散列算法。如将“a=ox67452301”改为“a=ox67452302”,这样就得到一个新的MD5算法,按照常规的破解方法,则无法被破解。

(2)任意组合级联生成MD5值的四个分组。MD5算法程序中,MD5值由四个32位分组级联后生成,任意选取四个分组中的几组,同时也可改变分组的先后顺序,均可达到修改MD5算法的效果。即使用户密码值数据暴露,变换后的MD5算法也可以极大地增加用户密码被破解的难度,有效提高了MD5算法的安全性。

加盐处理

技术原理

加盐加密是一种对系统口令的加密方式,它实现的方式是将每一个口令同一个叫做“盐(salt)的n位随机数相关联。无论何时只要口令改变,随机数就改变。随机数以未加密的方式存放在口令文件(数据库)中,这样每个人都可以读。不再只保存加密过的口令,而是先将口令和随机数连接起来然后一同加密,加密后的结果放在口令文件中。静态密码加盐存储技术原理(见图6-5)。

smb弱口令(常见弱口令-编程之家

图6-5 静态密码加盐存储技术原理

在带有盐度值的安全哈希加密算法中,盐度值的作用极其重要,通过系统为每个用户随机生成一个盐度值,并与用户提供的密码相结合,使得用户的密码具有高度的随机性,即便多个用户提供了相同的密码,但由于系统为他们随机生成的盐度值的不同,使得他们密码的哈希值也是不同的。这样,即便攻击者可以通过特定的密码和其对应的哈希值来找具有这个特定密码的用户,但是其成功率就明显地降低了。

带有盐值的Hash算法优势

采用带有盐值的安全哈希加密算法对用户密码进行加密后,即便多个用户提供了相同的初始密码字符串,但由于系统为每个用户随机生成的盐值不同,而使得加密得到的密文不同,这就使得利用字典、彩虹表进行攻击的攻击者需要为每个盐度值创建一条字典记录,这将使攻击变得非常复杂。此外,通过将系统提供的较长的、含有特殊字符的附加码和用户输入的密码相结合,可以使得明文密码进一步随机化,并且增加了明文密码的长度,这也在一定程度上增加了攻击者利用字典、彩虹表进行攻击的难度。因此,采用带有盐度值的安全哈希加密算法对用户密码进行加密可以很好地提升用户密码的安全性。

结束:在现代密码学中,除了信息保密外,还有另一方面的要求,即信息安全体制还要能抵抗对手的主动攻击。所谓主动攻击指的是攻击者可以在信息通道中注入他自己伪造的消息,以骗取合法接收者的相信。主动攻击还可能窜改信息,也可能冒名顶替,这就产生了现代密码学中的认证体制。该体制的目的就是保证用户收到一个信息时,他能验证消息是否来自合法的发送者,同时还能验证该信息是否被窜改。在许多场合中,如电子汇款,能对抗主动攻击的认证体制甚至比信息保密还重要。社会已逐步步入了信息时代,随着数据库技术和计算机网络应用的不断深入,信息的安全传输也有着广阔的应用前景。

PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。用户可利用PKI平台提供的服务进行安全通信。PKI的理论基础是基于密码学,它所使用的基础技术包括加密(非对称和对称)、数字签名、数据完整性机制、数字信封、双重数字签名等。在下篇文章中将带大家一同了解什么PKI体系?字签名又是什么?基于PKI的数字签名身份认证系统原理又是什么?敬请期待!