老话重谈 加密身份验证

本文涉及的产品
文件存储 NAS,50GB 3个月
简介:

说起身份认证我们就会想起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,如需转载请自行联系原作者

相关文章
|
编解码
如何让开源鸿蒙系统适配其它机型?
如何让开源鸿蒙系统适配其它机型?
621 0
|
4月前
|
Web App开发 存储 Ubuntu
Ubuntu 23.04 新特性一览
Ubuntu 23.04 使用 Linux kernel 6.2,并提供 Mesa 23.0 图形驱动程序来支持一些顶级游戏体验。
121 0
|
6月前
|
机器学习/深度学习 SQL 数据采集
大数据行业权威认证盘点:这些证书让你的简历更受大厂青睐
这些认证不仅能够为求职者提供有力的能力证明,更能帮助HR快速识别符合岗位要求的技术人才。对于希望进入大数据领域的从业者来说,选择适合自身职业规划的认证,将大大提升职业竞争力。
|
12月前
|
JSON 数据库 数据格式
[开发技巧] 如何获取汉字笔画数?
在开发卜筮小脚本时遇到获取汉字笔画数的需求,起初尝试使用`pypinyin`库却未得理想结果。经过探索,发现Unicode联盟维护的Unihan数据库提供准确的汉字笔画数据。通过下载Unihan数据库文件,解析其中的`kTotalStrokes`字段,利用正则表达式提取所需信息,并将其保存为JSON格式以供快速查询。最终编写函数`get_character_stroke_count`实现任意汉字笔画数的高效获取,满足了项目需求并提供了准确的数据支持。此方法不仅解决了问题,还为类似需求提供了参考方案。
414 10
[开发技巧] 如何获取汉字笔画数?
|
JavaScript Java 区块链
经常忘记网址?将Vue项目一键打包为桌面客户端 十分钟让你解决烦恼(一)
经常忘记网址?将Vue项目一键打包为桌面客户端 十分钟让你解决烦恼
435 0
|
关系型数据库 MySQL 数据库
实现RDS MySQL实例数据迁移的详细步骤
实现RDS MySQL实例数据迁移的详细步骤 随着科技的飞速发展,数据库的应用越来越广泛,而数据迁移作为数据库管理的重要环节,其重要性不言而喻。本文将详细介绍如何使用数据传输服务(Data Transmission Service,简称DTS),实现将三节点企业系列的RDS MySQL实例的数据迁移到集群系列的RDS MySQL。
521 4
|
小程序 JavaScript 前端开发
点餐小程序实战教程08-购物车功能开发
点餐小程序实战教程08-购物车功能开发
|
数据安全/隐私保护 Python
python自动化系列之操作pdf的库PyPDF2
在python中有多个对应的库可以操作Pdf文件,其中最常用的是Pypdf2
1400 0
python自动化系列之操作pdf的库PyPDF2
|
Ubuntu NoSQL Linux
【Docker】7. 镜像-加载原理、分层原理、commit镜像
【Docker】7. 镜像-加载原理、分层原理、commit镜像
【Docker】7. 镜像-加载原理、分层原理、commit镜像
|
存储 数据管理 定位技术
元数据管理为什么需要统一的元模型?
每个组织都有自己的数据管理方式。有的公司准备自研并制定了长期计划,有的公司使用最新的数据管理工具和技术,有的公司则是为了满足监管机构的要求。这几种的思路完全不一样。 要让公司成为真正的数据驱动型组织,不仅仅需要制定数据策略或推出更新的软件技术。关键在于数据的整体治理和管理,解决这个问题的一个好方法就是元数据管理。元数据管理是DAMA数据治理体系中的一部分,元数据管理与其他数据治理领域巧妙结合,发挥出巨大的作用。
1054 0
元数据管理为什么需要统一的元模型?