李 雷
北京鐵路局北京通信段G 網車間,北京100086
RADIUS:Remote Authentication Dial in User Service,遠程客戶端撥號認證授權計費系統,是目前在各領域應用最為廣泛的AAA 協議【即-身份驗證 (Authentication)、授權 (Authorization)和計費(Accounting)】。
簡要的概括來說,RADIUS 的主要突出特性如下。
1)客戶端/服務端模式(Client/Server)。
RADIUS 是一種C/S 架構的協議,客戶端最一開始指網絡接入服務器NAS 設備,RADIUS 系統客戶端軟件運行在任何硬件上的方式都可以作為RADIUS 的客戶端。客戶端的職責是把用戶相關信息(用戶名,密碼等)發送給指定的RADIUS 服務器,并負責進行返回的響應。
RADIUS 服務器的職責是處理用戶的接入請求,對用戶身份進行識別和認證操作,如果認證通過則反回所有為用戶提供服務所必須的配置信息給客戶端。
2)在網絡的安全領域,客戶端和RADIUS 服務器之間的數據信息傳送經過了共享加密字的認證。另一方面,為了消除非法人員在安全級別不高的網絡上監聽盜取用戶密碼的隱患,客戶端和RADIUS 服務器之間所使用的用戶密碼都是被加密后才進行傳輸的。
3)認證方式的多樣性。
RADIUS 服務器可以使用多種方式進行用戶合法性的甄別。RADIUS 收到客戶端提供的用戶名和密碼后,可以支持的認證方式包括:
點到點的CHAP 認證(PPP CHAP)、點到點的PAP 認證(PPP PAP)、UNIX 的登錄命令(UNIX Login)等。
4)其他擴展相關協議。
RADIUS 協議中的所有交互信息均包括可變長度的屬性字段。為了滿足實際的應用,用戶可以根據要求加入新的屬性值。新的屬性值可以在不中斷已存在協議執行的前提下,自行定義新的屬性。
以RADIUS 協議為基礎的接入環境通常由三個主要的部分組成:接入客戶端(USER),網絡接入服務器(Net Access Server),RADIUS 服務器。
接入客戶端(USER)可以是利用撥號方式連接到一個提供服務的網絡來訪問其他的Internet 網站的一個用戶(這是最通常的用戶角色)。同理,接入客戶端也可以是一個設備,比如是一個手持移動臺、列車CIR 操作臺,在GSM-R 高鐵運營中,每臺高鐵列車的CIR 臺都通過RADIUS 認證后獲取一個獨立的靜態IP 地址,實現與CTC 中心的通信。
網絡接入服務器(Network Access Server),其簡稱為NAS,它的職責是對來自網絡“邊緣”的連接請求進行識別和處理。“邊緣”可以是一個ISDN 橋,或一個調制解調器池(modem pool),也可以是一個Wlan 的接入點,當一個用戶將接入請求消息發送到NAS 后,NAS會與用戶進行接入協商(協商方法如:EAP,SLIP 或PPP),通過協商會得到一些用戶的數據信息(如:用戶名,密碼,NAS 設備地址,NAS 接入端口號等),然后NAS 會把這些數據發送給RADUS 服務器,并請求RADIUS對這個用戶進行認證。
RADIUS 服務器(RADIUS server),主要職責是對客戶端進行認證和授權。RADIUS 服務器首先把從NAS 接入請求中獲得的數據與本身數據庫中存儲的數據實施比對。如果找到了相匹配的信息,那么RADIUS 服務器就會允許(Accept)這個用戶接入,反之,這個用戶就會被拒絕(Reject)。NAS 會根據RADIUS 服務器的響應來決定是否為這個用戶建立連接。如果用戶成功建立連接,NAS 將發送一個計費數據到RADIUS 服務器來記錄這個事件;根據需要,RADIUS 服務器可以記錄下這個數據,同時也可以把這個數據發給指定的計費系統來為這次服務提供計費依據(話單等)。
RADIUS 服務器和NAS 之間的通信方式采用UDP 協議,RADIUS 服務器負責認證的端口號為1812,負責計費的端口號為1813。
之所以采用UDP 協議進行通信,主要是因為NAS和RADIUS 服務器多存在于同一個局域網中,使用UDP更加快捷方便。
RADIUS 協議旨在簡化認證過程。通常的認證授權工作流程如下。
1)客戶端系統向NAS 設備發出網絡連接請求。
2)NAS 收集客戶端的用戶名和密碼,并轉發給RADIUS 服務器。
3)RADIUS 按照一定的加密算法將收到的認證信息和自身數據庫信息比對,然后將結果反饋給NAS 設備,可能是接受、拒絕或者其他。
4)NAS 設備根據返回結果決定是否為這個用戶建立連接。
5)如果認證通過,RADIUS 服務器對用戶進行授權,NAS 設備根據授權結果配置用戶的上網環境。
6)如果需要計費,NAS 設備將收集用戶上網期間的網絡資源使用情況,并將數據送交計費服務器,產生話單以及費用等。
RADIUS 的報文結構,主要包括:Code 字段、Identifier 字段、Length 字段、Authenticator 字段等。
1)CODE 部分定義了數據包的類型,編碼信息如下:
◆1、請求接入(Access-Request);
◆2、允許接入(Access-Accept);
◆3、拒絕接入(Access-Reject);
◆4、計費申請(Accounting-Request);
◆5、計費回應(Accounting-Response);
◆11、挑戰訪問(Access-Challenge);
◆12、 服 務 器 狀 態(Status-Server —Experimental);
◆13、 客 戶 端 狀 態(Status-Client —Experimental);
◆255、預留(Reserved)。
2)Identifier 域長度為1 個字節,指明匹配請求與響應。在很短的時間間隔里,如果一個請求存在重復的客戶源IP 地址、源UDP 端口號以及標識符,RADIUS服務器會認為收到的是重復的請求。
3)Length 域長度為2 個字節,它指明了編碼、標識符、長度、鑒別碼和屬性域在內的數據包的長度。多出長度域的字節將被視為填充,在接收時忽略它。如果包的長度比指定的短,則此包會被直接丟棄。
4)Authenticator 域長度為16 字節,為認證字域。用于RADIUS 客戶端和服務器之間信息認證的有效性和密碼隱藏加密算法。
6.1 主要功能
在GSM-R 高速鐵路網絡中,RADIUS 負責為全路高速列車提供認證服務,所有機車通過機車號和相應的密碼進行認證,認證通過后由NAS 設備(GGSN)進行固定IP 地址的分配。所有機車做為CLIENT 用戶端成功獲取IP 地址后方可進行數據業務的使用:無線車次號校核、調度命令傳送、進路預告傳送等。
6.2 系統組成
鐵路GSM-R 網絡中接入客戶端(用戶)即為列車;網絡接入服務器設備(NAS)即為GGSN(GPRS 網關節點);RADIUS 為認證服務器。
GGSN(GPRS 網關節點)主要功能:GGSN 內部配置了接入點(APN)的詳細信息,包括:移動用戶地址池、RADIUS 配置信息、最大PDP 激活數量等,并負責為列車分配靜態IP 地址。
RADIUS 服務器在全路范圍內共設置兩套,地理位置在不同的鐵路局,形成地理冗余機制,正常情況下一個鐵路局的RADIUS 為主用、另一個鐵路局的RADIUS 為備用,其功能為:RADIUS 服務器內記錄了全路所有G網區段列車的機車號信息以及認證密碼信息,并將每個機車號與一個固定IP 地址綁定,列車開始運行時將機車號、接入點、密碼等信息通過網絡送到RADIUS 服務器認證,認證通過后即可獲取對應IP 地址,完成PDP激活請求。
6.3 認證流程
1)列車→GGSN:列車發起PDP 激活請求,請求信息中包括機車號信息、接入點信息等;
2)GGSN→RADIUS:GGSN 收到機車的PDP 請求后向RADIUS 認證中心發送Access-Request 消息 ;
3)RADIUS→GGSN:RADIUS 認證中心收到GGSN 發來的認證請求后對用戶進行認證,如果為合法用戶就將用戶的靜態IP 以Access-Accept 消息回送給GGSN;否則,用戶為非法用戶,則返回Access-Reject 拒絕消息;
4)GGSN→列車:列車用戶認證成功后,GGSN 從其接入點中的地址池中選出列車用戶對應的IP 地址并將IP 地址以PDP 激活響應消息送回給列車用戶,此時用戶成功獲取IP 地址,完成PDP 激活;
5)GGSN→RADIUS:用戶合法且正常獲取IP 后,GGSN 向RADIUS 發送計費請求包Accounting-Request(start);
6)RADIUS→GGSN:RADIUS 服務器收到并成功記錄請求包后要給予相應Accounting-Response(start);
7)GGSN→RADIUS:當用戶斷開連接,結束PDP 激活(也可以由GGSN 斷開),GGSN 向RADIUS 發送計費停止包Accounting-Request(stop);
8)RADIUS→GGSN:RADIUS 服務器收到并成功記錄停止包后要給予相應Accounting-Response(stop);
9)GGSN→列車:最后GGSN 給用戶發送結束PDP激活響應。
[1] 鐘章隊,等.鐵路數字移動通信系統(GSM-R)應用基礎理論[M].北京:清華大學出版社有限公司,2009.
[2] 韓斌杰,等.GPRS 原理及其網絡優化[M].北京:機械工業出版社,2009.