802.1x认证方式(EAP中继认证与EAP终结认证)

2023-05-16

文章目录

    • 1、前言
    • 2、协议说明
    • 3、报文分析
      • EAP中继模式:MD5-challenge
      • EAP终结模式:MD5-challenge
      • Radius CHAP认证原理
      • Message-Authenticator消息验证器计算
      • 参考连接:

1、前言

802.1x协议是基于Client/Server的访问控制和认证协议。
它可以限制未经授权的用户/设备通过接入端口(access port)访问LAN/WLAN。在获得交换机或LAN提供的各种业务之前,802.1x对连接到交换机端口上的用户/设备进行认证。在认证通过之前,802.1x只允许EAPOL(基于局域网的扩展认证协议)数据通过设备连接的交换机端口;认证通过以后,正常的数据可以顺利地通过以太网端口。

客户端:局域网用户终端设备,但必须是支持EAPOL(Extensible Authentication Protocol over LAN,局域网可扩展认证协议)的设备(如PC机),可通过启动客户端设备上安装的802.1x客户端软件发起802.1x认证。

设备端:支持802.1x协议的网络设备(如交换机),对所连接的客户端进行认证。它为客户端提供接入局域网的端口,可以是物理端口,也可以是逻辑端口(如Eth-Trunk口)。

认证服务器:为设备端802.1x协议提供认证服务的设备,是真正进行认证的设备,实现对用户进行认证、授权和计费,通常为RADIUS服务器。

认证方式定义优势劣势
EAP中继认证也叫EAP透传认证,由网络接入设备直接把802.1X用户的认证信息以及EAP报文直接封装到RADIUS报文的属性字段中,发送给RADIUS服务器,而无须将EAP报文转换成标准的RADIUS报文后再发给RADIUS服务器来完成认证。优势:MD5-Challenge:例如基于Linux操作系统的Xsupplicant客户端和FreeRadius服务器之间可以采用MD5-Challenge认证。服务器需要配置MD5策略属性。EAP-MD5认证方式简单。EAP-TLS:例如基于Symantec Endpoint的客户端和基于Symantec Enforcer 6100的RADIUS服务器之间可以采用不带证书的EAP-TLS认证方式。EAP-TLS认证方式安全性较好。EAP-PEAP:例如Windows XP操作系统自带的客户端和Windows Server 2003自带的RADIUS服务器之间可以采用EAP-PEAP认证方式。EAP-PEAP认证方式安全性较好。要求RADIUS服务器支持相应的认证方法。
EAP终结认证由网络接入设备终结用户的EAP报文,解析出用户名和密码,并对密码进行加密,再将EAP报文转换成标准的RADIUS报文后发给RADIUS服务器来完成认证。由网络接入设备终结用户的EAP报文,解析出用户名和密码,并对密码进行加密,再将EAP报文转换成标准的RADIUS报文后发给RADIUS服务器来完成认证。RADIUS服务器并不需要支持EAP认证,减轻了服务器压力。设备端处理较为复杂。

EAP中继模式:
在这里插入图片描述
EAP终结模式
在这里插入图片描述

2、协议说明

在这里插入图片描述
Code:EAP报文的类型,包括Request(1)、Response(2)、Success(3)和Failure(4)。
Identifier:用于匹配Request消息和Response消息的标识符。
Length:EAP报文的长度,包含Code、Identifier、Length和Data域,单位为字节。
Data:EAP报文的内容,该字段仅在EAP报文的类型为Request和Response时存在,它由类型域和类型数据两部分组成,例如,类型域为1表示Identity类型,类型域为4表示MD5 challenge类型。
Type:指出EAP的认证类型。其中,值为1时,代表ldentity,用来查询对方的身份;值为4时,代表MD5-Challenge,类似于PPP CHAP协议,包含质询消息;值为18时,代表eap-sim认证;值为25时,代表PEAP认证。

在这里插入图片描述
EAP-Packet(值为00),认证报文数据,用于承载认证信息;
EAPOL-Start(值为01),认证开始报文,用于主动发起认证过程;
EAPOL-Logoff(值为02),下线请求报文,用于用户主动发起下线请求;
EAPOL-Key(值为03),密钥信息报文;
EAPOL-Encapsulated-ASF-Alert(值为04),用于支持ASF(Alerting Standards Forum)的Alerting消息。

