网络安全之接入控制

身份鉴别

​ 定义:验证主题真实身份与其所声称的身份是否符合的过程,主体可以是用户、进程、主机。同时也可实现防重放,防假冒。

​ 分类:单向鉴别、双向鉴别、三向鉴别。

​ 主题身份标识信息:密钥、用户名和口令、证书和私钥

Internet接入控制过程

一些基本模型

终端访问网络资源

​ 在一个简化的单一线路网络中,终端访问网络资源的过程且必需完成以下操作过程,如图所示:

  • 建立终端A与路由器的传输路径。这条线路可能是公共电话网,则需要建立点对点信道;也可能是以太网网络,则需要建立连接到该以太网的信道路径

  • 终端A完成网络信息配置过程**。**终端A需要配置IP地址、子网掩码、默认网关地址等

  • 路由器路由表建立对应路由项。

终端接入Internet

​ 但访问Internet网络上的资源,不是我们接一根线到路由器上就完成得了的,对Internet上的资源,终端接入Internet的过程如图所示:

​ 也就是说在终端A接入Internet前,必须完成用户注册,只能由注册用户开始终端A接入internet程,接入控制设备在确定启动终端A接入Internet的先决条件是由注册用户情况下,才允许终端A完成接入Internet过程和在接入控制设备中建立路由项,这一过程需要完成身份认证。

​ 这里需要注意接入控制设备和路由器的区别:

  • 接入控制设备不仅具有普通路由器的功能还包含其他功能

  • 接入控制设备可以鉴别终端A用户身份

  • 接入控制设备为终端A动态分配IP地址(有点像DHCP的功能,不知道是不是需要在接入控制设备中配置DHCP协议)

终端接入Internet过程
  • 建立终端A到接入控制设备之间的传输路径。

  • 接入控制设备完成身份鉴别过程。确定终端A是注册用户。

  • 动态配置终端A的网络信息。

  • 在接入控制设备路由表中动态配置相应路由项。

PPP与接入控制

简介

​ PPP(Point to Point Protocol)协议,是我们熟知的用于传递点对点信道数据包的数据链路层协议。但其实PPP协议也可作为接入控制协议。

​ 为什么可以用PPP作为接入控制协议?

​ 在早期用户使用的宽带接入技术中,由于公共电话线路铺设广泛而其高频分段的利用的空白为改造成数据传输路线创造了条件,ADSL(非对称数字用户线技术)占到了大多数。也就是拨号上网,使用的是基于PPPoE协议的ADSL。而接入控制设备在与终端A交换信息(A的用户身份标识、接入控制设备为终端A配置的网络信息)的过程中,由于终端A与接入控制设备之间的传输路径是点对点语音信道,因此需要将这种信息风专场适合点对点传输的帧格式,PPP帧就是适合点对点语音信道传输的PPP帧。

PPP帧中与接入控制相关的协议
口令鉴别协议PAP(Password Authentication Protocol)

​ 其在PPP帧中协议属性值为0xC023。终端A以明文方式向接入控制设备发送接入Internet需要的用户名和口令。接入控制设备在在收到信息后,检索注册用户信息库,如果用户名存在且密码匹配,则准入终端A到Internet。

挑战握手鉴别协议CHAP(Challenge Handshake Authentication Protocol)

​ 在PPP帧首部的协议属性值为0xC223。接入控制设备会先向终端A发送一个随机数C,终端A会将接收到的随机数和密码串接,并经过MD5摘要算法运算后,再加上用户名发送到接入控制设备。接入控制设备收到该消息后,在注册用户信息库检索到用户的密码和刚刚发送的随机数选出并经过MD5摘要算法运算后与接收到的消息进行比对。如果相同则准入终端A到Internet。前提:终端A和控制设备之间有共享密钥K。

IP控制协议IPCP(Internet Protocol Control protocol)

​ 其作用是为终端A动态分配IP等网络信息。接入控制设备为终端A分配一个全球IP地址,并且在路由表中添加一项动态路由,该项路由是将终端A的IP地址和语音信道绑定在一起的。

PPP接入控制过程

​ 如图所示

​ 注:LCP也就是Link Control Protocol链路控制协议,用来建立、配置和测试数据链路连接的协议。

EAP

简介

​ EAP全称为Extensible Authentication Protocol,中文名称拓展鉴别协议。在身份鉴别过程中,需要在链路上传送鉴别信息,但在不同的链路上所需要的数据链路层帧格式不同,比如在点对点信道上使用PPP帧,在以太网上使用MAC帧。由于网络环境日益复杂,在终端到接入控制设备之间可能不单单只有一种通信信道的情况下,为了避免鉴别协议的数据帧与通信信道两两绑定的关系,EAP应运而生。

