6-认证技术原理与应用
主要内容包括:
认证类型可以分为单向认证、双向认证以及第三方认证。
认证技术方法主要有口令认证技术、智能卡技术、基于生物特征认证技术、Kerberos技术等多种实现方式。
(1)口令认证是基于用户所知道的秘密而进行的技术,是网络常见的身份认证方法。网络设备、操作系统和网络应用服务等都采用了口令认证。
(2)口令认证一般要求参与认证的双方按照事先约定的规则,用户发起服务请求,然后用户被要求向服务实体提供用户标识和用户口令,服务实体验证其正确性,若验证通过,则允许用户访问。
(3)口令认证的优点是简单、易于实现,当用户想要访问系统时,要求用户输入“用户名和口令”即可。
(4)口令认证的不足是容易受到攻击,主要的攻击方式有窃听、重放、中间人攻击、口令猜测等。因此,要实现口令认证的安全,应至少满足以下条件:
① 口令信息要安全加密存储;
② 口令信息要安全传输;
③ 口令协议要抵抗攻击,符合安全协议设计要求;
④ 口令选择要做到避免弱口令。
为了保证口令认证安全,网络服务提供商要求用户遵循口令生成安全策略,即口令设置要符合口令安全组成规则,同时对生成的口令进行安全强度评测,从而促使用户选择安全强度较高的口令。
智能卡是一种带有存储器和微处理器的集成电路卡,能够安全存储认证信息,并具有一定的计算能力。
通过智能卡来实现挑战/响应认证
在挑战/响应认证中,用户会提供一张智能卡,智能卡会一直显示一个随时间而变化的数字,假如用户视图登录目标系统,则系统首先将对用户进行认证,步骤如下:
(1)用户将自己的ID发到目标系统
(2)系统提示用户输入数字
(3)用户从智能卡上读取数字
(4)用户将数字发送给系统
(5)系统收到数字对ID进行确认,如果ID有效,系统会生成一个数字并将其显示给用户,称为挑战
(6)用户将上面的挑战输入到智能卡
(7)智能卡用这个输入的值根据一定算法计算出一个新的数字并提示这个结果,该数字称为应答
(8)用户将应答输入系统
(9)系统验证应答是否正确,如果正确,用户通过验证并登录进入系统
基于生物特征就是利用人类生物特征进行验证。目前,指纹、人脸、视网膜、语音等生物特征信息可用来进行人的生物认证,人的指纹与生俱来,并且一生不变。
一、定义
kerbors是一个网络认证协议,其目标是使用秘钥加密为客户端/服务器提供加强身份认证,其技术原理是利用对称加密密码技术,使用可信的第三方来为应用服务提供认证服务,并在用户和服务器之间建立安全信道。
二、一个kerbors系统设计基本实体:
(1)kerbors客户机,用户用来访问服务器设备
(2)AS(Authentcation Server,认证服务器),识别用户身份并提供TGS会话秘钥
(3)TGS(Ticket Granting Server,票据发放服务器),为申请服务的用户授予票据(Ticket)
(4)应用服务器,为用户提供服务的设备或系统
其中通常将AS和TGS统称为秘钥发放中心KDC(Key Distribution Center)。票据(ticket)是用于安全传递用户身份所需要的信息的集合,主要包括客户方Principal、客户方IP地址、时间戳(分发该Titcket的时间)、Ticket的生存期、以及会话秘钥等内容。
三、KerborsV5认证协议主要由六步构成
kerbors协议中要求用户经过AS和TGS两重认证的优点主要有以下两点:
(1)可以显著减少用户密钥的密文的暴露次数,这样就可以减少攻击者对有关用户的密钥的密文的积累
(2)kerbors认证过程中具有单点登录(Signle Sign On,SSO)的优点,只要用户拿到了TGT并且该TGT没有过期,那么用户就可以使用该TGT通过TGS完成到任一服务器的认证过程而不必输入密码。
四、缺点:
kerbors存在不足之处,kerbors认证系统要求解决主机时间节点同步问题和抵御拒绝服务攻击。
目前windos系统和Hadoop都支持kerbors认证。
PKI(Public Key Infrastructure )就是有创建、管理、存储、分发和撤销公钥证书所需要的硬件、软件、人员、策略和过程的安全服务设施。PKI提供了一种系统化的、可扩展的、统一的、容易控制的公钥分发方法。
基于PKI的主要安全服务有身份认证、完整性保护、数字签名 、会话加密管理、秘钥恢复。
PKI涉及多个实体之间的协商和操作,主要实体包括CA、RA、终端实体、客户端、目录服务器。
PKI各实体的功能分别叙述如下:
CA(Certification Authority):证书授权机构,主要进行证书的颁发
RA(Registration Authority):证书登记权威机构
目录服务器:CA通常使用一个目录服务器, 提供证书管理和分发的服务
终端实体:指要认证的对象,例如服务器、打印机、Email地址、用户等
客户端:指需要基于PKI安全服务的使用者,包括用户、服务进程等
单点登录:是指用户访问使用不同的系统时,只需要进行一次身份认证,就可以根据这次登录的认证身份访问授权资源。单点登录解决了用户访问使用不同系统时,需输入不同系统的口令以及保管口令问题,简化了认证管理工作。
认证技术是网络安全保障的基础性技术,普遍应用于网络信息系统保护。认证技术常见的应用场景如下:
(1)用户身份验证:验证网络资源访问者的身份,给网络系统访问授权提供支持服务
(2)信息来源证实:验证网络信息的发送者和接收者的真实性,防止假冒
(3)信息安全保护:通过认证技术保护网络信息的机密性、完整性、防止泄密、篡改、重放或延迟。
Kerberos的认证原理:
Kerberos采用可信赖第三方服务器进行密钥分发和身份确认,包括:
① 对用户认证
② 对应用服务的提供者进行认证。
此外,还可根据用户要求提供客户/服务器间的数据加密与完整性服务。
RFC1510协议文件对V5作了如下说明:
Kerberos提供了在开放型网络中进行身份认证的方法,认证实体可以是用户或用户服务。这种认证不依赖宿主机的操作系统或主机的IP地址,不需要保证网络上所有主机的物理安全性,并且假定数据包在传输中可被随机窃取篡改。
2�Kerberos的主要概念及一个工作
模型
DES:对信息加密的算法。V4只支持这一DES(数据加密标准)算法,V5采用独立的加密模块,可用其它加密算法替换。
主体Principal:用户或服务,具体格式为〈登录名Primary name,实体名lnstance,域名realm〉
许可证Ticket:向Kerberos server认证的凭证。
格式〈Primary name,会话密钥Sessionkey,时间戳Timestamp〉会话密钥Session key:两个主体通信的临时密钥。
KDC(密钥发送中心):包括认证服务器AS(Authenticatin server)
用于用户的初始认证服务。
和TGS(Ticket Granting server)许可证认证服务器。
AS和TGS同驻于一台主机上。
认证符Authenticator用户创建的令牌。发送给服务器用于证明用户身份
格式〈primary name ,timestamp>
一个Kerberos服务器也称为密钥分发中心KDC,维护着一个数据库里面保存着所辖域内的用户及服务器的DES密钥。DES密钥基于用户口令而生。用户首次注册时,系统根据用户口令生成密钥。应用服务器向KDC注册也生成密钥,这个密钥既存放在KDC上,也存于该服务器的主机上。
现在假定一用户需要某应用服务器提供服务,工作模型如下:
从此例可以看出,基于Needham-schroeder密钥协议的Kerberos系统保障了网络传输和通信的安全。
但用户的负担十分繁重:用户的目的是得到应用服务器S的服务,却不得不积极地申请许可证!
在KerberosV4版里,为防止“重放”攻击,nonce由时间戳实现,这就带来了时间同步问题。即使利用网络时间协议(Network Time Protocol)或国际标准时间(Coordinated universal time)能在一定程度上解决时间同步问题,用户需要承担的责任也令人忍受。
Kerberos V5 版允许nonce可以是一个数字序列,但要求它唯一。由于服务器无法保证不同用户的nonce不冲突,偶然的冲突可能将合法用户的服务器申请当作重放攻击而拒之门外。
简言之,从没有网络安全知识的用户角度来看,Kerberos以加大用户参与安全保证的力度(而他们并不具备这方面的知识更没有耐心)来保障通信的安全,这种做法并不可行。
所谓的公钥认证,实际上是使用一对加密字符串,一个称为公钥(public key),任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。
ssh 的公钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。为了说明方便,以下将使用这些符号。
Ac 客户端公钥
Bc 客户端密钥
As 服务器公钥
Bs 服务器密钥
在认证之前,客户端需要通过某种方法将公钥 Ac 登录到服务器上。
认证过程分为两个步骤。
会话密钥(session key)生成
客户端请求连接服务器,服务器将 As 发送给客户端。
服务器生成会话ID(session id),设为 p,发送给客户端。
客户端生成会话密钥(session key),设为 q,并计算 r = p xor q。
客户端将 r 用 As 进行加密,结果发送给服务器。
服务器用 Bs 进行解密,获得 r。
服务器进行 r xor p 的运算,获得 q。
至此服务器和客户端都知道了会话密钥q,以后的传输都将被 q 加密。
认证
服务器生成随机数 x,并用 Ac 加密后生成结果 S(x),发送给客户端
客户端使用 Bc 解密 S(x) 得到 x
客户端计算 q + x 的 md5 值 n(q+x),q为上一步得到的会话密钥
服务器计算 q + x 的 md5 值 m(q+x)
客户端将 n(q+x) 发送给服务器
服务器比较 m(q+x) 和 n(q+x),两者相同则认证成功
0条评论