其中,EAPOL-Start,EAPOL-Logoff和EAPOL-Key仅在客户端和设备端之间存在;在设备端和认证服务器之间,EAP-Packet报文会被重新封装承载于RADIUS协议上,我们称之为EAPoR,以便穿越复杂的网络到达认证服务器;EAPOL-Encapsulated-ASF-Alert封装与网管相关的信息,例如各种警告信息,由设备端终结。
注意,当是EAPOL-Start或EAPOL-Logoff类型报文时,并不需要PacketBody有具体的内容。

3、报文分析

EAP中继模式:MD5-challenge

1.当用户有上网需求时打开802.1X客户端程序,输入用户名和口令,发起连接请求。此时客户端程序将发出请求认证的报文给交换机,启动一次认证过程。

  •   	Ethernet II, Src:00:e0:4c:d7:65: cd, Dst:01:80:c2:00:00:03
      	Destination:01:80:c2:00:00:03(Spanning-tree-(for-bridges)_03)
      	Source:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Type:802.1X Authentication (0x888e)
      	Frame check sequence:0xa5a5a5a5(incorrect, should be0xcc6d5b40)
      	802.1x Authentication 
      	Version:1
      	Type: Start(1)
      	Length:0
    

2.交换机在收到请求认证的数据帧后,将发出一个EAP-Request/Identitybaowe 请求帧要求客户端程序发送用户输入的用户名。

  •   	Ethernet II, Src:00:03:0f:01:3a:5a, Dst:00:e0:4c:d7:65:cd
      	Destination:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Source:00:03:0f:01:3a:5a(DigitalC_01:3a:5a)
      	Type:802.1X Authentication (0x888e)
      	802.1xAuthentication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:5
      	Extensible Authentication Protocol 
      	Code: Request(1)
      	Id:1
      	Length:5
      	Type: Identity [ RFC3748](1)
    

3.客户端程序响应交换机的请求,将包含用户名信息的一个EAP-Response/Identity 送给交换机,

  •   	Ethernet II, Src:38:22:d6:de:f0:e1, Dst:01:80:c2:00:00:03
      	Destination:01:80:c2:00:00:03(Spanning-tree-(for-bridges)_03)
      	Source:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Type:802.1X Authentication (0x888e)
      	802.1xAuthentication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:59
      	Extensible Authentication Protocol Code: Response(2)
      	1d:1
      	Length:13
      	Type: Identity [ RFC3748](1) 
      	Identity(8 bytes):03051020
    
    交换机将客户端送来的数据帧经过封包处理后生成RADIUS Access-Request报文送给认证服务器进行处理

在含有EAP-Message 属性的数据包中,必须同时也包含Message-Authenticator,否则该数据包会被认为无效而被丢弃

在这里插入图片描述

4.认证服务器收到交换机转发上来的用户名信息后,将该信息与数据库中的用户名表相比对,找到该用户名对应的口令信息,用随机生成的一个加密字Challenge对它进行加密处理(MD5),
在这里插入图片描述

通过接入设备将 RADIUS Access-Challenge报文发送给客户端,其中包含有EAP-Request/MD5-Challenge。

  •   	Ethernet II, Src:38:22:d6:de:f0:e1, Dst:00:e0:4c:d7:65:cd
      	Destination:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Source:00:03:0f:01:3a:5a(DigitalC_01:3a:5a)
      	Type:802.1X Authentication (0x888e)
      	802.1xAuthentication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:22
      	Extensible Authentication Protocol 
      	Code: Request(1)
      	Id:2
      	Length:22
      	Type: MD5-Challenge [ RFC3748](4)
      	Value-Size:16
      	Value:393430646134323936537623634616434
    

5.客户端收到EAP-Request/MD5-Challenge 报文后,用该加密字对口令部分进行加密处理(MD5)给交换机发送在EAP-Response/MD5-Challenge 回应

  •   	Ethernet II, Src:00:e0:4c:d7:65: cd, Dst:01:80:c2:00:00:03
      	Destination:01:80:c2:00:00:03(Spanning-tree-(for-bridges)_03)
      	Source:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Type:802.1X Authentication (0x888e)
      	802.1x Authentication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:76
      	Extensible Authentication Protocol 
      	Code: Response(2)
      	Id:2
      	Length:30
      	Type: MD5-Challenge [ RFC3748](4)
      	Value-Size:16
      	Value: CBAC378ABB609123D2BB412840AEC614
      	Extra data(8 bytes):3033303531303230
    