​ EAP就是将多种鉴别协议对应的PDU统一封装成拓展鉴别协议EAP报文,然后将EAP报文封装成不同类型传输网络对应的链路层帧格式。

​ EAP包含鉴别数据PDU,链路层帧格式包含EAP。

​ 这样,鉴别协议也就不再具有必须与数据链路层协议绑定的特殊性,而可以随用户终端或者接入控制设备来进行指定。

EAP报文格式

  • 编码:1~4,分别对应请求报文、响应报文、成功报文和失败报文

  • 标识符:一组请求/报文过程中,其请求报文和响应报文的标识必需相同,在相邻两个请求报文中,也必须采用不同的标识符

  • 长度:EAP报文总的长度

  • 类型:1-身份报文;4-CHAP鉴别协议;5-OTP鉴别协议;13-TLS协议

EAP over PPP

简介

​ PPP协议是点对点网络下的对应的链路层协议,自然也是点对点网络环境下的EAP载体协议,用于实现用户和鉴别者之间的EAP报文传输。这也就是所谓的EAP over PPP。

​ PPP封装EAP的报文如图所示

​ 也就是在PPP报文的协议字段位置处的值为0xC227

鉴别过程

​ CHAP鉴别模式下的EAP over PPP报文鉴别过程如图所示

​ 在建立PPP链路的过程中,在鉴别身份之前,会约定采用EAP作为鉴别协议。在服务器向终端A发出的EAP请求报文中其类型值就是身份。注意在终端A会送EAP响应时,会把EAP字段的标识符也纳入到MD5的报文摘要计算之中,用以防止假冒攻击。

EAP over LAN

简介

​ 假如终端用户与接入控制设备之间的传输信道不再是点对点路线,而是处于某一个以太网中,这个时候所采用的链路层帧格式多半是MAC帧。

​ 基于局域网的拓展认证协议(EAP over PPP)给出了将EAP报文封装成LAN对应的帧格式(大都是V2版本的MAC帧)的过程。

​ 其报文格式如下所示

​ 在MAC帧的头部字段值中类型值为0x888E(0x0800时为IP报文)。

​ 与单纯的MAC帧可以说相同也可以说不同,将版本、报文类型、报文体长度和报文体都当作MAC帧的数据时就跟v2 版本的MAC帧是完全一致的,但是这个数据部分又相比单单的EAP报文多出了几个首部。其中一个首部字段值分类及其意思如上图所示。所以我们可以特地称其为EAPOL报文。

802.1X

​ 802.1X就是一种实现用户身份鉴别,并开通连接进以太网的用户终端接入权限端口的接入控制协议。

​ 目前支持802.1X的局域网主要是以太网和无线局域网。

​ 以下是802.1X的操作模型

​ 与后文的RAIUS协议配合使用,且在鉴别者中的端口分为受控端口和非受控端口。受控端口用于对鉴别者提供正常服务,在完成身份鉴别过程后才会打开;非受控端口一直允许接收EAP报文,直接进行鉴别操作或对EAP报文进行转发。也就是说,在完成用户身份鉴别之前,该端口只能输入输出EAP报文和广播帧,只有在用户身份鉴别成功后,才可使用正常服务。

鉴别过程

​ 鉴别过程如图所示

​ 相比于用户A通过EAP over PPP完成鉴别过程,802.1X是允许双方即鉴别者和用户均可发起鉴别过程的,上图是由用户发起鉴别的过程。

以太网接入控制过程

​ 那么我们在上一模块仅仅讲了PPP信道中的接入控制过程,并未提及到以太网是如何进行从以太网接入Internet的过程,有了以上知识作为铺垫,可以简单叙述一下。

​ 值得一提的是现在的以太网交换机实现的802.1X都是基于MAC地址的,而不是基于端口。因为在一个局域网中,一个端口可能涉及到多台主机,所以禁用端口是不现实的。只有当用户完成用户身份鉴别后,交换机才会将该终端的MAC地址列入接收到EAP报文的端口对应的访问访问控制列表,并将访问控制设置为允许访问。

RADIUS

简介

​ 其实我们可以思考一下在上面所示的接入控制协议中,其鉴别服务器都停留在局域网层面,然而实际上,如果将接入控制设备设置在每一个以太网下面,其成本非常高难以维护,而且是非常不安全的,因为每一个接入控制设备都需要存储所有接入用户的身份标识信息。所以为了实现统一鉴别,我们需要将鉴别服务器放在互联网中的任何位置,至少这个位置是易于维护,且安全的。

