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