当前位置: 首页 > news >正文

网络安全之接入控制

身份鉴别

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

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

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

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完整应用

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

相关文章:

网络安全之接入控制

身份鉴别 ​ 定义:验证主题真实身份与其所声称的身份是否符合的过程,主体可以是用户、进程、主机。同时也可实现防重放,防假冒。 ​ 分类:单向鉴别、双向鉴别、三向鉴别。 ​ 主题身份标识信息:密钥、用户名和口令、证书和私钥 Internet接入控制过程 …...

Sqlite: Java使用、sqlite-devel

这里写目录标题 一、简介二、使用1. Java项目中(1)引入驱动(2)工具类(3)调用举例 2. sqlite-devel in linuxsqlite-devel使用 三、更多应用1. 数据类型2. 如何存储日期和时间3. 备份 一、简介 非常轻量级&…...

京东面试题目分享

话不多说,直接上问题 一面(视频面) 1小时30分钟 1、类加载机制概念、加载步骤、双亲委托机制、全盘委托机制、类加载器种类及继承关系 2、如何实现让类加载器去加载网络上的资源文件?怎么自定义类加载器?自定义的加…...

STM32 使用 STM32CubeMX HAL库实现低功耗模式

STM32 使用 HAL 库的低功耗模式测试使用 ...... 矜辰所致前言 上次画了一个 STM32L010F4 最小系统的板子,也做了一些基本测试,但是最重要的低功耗一直拖到现在,以前在使用 STM32L151 的时候用标准库做过低功耗的项目,现在都使…...

技术美术百人计划 | 《2.1 色彩空间介绍》笔记

总览 一、色彩发送器 色彩认知: 光源是出生点,光源发射出光线,光线通过直射反射折射等路径最终进入人眼。 但人眼接收到光线后,人眼的细胞产生了一系列化学反应。 由此把产生的信号传入大脑,最终大脑对颜色产生了认…...

如何在 Ubuntu 上安装 Mosquitto MQTT 代理

如何在 Ubuntu 上安装 Mosquitto MQTT 代理 Mosquitto 是一个开源的消息代理,实现了消息队列遥测传输 (MQTT) 协议。在 Ubuntu 22.04 上安装 MQTT 代理,您可以利用 MQTT 轻量级的 TCP/IP 消息平台,该平台专为资源有限的物联网 (IoT) 设备设计…...

css使用弹性盒,让每个子元素平均等分父元素的4/1大小