交换机将Challenge,Challenged Password 和用户名一起送到RADIUS 服务器进行认证。
在这里插入图片描述
Authenticator,访问请求认证字,用于确认radius client和radius server之间消息认证的有效性和密码隐藏算法,也被用于访问回应认证字的MD5计算。

6.认证服务器将送上来的加密后的口令信息和其自己经过加密运算后的口令信息进行对比,判断用户是否合法,然后回应认证成功/失败报文到接入设备。如果认证成功,则向交换机发出打开端囗的指令,允许用户的业务流通过端口访问网络。否则,保持交换机端口的关闭状态,只允许认证信息数据通过。

  •   	Ethernet II, Src:38:22:d6:de:f0:e1, Dst:00:e0:4c:d7:65:cd
      	Destination:00:e0:4c:d7:65: cd(RealtekS_d7:65: cd)
      	Source:00:03:0f:01:3a:5a(DigitalC_01:3a:5a)
      	Type:802.1X Authentication (0x888e)
      	802.1xAuthent ication 
      	Version:1
      	Type: EAP Packet(0)
      	Length:225
      	Extensible Authentication Protocol
      	Code: Success (3)
      	Id:0
      	Length:4
    

EAP终结模式:MD5-challenge

1、EOPAL start
该数据包的前14字节是MAC帧的头部信息,1-6 字节内容为目标的 MAC 地址, 7-12 字节为源 MAC地址,13-14字节为该数据帧类型。从第15字节开始为 MAC层封装的实际通信内容。从MAC帧的头部信息可以看出,EAPOL-Start消息发向了FF-FF-FF-FF-FF-FF 这个广播(broadcast)地址,源地址则将请求者的位置告诉验证者。MAC帧头的Type字段的值为0x888e,表示了该帧封装了802 .1X Authentication数据,以下各包的Type字段均是 0x888e。从第15字节开始是802 .1X Authentication内容。第15字节为Version字段,值为1;第16字节为Type字段,表示了该 802.1X Authentication 的类型,这个包值为1 ,表示 Start(开始认证过程);第17- 18字节为 Length字段,它表示的是802.1X Authentication 封装的 EA P消息的长度,由于EAPOL-Start没有包含EAP消息,所以此处为 0。以下各包的802.1X Authentication 格式和这个包是一样的,Type和Length值有变化。
在这里插入图片描述
2、EAP-Request Identity
当认证者接收到刚才的请求者发送的 EA POL-Start 消息后, 将开始整个认证流程。认证者向请求者发送 EAP-Request Identity消息,请求其身份。从第19 字节开始是EAP消息。第19字节为Code字段,值为1表示Request ,值为2表示Response,显然这个包的Code值为1 ;第20字节为Id字段,表示EAP消息序号,该消息的Id为1;第21-22字节为Length字段,它表示EAP消息的长度,和802.1X Authentication的Length字段代表相同的语意。这个消息长度为 5 字节,所以此处值为5;第23字节为Type字段,表示EAP消息的类型,该消息Type值为0,表示 Identity。在802.1X Authentication部分,Type字段为0,表示EAP Packet; Length字段值为5 ,表示EAP消息长度为5。
在这里插入图片描述
3、EAP-Response Identity
我们主要看EAP消息部分。第19字节的Code字段值为2表示Response;第20字节为Id字段值为1,对应EAP-Request Identity的Id,表示对Id为1的 Request的回应;第21-22字节的Length字段值为10;第23字节的Type字段值仍为1, 表示Identity;第24字节开始是Identity的内容,长度为5字节。也就是用户名。
在这里插入图片描述
4、EAP-Request MD5-Challenge
认证者收到了EAP- Response Identity消息后,得到了请求者的身份信息,接着向请求者发出EAP-Request MD5-Challenge,质询密码之类的认证信息。第20字节为Id字段值为2;第21-22字节的Length字段值为22 ;第23字节的 Type字段值为4,表示MD5-Challenge;第24字节是Value -Size字段,表示Val ue字段的长度。此处值为16 ,Value也是使用MD5生成;第25-40字节为 Value 字段内容,提供给请求者在后面的MD5计算中使用
0387c01542dec1444322fc9626a6c56d。
在这里插入图片描述
5、EAP-Response MD5-Challenge
请求者收到了 EAP-Request MD5-Challenge 消息后,将消息的 Id 、自己的密码和消息的Value组合成16进制串,计算MD5值 ,填入EAP-Response MD5-Challenge,发送给认证者。 第20字节为Id字段值为2,对应Request;第21-22字节的Length字段值为27 ;第23字节的Type字段值仍为4;第24字节的Value-Size字段值仍为16,因为MD5算法得到的结果长度为 16个字节;第25-40字节为Value字段内容。这个串是由Request的Id+密码的16进制ASCII码+Request的Value组合成的16进制串经过MD5算法计算而成;第41-53字节为Extradata,长度为5字节,内容仍为16进制ASCII码表示的用户身份,也就是用户名。
在这里插入图片描述
6、EAP-Success
验证者收到请求者回应的EAP-Response MD5-Challenge消息后, 将该消息重新封装如RADIUS数据包,发送给后面的认证服务器。认证服务器确认用户名/密码正确后,发送EAP -Success,认证者再将该消息重新封装发送给请求者,表明认证已经通过,进入授权状态。EAP-Success消息很简单。第19字节的Code字段值为3表示Success;第20字节为Id字段值仍然为2,表明是之前Id为2的Challenge的结果 ;第21-22字节的Length字段值为4。

