基于RADIUS 和数字证书的无线网络接入认证技术研究

2024-04-16 11:36王润园
通信电源技术 2024年3期
关键词:代理服务器数字证书接入点

王润园,葛 声,荆 浩

(航空工业西安航空计算技术研究所,陕西 西安 710068)

0 引 言

随着网络的普及和智能设备的发展,人们应用网络的场景越来越多,产生了许多复杂的大型局域网。为满足局域网的大范围统一远程认证需求,远程访问拨入用户服务(Remote Authentication Dial In User Service,RADIUS)应运而生。

基于RADIUS 的无线网络接入认证系统采用数字证书进行接入认证,网络管理者无须维护大批量用户的账号密码,用户仅妥当保存事先分发的密钥文件即可。

1 RADIUS 协议与数字证书概述

RADIUS 是一种分布式、基于客户端/服务器架构的信息交互协议,是应用最广泛的认证、授权、计费(Authentication、Authorization、Accounting,AAA)协议。在电气与电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)提出的无线网络接入认证802.1X 标准中,采用的是RADIUS 协议进行认证[1]。

数字证书是一种权威性的电子文档,提供一种在网络上验证身份的方式,标志着通信各方的身份信息。数字证书由电子商务认证中心所颁发,较为权威且公正[2]。

OpenSSL 是一个开源的软件库包,应用程序可以使用这个软件库包进行网络认证和安全通信,并确认另一方的身份。OpenSSL的一个重要功能就是证书管理,实现基于X.509 标准的编解码,支持对证书的管理,包括证书密钥产生、请求产生、证书签发、吊销及验证[3]。

2 网络拓扑配置及网络认证过程描述

当使用RADIUS 和数字证书方式进行无线网络接入认证时,网络管理人员需搭建的网络拓扑如图1所示,较为复杂且具有层次化。其中,第1 层为RADIUS认证服务器,负责进行RADIUS 服务器认证;第2 层为RADIUS 代理服务器,负责接入无线接入点,并转发RADIUS 认证请求至RADIUS 认证服务器;第3 层为无线接入点层,包含若干个无线接入点,通过网口或者交换机与RADIUS 代理服务器相连;第4 层为客户端层,通过发送无线网络接入请求来接入无线网络[4]。

图1 基于RADIUS 的网络接入认证系统的网络拓扑

当客户端发送无线网络接入请求并使用证书作为接入认证凭据时,RADIUS 的认证过程如下。首先,客户端发起接入无线网络的请求,通过无线接入点进行捕获,并将请求转发至RADIUS 代理服务器;其次,RADIUS 代理服务器将客户端接入请求转发至RADIUS 认证服务器;再次,RADIUS 认证服务器会对请求中携带的证书进行认证,并将认证结果转发至RADIUS 代理服务器;最后,RADIUS 代理服务器依据认证结果决定是否允许客户端接入网络[5]。

3 配置RADIUS 认证服务

以FreeRADIUS 为例,配置RADIUS 认证服务需要在Linux 操作系统上安装FreeRADIUS 开源软件包,安装完成后按照需求更改安装目录下的radius.conf 文件、client.conf 文件、proxy.conf 文件以及eap文件。

首先,在clients.conf 文件中配置该RADIUS 服务器可接入的所有无线接入点的热点名称、IP 及接入密码。其次,在eap.conf 文件中配置对eap 的认证方式和相应的服务器证书信息。一般eap 的认证方式设置为tls,并配置OpenSSL 生成的服务器证书文件路径,包括服务器私钥文件密码、服务器私钥文件的位置、服务器证书的位置及CA 根证书的位置。再次,在radiusd.conf 文件中配置RADIUS 服务器中的各个关键文件的路径缩写信息和是否记录日志等信息,用户可以使用路径缩写配置其他文件。最后,在proxy.conf 文件中配置RADIUS 认证服务器网际互连协议(Internet Protocol,IP)和端口,或者下一层代理服务器的IP 和端口。

文件需要根据RADIUS 服务器的作用进行配置。如果该RADIUS 服务器的作用是认证RADIUS 请求,且没有直接接入无线接入点,则需要配置eap.conf文件和proxy.conf 文件,保证其中不包含任何其他RADIUS 服务器的IP 和端口;如果该RADIUS 服务器的作用是认证RADIUS 请求,且直接接入无线接入点,则需要配置eap.conf 文件、proxy.conf 文件及client.conf文件;若该RADIUS 服务器是RADIUS 代理服务器,则需要配置clients.conf 文件和proxy.conf 文件。

4 使用OpenSSL 生成证书

使用数字证书进行网络认证,需要OpenSSL 生成一个CA 中心证书,并使用该CA 中心证书生成多个用户证书。其中一个证书作为RADIUS 认证服务器证书进行使用,其余证书可以作为客户端证书分发给需要接入的客户端。

首先,使用openssl 生成服务器证书,需要生成服务器证书私钥指令(openssl genrsa -out server.key 2048)、创建服务器证书请求文件输入一系列证书信息指 令(openssl req -new -out server.csr -key server.key)、生成服务器证书指令(openssl req -new -x509 -key server.key -out server.cer -days 3650)。其次,使用OpenSSL 生成至少一个客户端证书,生成客户端指令与生成服务器证书的指令一致。最后,使用校验指令(openssl verify -CAfile root.crt server.crt)对客户端/服务器证书与CA根证书校验,返回“OK”即表示验证成功。

在使用OpenSSL 完成这3 个步骤后,得到一个CA 证书及其私钥、一个服务器证书及其配置文件和私钥、若干个客户端证书及其配置文件和私钥,此时应依照说明将CA 证书及其私钥、服务器证书及其私钥放置于服务器的对应存储位置。

5 网络接入验证

在完成服务器端的网络配置后,需要将客户端证书及其私钥放置到客户端的相应存储路径。文章给出一种在Linux 操作系统上进行无线网络接入验证的方法,使用wpa_supplicant 工具在Linux 客户端上发送无线网络接入请求,并使用数字证书进行无线网络接入认证。

在Linux 客户端上以文本文件形式编写配置文件wpa_supplicant.conf 的代码为

具体配置项解释如表1 所示。

表1 wpa_supplicant 配置项说明

使用wpa_supplicant -i wlan0 -c wpa_supplicant.conf &指令进行接入连接。

在指令执行后,可以使用ping 命令测试客户端是否ping 通RADIUS 代理服务器。如果客户端可以ping 通RADIUS 代理服务器,则证明客户端网络接入成功。

6 结 论

文章给出基于数字证书技术和RADIUS 协议实现复杂无线网络接入认证的方法、在Linux 客户端上的接入认证方法,较为安全、便捷,适用于多种网络场景。文章通过搭建一个基于数字证书技术和RADIUS 协议的无线网络认证平台,方便管理无线网络及其用户。

猜你喜欢
代理服务器数字证书接入点
拒绝改动锁定电脑的代理服务器设置
基于无线通信的信号系统AP接入点改造方案
地铁信号系统中代理服务器的设计与实现
IP地址隐藏器
当心黑客利用数字证书的漏洞
基于数字证书的军事信息系统安全防护方案
关于综合业务接入点选点方案的探讨
管理好系统中的数字证书
基于风电接入点的配电网分区保护方案研究
吉林省支付清算系统参与者数字证书使用现状调查与现存问题分析及建议