css使用弹性盒,让每个子元素平均等分父元素的4/1大小 原本: ul {padding: 0;width: 100%;background-color: rgb(74, 80, 62);display: flex;justify-content: space-between;flex-wrap: wrap;li {/* 每个占4/1 */overflow: hidden;background-color: r…...

设计模式的学习思路

学习设计模式确实需要一定的时间和实践,尤其是对于刚入门的人来说,因为一开始可能会感到有些混淆,尤其是当多个设计模式看起来有相似之处时。本博客是博主学习设计模式的思路历程,大家可以一起学习进步。设计模式学习-CSDN博客 1…...

stereopy 查看 data.tl 的可用属性

为了查看 data.tl 的可用属性,您可以使用 Python 的内置函数,例如 dir() 或 vars(),具体操作如下: 1. 列出 data.tl 的所有属性 使用 dir() 来查看所有可用的属性和方法: # 列出所有属性 print(dir(data.tl))这将返回一个列表,包含所有可用的方法、属性和内部字段。 2.…...

【2024APMCM亚太杯A题】详细解题思路

A题 复杂场景下的水下图像增强研究 解题思路问题一图像统计分析技术一、检测 偏色 的技术二、检测 弱光 的技术三、检测 模糊 的技术 聚类算法 问题二问题三问题四完整论文与代码 解题思路 问题一 问题 1:请使用类似上文提到的图像统计分析技术,对附件 …...

用 React18 构建Tic-Tac-Toe(井字棋)游戏

下面是一个完整的 Tic-Tac-Toe(井字棋)游戏的实现,用 React 构建。包括核心逻辑和组件分离,支持两人对战。 1. 初始化 React 项目: npx create-react-app tic-tac-toe cd tic-tac-toe2.文件结构 src/ ├── App.js…...

数据结构及算法--排序篇

在 C 语言中,可以通过嵌套循环和比较运算符来实现常见的排序算法,比如冒泡排序、选择排序或插入排序 目录 基础算法: 1.冒泡排序(Bubble Sort) 2.选择排序(Selection Sort) 3.插入排序&…...

泷羽sec学习打卡-网络七层杀伤链1

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于蓝队基础的那些事儿-Base1 基本的企业网络架构是怎样的呢?高层管理IT管理影子IT中央技术…...

【QT】绘图

个人主页~ 绘图 一、绘图1、基础内容2、绘制形状(1)线段(2)矩形(3)圆形(4)文本(5)画笔(6)画刷 3、绘制图片(1)…...

vue3+elementui-plus el-dialog全局配置点击空白处不关闭弹窗

在与main.ts同级下的plugins文件夹(如果没有,新建一个)下建一个element.js文件(名字随便取) element.js文件内容如下: import ElementPlus from element-plus export default (app) > {console.log(app…...

Markdown语法说明

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...

推荐一款专业电脑护眼工具:CareUEyes Pro

CareUEyes Pro是一款非常好用的专业电脑护眼工具,软件小巧,界面简单,它可以自动过滤电脑屏幕的蓝光,让屏幕显示更加的不伤眼,更加舒适,有效保护你的眼睛,可以自定义调节屏幕的色调,从…...

对subprocess启动的子进程使用VSCode python debugger

文章目录 1 情况概要(和文件结构)2 具体设置和启动步骤2.1 具体配置Step 1 针对attach debugger到子进程Step 2 针对子进程的暂停(可选) Step 3 判断哪个进程id是需要的子进程 2.2 启动步骤和过程 3 其他问题解决3.13.2 ptrace: Operation not permitted…...

Django启用国际化支持(2)—实现界面内切换语言:activate()

文章目录 ⭐注意⭐1. 配置项目全局设置:启用国际化2. 编写视图函数3. 配置路由4. 界面演示5、扩展自动识别并切换到当前语言设置语言并保存到Session设置语言并保存到 Cookie ⭐注意⭐ 以下操作依赖于 Django 项目的国际化支持。如果你不清楚如何启用国际化功能&am…...

基于单片机的多功能跑步机控制系统

本设计基于单片机的一种多功能跑步机控制系统。该系统以STM32单片机为主控制器,由七个电路模块组成,分别是:单片机模块、电机控制模块、心率检测模块、音乐播放模块、液晶显示模块、语音控制模块、电源模块。其中,单片机模块是整个…...

VSCode 如何选中包含某个字母的所有行

文章目录 写在前面一、需求描述二、解决方法参考链接 写在前面 自己的测试环境:VSCode 一、需求描述 由于需要处理文件,需求是删除文件中包含某个字母的所有行。 二、解决方法 在 Visual Studio Code (VSCode) 中,如果你想选中所有包含某…...

CSRF保护--laravel进阶篇

laravel对csrf非常重视,专门针对csrf作出了很多的保护。如果您是刚刚接触laravel的路由不久,那么您可能对于web.php路由文件的post请求很疑惑,因为get请求很顺利,而post请求则可能会遭遇失败。其中一个失败的原因是由于laravel的c…...

计算机网络-理论部分(二):应用层

网络应用体系结构 Client-Server客户-服务器体系结构:如Web,FTP,Telnet等Peer-Peer:点对点P2P结构,如BitTorrent 应用层协议定义了: 交换的报文类型,请求or响应报文类型的语法字段的含义如何…...

k8s1.31版本最新版本集群使用容器镜像仓库Harbor

虚拟机 rocky9.4 linux master node01 node02 已部署k8s集群版本 1.31 方法 一 使用容器部署harbor (1) wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce systemctl enable docker…...

QT中使用json格式存取矩阵数据

在 Qt 中,可以通过 QJsonDocument 和 QJsonArray 方便地存取 JSON 格式的矩阵数据。以下是存储和读取矩阵数据的完整实现示例。 1. 矩阵存储为 JSON 将矩阵(QVector<QVector<double>> 或其他二维数组)存储为 JSON 文件。 实现代码 #include <QJsonArray&g…...

k8s 集群安装

安装rockylinux https://www.jianshu.com/p/a5fe20318b8e https://www.cnblogs.com/haoee/p/18290506 配置VirtualBox双网卡 https://www.cnblogs.com/ShineLeBlog/p/17580311.html https://zhuanlan.zhihu.com/p/341328334 https://blog.csdn.net/qq_36544785/article/deta…...

Elasticsearch面试内容整理-核心概念与数据模型

在 Elasticsearch 中,理解核心概念与数据模型是非常重要的,因为它们定义了数据如何被组织、存储和搜索。以下是 Elasticsearch 的核心概念和数据模型的详细介绍。 核心概念 集群(Cluster) ● 集群是由一个或多个节点组成的,用于共同存储和搜索数据的集合。...

Spring Boot实现License生成和校验

Spring Boot实现License生成和校验 证书准备 # 1. 生成私钥库 # validity&#xff1a;私钥的有效期&#xff08;天&#xff09; # alias&#xff1a;私钥别称 # keystore&#xff1a;私钥库文件名称&#xff08;生成在当前目录&#xff09; # storepass&#xff1a;私钥库密码…...

es写入磁盘的过程以及相关优化

数据写入到内存buffer同时写入到数据到translog buffer,这是为了防止数据不会丢失每隔1s数据从buffer中refresh到FileSystemCache中,生成segment文件,这是因为写入磁盘的过程相对耗时,借助FileSystemCache,一旦生成segment文件,就能通过索引查询到了refresh完,memory bu…...

十大网络安全事件

一、私有云平台遭攻击&#xff0c;美国数千家公司工资难以发放 1月&#xff0c;专门提供劳动力与人力资本管理解决方案的美国克罗诺斯&#xff08;Kronos&#xff09;公司私有云平台遭勒索软件攻击&#xff0c;事件造成的混乱在数百万人中蔓延。 克罗诺斯母公司UKG集团&#xf…...

穷游 网站开发/新闻最近的新闻

之前是在新浪下写的博客&#xff0c;前部分知识可以去那里看的 http://blog.sina.com.cn/u/6516365769 &#xff0c;今天继续给大家分享知识。 一、数组 1&#xff09;定义&#xff1a; 顾名思义&#xff0c;存的是一组相同类型的数据&#xff0c;可以是一维的可以是二维的也可…...

百度网站的优点/郑州seo网站排名

目录 一、作品展示 1、菜单界面&#xff1a; 2、答题界面&#xff1a; 3、学习模式界面&#xff1a; 二、代码展示&#xff1a; 1、菜单页面&#xff1a; 三个场景跳转按钮&#xff1a; &#xff08;1&#xff09;学习党史按钮&#xff1a; &#xff08;2&#xff09;答…...

wordpress首页多图片/torrentkitty磁力搜索引擎

2019独角兽企业重金招聘Python工程师标准>>> 什么是backbone backbone不是脊椎骨&#xff0c;而是帮助开发重量级的javascript应用的框架。 主要提供了3个东西&#xff1a;1、models(模型) 2、collections(集合) 3、views(视图) backbone.js文件本身很小&#xf…...

模拟黑客网站/中国去中心化搜索引擎

今天碰巧和朋友讨论这个&#xff0c;才想起来好久没碰&#xff0c;都生疏了&#xff0c;趁着暑假还有点闲时&#xff0c;先写写再说。有错误的地方希望大家指正。 SURF (Speeded Up Robust Feature) is a robust local feature detector, first presented by Herbert Bay et al…...

怎么用动图做网站背景/什么是seo?

之前被坑了&#xff0c;装的老版本的docker.io 结果不支持--mount命令&#xff0c;查了好多遍最后发现就是docker 版本太低了从下面文章里解救出来的【https://yq.aliyun.com/articles/110806?spm5176.8351553.0.0.280d1991AKYYJh】安装必要的一些系统工具【sudo yum install …...

睢宁网站建设/网络域名综合查询

我一直用微软的Access数据库储存学校所有学生的数据&#xff0c;义务教育档案的整理全部依赖于这个数据库。虽然在用Access&#xff0c;但懂得并不是很多&#xff0c;也就是照猫画虎而已。在整理档案的过程中出现两个问题一直困扰着我&#xff0c;一个就是在打印报表的时候数据…...