Radius CHAP认证原理

CHAP(Challenge Handshake Authentication Protocol)验证协议为三次握手(交互)验证协议
chap并不会直接在认证过程传递用户密码,而是传递 md5 ( chapID + 密码 + challenge ), 服务端通过比较md5值判断用户密码是否在正确, client 和 server 之前存在一个 challenge “协商”过程

但在radius 协议中, NAS(交换机)与radius服务器的交互,并不需要三次交互, NAS会将认证信息 “打包”给radius 服务器校验

radius服务器 chap 用户名/密码 校验原理
(1)radius 服务器通过用户名(明文), 找出对应的密码,此时密码为pass
(2)计算 md5 ( chapID + 密码 + challenge ) , 并判断 是否与 chap-password (从第2字节开始比较) 一致,如果一致, 则认为密码正确

截图中, md5 ( chapID + 密码 + challenge ) 与 chap string 一致, 由此可知,用户密码正确
在这里插入图片描述

0x0a 是chapID
0x70 0x61 0x73 0x73 是密码,转换便是:pass
剩下的十六字节便是MD5-challenge,组成后进行 md5 ( chapID + 密码 + challenge ) 得到的值与CHAP String相等。

Message-Authenticator消息验证器计算

以下示例说明如何手动计数值,以确保其计算正确。

已选择数据包编号30(访问请求)。它处于EAP会话中,且数据包包含Message-Authenticator字段。目的是验证消息验证器是否正确:
在这里插入图片描述
右键单击Radius Protocol并选择Export Selected packet bytes。

将该RADIUS负载写入文件(二进制数据)。

要计算消息验证器字段,必须将零置于此处并计算HMAC-MD5。

例如,当您使用十六进制/二进制编辑器(如vim)时,在键入“:%!xxd”后,它会切换到十六进制模式,从“5012”后开始为16个字节(50hex是80,其中是消息验证器类型,12是18,包括属性值对(AVP)报头):

在这里插入图片描述

修改后,负载就绪。必须返回十六进制/二进制模式(类型:“:%!xxd -r”)并保存文件(“:wq”)。

使用OpenSSL计算HMAC-MD5:

 cat packet30-clear-msgauth.bin | openssl dgst -md5 -hmac 'cisco'
(stdin)= 01418d3b1865556918269d3cf73608b0

HMAD-MD5函数采用两个参数:第一个来自标准输入(stdin)是消息本身,第二个是共享密钥(本例中为思科)。 结果与附加到RADIUS Access-Request数据包的消息验证器的值完全相同。

使用Python脚本可以计算相同值:

cat hmac.py 
#!/usr/bin/env python

import base64
import hmac
import hashlib

f = open('packet30-clear-msgauth.bin', 'rb')
try:
    body = f.read()
finally:
    f.close()

digest = hmac.new('cisco', body, hashlib.md5)
d=digest.hexdigest()
print d
$ python hmac.py 
01418d3b1865556918269d3cf73608b0

参考连接:

802.1x认证基础
802.1X协议及Radius协议
RADIUS无效身份验证器和消息身份验证器故障排除指南

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