​ 远程鉴别拨入用户服务RADIUS(Remote Authentication Dial In User Service)就是这样一种可以实现接入控制设备等鉴别者与服务器之间的双向身份鉴别和身份标识信息鉴别者与鉴别服务器之间安全传输应用层协议。设置鉴别服务器在互联网的某一个地方,鉴别服务器统一管理用户,完成对用户的身份鉴别、授权和计费操作。设置鉴别者在以太网层面附近。用户和鉴别者之间仍然可以通过链路层传输路径完成EAP报文传输过程,使用的与传输网络相对应的链路层协议,如ADSL的ppp链路,或传送MAC帧。但鉴别者和鉴别服务器之间的传输路径往往是由路由器互连的多段链路层传输路径所组成的,因此,必须用IP以上的协议作为载体协议。

​ 其端口包括1812的认证授权端口1813的计费端口

RADIUS消息格式

封装格式

​ 因为RADIUS是应用层协议,而且需要在形态各异的网络上进行传输,肯定是需要IP以上的协议的,如图所示,是RADIUS消息的封装格式

RADIUS消息格式

RADIUS消息格式如上图所示

  • 编码code字段:表示当前RADIUS消息类型,目前一共有16种报文类型,分为3大类别:认证报文计费报文授权报文,这里仅对认证报文作消息介绍。编码值为1时,表示请求接入报文,用于传输用户的身份标识信息如用户名和口令等;编码值为2时,表示允许接入报文,完成对用户的身份鉴别;编码为3时,表示拒绝接入报文,未成功完成用户鉴别,拒绝接入网络;编码为11时,表示挑战接入报文,需要用户提供更多的身份标识信息或者需要用户根据约定的鉴别机制对挑战接入消息中包含的数据进行运算

  • 标识符Identifier字段:用于匹配请求接入消息和对应的响应消息。

  • 长度Length字段:给出RADIUS消息总长

  • 鉴别信息Authenticator字段:用于鉴别发送响应消息的鉴别服务器。首先由网络接入服务器NAS(Network Access Server)发送的RADIUS消息中的鉴别信息是一个16字节的随机数,用于防止防重放攻击,在有效期内,不允许出现相同的随机数。而鉴别服务器所发送的响应消息中,鉴别消息会经过如下计算所得

    响应消息中的鉴别消息=MD5(响应消息||对应请求接入消息的鉴别消息(s随机数)||共享密钥K)

    共享密钥K可鉴别鉴别服务器的身份,防止黑客假冒

  • 属性Attribute字段:属性字段用于给出用户身份标识信息和NAS标识信息,如用户名、口令、NAS标识符、NAS IP地址等。根据NAS标识符确定共享密钥K。属性部分本来是支持各种鉴别协议的如PAP或CHAP,但是新发展的鉴别协议要同时支持EAP和RADIUS略显麻烦。所以为了避免重复劳动,EAP不断增加和新发展的鉴别机制相匹配的数据类型,但在RADIUS中只需要设置用于封装EAP报文的EAP属性。对于敏感属性值,如用户名和口令等,需要进行加密运算,使用共享密钥K进行MD5运算。

RADIUS完整应用

一次鉴别身份,接入控制如图所示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/495937.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5 崩溃问题汇总!!!

Using bundled DotNet SDK version: 6.0.302 ERROR: UnrealBuildTool.dll not found in "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" 在你遇到这种极奇崩溃的BUG ,难以解决的时候。 尝试了N种方法,都不行的解决方法。…

docker 搭建集群

准备3台机器: #dockermaster 192.168.31.150 sudo hostnamectl set-hostname dockermaster #初始化主节点 docker swarm init --advertise-addr 192.168.31.150 #查看集群是否搭建成功 docker node ls #dockernode1 192.168.31.151 sudo hostnamectl set-hostname …

关于埃斯顿机器人文件导出或者系统日志导出

关于埃斯顿机器人文件导出或者日志导出,登录模式,选择高级设置,控制器备份恢复 选择U盘导入地址,点击导出,等待时间30秒就可以查看文件格式和系统日志

golang标准库SSH操作示例

文章目录 前言一、了解SSH二、重要知识点1.安装ssh库2.ssh库重要知识牢记 三、模拟连接远程服务器并执行命令四、SSH与os/exec标准库下执行命令的几种方式对比五、SSH库下三种执行命令方式演示5.1. session.CombinedOutput()示例5.2. session.Run()示例5.3. session.Start()、s…

嵌入式轻量级开源操作系统:HeliOS的使用

嵌入式轻量级开源操作系统:HeliOS的使用 📍项目地址:https://github.com/heliosproj/HeliOS HeliOS项目是一个社区交付的开源项目,用于构建和维护HeliOS嵌入式操作系统(OS)。HeliOS是一个功能齐全的操作系统&#xff0…

解决:excel鼠标滚动幅度太大如何调节?

在excel里为什么滚动一次跳过很多行呢?很不方便。。。 1. 问题: 一开始单元格从第1行开始: 鼠标轻轻滚动一下后,直接跳到第4行: 鼠标在word和浏览器里都是好好的。在excel里为什么不是滚动一次跳过一行呢&#xff…

