第3章 网络防御技术 指导教师:杨建国 2013年8月10日
第3章 网络防御技术 3.1 安全架构 3.2 密码技术 3.3 防火墙技术 3.4 杀毒技术 3.5 入侵检测技术 3.6 身份认证技术 3.7 VPN技术 3.8 反侦查技术 3.9 蜜罐技术 3.10 可信计算 3.11 访问控制机制 3.12 计算机取证 3.13 数据备份与恢复 3.14 服务器安全防御 3.15 内网安全管理 3.16 PKI网络安全协议 3.17 信息安全评估 3.18 网络安全方案设计
3.6 身份认证技术
11.2 身份认证 11.2.1 身份认证概述 11.2.2 基于口令的认证 11.2.3 基于地址的认证 11.2.4 基于生理特征的认证 11.2.5 Kerberos认证协议 11.2.6 公开密钥基础设施PKI 2017/3/10 网络入侵与防范讲义 4
11.2.1 身份认证概述 我们生活的现实世界是一个真实的物理世界,每个人都拥有独一无二的物理身份。而今我们也生活在数字世界中,一切信息都是由一组特定的数据表示,当然也包括用户的身份信息。 如果没有有效的身份认证管理手段,访问者的身份就很容易被伪造,使得任何安全防范体系都形同虚设。 2017/3/10 网络入侵与防范讲义 5
身份认证概述(2) 身份认证是指验证一个主体身份的真实性或证实某事件、某消息是否属实的过程,通过验证被验证者的一个或多个参数的真实性和有效性,来验证被验证者是否名符其实。 用户身份验证的方法有很多,如基于被验证者所知道的(知识证明),基于被验证者所拥有的(持有证明),基于被验证者的生物特征(属性证明)等等。 2017/3/10 网络入侵与防范讲义 6
网络环境下对身份认证的需求 抗被动的威胁(窃听):口令不在网上明码传输 sniffer 源 目的 2017/3/10 网络入侵与防范讲义 7
网络环境下对身份认证的需求 抵抗主动的威胁,比如伪造、重放,网络上传输的认证信息不可重用 passwd 解密 加密 $%@&)*=-~`^,{ 2017/3/10 网络入侵与防范讲义 8
网络环境下对身份认证的需求 双向认证 单点登录(Single Sign-On) 用户只需要一次认证操作就可以访问多种服务 2017/3/10 网络入侵与防范讲义 9
身份认证的基本途径 基于你所知道的(What you know ) 基于你所拥有的(What you have ) 知识、口令、密码 基于你所拥有的(What you have ) 身份证、信用卡、钥匙、智能卡、令牌等 基于属性特征(What you are) 指纹,笔迹,声音,手型,脸型,视网膜,虹膜 双因素、多因素认证 2017/3/10 网络入侵与防范讲义 10
基于口令的认证 简单口令认证 一次性口令认证 口令管理 最常见,但是也最不安全 2017/3/10 网络入侵与防范讲义 11
简单口令认证 口令是双方预先约定的秘密数据,用被验证者知道的信息进行验证。 基于口令的认证有一定的缺陷,主要的两个缺点是: 用户一般会选择容易记忆的口令,结果,这些口令不是随机分布的,很容易猜到。密码猜测是正确地猜出合法用户的口令过程。 一些简单的口令认证系统中,口令的传送常以明文的方式进行,很容易被窃听。 基于简单口令的认证不适于日益复杂的计算机网络和分布式系统。 2017/3/10 网络入侵与防范讲义 12
一次性口令认证 简单的口令认证太容易被黑客攻击,加入密码学技术(加密、数字签名)可以增加认证过程的安全性。密码学认证的基本思想是,要求被认证的一方A通过密码学的操作提供一个双方都知道的数值给认证方B,从而证明他的身份。 最普遍的密码学认证手段是使用一次性口令 2017/3/10 网络入侵与防范讲义 13
一次性口令认证(2) “一次性口令”是只能使用一次的口令,在这之后,这个口令马上失效。 使用一次性口令的思想是,动态产生无法预测的口令,而这个口令也只能用来访问系统一次。第二次使用这个口令时,会返回一个错误。 2017/3/10 网络入侵与防范讲义 14
一次性口令认证(3) 一次性口令的产生也有几种不同的方式。如在挑战/应答系统中, 主机系统动态产生随机的咨询信息,并发送给远端用户,这个随机数可以在非安全的通道中传送,远端用户间这个挑战信息和自己的密钥结合起来,用某种加密算法,计算产生一个口令。然后把应答发送给服务器。 主机接收到这个口令后,用密钥对口令进行解密,然后和自己存储的随机数进行比较;如果主机知道远端用户的密钥的话,也可以用与远端主机相同的算法计算一个口令,与接收到的口令进行比较。 2017/3/10 网络入侵与防范讲义 15
一次性口令认证(3) 例如,Client和Server共享一个密钥,一次性口令认证过程如图所示,其中MAC的计算可以基于Hash算法、对称密钥算法,非对称密钥算法。 c s Login ,IDc IDc, R MAC=H(R,K) IDc, MAC MAC’=H(R,K) OK / Disconnect 比较MAC’和MAC 2017/3/10 网络入侵与防范讲义 16
一次性口令认证 一次性口令还经常和令牌卡结合起来。一般的令牌卡又叫作“智能卡”,里面有一个芯片和时钟,时钟和计算机的时钟同步。用户要进行认证,只需要把智能卡插入,从屏幕上读出一次性口令,把口令正确地输入就可以了。 RSA公司的SecureID和Digital Pathways公司的SecureNet Key都是用令牌卡实现一次性口令认证的例子。 2017/3/10 网络入侵与防范讲义 17
口令管理 口令管理 口令属于“他知道什么”这种方式,容易被窃取。 口令的错误使用: 口令管理的作用: 选择一些很容易猜到的口令; 把口令告诉别人; 把口令写在一个贴条上并把它贴在键盘旁边。 口令管理的作用: 生成合适的口令 口令更新 对口令进行保密 2017/3/10 网络入侵与防范讲义 18
口令管理 口令的要求: 包含一定的字符数; 和ID无关; 包含特殊的字符; 大小写; 不容易被猜测到。 跟踪用户所产生的所有口令,确保这些口令不相同, 定期更改其口令。 使用字典式攻击的工具找出比较脆弱的口令。许多安全工具都具有这种双重身份: 网络管理员使用的工具:口令检验器 攻击者破获口令使用的工具:口令破译器 2017/3/10 网络入侵与防范讲义 19
口令管理 口令产生器 口令的时效 限制登录次数 不是让用户自己选择口令,口令产生器用于产生随机的和可拼写口令。 强迫用户经过一段时间后就更改口令。 系统还记录至少5到10个口令,使用户不能使用刚刚使用的口令。 限制登录次数 免受字典式攻击或穷举法攻击 2017/3/10 网络入侵与防范讲义 20
11.2.3 基于地址的认证 根据收到的数据包中所包含的地址信息确认要访问资源的用户和主机的身份。其基本的思想是,每个主机存储着可以访问本机的其他主机的账号信息,这样只要确认了对方的主机地址,就可以利用本地的信息进行用户验证,而不需要把口令在网络上传输。 在Unix系统中,每台主机可能都有个名叫/etc/hosts.equiv的文件存储着受信任的主机列表,受信任列表里的主机都可以访问本机。 这种认证方式比较简单方便,尤其适合局域网内的互相认证。但这也不是解决计算机网络和分布式系统认证问题的好方法,甚至这个方法可能会导致更加严重的安全问题。一旦攻击者掌握了其中一台主机,而这台主机又被其他主机所信任,那么,其他主机也就相当于被攻破了,攻击者可以轻松登录。 2017/3/10 网络入侵与防范讲义 21
11.2.4 基于生理特征的认证 每个人所具有的唯一生理特征 指纹 一些曲线和分叉以及一些非常微小的特征; 指纹,视网膜,声音,视网膜、虹膜、语音、面部、签名等 指纹 一些曲线和分叉以及一些非常微小的特征; 提取指纹中的一些特征并且存储这些特征信息:节省资源,快速查询; 手掌、手型 手掌有折痕,起皱,还有凹槽; 还包括每个手指的指纹 ; 人手的形状(手的长度,宽度和手指)表示了手的几何特征 视网膜扫描 扫描眼球后方的视网膜上面的血管的图案; 2017/3/10 网络入侵与防范讲义 22
11.2.4 基于生理特征的认证 虹膜扫描 语音识别 面部扫描 动态签名 动态键盘输入 虹膜是眼睛中位于瞳孔周围的一圈彩色的部分; 虹膜有其独有的图案,分叉,颜色,环状,光环以及皱褶; 语音识别 记录时说几个不同的单词,然后识别系统将这些单词混杂在一起,让他再次读出给出的一系列单词。 面部扫描 人都有不同的骨骼结构,鼻梁,眼眶,额头和下颚形状。 动态签名 通过签名产生的电信号来进行识别; 动态键盘输入 2017/3/10 网络入侵与防范讲义 23
11.2.4 基于生理特征的认证 人的这些生理特征如指纹、掌纹、面孔、声音、虹膜、视网膜等都具有惟一性和稳定性,每个人的这些特征都与别人不同,且终身不变,也不可能复制,于是,人们提出可以通过识别用户的这些生理特征来认证用户的身份,其安全性远高于基于口令的认证方式。 基于此,人们发展了指纹识别、视网膜识别、发音识别等多种生物识别技术,其中以指纹识别技术发展得最为火热。 2017/3/10 网络入侵与防范讲义 24
11.2.4 基于生理特征的认证 首先采集人们的指纹,提取指纹的特征,以一定的压缩格式存储,并与用户姓名或标识联系起来,称之为指纹库。在匹配的时候,先验证其标识,再现场提取其指纹与指纹库的存储的指纹进行对比。 不过,由于许算机在处理指纹时,将生理特征转化为数据,只涉及了指纹的一些有限的信息,而且对比算法也不是精确匹配,其结果也不能保证100%准确。 指纹识别系统的一个重要衡量标志就是识别率,包括漏判和误判。 2017/3/10 网络入侵与防范讲义 25
基于生理特征的认证系统的误判 第一类错误:错误拒绝率(FRR)。 第二类错误:错误接受率(FAR)。 交叉错判率(CER):FRR=FAR的交叉点 CER用来反映系统的准确度。 % FAR(II) FRR(I) CER 安全性 2017/3/10 网络入侵与防范讲义 26
11.2.5 Kerberos认证协议 Kerberos 简介 Kerberos 身份认证过程 Kerberos 缺陷 2017/3/10 网络入侵与防范讲义 27
Kerberos简介 Kerberos是基于可信赖第三方(Trusted Third Party,TTP)的认证协议。 Kerberos是由美国麻省理工学院(MIT)的雅典娜项目组(Athena Group)开发的一个认证服务系统。Kerberos是希腊神话中有三个头的看门狗的名字。 MIT免费提供Kerberos软件,http://web.mit.edu/Kerberos/。 2017/3/10 网络入侵与防范讲义 28
Kerberos简介(2) Kerberos目标是把Unix认证、记帐、审计的功能扩展到网络环境: 公共的工作站,只有简单的物理安全措施 集中管理的受保护的服务器 多种网络环境,假冒、窃听、篡改、重发等威胁 实现集中的身份认证和密钥分配,用户只需输入一次身份验证信息,就可以访问多个服务。 基于Needham-Schroeder认证协议。 2017/3/10 网络入侵与防范讲义 29
Kerberos 身份认证过程 一个简单的认证对话 一个更加安全的认证对话 Kerberos V4 2017/3/10 网络入侵与防范讲义 30
一个简单的认证对话 AS C V 问题一:明文传输口令 问题二:每次访问都要输 入口令 C和V必须在AS中注册,共享密钥KC,KV (1) C AS : IDc || Pc ||IDV (2) ASC : Ticket (3) C V : IDc || Ticket Ticket=EKv(IDc|| ADc || IDv) (1) AS C (2) (3) V C = Client AS = Authentication Server V = Server IDc = identifier of User on C IDv = identifier of V Pc = password of user on C ADc= network address of C Kv = secret key shared bye AS and V || = concatenation 问题一:明文传输口令 问题二:每次访问都要输 入口令 2017/3/10 网络入侵与防范讲义 31
一个更加安全的认证对话 协议所涉及到的各方介绍: 在协议工作之前,客户与KDC、KDC与应用服务之间已经商了各自的共享密钥。 客户(Client, C) 认证服务器(Authentication Server, AS) 票据授予服务器(Ticket Granting Server, TGS) AS和TGS经常放在同一个物理服务器上,所以也可以统称为Kerberos服务器或者KDC。 票据(Ticket):是一种临时的证书,用TGS或应用服务器的密钥加密,分为TGS票据和服务票据 在协议工作之前,客户与KDC、KDC与应用服务之间已经商了各自的共享密钥。 2017/3/10 网络入侵与防范讲义 32
一个更加安全的认证对话(2) TicketTGS=EKTGS[IDC||ADC||IDTGS||TS1||Lifetime1] AS C 认证对话(每次登录认证一次) (1) C AS : IDC || IDTGS (2) ASC : EKc[TicketTGS] TicketTGS=EKTGS[IDC||ADC||IDTGS||TS1||Lifetime1] 获取服务票据(每种服务一次) (3) C TGS : IDC ||IDv || TicketTGS (4) TGS C : Ticketv Ticket v=EKv [IDC||ADC||IDV||TS2||Lifetime2] 访问服务(每次会话一次) (5) C V : IDC || Ticketv (1) AS (2) C (3) TGS (4) (5) 口令没有在网络上传输 TicketTGS 可重用,用一个TicketTGS可以请求多个服务 V 2017/3/10 网络入侵与防范讲义 33
一个更加安全的认证对话(Cont.) 问题一:票据许可票据TicketTGS的生存期 问题二: 解决方法 如果太大,则容易造成重放攻击 如果太短,则用户总是要输入口令 问题二: 如何向用户认证服务器 解决方法 增加一个会话密钥(Session Key) 2017/3/10 网络入侵与防范讲义 34
Kerberos V4 的认证过程 AS (1) (2) (3) 请求Ticketv TGS Ticketv+会话密钥 (5) (4) 请求TicketTGS AS (1) TicketTGS+ 会话密钥 (2) (3) 请求Ticketv TGS Ticketv+会话密钥 (5) (4) 请求服务 提供服务器认证符 (6) 2017/3/10 网络入侵与防范讲义 35
多管理域环境下的认证 Kerberos AS Client TGS 共享密钥 相互注册 Kerberos AS Server TGS 1.请求本地Tickettgs AS 2. 本地Tickettgs Client 3. 请求远程tickettgs TGS 4. 远程ticket tgs 共享密钥 相互注册 7.请求远程服务 5.请求远程服务ticket Kerberos 6.远程服务ticket Server AS TGS 2017/3/10 网络入侵与防范讲义 36
多域环境下的认证过程 2017/3/10 网络入侵与防范讲义 37
Kerberos 的缺陷 Brian Tung在他的《Kerberos傻瓜指南》中,把使用TGT的过程比喻成去参观某个大公司的工作场所。在进入这个大公司时,门卫会要求你出示身份证,然后给你一个参观券。然后,每次你进入不同的工作间的时候,只需要出示你的参观券就可以了,不需要多次出示你的身份证。如果参观券丢了,马上就可以报废,重新申请一个。这样可以减少出示身份证的次数,防止身份证丢失或者被人偷走。 由于Kerberos V4主要的目标是在内部使用,所以存在很多限制,如对时钟同步的要求较高、面临猜测口令攻击、基于对称密钥的设计不适合于大规模的应用环境等。Kerberos V5为了适应Internet的应用,做了很多修改。但是,基本的工作过程和前面叙述是一样的。 2017/3/10 网络入侵与防范讲义 38
11.2.6 公钥基础设施PKI PKI(Public Key Infrastructure)是一个以公开密钥加密法为中心的密钥管理体系结构,它能提供公开密钥加密和数字证书服务,采用证书管理公钥,通过第三方的可信任机构CA (Certificate Authority)把用户的公钥和用户的其它标识信息(如名称、e-mail、身份证号等)捆绑在一起,在Internet上验证用户的身份。 当一个用户和另外一个用户进行安全通信的时候,不需要先商定共享密钥,发送方只需要得到接受方公开密钥的一个拷贝就可以了。 2017/3/10 网络入侵与防范讲义 39
公开密钥体系结构PKI 公开密钥一般是以数字证书的方式存在的。 使用数字证书来提供用户的公开密钥,让可信任第三方——数字证书认证中心CA,签署用户的公开密钥 CA可以集中管理用户的公开密钥、过期时间和其它数字证书中包含的重要信息。 2017/3/10 网络入侵与防范讲义 40
公开密钥体系结构PKI(2) 用户获得对方的公开密钥的方式很多 最常用的方式——通过轻量目录访问协议(Lightweight Directory Access Protocol,LDAP)从证书库中获得,这个协议可以用来获得数字证书和数字证书作废列表(Certificate Revocation Lists,CRLs)。 另外一个获得别的用户证书的方法是通过S/MIME(Secure/Multipurpose Internet Mail Extension)协议,在用户之间直接交换密钥。S/MIME是一个增强安全的邮件协议。 2017/3/10 网络入侵与防范讲义 41
公开密钥体系结构PKI(3) 一旦用户得到了接受方的数字证书,他就可以使用这个公开密钥把要发送的消息加密,发送给对方。对方只有具备相应的私有密钥,才能把加密消息打开。 反过来也一样,对方可以把要发送的消息用自己的私有密钥进行“签名”,只有拥有他的数字证书拷贝的用户才能对消息进行验证和解密。 2017/3/10 网络入侵与防范讲义 42
公开密钥体系结构PKI(4) PKI是一个以非对称密钥加密法为中心的密钥管理体系结构,它能提供非对称密钥加密和数字证书服务。 目前广泛认可的PKI是以ITU-T的X.509第3版为基础的结构。 PKI一般由认证中心(CA)、证书库、密钥备份及恢复系统、证书作废处理系统及客户端证书处理系统等组成。 2017/3/10 网络入侵与防范讲义 43
认证中心(CA) CA是证书的签发机构,用来对公开密钥和数字证书进行管理,它是PKI的核心。 在公开密钥体制环境中,必须有一个可信的机构来对任何一个主体 的公钥进行公证,证明主体的身份以及他的公开密钥的真实性。 CA的职责归纳起来有: 验证并标识证书申请者的身份; 确保CA用于签名证书的非对称密钥的质量; 证书材料信息(包括公钥证书序列号、CA标识等)的管理; 确定并检查证书的有效期限; 确保证书主体标识的唯一性,防止重名; 发布并维护作废证书表,对整个证书签发过程作日志记录; 向申请人发通知。 关键:需要保证CA的公正性和权威性。 2017/3/10 网络入侵与防范讲义 44
证书库 证书库是证书集中存放的地方,是网上的一种公开信息库,用户可以从这里获得其他用户的证书和公开密钥。 2017/3/10 网络入侵与防范讲义 45
密钥备份及恢复系统 如果用户丢失了用于数据解密的公开密钥,那它的密文将无法解密,会造成数据丢失。为了避免出现这种情况,PKI应该提供备份及恢复解密密钥的体制。 2017/3/10 网络入侵与防范讲义 46
证书作废处理系统 证书作废处理系统是PKI的一个重要组件。 同日常生活中的各种证件一样,证书在CA为其签署的有效期以内也可能需要作废。例如,如果密钥泄露,就需要把密钥作废,不再使用。 作废证书一般通过将证书列入证书作废列表来完成。 通常,系统中由CA负责创建并维护一张及时更新的CRL,而由用户在验证证书时负责检查该证书是否在CRL之列。 CRL一般存放在目录系统中。 2017/3/10 网络入侵与防范讲义 47
X.509证书结构 X.509公开密钥证书是一个数据结构,它包含下列的域: (1)版本,指明这个证书符合ITU-T X.509建议的哪个版本格式。X.509现在已经有1,2,3总共3版本; (2)序列号,由发布证书的CA分配。这个序列号在该CA发布的所有证书中是惟一的。 (3)算法标识符,指明证书数字签名的算法; (4)发布者,表明发布和签署该证书的CA; (5)有效期,包含起始两个日期; (6)主体,定义名字或者是其他的身份标识,表明这个证书发给哪个用户。比如,主体域可能包含名字和住址; (7)公开密钥信息,包含用户的公开密钥和使用这个密钥的算法; (8)签名,证书的数字签名。 在第3版中,X.509还可以定义和使用扩展的域。 2017/3/10 网络入侵与防范讲义 48
X.509 认证框架 签发证书、证书回收列表 Directory CA RA 注册 用户 用户 Certificate Authority Registry Authority 验证用户信息的真实性 Directory 用户信息、证书数据库 没有保密性要求 证书获取 从目录服务中得到 在通信过程中交换 签发 Directory CA RA 注册 查询 申请 身份认证 用户 用户 2017/3/10 网络入侵与防范讲义 49
PKI应用接口系统 PKI的价值在于使用户能够方便的使用加密、数字签名等安全服务 2017/3/10 网络入侵与防范讲义 50