802.1x认证方式(EAP中继认证与EAP终结认证) 的相关文章

  • 【计算机网络】输入网址到显示网页,期间发生了什么?

    摘要 xff1a 如图1所示 xff0c 从输入网址 xff0c 按下回车键之后的数据传输流程发生了什么 注意 xff1a 各位大佬 xff0c 如果有哪里写的不清楚 xff0c 请在邮件pigmn 64 sina com友善的交流 图1
  • 灰度共生矩阵(超简单理解)

    1 灰度共生矩阵生成原理 灰度共生矩阵 GLDM 的统计方法是20世纪70年代初由R Haralick等人提出的 xff0c 它是在假定图像中各像素间的空间分布关系包含了图像纹理信息的前提下 xff0c 提出的具有广泛性的纹理分析方法 灰度
  • MATLAB基础(二)矩阵运算与可视化作图

    常见矩阵生成函数 zeros m n 生成一个 m 行 n 列的零矩阵 xff0c m 61 n 时可简写为 zeros n ones m n 生成一个 m 行 n 列的元素全为 1 的矩阵 m 61 n 时可写为 ones n eye m
  • eclipse 项目有红叉(解决方法)

    1 进入 eclipse xff0c 按图示操作 2 找到 General 下的 problems 双击 problems 就会在下 边提示你项目报错的原因 根据错误提示去解决就好 3 在弹出的problems删除错误信息
  • spring boot整合shiro(附带简单demo)

    shiro是目前主流的java安全框架 xff0c 主要用来更便捷的认证 xff0c 授权 xff0c 加密 xff0c 会话管理 废话不多说 xff0c 下面是一个简单的案例 xff0c Soring boot整合shiro xff1b
  • CUDNN_STATUS_NOT_INITIALIZED解决办法

    在某平台跑代码 xff0c 最开始尝试去训练 xff0c 发现训练成功后久终止 xff0c 修改部分参数后再次运行发现这个错误 CUDNN STATUS NOT INITIALIZED 解决方法 xff1a 就是python进程其实还在继续
  • 企业数据仓库总线架构、总线矩阵笔记 (第三篇)

    一 总线架构 维度建模的数据仓库中 xff0c 有一个概念叫Bus Architecture xff0c 中文一般翻译为 总线架构 总线架构是Kimball的多维体系结构 xff08 MD xff09 中的三个关键性概念之一 xff0c 另
  • Mininet使用教程

    注 xff1a 1 重要的链接 xff1a http mininet org walkthrough display startup options 2 IPv4与IPv6之间的地址转换 https www subnetonline com
  • 关系型数据库与非关系型数据库

    开发工作中我们常用的数据库大致分为关系型数据库和非关系型数据库两种 xff0c 那这两种到底是什么呢 xff1f 1 关系型数据库 所谓关系型数据库 xff0c 是建立在关系模型 基础上的数据库 关系模型由关系数据结构 关系操作集合 关系完
  • 深度学习常用优化算法moment/Adagrad/RMSProp/Adadelta/Adam

    1 经验风险和风险 经验风险是训练数据集的平均损失 xff0c 风险是整个数据群的预期损失 2 优化算法作用 在最小化目标函数方面的性能 xff0c 即减小训练误差 xff0c 而不是模型的泛化误差 3 深度学习的优化挑战 局部最小值 小批
  • K8S 快速入门(五)网络通信原理:Pod网络

    一 Pod网络 1 Pod结构 Pod的特点 xff1a 容器 1 有自己的IP地址 2 有自己的hostname 3 有自己的端口 Pod实际上可以理解为就是k8s云平台中的虚拟机 xff0c 而这个pod内部封装的是由docker引擎所
  • 代码优化之策略模式

    前言 xff1a 最近刚完成一个专项的代码codeing xff0c 今天花了一下午把代码优化了下 xff0c 总结了一些优化时用到的思想和方法 xff0c 后续也会继续补充好的代码习惯和最佳范式 策略模式 自我介绍 策略这个词应该怎么理解
  • python保存图片变色,与原始图像颜色不一致

    有时候将图片保存到本地会发现颜色与原来不一致 xff0c 有的变成相反的颜色了 针对这个问题 xff0c 我试了好多方法 xff0c 原理不大清楚 但多换一种保存方式就OK了 常用的有三种 xff1a 1 PIL span class to
  • 树莓派(Raspberry) WIFI 配置 (无显示器)

    目标 在没有显示器的情况下 xff0c 通过一根网线配置树莓派WIFI 然后开机自动连接WIFI xff0c 以后就可以直接通过主机通过VNC Viewer Putty也可以 控制树莓派 当然 xff0c 如果有网线也可以控制了 xff0c
  • 网站搭建教程(详细步骤 )

    目录 网站组成 一 服务器 二 网站程序 三 域名 四 空间基本介绍 搭建网站的基本步骤流程 教程解说 一 购买域名 二 购买服务器 三 相关配置 网站组成 一 服务器 什么是服务器 我们可以理解为一个容器 用来存放网站的内容部分 我们在互
  • c++11的regex使用

    首先不论在window下还是linux下 xff0c 你要通过c c 43 43 使用正则表达式 xff0c 你就必须包含所需的头文件regex 里面包含了所需的函数 xff0c 一般的第一步需要确定要匹配的模式pattern 使用rege
  • Qt信号与槽的五种连接方式

    qt信号与槽的五种连接方式 xff1a 1 默认连接 xff1a 如果是在同一线程等价于直连 xff0c 在不同线程等价于队列连接 2 直连 xff1a 信号在哪 xff0c 在哪个线程执行 xff08 最好只在同一线程中用 xff09 3
  • Android (Android studio3.0.1)一篇可以实现app多语言的转换(简单操作)的教程

    最近接触到了项目需要 xff0c 多语言的转换 网上有很多资料 xff0c 我整理一些 xff0c 简单适合自己使用的操作 第一步 打开Android studio 添加 Android Studio插件 AndroidLocalizati
  • Centos7部署java环境

    先更新 yum y update amp amp yum y upgrade 1 xff0c Wget 参考 xff1a https blog csdn net xieshen86 article details 125472698 htt
  • Ubuntu16.04安装deb包

    deb包是Debian xff0c Ubuntu等Linux发行版的软件安装包 xff0c 扩展名为 deb xff0c 是类似于rpm的软件包 xff0c Debian xff0c Ubuntu系统不推荐使用deb软件包 xff0c 因为

