博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
老话重谈 加密身份验证
阅读量:5792 次
发布时间:2019-06-18

本文共 2916 字,大约阅读时间需要 9 分钟。

说起身份认证我们就会想起AAA ,AAA代表Authentication、Authorization、Accounting,意为认证、授权、记帐,其主要目的是管理哪些用户可以访问服务器,具有访问权的用户可以得到哪些服务,如何对正在使用网络资源的用户进行记帐。 

1、 认证:验证用户是否可以获得访问权限——“你是谁?” 
2、 授权:授权用户可以使用哪些资源——“你能干什么?”

3、 记帐:记录用户使用网络资源的情况——“你干了些什么?”

我们在这主要说下认证:认证是指验证一个端用户或者设备(pc  路由)所声称身份有效的过程,授权指赋予用户,用户组或特定系统访问权限的过程,授权和记账都是在认证之后进行的。其中认证是证明设备或者用户端技术。主要有本地认证(local control)和第三方的方式认证(trusted third party),只有协议有以下几个

       1.  S/Key一次性口令系统是一个基于MD4 和MD5的一次性口令生成方案。他可以对访问者的身份与设备进行综合验证。S/Key协议的操作时基于客户端/服务器端模式。客户端可以是任何设备,如普通的PC或者是有移动商务功能的手机。而服务器一般都是运行Unix系统。

2. ppp认证协议包括pap chap   eap

pap口令认证协议为端点提供双向握手向认证服务器确立身份的简单认证方式,

 

pap不是强制认证,只认证端点 口令已明文方式发送,只执行一次,不能防止重放攻击和错误攻击,有端点控制频率和时间

CHAP(挑战-握手验证协议 Challenge-Handshake Authentication Protocol)是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送

 

CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remote client impersonation)进行攻击

eap:
  1. 在链路建立阶段完成以后,认证方向对端发送一个或多个请求报文去认证结点。在请求报文中有一个类型字段用来指明认证方所请求的信息,例如是 ID、MD5 的挑战字、一次密码(OTP)以及通用令牌卡等。MD5 的挑战字对应于 CHAP 认证协议的挑战字。通常认证方首先发送一个初始的 ID 请求随后再发送其他的请求信息。当然,这个 ID 请求报文并不是必须的,在对端身份是已知的情况下(如租用线、拨号专线等)可以跳过这个步骤。
  2. 端点对每一个请求报文回应一个应答包。和请求报文一样,应答报文中也包含一个类型字段,对应于所回应的请求报文中的类型字段。
  3. 认证方通过发送一个成功或者失败的报文来结束认证过程

 

使用的认证机制协议:

1.TACACS+提供了独立的认证、授权和记账服务尽管RADIUS在用户配置文件中集成了认证和授权,TACACS+分离了这两种操作,另外的不同在于TACACS+使用传输控制协议 (TCP)而RADIUS使用用户报文协议(UDP).多数管理员建议使用TACACS+,因为TCP被认为是更可靠的协议。TACACS+协议的扩展为最初的协议规范提供了更多的认证请求类型和更多的响应代码TACACS+ 使用TCP端口49,包括三种独立的协议,如果需要,能够在独立的服务器上实现。TACACS+提供了多协议支持,如IP和AppleTalk.一般操作都对数据包进行全部加密,以提供更安全的通信,这是一个Cisco对最初的TACACS协议提供的专有的改进。

认证有3个报文

1.START  总是有客户端发出

2.CONTINUE  总是有客户端发出

3.REPLY  总是有服务器发出,又包括3个结果(1.ACCEPT    2.REJECT   3.ERROR)

过程:首先客户端发起认证  START报文   服务器收到报文后觉得认证还没有结束,发送reply报文  ,客户端发送 continue 

 

 1.用户向NAS发起ppp

 

2.NAS 向TACACS+发送start报文

3.TACACS+向NAS发送getuser报文,提示输入口令密码(pap)或chap

4.NAS 返回到远程pc

5.pc 响应NAS

6.NAS 把加密报文发给TACACS+

7.TACACS+认证结果对NAS respond

8.NAS AND TACACA   exchange  image

9.MAS   根据授权  采取action

2.RAUIDS 协议

 RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAP、 CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS也支持厂商扩充厂家专有属性。

 

使用udp作为传输协议  其中客户端到radius client 之间是不加密的

3.kerberos 协议

 Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。   认证过程具体如下:客户机向认证服务器(AS)发送请求,要求得到某服务器的证书,然后 AS 的响应包含这些用客户端密钥加密的证书。证书的构成为: 1) 服务器 “ticket” ; 2) 一个临时加密密钥(又称为会话密钥 “session key”) 。客户机将 ticket (包括用服务器密钥加密的客户机身份和一份会话密钥的拷贝)传送到服务器上。会话密钥可以(现已经由客户机和服务器共享)用来认证客户机或认证服务器,也可用来为通信双方以后的通讯提供加密服务,或通过交换独立子会话密钥为通信双方提供进一步的通信加密服务。

本文转自q狼的诱惑 51CTO博客,原文链接:http://blog.51cto.com/liangrui/525028,如需转载请自行联系原作者

你可能感兴趣的文章
操作系统概论——引
查看>>
外边距叠加问题小结
查看>>
Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
查看>>
汉字转数字
查看>>
(转载)编写高效的jQuery代码
查看>>
比较完整的路径符号对应解释列表
查看>>
Activity进程和线程之间的关系
查看>>
穷追不舍、事故入手和倒逼
查看>>
Microsoft Visual C++ 6.0预处理器参考手册
查看>>
解决 PermGen space Tomcat内存设置(转)
查看>>
linux yum命令详解
查看>>
HDFS的java操作方式
查看>>
子查询返回的值不止一个
查看>>
BZOJ2707 : [SDOI2012]走迷宫
查看>>
yourphp 的 ThinkTemplate.class.php与ContentReplaceBehavior.class.php
查看>>
uva10827-Maximum sum on a torus(矩阵最大和的变形)
查看>>
Go并发编程(四)
查看>>
POSIX和SYSTEM的消息队列应该注意的问题
查看>>
StringTokenizer类的使用
查看>>
在CentOS下安装配置MySQL(转)
查看>>