文章目录
一、远程用户认证原理
用户身份认证的定义:
验证被系统实体或为系统实体声明的身份的过程;这个过程包括以下两步:
(1)鉴定步骤:向安全系统提供标识符
(2)验证步骤:呈现或生成验证了实体和标识符之间关系的认证信息
身份识别是用户向系统提供所声称身份的手段,用户身份验证是确定声称有效的手段
用户身份验证≠消息验证
(1)用户身份验证确认 “用户是谁”,验证用户身份的合法性,确保其拥有访问系统、资源或服务的权限。
(2)消息验证确认 “消息是否可信”,验证消息在传输或存储过程中未被篡改,且确实来自声称的发送者。
1.1 NIST电子用户认证模型
进行用户身份验证的最初要求是用户必须在系统中注册
1.2 认证方法
验证一个用户实体的手段有四种,可以单独使用或组合使用:
(1)用户个人知道某事:密钥、个人验证码、预先安排好的一系列问题的回答
(2)用户个人拥有的某种东西:密钥、电子钥匙卡、智能卡和物理卡(这种类型的身份验证器称为令牌)
(3)用户个人的某种东西(不变的生物特征):指纹识别、视网膜识别、人脸识别
(4)用户个人的某种特别属性(后天生物特征):声音模式识别、手写特征识别、打字节奏识别
二、基于对称加密的密钥分配
任何密码系统的强度取决于密钥分发技术
什么是密钥分发技术:
指的是传递密钥给希望交换数据的双方,且不允许其他人看见密钥的方法
实现密钥分发的方法:
(1)A能够选定密钥并通过物理方法传递给B
(2)第三方可以选定密钥并通过物理方法传递给A和B
(3)如果A和B不久之前使用过一个密钥,一方能够把使用旧密钥加密的新密钥传递给另一方
(4)如果A和B各自有一个到达第三方C的加密链路,C能够在加密链路上传递密钥给A和B
第(4)种方法中,需要两种密钥:
1、会话密钥
:当两个端系统(主机、终端等)希望通信,它们建立一条逻辑连接(如虚电路)。在逻辑连接持续过程中,所有用户数据都使用一个一次性的会话密钥加密。在会话或连接结束时,会话密钥被销毁
2、永久密钥
:永久密钥在实体间用于分发会话密钥
第(4)种方法中需要一个密钥分发中心(KDC)
:
KDC决定哪些系统之间允许相互通信。当两个系统被允许建立连接时,密钥分发中心就为这条连接提供一个一次性会话密钥
三、Kerberos(重点、必考)
1、Kerberos是一种认证服务
2、Kerberos利用集中的认证服务器
来实现用户对服务器的认证和服务器对用户的认证
3、Kerberos仅依赖于对称加密机制,而不使用公钥加密机制
4、Kerberos有两个版本:版本4、版本5
5、Kerberos的目的是防止三种攻击:假冒其他用户、IP地址假冒、重放攻击
3.1 Kerberos 版本4
认证服务器(AS)
:
(1)AS知道所有用户的口令,并把它们存储在集中式数据库中
(2)AS与每个服务器之间共享一个独立的密钥
(3)AS会创建票据
,包含用户ID、用户网络地址、服务器ID;使用AS与服务器之间的秘密密钥进行加密;用户将票据发给服务器,服务器利用票据来判断该用户是否被授权
(4)存在的问题:包含一次对口令的明文传送;票据不可重复使用
(5)解决办法:增加票据授权服务器(TGS)
票据授权服务器(TGS)
:
(1)TGS 的主要功能是为已通过初步身份验证的用户发放服务授权票据
(2)用户首先通过认证服务器(AS)完成初始身份验证,获得票据授予票据(TGT)
(3)用户持 TGT 向 TGS 请求访问具体服务(如文件服务器、数据库)时,TGS 验证 TGT 的合法性,并根据用户权限生成对应的服务授权票据。
(4)简单理解:AS 相当于 “身份证审核处”,TGS 相当于 “景点检票口”—— 用户凭身份证(TGT)在检票口兑换特定景点的门票(服务授权票据)。
AS(认证服务器)和TGS(票据授权服务器)组成了Kerberos认证系统
:
关键的属性:
(1)Ktgs:AS与TGS的共享密钥
(2)Kv:TGS与应用服务器V的共享密钥
(3)Kc,tgs:用户C与TGS的会话密钥,由AS生成
(4)Kc,v:用户C与服务器V的会话密钥,由TGS生成
(5)Tickettgs:用户端用来访问TGS的票据,由AS签发
(6)Ticketv:用户端用来访问服务器V的票据,由TGS签发
(7)TS:票据签发的时间戳
(8)Lifetime:票据的有效期
(9)Authenticator:用户认证符,由客户端利用Kc,v生成
3.2 Kerberos 版本5
版本5要解决版本4在两方面的局限:环境方面的不足和技术上的缺陷
环境不足:
技术缺陷:
四、基于非对称加密的密钥分配
公钥加密实际上存在两个不同的方面:
1、公钥的分发
2、使用公钥加密分发私钥
4.1 公钥证书
一个用户可以向所有用户发送自己的公钥。存在问题:攻击者可以伪装用户A向其他用户发送公钥,当有用户向A发送加密信息,攻击者都能读到,并用假的公钥进行认证
如何解决:Diffie-Hellman密钥交换、公钥证书
公钥证书
:由公钥 + 公钥所有者的用户ID + 可信的第三方签名的整个数据块 组成
第三方就是用户团体所信任的认证中心(CA),如政府机构或金融机构
最广泛使用的公钥证书是X.509证书
五、X.509证书
X.509定义了一个使用X.500目录向其用户提供认证服务的框架
证书的结构:
Y<<X>> = 由认证中心Y发放的用户X的证书
Y{I} = Y对I的签名
六、习题训练
简述Kerberos V4中双向认证的实现:
解题思路:
(1)双向认证是指客户端与服务端之间相互验证对方身份的过程
(2)过程:
1、客户端向AS申请票据授权票据,如果用户身份验证通过,则AS向客户端返回票据授权票据,以及客户端与TGS的会话密钥
2、客户端向TGS申请服务授权票据,TGS根据票据授权票据判断用户是否通过AS验证,是的话TGS就向客户端返回服务授权票据,以及客户端与服务器V的会话密钥Kc,v
3、客户端向服务器V申请服务,服务器收到用户认证符和服务授权票据,分别解密得到IDc|| ADc,如果两个IDc|| ADc是一致的,那么服务端成功验证了客户端身份
4、客户端接收服务器返回的授权的服务,如果能用Kc,v解密,说明服务是来自目标服务器的,从而成功验证了服务器的身份
解题思路:
(1)Kerberos 的票(Ticket)是由密钥分发中心(KDC)的票据授权服务器(TGS)生成并加密的。Bob 要确定票的真伪,会使用自己与 TGS 共享的密钥(该密钥是在 Bob 向 TGS 获取服务票据时,TGS 分配并通过安全方式传递给 Bob 的 )去解密票。如果能够成功解密,并且解密后票中的信息(如票据的有效期、服务标识、客户端标识等)符合预期格式和逻辑,就可以确定票是真实有效的;反之,如果无法解密或者解密后信息异常,则票可能是伪造的。
(2)在 Kerberos 交互过程中,通信双方会使用会话密钥(该密钥包含在票中,且只有 Alice 和 Bob 能借助各自与 KDC 共享的密钥解密获取 )对消息进行加密、添加认证器(Authenticator ,包含发送方身份、时间戳等信息,用于防止重放攻击等 )。当 Alice 收到回复时,用自己持有的会话密钥解密消息,同时检查消息中的认证器里的身份标识是否为 Bob 对应的身份,以及时间戳等是否符合正常范围(防止重放),以此确定回复来自 Bob 。
(3)票中包含会话密钥,Alice 和 Bob 各自从票里获取这个会话密钥(借助与 KDC 共享的密钥解密票来得到 ),之后双方使用该会话密钥对彼此之间传输的消息进行加密和解密操作。由于会话密钥是随机生成且只有通信双方(以及 KDC ,但 KDC 后续不参与通信过程的加解密 )知晓的对称密钥,第三方无法获取和破解,从而保证了两人之间秘密通信,实现数据的机密性 。
解题思路:错,顺序反过来了
解题思路:认证服务的框架
七、补充—拒绝服务攻击
拒绝服务攻击(DOS)
拒绝服务攻击是指攻击者利用系统的缺陷,执行一些恶意的操作,使合法的系统用户不能及时得到应得到的服务和系统资源。
典型的Dos攻击
SYN泛洪攻击:服务器会话表满负荷工作
Smurf攻击:使被攻击主机信道拥塞
分布式拒绝服务攻击(DDOS)机制
a)攻击者:控制主控端,操控整个攻击过程
b)主控端:是一个入侵者,非法入侵并控制的一些主机(代理端)
c)代理端:是攻击的执行者,接收和运行主控端发来的命令