随机推荐

  • HCIE-RS面试--STP弊端

    1 收敛速度慢 监听状态15s是为了避免STP协议在收敛过程中产生临时环路 xff0c 让BPDU有足够的时间在整个网络进行传递 监听状态期间 xff0c MAC地址表受TC BPDU的影响会进行提前老化 xff0c 清除错误的MAC地址信
  • mapreduce 班级学生成绩统计

    这个是最近的一个实验 xff0c 其中这个实验老师的要求是 1 统计每个班成绩的最大值 最小值 并且输出姓名 如果有多个那么要都要输出 xff0c 然后输出每个班的平均值 再者就是每个班的成绩分布 xff0c 优秀良好 xff0c 及格不及
  • 解决修改css或js文件后,浏览器缓存未更新问题

    问题描述 xff1a 最近在上线新版本项目的时候 xff0c 发现有的用户的操作还是调用的老版本JS里面的内容 xff0c 这样就造成原来新的JS里面加上的限制不能限制用户的操作 xff0c 从而导致用户可以重复操作 问题产生原因 xff1
  • 最全UnityHub国际版下载链接Unity2022~2017各版本+Unity5.x【间歇性更新】

    Unity2022 2017各版本UnityHub国际版下载链接 间歇性更新 直链下载国际版UnityHub国际版下载链接Unity2022 xUnity2021 xUnity2020 xUnity2019 xUnity2018 xUnit
  • FreeRTOS教程——任务(一)

    文章目录 FreeRTOS教程 任务 xff08 一 xff09 概述任务状态任务优先级执行任务 单元xTaskCreatevTaskDeletevTaskDelayvTaskSuspendvTaskResume 综合实例 FreeRTOS
  • Maven的下载安装配置教程(详细图文)

    目录 一 简单了解一下什么是Maven 二 maven的下载 三 maven的安装 四 maven的环境变量配置 五 setting文件配置 六 开发工具配置Maven 一 简单了解一下什么是Maven Maven就是一款帮助程序员构建项目
  • ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程

    环境 xff1a OS X 10 10 5 43 JDK 1 8 步骤 xff1a 一 下载ELK的三大组件 E lasticsearch下载地址 xff1a https www elastic co downloads elasticse
  • 实时更新的Sci-Hub可用网址

    近期 xff0c Sci Hub似乎用起来又不流畅了 xff0c 有时候打开贼费劲 xff0c 而且有些网址又用不了 xff01 接下来给大家推荐一个网站 xff0c 他们会实时新Sci Hub网址 xff0c 大家可以去试试 xff01
  • RFC8314文档中对465端口和587端口的阐述

    最近在学习SMTP的时候发现SMTP在使用加密传输的时候涉及到465和587两个端口 xff0c 网上对两者之间的区别众说纷纭 xff0c 后来查到了RFC官方文档中对于这个争论较久的问题的定义和详细说明 xff0c 这里做转载和翻译用于记
  • nginx篇08-添加客户端证书认证

    本文主要介绍如何使用给nginx服务添加客户端证书认证从而实现双向加密 对于一般的https网站来说 xff0c 实际上https所使用的证书是属于单向验证 xff0c 即客户端单向验证服务器的安全性 xff0c 而服务器端是没有对客户端的
  • Linux 查找搜索命令 5种方式

    一 whereis命令 该指令会在特定目录中查找符合条件的文件 这些文件应属于原始代码 二进制文件 xff0c 或是帮助文件 该指令只能用于查找二进制文件 源代码文件和man手册页 xff0c 一般文件的定位需使用locate命令 简单理解
  • SUMO学习

    SUMO学习 SUMO简介1 车道模型2 跟驰模型跟驰模型CACC 3 变道模型1 Strategic change 战略变道2 Cooperative change 协同变道3 Tactical change 战术变道4 Obligato
  • 51单片机学习笔记4 -- 蜂鸣器控制

    蜂鸣器控制 1 蜂鸣器简介1 分类2 有源蜂鸣器和无源蜂鸣器3 区分有源蜂鸣器和无源蜂鸣器4 蜂鸣器驱动电路 2 电路图绘制3 蜂鸣器控制4 程序补充 1 蜂鸣器简介 蜂鸣器是一种一体化结构的电子讯响器 xff0c 采用直流电压供电 xff
  • 树莓派3B+安装系统,配置基本环境、更换国内镜像源,适用pi4

    树莓派3B 43 安装系统 系统镜像下载 树莓派官方镜像下载地址 xff1a 自行百度 xff0c 官方网站首页 xff0c 点击Downloads 安装镜像 准备一张8G以上的内存卡 xff0c 推荐16G以上 下载系统制作软件etche
  • Linux超强截图工具flameshot

    Pop OS自带的截屏快捷键如下 但讲道理这个是真的不好用 所以我们借助第三方的截图工具 xff0c 这里推荐flameshot 火焰截图 在终端键入以下命令即可安装 span class token function sudo span
  • 5/1-3 BP神经网络的改进及MATLAB实现(下)

    5 1 3 BP神经网络的改进及MATLAB实现 xff08 下 xff09 文章目录 5 1 3 BP神经网络的改进及MATLAB实现 xff08 下 xff09 1 自适应梯度下降法 xff08 Adagrad xff09 2 动量法
  • “操作无法完成因为其中的文件夹或文件已在另一个程序中打开”解决办法

    在windows系统中 xff0c 我们经常会遇到这样一个问题 xff1a 删除某一个文件或者文件夹 xff0c 被提醒 xff1a 操作无法完成 xff0c 因为其中的文件夹或文件已在另一个程序中打开 这个时候我们一般会先检查是否真的有程
  • windows下N卡提取或者刷VBIOS

    windows下N卡提取或者刷VBIOS 这里是简介 xff1a 在windows下怎么提取出显卡的VBIOS和刷VBIOS引用 本文已 GeForce MX450显卡为例 xff0c 需要借助工具 lt 1 gt 工具介绍 xff08 N
  • 论文:Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey翻译工作

    关于对抗性攻击对深度学习威胁的研究 Naveed Akhtar and Ajmal Mian ACKNOWLEDGEMENTS The authors thank Nicholas Carlini UC Berkeley and Dimit
  • 802.1x认证方式(EAP中继认证与EAP终结认证)

    文章目录 1 前言2 协议说明3 报文分析EAP中继模式 MD5 challengeEAP终结模式 MD5 challengeRadius CHAP认证原理Message Authenticator消息验证器计算参考连接 xff1a 1 前