




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内容备注《网络攻防原理与技术》课程教案讲课题目:第七讲身份认证与口令攻击目的要求:了解身份认证的基本原理;了解动态口令认证的常见方法;了解口令认证的主要威胁;掌握口令行为规律;掌握口令猜测攻击的主要方法;了解口令防御的主要原则。重点难点:口令行为规律;掌握口令猜测攻击的主要方法。方法步骤:理论讲授。器材保障:电脑、投影仪。主要教学内容:一、身份认证概述(一)身份认证的基本概念身份认证这种认证形式可以将非授权用户屏蔽在系统之外,它是信息系统的第一道安全防线,其防护意义主要体现在两方面。首先,防止攻击者轻易进入系统,在系统中收集信息或者进行各类攻击尝试。其次,有利于确保系统的可用性不受破坏。信息系统的资源都是有限的,非授权用户进入系统将消耗系统资源,如果系统资源被耗尽,正常的系统用户将无法获得服务。身份认证可以基于以下四种与用户有关的内容之一或它们的组合实现:1)所知。个人所知道的或所掌握的知识或信息,如密码、口令;2)所有。个人所具有的东西,如身份证、护照、信用卡、智能门卡等;3)所在。个人所用计算机的IP地址、办公室地址等;4)用户特征。主要是个人生物特征,如指纹、笔迹、声纹、手形、脸形、视网膜、虹膜、DNA,还有个人的一些行为特征,如走路姿态、击键动作、笔迹等。目前,身份认证技术主要包括口令认证、信物认证、地址认证、用户特征认证和密码学认证。(二)口令认证口令一般分为静态口令和动态口令。身份认证的口令认证大部分使用的是静态口令。1.静态口令认证静态口令的基本原理是:用户在注册阶段生成用户名和初始口令,系统在其用户文件或数据库中保存用户的信息列表(用户名和口令)。当用户登录认证时,将自己的用户名和口令上传给服务器,服务器通过查询其保存的用户信息来验证用户上传的认证信息是否与保存的用户信息相匹配。如果匹配则认为用户是合法用户,否则拒绝服务,并将认证结果回传给客户端。用户定期改变口令,以保证安全性。这种口令因其实现简单、使用方便,得到了广泛应用。静态口令面临的安全威胁包括:(1)口令监听。很多网络服务在询问和验证远程用户认证信息时,认证信息都是以明文形式进行传输,如Telnet、FTP、HTTP等都使用明文传输,这意味着网络中的窃听者只需使用协议分析器就能查看到认证信息,从而分析出用户的口令。(2)截取/重放。有的系统会将服务器中用户信息加密后存放,用户在传输认证信息时也先进行加密,这样虽然能防止窃听者直接获得明文口令,但使用截取/重放攻击,攻击者只要在新的登录请求中将截获的信息提交给服务器,就可以冒充登录。(3)穷举攻击。也称为暴力破解,是字典攻击的一种特殊形式。一般从长度为1的口令开始,按长度递增,尝试所有字符的组合方式进行攻击。穷举攻击获取密码只是时间问题,是密码的终结者。虽然理论上可以用计算机进行穷举,但实际应用中,很多系统会对短时间内尝试口令输入的次数进行限制,此时穷举是不可行的。因此,需要增加一些其他信息,如用户个人信息、常用口令等,来提高破解口令的可能性。(4)简单口令猜测。很多用户使用自己或家人的生日、电话号码、房间号码、简单数字或者身份证号码中的几位作为口令。在详细了解用户的社会背景之后,黑客可以列举出多种可能的口令,并在很短的时间内完成猜测攻击。此外,很多用户不更改系统或设备的默认用户名和口令,这也使得口令很容易被破解。(5)字典攻击。字典攻击采用口令字典中事先定义的常用字符去尝试匹配口令。口令字典是一个很大的文本文件,可以通过自己编辑或者由字典工具生成,里面包含了单词和数字的组合,或黑客收集的一些常见口令。(6)伪造服务器攻击。攻击者通过伪造服务器来骗取用户认证信息,然后冒充用户进行正常登录。(7)口令泄露。攻击者通过窥探、社会工程、垃圾搜索、植入木马等手段,窃取用户口令;或用户自己不慎将口令告诉别人;或将口令写在某处被别人看到,造成口令的泄露。(8)直接破解系统口令文件。攻击者可以寻找目标主机的安全漏洞和薄弱环节,窃取存放系统口令的文件,然后离线破译加密过的口令,从而得到系统中所有用户名和口令。2.动态口令认证动态口令也叫一次性口令(One-TimePassword,OTP),一般使用双运算因子来实现:固定因子,即用户的口令或口令散列值;动态因子,每次不一样的因子,如时间,把流逝的时间作为变动因子,用户密码产生器和认证服务器产生的密码在时间上必须同步;事件序列,把变动的数字序列作为密码产生器的一个运算因子,加上用户的口令或口令散列值一起产生动态密码;挑战/应答,由认证服务器产生的随机数字序列(challenge)作为变动因子,不会重复,也不需要同步。在用户登录过程中,基于用户口令加入不确定因子,对用户口令和不确定因子进行单向散列函数变换,将所得的结果作为认证数据提交给认证服务器。认证服务器接收到用户的认证数据后,把用户的认证数据和自己用同样散列算法计算出的数值进行比对,从而实现用户身份的认证。尽管动态口令的安全性要大大高于静态口令,但由于其成本高、使用不方便,主要用于一些安全性要求比较高的应用或系统中。(三)基于共享密钥的认证基于共享密钥的认证的基本要求是示证者和验证者共享密钥(通常是对称密码体制下的对称密钥)。对于只有少量用户的系统,每个用户预先分配的密钥数量不多,共享还比较容易实现。但是,如果系统规模较大,通常需要一个可信第三方作为在线密钥分配器。Needham-Schroeder双向鉴别协议(简称N-S协议)实现双向身份认证及密钥分配功能,后来很多鉴别协议都是基于N-S协议。N-S协议假定系统中有一个通信双方都信任的密钥分配中心(KeyDistributionCenter,KDC),负责通信会话密钥Ks的产生和分发。为了分配会话密钥,还必须有用于保护会话密钥的由通信双方和KDC共享的主密钥:Ka和Kb。主密钥通过带外方法分发,由于只用于保护会话密钥的分发,使用次数少,暴露机会少,因此只需定期更换。会话密钥Ks由KDC产生(每次不同),用主密钥保护分发,用于保护消息本身的传输,加密报文的数量多,但只使用有限时间,下次会话需重新申请。(四)单点登录与OAuth协议随着网络应用的快速发展,一个单位拥有的业务系统越来越多,并且很多是基于Web的系统,这些系统大多是独立开发的,每个业务系统都实现了本系统专用的账号数据库和登录模块。假定用户要访问多个Web业务系统(站点)上的资源,在传统多点登录认证方式下,各站点的登录状态相互不认可,用户需要在每一个站点上进行人工登录认证,使用起来很不方便。于是,出现了单点登录机制。单点登录(SingleSignOn,SSO)是指在多业务系统场景下,将用户登录认证和业务系统分离,多个Web业务系统(站点)共用一台认证授权服务器(用户数据库和认证授权模块共用),用户只需在其中任何一个站点上完成登录认证,然后就可以在会话有效期内免登录访问其它所有相关的业务站点。而且,各站点间也可以通过该登录状态直接交互。简单来说,SSO机制使得多个相关业务系统使用统一的登录认证入口。SSO只是一种机制或设计思想,具体的实现方式有多种,如CAS框架。CAS(CentralAuthenticationService)是一款流行的针对Web应用的单点登录框架。总的来说,单点登录有很多优点,大大方便了用户。但是,单点登录也有一些缺点,其中最大的问题之一是安全性:如果单点登录系统被攻击,那么攻击者可以访问用户在多个应用程序中的所有信息。OAuth(OpenAuthorization)是一种开放的访问授权协议,为桌面、手机或Web应用提供了一种简单、标准化方式,安全可控地访问需要用户授权的API服务,目前的版本是2.0版,相关标准文档是RFC6749。OAuth被广泛应用于开放平台、第三方应用与用户之间的访问授权,允许用户授权第三方应用访问该用户在某一信息平台上的私密资源,而无需将用户名和密码提供给第三方应用。OAuth2.0不仅实现了开放平台与第三方应用间的认证互通,还实现了二者业务流的授权互通,因此被各大开放平台广泛采用。二、口令行为规律和口令猜测(一)脆弱口令行为研究人员对8个知名的真实口令集进行了全面系统的分析,总结出3类脆弱口令行为:口令构造的偏好性选择、口令重用、基于个人信息构造口令。1.口令构造的偏好性选择大量研究表明人们喜欢将流行的单词或为满足系统口令设置策略要求将流行单词进行简单变换作为口令(如“123456a”可以满足“数字+字母”的策略要求),这种口令被形象地称为“国民口令”。中文国民口令多为纯数字,而英文国民口令多含有字母,这体现了语言对口令行为的影响。2012年前,学术界普遍假设口令是服从均匀分布的,这主要是由于两个方面的原因:一是缺少大规模真实口令数据,难以确认服从什么分布;二是在均匀分布的假设下,分析问题比较简单。但是,近几年的研究表明人类生成的口令主要服从Zipf分布。这一规律已被广泛应用于多个场合,如精确刻画可证明安全协议中攻击者优势、评估基因保护系统的抗攻击能力、评估口令散列函数的强健性。同时,这一规律还表明,口令频次呈多项式下降,高频的口令和低频的口令都会占据整个口令集的重要部分。在口令的字符组成结构方面,当系统设置了口令生成策略时,口令的字符组成很大程度上由口令策略所决定。当系统未设置口令构成策略时,用户口令的结构直接体现了用户的偏好。在口令长度方面,同样受系统策略影响。当系统未设置长度限制时,口令的长度分布受系统服务类型(重要程度)的影响。对于普通网站来说,90%以上口令的长度介于6-11之间,这一信息对攻击者缩减猜测空间具有重要作用。2.口令重用由于信息化社会的不断推进,越来越多的服务开始联网,用户拥有几十个甚至上百的账号密码。为了方便记忆,用户不可避免地使用流行密码,在不同网站重复使用同一个密码,同时在密码中嵌入个人相关信息,如姓名和生日等。长久以来,用户的口令重用被认为是不安全的,所以应当避免。但是,近年的研究发现,面对如此多需要管理的账号,重用口令是用户理智的做法,关键是如何重用口令。只有跨不同安全级(或重要程度)的账户重用口令,才应努力避免的。3.基于个人信息构造口令日常生活中,用户在构造时喜欢使用姓名、生日、身份证号、电话号码、电子邮件前缀、地名等个人信息。12306网站口令中,生日的含有率最高,达到24.10%;其次为账户名、姓名、电子邮件前缀,分别为:23.60%,22.35%,12.66%;也有少量用户使用名字、身份证号和电话号码作为口令,名字含有率为22.35%,身份证号3.00%,手机号2.73%。总体说来,用户使用个人信息构造口令的习惯严重降低了口令强度,定向攻击者依据个人信息可大大提高攻击效率,特别是在个人隐私信息泄露严重的今天。口令猜测攻击根据口令破解过程中是否需要连网,口令猜测算法分为在线破解(OnlineGuessing)和离线破解(OfflineGuessing)。在线破解需要连网,但不需要拿到系统或网站服务器上存储的口令库,攻击者只需要通过与服务器进行交互,针对目标账号依次尝试可能的密码,直到猜测出密码,或因尝试次数过多被服务器阻止。因此,在线猜测一般也称为小猜测次数下的攻击。离线破解不需要连网,但需要拿到服务器上存储的口令库,针对目标账号,在本地依次尝试可能的密码,直到猜测出口令或因计算能力有限自动放弃猜测。因此,离线猜测不受猜测次数的限制,一般也称为大猜测次数下的攻击。根据攻击过程中是否利用用户个人信息,口令猜测算法可以分为漫步攻击(TrawlingAttacking)和定向攻击(TargetedAttacking)。1.漫步攻击漫步攻击的基本思想是:不关心攻击对象的信息,而只关注在允许的猜测次数内,猜测出更多的口令。基于PCFG的算法和Markov算法是目前主流的2种漫步攻击算法,也是其他算法的基础。早期的口令猜测算法基本都是漫步攻击算法,且没有严密的理论体系,很大程度上依靠零散的“奇思妙想”。例如,构造独特的猜测字典(或称为“口令字典”),采用精心设计的猜测顺序,基于开源软件(如JohntheRipper)等。这些启发式算法的攻破率大部分在30%以下。2009年,Weir等人提出了第一种完全自动化的、建立在严密的概率上下文无关方法基础之上的漫步口令猜测算法(ProbabilisticContext-FreeGrammars,PCFG)。算法的核心假设是口令的字母段L、数字段D和特殊字符段S是相互独立的。马尔科夫(Markov)算法是由Narayanan和Shmatikov等人于2005年提出的一种基于Markov模型的口令猜测算法,算法的核心假设是:用户构造口令从前向后依次进行。因此,算法对整个口令进行训练,通过从左到右的字符之间的联系来计算口令的概率。2.定向攻击定向口令猜测攻击的目标是尽可能以最快速度猜测出所给定目标(如网站、个人电脑)的口令。因此,攻击者会利用与攻击对象相关的个人信息,增强猜测的针对性。用户的个人信息有很多种,例如人口学相关信息(姓名、生日、年龄、职业、学历、性别等)。用户在该网站的过期口令(旧口令),用户在其他网站(泄露)的口令。当前定向口令猜测的相关研究主要集中在如何利用人口学的相关信息。2016年,汪定等人首次提出了基于Markov链的定向攻击猜测算法:Targeted-Markov算法。该算法的基本思想是:多少比例的用户会使用某种个人信息,那么攻击对象就有多大的可能使用该种个人信息。算法将个人信息分为6大类:用户名A、邮箱前缀E、姓名N、生日B、手机号P和身份证G,并且对每一大类根据需要的粒度作进一步的细分。然后,将训练集每个口令中所有的个人信息替换成对应的个人信息类型基本字符,训练阶段的剩余步骤与漫步Markov模型相同。猜测集生成阶段分为2步:①运行漫步Markov模型的猜测集生成过程,产生中间猜测集,该猜测集既包含“123456”这样可以直接使用的猜测,也会包含带有个人信息类型基本字符的“中间猜测”(如N1,N2123);②将“中间猜测”里的个人信息基本字符替换为攻击对象的相应个人信息,如将N2123替换为wang123(假定攻击对象姓名为“wangping”)。除了用户的人口学相关信息外,用户在其他网站或系统中泄露的口令也可以被攻击者利用来进行定向攻击。这种利用用户口令重用的定向攻击,其危害要比基于人口学相关信息的攻击更严重。三、操作系统口令破解(一)Windows口令破解Windows操作系统使用安全账号管理器SAM(SecurityAccountManager)对用户账户进行安全管理。用户账号和口令经过加密哈希变换后以Hash列表形式存放在系统目录%systemroot%\Windows\system32\config下的SAM文件中。SAM文件中每个用户账号有两条密码记录:LM密码表示和NT哈希表示。LM表示的原理是:首先,将用户口令中的字母都转换成大写字母。如果口令不足14位,则以空字符(null)补足;如果超过14位,则通过截尾变成14位。然后,将其平均分成两组,每组7位,分别生成一个校验DES加密字。最后,利用一个固定值(已被破解出,以16进制表示为0x4b47532140232425)分别加密这两组DES加密字,将两组结果连接起来形成一个散列函数值。如果一个用户口令为空,则经过这番运算,得到的LM散列值为:AAD3B435B51404EEAAD3B435B51404EE。LM表示既不是哈希值也不是一个加密后的密码,只是一个加密的固定的十六进制数,密码为这个十六进制数的密钥。其脆弱性在于:可以将字符串分割成两个7位字符分别处理,破解两个7位密码并且不需要测试小写字符要比破解一个14位密码简单得多。为解决LM密码表示存在的安全问题,微软在早期的WindowsNT版本中,加入了新的口令加密手段NTLM(NewTechnologyLanManage),即NT哈希表示。NTLM基本原理如下:1)对Unicode编码的明文密码使用MD4加密,生成一个16字节的NTLMHash值;2)将16字节的NTLMHash值用NULL填充至21字节;3)将21字节的NTLMHash值切分成3部分,每个部分占7个字节;4)将切分后的3段数据使用DES算法处理,生成3个DES密钥,用于对服务器与客户端协商后提供的挑战值进行加密,最终产生3个8字节的密钥串;5)将得到的3个8字节密钥串合成一个24字节的字符串,即为最终的NTLMHash。NTLM采用MD4和DES加密存储,极大加强了密码安全性,同时,为了保持同早期Windows版本的兼容性,在Windows2003之前的系统版本中,SAM中保存了两份加密口令,直到Vista版本之后,微软才放弃LM密码表示,只保留NTLM哈希。在对SAM破解之前,首先要获取SAM文件,通常的做法是:使用NTFSDOS系统或WindowsPE系统光盘启动计算机,获得对NTFS硬盘的访问权限,拷出SAM文件。然后利用具有SAM文件分析功能的口令破解软件,如L0phtCrack、Cain等,对SAM进行破解。也可以利用PWDump、FGDump等软件提取SAM文件,前提是拥有管理员权限。很多Windows口令破解软件(如L0phtCrack5)在拥有管理权限的情况下,也可在运行的Windows系统(本地或被控制的远程系统)中破解系统口令。其原理就是口令破解软件通过远程线程注入的方法注入到Windows账号管理进程(lsass.exe)中,注入线程读取lsass进程保存在内存中的用户口令的哈希值,再进行破解。(二)Unix口令破解早期Unix/Linux系统使用/etc/passwd文件创建和管理账户。任何用户和进程都可以读取/etc/passwd文件,账户的安全性不高。因此,现在的Unix/Linux系统把账户信息和口令密文分开存放,/etc/passwd文件用于保存账户信息,加密后的密码保存在/etc/shadow或/etc/secure这个影子口令文件中,只有root用户能够访问。因此,在破解口令时,需要将/etc/passwd与/etc/shadow合并起来,才能进行口令破解。破解Unix/Linux口令的工具主要有:Hashcat,Crack,JohntheRipper,XIT等。Crack的工作原理很简单,通过生成口令进行加密,然后用密文去匹配原口令密码。为了提高破解效率,Crack软件中包含了几个字典库,进行破解时它会按照一定的规则将字词进行组合,然后进行加密,再与要破解的加密口令匹配。所以运行Crack通常占用大量CPU,并要运行相当长的时间才能结束。JohnTheRipper由著名黑客组织UCF编写的,它支持UNIX、DOS和Windows系统。对于老式的passwd文档(没有shadow),JohnTheRipper可以直接读取并用字典穷举破解。对于现在的passwd+shadow方式,工具支持把passwd和shadow合成出旧式的passwd文件。它提供四种破解模式:“字典文件”破解模式(WorldlistMode),“简单”破解模式(SingleCrack),“增强”破解模式(IncrementalMode)和“外挂模块”破解模式(ExternalMode)。四、网络应用口令破解互联网上有大量基于Web的网络应用系统,如Email、社交网站、网购平台、网银、论坛等。如何破解这些系统的口令呢?可以通过登录攻击来猜测网络应用的口令,即在网络上运行远程破解工具,如Patator、Hydra,周期性地尝试登录目标系统,这是一种在线口令攻击方式。攻击的一般过程如下:(1)建立与目标网络服务的网络连接。(2)选取一个用户列表文件和一个字典文件。(3)在用户列表文件和一个字典文件中,选取一组用户和口令,按照网络服务协议规定,将用户名和口令发给目标网络服务端口。(4)检测远程服务返回信息,确定口令尝试是否成功。(5)循环执行2到4步,直到口令破解成功为止。这种远程尝试口令破解方法的破解效率较低,且很可能被目标服务器记录,甚至被反跟踪到攻击者的计算机。为了防御这种攻击,很多网络应用系统采取了多种方法,如限制指定时间段内登录尝试次数,超过次数则禁用账号;使用一次性短信验证码或图形识别码增加登录难度等。近年来,一种流行的跨域拓展攻击正是利用用户账号的相关性进行口令破解。其基本原理是,黑客首先攻击一些防护比较薄弱的网站,获得其用户数据库。然后,根据数据库中的用户账号、口令、昵称向门户网站、各类论坛、主流邮商账户进行跨域拓展,以获得“新隐私”。这一过程,称之为“脱库-洗库-撞库”。脱库,也称为“拖库”。本来是数据库领域的术语,指从数据库中导出数据。在网络攻击领域,它是指网站遭到入侵后,黑客窃取其数据库。洗库。在取得大量的用户数据之后,黑客会对用户数据进行分类,并通过一系列的技术手段和黑色产业链将有价值的用户数据变现,这一过程称作“洗库”。撞库。是指黑客将得到的用户账号信息在其他网站上进行尝试登录,因为很多用户喜欢使用统一的用户名密码,“撞库”的成功率很高。“撞库”严重威胁互联网用户的账号安全。更为严重的是,口令数据库从被拖库到被发现的过程一般较长,也就是说,在被发现前,可能已发生了大量的基于被拖数据库的“撞库”事件。五、口令防御要有效防范口令攻击,我们要选择一个好口令,并且要注意保护口令的安全。(1)口令必须符合复杂性要求。一般建议,口令字符应遵循以下原则:不能包含用户的账户名,不能包含用户姓名中超过两个连续字符的部分;包含以下四类字符中的三类字符:英文大写字母,英文小写字母,10个基本数字,非字母字符;禁止用自己或亲友的生日、手机号码、身份证号码等易于被他人获知的个人信息作口令的一部分。此外,用户可以使用自己容易记忆的特殊经历来构建口令。(2)口令越长越好。越长越好的意思是,在符合网站要求的前提下,尽量设置长的密码。一般要求至少有8个字符长。(3)注意保护口令安全。不要将口令存储于计算机中,最好不要告诉别人你的口令;不要在不同系统中使用相同的口令;在输入口令时应确保无人在身边窥视;在公共上网场所最好先确认系统是否安全;定期更改口令,至少六个月更改一次。(4)尽量不用重复的口令。很多人知道经常更换口令是个好方法,这样可以提高密码的安全性,但由于个人习惯,常常换来换去就是有限的几个口令。建议尽量不要使用重复的口令。(5)限制口令重试次数。为了防止攻击者不断尝试各种口令组合,系统应限制用户输错口令的次数,一般限制为5次,超过限制则将账号锁定一段时间(如1小时、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 除尘考核管理办法
- 高风餐饮管理办法
- 丰泽区教师管理办法
- 湖南机修业管理办法
- 上海小额贷管理办法
- 研发费支出管理办法
- 界别活动组管理办法
- 渠县请销假管理办法
- 高校聘期管理办法
- 柴汽油燃料管理办法
- 政府采购项目履约验收书参考样本(服务类)
- GB 4806.7-2016食品安全国家标准食品接触用塑料材料及制品
- FZ/T 60011-2016复合织物剥离强力试验方法
- 2022大学生就业力调研报告
- 过程审核检查表示例(帮助理解VDA6.3条款)
- GB∕T 37050-2019 紧固螺纹检测体系
- GB 38454-2019 坠落防护 水平生命线装置
- 中征码配码申请表
- 钻孔、剖面、矿体厚度计算表
- 药物流产同意书
- 计量检测项目可行性研究报告(76页)
评论
0/150
提交评论