kubernetes Gateway API-部署和基础配置

文章目录 1 部署2 最简单的 Gateway3 基于主机名和请求头4 重定向 Redirects4.1 HTTP-to-HTTPS 重定向4.2 路径重定向4.2.1 ReplaceFullPath 替换完整路径4.2.2 ReplacePrefixMatch 替换路径前缀5 重写 Rewrites5.1 重写 主机名5.2 重写 路径5.2.1 重新完整路径5.2.1 重新部分路…

Docker服务发现新纪元:探索Consul的无限魅力

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 •座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元个人主页:团儿.-CSDN博客 目录 前言&…

湖南引力:低代码助力实现智慧养老管理系统

“低代码开发宛如一座神奇的桥梁,它以简洁高效的方式连接起创意与应用,降低了开发门槛,为企业和开发者带来前所未有的便捷与可能,开启了快速实现软件梦想的新征程。” ——王港,湖南引力科技有限公司 湖南引力科技有…

mongodb和Cassandra

mongodb的一致性问题: 15.MongoDB的一致性(读关注与写关注)_mongo w选项-CSDN博客 孤儿节点问题: 技术干货 | MongoDB 偶遇孤儿文档及处理方法-腾讯云开发者社区-腾讯云 分片集群MongoDB迁移前清除孤儿文档 由数据迁移至MongoDB导致的数据不一致问题…

4.3 数据库HAVING语句

having子句要和group by子句联合起来才能使用,不能单独去使用,接下来咱们看一下为什么要引入having子句语法呢?引入having子句也是出于无奈,因为有些条件查询,用group by子句并不能满足要求,比如说查询部门…

支持向量机入门指南:从原理到实践

目录 1 支持向量机的基本概念 1.2 数学表达 2 间隔与支持向量 2.1 几何间隔 2.2 支持向量的概念 2.3 规范化超平面 2.4 支持向量的深入分析 2.4.1 支持向量的特征 2.4.2 支持向量的作用 2.4.3 支持向量的代数表示 2.5 KKT条件 3 最优化问题 3.1 问题的形成 3.2 规…

使用驱动器光盘需格式化:深度解析与数据恢复全攻略

一、驱动器光盘需格式化的现象概述 在日常使用驱动器光盘的过程中,用户可能会遇到系统提示“驱动器中的磁盘未被格式化,是否现在格式化?”的警告。这一提示通常意味着光盘上的文件系统已损坏或无法被系统正常识别,导致无法读取光…

论文研读:AnimateDiff—通过微调SD,用图片生成动画

1.概述 AnimateDiff 设计了3个模块来微调通用的文生图Stable Diffusion预训练模型, 以较低的消耗实现图片到动画生成。 论文名:AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning 三大模块: 视频域适应…

NPM老是无法install,timeout?npm install失败

NPM老是无法install,timeout? 尝试一下如下操作 一、 更换国内源 npm config set registry https://registry.npmmirror.com npm install或指定源install npm install pkg --registry https://registry.npmmirror.com --legacy-peer-deps如下图 二…

【LeetCode 面试经典150题】详细题解之矩阵篇

【LeetCode 面试经典150题】详细题解之矩阵篇 1 矩阵的基础1.1 表示矩阵1.2 创建矩阵相关题目 2 36.有效的数独 (需要复习)分析代码 3 54.螺旋矩阵(需要复习)分析代码 4 48.旋转图像思路代码 5 73.矩阵置零 (一遍过&am…

Type-C单口便携显示器LDR6021

Type-C单口便携显示器LDR6021是市场上一种新兴的显示设备,以下是对其的详细介绍: 一、主要特点 便携性:LDR6021采用了Type-C接口作为数据传输和供电接口,这种设计使得它能够与各种支持Type-C接口的设备无缝连接,如笔记…

云途领航:现代应用架构助力企业转型新篇

在数字化转型的浪潮中,现代应用架构为企业带来了灵活性、效率和创新能力。各类服务模型相继出现,为企业提供了强有力的支持,助力其顺利转型。随着技术的快速发展,企业面临的挑战和机遇也在不断演变,这促使它们必须重新…

MyBatis如何处理延迟加载?

大家好,我是锋哥。今天分享关于【MyBatis如何处理延迟加载?】面试题。希望对大家有帮助; MyBatis如何处理延迟加载? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 支持 延迟加载(Lazy Loading&am…

C++--------效率和表示

C 效率和表示 效率 时间效率:在 C 中,不同的数据结构和算法有着各异的时间复杂度。例如,访问数组元素的时间复杂度是 O ( 1 ) O(1) O(1),而遍历链表查找元素的时间复杂度最坏情况下是 O ( n ) O(n) O(n)。选择合适的算法与数据…