关于
我的公众号
QQ群:934149291
请喝杯饮料微信:
支付宝:
无线局域网标准之WAPI
无线局域网标准之WAPIWAPI概述
WAPI (Wireless LAN Authentication and Privacy Infrastructure) 是无线局域网鉴别和保密基础结构,是一种安全协议,同时也是中国无线局域网安全强制性标准,最早由西安电子科技大学综合业务网理论及关键技术国家重点实验室提出。
当前全球无线局域网领域仅有的两个标准,分别是美国行业标准组织提出的IEEE 802.11系列标准(包括802.11a/b/g/n/ac等),以及中国提出的WAPI标准。WAPI是我国首个在计算机宽带无线网络通信领域自主创新并拥有知识产权的安全接入技术标准。本方案已由国际标准化组织ISO/IEC授权的机构IEEE Registration Authority(IEEE注册权威机构)正式批准发布,分配了用于WAPI协议的以太类型字段,这也是中国在该领域唯一获得批准的协议。
与WIFI的单向加密认证不同,WAPI双向均认证,从而保证传输的安全性。WAPI安全系统采用公钥密码技术,鉴权服务器AS负责证书的颁发、验证与吊销等,无线客户端与无线接入点AP上都安装有AS颁发的公钥证 ...
网络802.1X协议简介
网络802.1X协议简介802.1X是一种基于端口的网络接入控制协议。基于802.1X协议的用户认证方式叫做802.1X认证。802.1X认证被广泛应用在信息安全要求严格的网络中。
802.1X协议的背景早期的IEEE 802 LAN协议中,只要用户可以接入局域网的控制设备(例如接入交换机),就可以访问局域网中的设备或资源,这无疑是存在安全隐患的。为解决无线局域网的安全问题,IEEE 802委员会提出了802.1X协议。802.1X协议可以控制用户的网络访问权限,防止身份不明或未经授权的用户传输和接收数据。由于802.1X协议的普适性,因此后来也广泛应用于有线局域网。
与其他接入控制机制不同,802.1X协议是通过控制接入端口,实现用户级的接入控制。在802.1X协议中,物理接入端口被划分为“受控端口”和“非受控端口”这两个逻辑端口,用于实现业务与认证的分离。非受控端口主要用于传递EAPOL协议帧,始终处于双向连通状态,保证客户端始终能够发出或接收认证报文;而受控端口用于传递业务报文,因此在授权状态下处于双向连通状态,在非授权状态下不从客户端接收任何报文。
换言之,基于802.1X协议 ...
Linux之virt_wifi驱动
Linux之virt_wifi驱动简介
A fake implementation of cfg80211_ops that can be tacked on to an ethernet net_device to make it appear as a wireless connection.
一种可附加到以太网网络设备上的虚假的 cfg80211_ops 实现,使其看起来像无线连接。
该模块通过实现 cfg80211 接口和网络设备操作,模拟了一个完整的无线网络接口,使其对上层表现为真实的 WiFi 设备,支持扫描、连接、数据传输等操作。
主要功能其主要功能是:
模拟无线硬件: 在无需物理无线设备的情况下,提供虚拟的无线接口,在纯软件环境中模拟无线网络行为。
支持测试和容器化: 允许在虚拟环境中测试无线功能,或为容器提供隔离的无线网络接口。
协议栈兼容性: 通过 mac80211 框架提供标准的无线设备接口,支持标准工具(如 iw、wpa_supplicant)操作。
典型应用场景
开发与测试
驱动开发:在无物理硬件时模拟无线设备,测试 mac80211 驱动逻辑。
协议测 ...
Linux之irqbalance
Linux之irqbalance关于Irqbalance官方介绍:
Irqbalance is a daemon to help balance the cpu load generated by interrupts across all of a systems cpus. Irqbalance identifies the highest volume interrupt sources, and isolates each of them to a single unique cpu, so that load is spread as much as possible over an entire processor set, while minimizing cache miss rates for irq handlers
Irqbalance 是一个守护进程,用于帮助在系统的所有 CPU 之间平衡由中断产生的 CPU 负载。Irqbalance 识别出最高的中断源,并将它们每一个隔离到单个独特的 CPU 上,以尽可能在整个处理器集中分散负载,同时最小化 IRQ ...
关于网络MAC地址
关于网络MAC地址一个MAC地址问题经常会遇到客户反馈这样的问题:在进行以太网MAC地址设置测试(随便写的MAC地址),发现有时候MAC地址会变成随机的MAC地址。
原因: MAC地址的第一个字节的最后一位是用来区分是多播还是单播的,0为单播,1为多播,我们的电脑或是设备的网卡都是单播的,所以不能为1。一般网卡驱动都会去校验,如果校验为多播地址则认为是不符合规范的地址,就会生成一个随机MAC。
相关代码如下(include/linux/etherdevice.h):
static inline bool is_multicast_ether_addr(const u8 *addr)
{
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
u32 a = *(const u32 *)addr;
#else
u16 a = *(const u16 *)addr;
#endif
#ifdef __BIG_ENDIAN
return 0x01 & (a >> ((sizeof(a) * 8) - 8));
#el ...
Linux之kmod
Linux之kmod背景最近在解决某些问题的时候,发现了内核模块很多以前没怎么接触的配置和用法,所以想深入了解下modinfo、depmod等这些内核模块工具,想简单看看其背后一些原理,但是发现这些工具的路径都指向了/bin/kmod。
$ ls -all $(which modinfo)
lrwxrwxrwx 1 root root 9 7月 5 2021 /usr/sbin/modinfo -> /bin/kmod
可能很多人听到kmod会很陌生,但是像insmod、modprobe、lsmod等工具会很熟悉。没错,这些工具都是属于kmod包的,所以就会发现上面的现象。
关于kmodkmod 是 Linux 系统中用于管理内核模块(kernel modules)的工具包。它提供了一组用户空间工具,用于加载、卸载、列出和查询内核模块、解决依赖关系和别名等。kmod 是 module-init-tools 的替代品,与与 module-init-tools 项目的工具、配置和索引保持兼容,自 Linux 内核 3.0 版本以后成为默认的内核模块管理工具。
这些工具基于 libkm ...
Linux之udev热插拔规则
Linux之udev热插拔规则背景udev 是 Linux 系统中用于管理设备节点的工具,它可以根据设备的属性动态地创建设备文件,并执行特定的命令,通常用来处理热插拔。udev 规则用于指定这些行为,它们一般存储在 /etc/udev/rules.d/ 目录下的 .rules 文件中。
udev规则语法简单介绍udev 规则的语法如下:
ACTION=="action", KERNEL=="kernel", ATTR{attribute}=="value", ... , RUN{command}
以下是 udev 规则中各个部分的详细说明:
ACTION:触发规则的事件类型,例如 add、remove、change 等。
KERNEL:设备的内核名称,通常是 /dev 下设备文件的名称,不包括 /dev/ 前缀。
ATTR{attribute}:设备的属性,通常与 sysfs 文件系统中的属性相对应。
VALUE:属性的值。
RUN{command}:当规则匹配时要执行的命令。
规则文件中的每一行通常是 ...
网卡的SG和TSO
网卡的SG和TSOTSO网卡中的TSO(TCP Segmentation Offload)技术是一种利用网卡的硬件能力来减轻CPU负担的技术。它的主要作用是处理TCP数据包的分段工作,这项工作通常由CPU完成。当启用TSO时,网卡会接管这一任务,从而提高网络性能并减少CPU的负载。具体来说,TSO技术允许网卡将大的TCP数据包分割成多个小的数据包,这些小数据包的尺寸适合于网络传输,而无需CPU介入。在没有TSO的情况下,当TCP数据包超过网卡的最大传输单元(MTU)时,操作系统需要将这些数据包分割成更小的单元,这个过程会增加CPU的负担。通过使用TSO,这部分工作被转移到了网卡上,从而释放了CPU资源,让它可以处理其他任务。TSO技术需要网卡硬件及驱动的支持。在使用TSO时,TCP层会逐渐增大最大段大小(MSS),当TCP层向下发送大块数据时,它仅计算TCP头,而网卡接收到来自IP层的大数据包后,会自行将其分成多个IP数据包,并添加IP头,复制TCP头,并重新计算校验和等相关数据。此外,还有一些与TSO相关的技术,例如GSO(Generic Segmentation Offload), ...
Linux之无线RFKill子系统
Linux之无线RFKill子系统关于RFKill
The rfkill subsystem provides a generic interface for disabling any radiotransmitter in the system. When a transmitter is blocked, it shall notradiate any power.
The subsystem also provides the ability to react on button presses anddisable all transmitters of a certain type (or all). This is intended forsituations where transmitters need to be turned off, for example onaircraft.
The rfkill subsystem has a concept of “hard” and “soft” block, whichdiffer little in their m ...
Linux之lshw工具及其网络部分
Linux之lshw工具及其网络部分lshw工具lshw: HardWare LiSter for Linux
lshw is a small tool to provide detailed information on the hardware configuration of the machine. It can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc. on DMI-capable x86 or EFI (IA-64) systems and on some ARM and PowerPC machines (PowerMac G4 is known to work).
Information can be output in plain text, XML or HTML.
It currently supports DMI (x86 and ...
Linux之notify-send相关
Linux之notify-send相关关于notify-sendnotify-send 是一个在 Linux 系统中用于从命令行发送桌面通知的工具。它通过通知守护进程(notification daemon)向用户发送通知,可以用来提醒用户有关事件或显示某些信息,而不会干扰用户的正常工作。notify-send 是一个实用的工具,特别适合用于脚本或自动化任务中发送提醒。
notify-send基本使用用法:
notify-send [选项…] <SUMMARY> [BODY] - create a notification
帮助选项:
-?, --help 显示帮助选项
应用程序选项:
-u, --urgency=LEVEL Specifies the urgency level (low, normal, critical).
-t, --expire-time=TIME Specifies the timeout in milliseconds at which ...