楊菲
摘要:內(nèi)網(wǎng)安全已經(jīng)成為各大中型企業(yè)用戶極為關(guān)注的問題。為了解決內(nèi)網(wǎng)的安全問題,將RADIUS技術(shù)與靜脈生物技術(shù)相結(jié)合,設(shè)計了一套高安全性的靜脈生物認證系統(tǒng)。
關(guān)鍵詞:網(wǎng)絡(luò)安全;生物認證;RADIUS;靜脈
中圖分類號:TP311.52文獻標識碼:A文章編號:1009-3044(2012)18-4554-06
RADIUS In Vein Biometric Authentication System Applications
YANG Fei
(Zhuhai Urban Technology College, Zhuhai 519090, China)
Abstract: Within the network security has become of great concern to the major medium-sized users. In order to solve the problem of se curity within the network, a combination of RADIUS technology with intravenous biotechnology, design a high-security vein biometric authentication system.
Key words: network security; Biometric authentication; RADIUS; vein
隨著我國信息技術(shù)的推進和發(fā)展,各大中型企業(yè)內(nèi)部網(wǎng)絡(luò)規(guī)模日益龐大,網(wǎng)絡(luò)應(yīng)用日益頻繁,網(wǎng)絡(luò)的龐大化和復(fù)雜化,導(dǎo)致網(wǎng)絡(luò)安全風(fēng)險越來越嚴重。內(nèi)網(wǎng)安全已經(jīng)成為各大中型企業(yè)用戶極為關(guān)注的問題。
對于金融行業(yè),如果局域網(wǎng)非法接入問題不能有效的解決,其內(nèi)部網(wǎng)絡(luò)則處于一個不可控狀態(tài)下。有些不法分子可以通過網(wǎng)內(nèi)接口接入,盜用其他人的合法身份,進行非法活動,而網(wǎng)管人員卻沒有及時有效的發(fā)現(xiàn)和阻斷。一旦出現(xiàn)這樣的情況,其后果是相當(dāng)嚴重的。正是在這種情況下,我們?yōu)槟炽y行開發(fā)了一套靜脈生物認證系統(tǒng),為該銀行的內(nèi)部金融系統(tǒng)增加了安全性,解決了非法接入的問題。
1 RADIUS相關(guān)技術(shù)介紹
1.1 RADIUS技術(shù)說明
RADIUS(Remote Authentication Dial In User Service)遠程用戶撥號認證服務(wù),是網(wǎng)絡(luò)遠程接入設(shè)備的客戶和包含用戶認證與配置信息的服務(wù)器之間信息交換的標準客戶/服務(wù)器式。它包含有關(guān)用戶的專門簡檔,如:用戶名、靜脈生物特征、接入口令、接入權(quán)限等。這是保持遠程接入網(wǎng)絡(luò)的集中認證、授權(quán)、計費和審查等得到接受的標準。
RADIUS是一項被大部分遠程訪問、路由器和VPN廠商所采用,用于對遠程訪問用戶機型集中網(wǎng)絡(luò)鑒別的標準化通信協(xié)議。RADIUS使用客戶/服務(wù)器模式,網(wǎng)絡(luò)訪問設(shè)備作為RADIUS服務(wù)器的客戶端,例如Cisco交換機(NAS)。RADIUS服務(wù)器負責(zé)接收用戶的連接請求、對用戶進行鑒別,然后將所有客戶端所需的配置信息傳回,以便為用戶提供服務(wù)。RADIUS服務(wù)器支持PPP、PAP、CHAP、UNIX登陸,以及其它鑒別機制。RADIUS協(xié)議具有良好的擴展性,可以在不干擾現(xiàn)有協(xié)議實施的情況下增添新的屬性。
RADIUS是一種在網(wǎng)絡(luò)接入服務(wù)器(Network Access Server)和共享認證服務(wù)器間傳輸認證、授權(quán)和配置信息的協(xié)議。RADIUS使用UDP作為其傳輸協(xié)議。
1.2靜脈技術(shù)技術(shù)說明
靜脈特征是每個人唯一的特征,具有以下的特點:
1)高安全性,靜脈信息數(shù)身體內(nèi)部信息,難以被盜取,它不會像指紋那樣有殘留信息,而且每個人的靜脈信息難于雷同,常年不變。
2)高讓你整精度,手掌靜脈數(shù)多,復(fù)雜并相互交叉,保證搞認證精度。
3)高包容性,手掌是誰都可以隨時作為身份認證的部位,而且是非接觸認證,清潔衛(wèi)生。
1.3本系統(tǒng)的技術(shù)特點
1)基于IEEE802.1X協(xié)議的“網(wǎng)絡(luò)鏈路層”認證機制;
2)采用MS-CHAP v2協(xié)議的PEAP認證方式;
3)由Cisco ACS委托第三方的Radius進行安全認證;
4)最終的認證結(jié)果,由手掌靜脈生物識別認證決定;
5)有Cisco ACS管理網(wǎng)絡(luò)設(shè)備資源;
6)ACS與Radius之間通訊,須通過CA認證
具體的說,系統(tǒng)由申請者、Cisco ACS網(wǎng)絡(luò)設(shè)備資源管理平臺、Radius認證、服務(wù)器、手掌靜脈生物識別認證組成,基于IEEE802.1X協(xié)議的“網(wǎng)絡(luò)鏈路層”認證機制,是一種基于用戶靜脈生物特征和ID來進行交換機端口通訊的身份認證,稱為基于端口的訪問控制協(xié)議”。提供基于端口監(jiān)聽的網(wǎng)絡(luò)接入控制技術(shù),在網(wǎng)絡(luò)設(shè)備的物理接入層對接入設(shè)備進行認證和控制。根據(jù)用戶手掌靜脈生物特征,通過802.1X協(xié)議PEAP方式的MS-CHAP v2協(xié)議,當(dāng)Cisco ACS接收802.1X的EAP接入網(wǎng)認證請求,委托第三方的Radius(ACS與Radius之間須CA認證通過,才能進行通信)服務(wù)認證,并根據(jù)“手掌靜脈認證服務(wù)”認證結(jié)果,決定該端口是否打開,是否對Cisco交換機下發(fā)VLAN策略;對于非法用戶接入或者沒有用戶接入時,則該端口處于關(guān)閉狀態(tài)。接入認證通過之后,IP數(shù)據(jù)包在二層普通MAC幀上傳送,認證后的數(shù)據(jù)流和沒有認證的數(shù)據(jù)流完全一樣,這是由于認證行為僅在用戶接入時刻進行,認證通過后不再進行合法性檢查。當(dāng)用戶斷網(wǎng)后,如果需要再次連網(wǎng),則需要進行二次認證。
本系統(tǒng)使用MS-CHAP v2協(xié)議的PEAP方式,進行密碼、手掌靜脈生物識別認證。
1.4系統(tǒng)的802.1X的認證過程(PEAP方式)(注:AP為Cisco交換機)
1)創(chuàng)建一個連接后,AP發(fā)送一個EAP-Request/Identity消息給客戶端。
2)客戶端恢復(fù)一個EAP-Response/Identity消息,包含客戶端的標志。
3)AP把這個消息傳遞給Cisco ACS,ACS轉(zhuǎn)發(fā)給Radius服務(wù)器。從現(xiàn)在開始,邏輯通信就從Radius服務(wù)器到客戶端了,AP,AC,ACS是一個中介設(shè)備。
4)Radius服務(wù)器發(fā)送一個EAP-Request/Start PEAP消息給客戶端。
5)客戶端和Radius服務(wù)器發(fā)送一系列的TLS消息通過協(xié)商簡歷的隧道。Radius服務(wù)器發(fā)送一個整數(shù)鏈讓Cisco ACS認證。最后,Radius服務(wù)器已經(jīng)認證了Cisco ACS。兩端都決定使用的加密信息。在PEAP TLS隧道創(chuàng)建后,采用MS-CHAPV2認證。
6)Radius服務(wù)器發(fā)送一個EAP-Request/Identity消息。.
7)客戶端發(fā)送一個EAP-Response/Identity消息,消息包含用戶名。
8)Radius服務(wù)器發(fā)送4個EAP-Request/ MS-CHAP-V2挑戰(zhàn)消息,包含挑戰(zhàn)字符串。以便傳輸靜脈數(shù)據(jù)。
9)客戶端恢復(fù)4個EAP-Response/ MS-CHAP-V2恢復(fù)消息,包含對這個挑戰(zhàn)的應(yīng)答和4個自己的挑戰(zhàn)。發(fā)送靜脈數(shù)據(jù)。
10)向Palm Server請求靜脈認證。
11)向Palm Server響應(yīng)Radius服務(wù)器請求,并告知認證結(jié)果。
12)Radius服務(wù)器EAP-Request/ MS-CHAP-V2成功的消息,之處客戶端的回應(yīng)是正確的,并包含客戶端的挑戰(zhàn)字符串。
13)客戶端回應(yīng)一個EAP-Response/ MS-CHAP-V2的ACK消息,指示Radius服務(wù)器的回應(yīng)消息是正確的。
14)Radius服務(wù)器發(fā)送一個EAP-Success消息。
15)Cisco ACS接收到第三方Radius代理服務(wù)器,回應(yīng)的認證結(jié)果Radius包的EAP-Success消息,以此管理待接入的終端設(shè)備網(wǎng)絡(luò)資源。給交換機發(fā)送相應(yīng)的VLAN策略,決定是否開放相應(yīng)的網(wǎng)絡(luò)端口。
1.5系統(tǒng)認證過程時序圖(如圖1)
圖1為系統(tǒng)認證過程時序圖。
2系統(tǒng)架構(gòu)
2.1系統(tǒng)的總體結(jié)構(gòu)(如圖2)
圖2系統(tǒng)總體結(jié)構(gòu)圖
2.1.1客戶端
主要由用戶操作界面、802.1X通訊、靜脈數(shù)據(jù)采集等模塊組成。
1)用戶操作界面,提供了用戶進行操作的人性化操作界面;
2)802.1X通訊,主要功能是,封裝802.1X協(xié)議客戶端和服務(wù)端服務(wù),可發(fā)送和接收EAP包,已經(jīng)發(fā)送靜脈數(shù)據(jù);
3)“PALM驅(qū)動”用于驅(qū)動,手掌靜脈傳感器;
4)“PALM靜脈采集服務(wù)“主要功能是,通過驅(qū)動程序,控制靜脈數(shù)據(jù)采集器,讀取用戶的靜脈數(shù)據(jù)。并將靜脈數(shù)據(jù)按照一定格式進行打包,以便發(fā)送。
2.1.2思科交換機
網(wǎng)絡(luò)設(shè)備,可以進行底層的802.1X通訊,并根據(jù)一定的VLAN策略,進行網(wǎng)絡(luò)端口的控制。
2.1.3思科ACS
網(wǎng)絡(luò)設(shè)備資源管理平臺,并設(shè)置第三方的Radius服務(wù)認證。
2.1.4 Radius服務(wù)
Radius服務(wù)主要功能是,接收由Cisco ACS轉(zhuǎn)發(fā)過來的Radius數(shù)據(jù)包以及靜脈數(shù)據(jù),進行Radius服務(wù)接入認證,并接收靜脈數(shù)據(jù),申請“靜脈服務(wù)”進行靜脈生物識別認證,最后,根據(jù)靜脈生物識別認證結(jié)果(成功與否),向Cisco ACS發(fā)送Radius數(shù)據(jù)包,告知是否認證通過;由Cisco ACS決定該端口是否打開,是否對Cisco交換機下發(fā)VLAN策略。
2.1.5靜脈認證服務(wù)
靜脈認證服務(wù),由“管理系統(tǒng)”、“靜脈認證服務(wù)”等模塊組成。
管理系統(tǒng),主要功能是注冊用戶個人信息及用戶生物特征信息,以及用戶權(quán)限、用戶日志、用戶報表等功能。
靜脈認證服務(wù)主要功能是,接收Radius服務(wù)轉(zhuǎn)發(fā)過來的靜脈數(shù)據(jù),進行靜脈生物識別認證,并將認證結(jié)果,告知Radius服務(wù)器。
2.2系統(tǒng)體系結(jié)構(gòu)(如圖3)
靜脈采集設(shè)備連接到用戶使用的PC上,PC再通過網(wǎng)絡(luò)連接到思科交換機,思科交換機跟思科ACS等連接一起,并且由思科ACS進行統(tǒng)一的網(wǎng)絡(luò)管理,同時銀行的業(yè)務(wù)系統(tǒng)也連接到了這個網(wǎng)絡(luò)上面。思科ACS也跟RADUIS服務(wù)器通過網(wǎng)絡(luò)連接在一起,以便需要時,調(diào)用RADUIS服務(wù)器中的服務(wù)。靜脈數(shù)據(jù)認證服務(wù)器跟RADUIS連接,以便RADIUS調(diào)用器服務(wù),進行靜脈數(shù)據(jù)的認證。
3系統(tǒng)實現(xiàn)
客戶端:
初始界面大概如圖4所示。
用戶需要先輸入用戶名和密碼,然后把手掌放在靜脈數(shù)據(jù)采集器上,點擊“讀取靜脈數(shù)據(jù)”按鍵,如果讀取正確,給出相應(yīng)提示。當(dāng)輸入完用戶名和密碼,以及成功讀取了靜脈數(shù)據(jù)之后,就可以點擊“登錄”,開始進行認證了。
客戶端讀取靜脈數(shù)據(jù),是通過調(diào)用靜脈采集器廠家提供的驅(qū)動來實現(xiàn)的,比較簡單??蛻舳吮容^難的是802.1X通訊部分,系統(tǒng)使用了supplicant來實現(xiàn)。
首先需要對EAP通訊進行初始化,例如:
int init_eap(char *config, char *netid)
{
int auth = 0;
CString temp="";
eap_config = config;
eap_netid = netid;/*初始化認證類型*/
while (eap_auth_types[auth] != NO_EAP_AUTH)
{if ((*eap_auth_inits[auth++])(config, netid) != 0)
{temp.Format("不能初始化EAP類型: %s ", eap_auth_names[auth]);
WriteLog(temp);
temp.Format("如果還是用這種授權(quán)方式可能不能正常工作! "); WriteLog(temp);
}}
return 0;
}
建立連接后,交換機會發(fā)送EAP請求,客戶端就需要進行EAP響應(yīng),如下所示:
int eap_build_auth_response(u_char *in, int in_size, u_char *out, int *out_size)
{const int eapol_header_size = 5;
int auth=0;
u_char *temp_buf=NULL; u_char *payload = in + 9;
struct my_eapol_header *eapol_header = (struct my_eapol_header *)out;
struct my_eapol_packet *eapol_packet = (struct my_eapol_packet *)out;
int payload_size = in_size - 9; int temp_size;
//查找相應(yīng)的處理句柄
while ((eap_auth_types[auth] != get_authType()) && (eap_auth_types[auth] != NO_EAP_AUTH))
auth++;
if (eap_auth_types[auth] == NO_EAP_AUTH)
{return 0;
}
//檢查是否已經(jīng)認證過了
if (get_suppStatus() != AUTHORIZED)
{//取得密碼等信息
if ((eap_auth_setup[auth])() < 0)
{
return -1;
}
}
//組成回應(yīng)數(shù)據(jù)包
temp_buf = (u_char *)malloc(1500);
if ((* eap_auth_handlers[auth])(payload, payload_size, temp_buf, &temp_size) == -1)
{
return -1;}
eapol_header->eapol_version = 1;
eapol_header->eapol_type = EAPOL_PACKET;
eapol_header->eapol_length = htons(eapol_header_size+temp_size); //Make sure we have the correct byte order. eapol_packet->code = EAP_RESPONSE;
eapol_packet->identifier = get_receivedId();
eapol_packet->length = eapol_header->eapol_length;
eapol_packet->type = eap_auth_types[auth];
memcpy(&out[EAP_PAYLOAD_OFFSET], temp_buf, temp_size); free(temp_buf);
*out_size = EAP_PAYLOAD_OFFSET+temp_size; return 0;}
取得交換機發(fā)過來的數(shù)據(jù)后,需要對數(shù)據(jù)包進行解析處理,如下所示:
int eap_decode_packet(u_char *in)
{
struct my_eapol_packet * mypacket = (struct my_eapol_packet *)(in);
int retVal = 0;
CString temp="";
switch(mypacket->code)
{
case EAP_REQUEST: switch(mypacket->type){
case EAP_TYPE_ID:
retVal = 1;
break;
case EAP_TYPE_NOTIFY:
temp.Format("收到EAP通知 "); WriteLog(temp);break;
case EAP_TYPE_NAK:
default:
set_authType(mypacket->type);
retVal = 0;
}
break;
case EAP_RESPONSE:
temp.Format("收到EAP響應(yīng)包--錯誤 "); WriteLog(temp); retVal = 0; break;
case EAP_SUCCESS:
retVal = 3;
break;
case EAP_FAILURE:
retVal = 4;
break;
default:
temp.Format("未知EAP編碼類型 ");
WriteLog(temp);}
return retVal;
}
RADIUS我們使用的是freeradius,通過一定設(shè)置、修改,使思科ACS能調(diào)用其服務(wù),而且在調(diào)用前,進行相應(yīng)的CA認證。同時RADIUS服務(wù)也能調(diào)用靜脈數(shù)據(jù)認證服務(wù)。
靜脈數(shù)據(jù)認證服務(wù),使用SQL SERVER2005來存儲每個用戶的用戶名、密碼、靜脈數(shù)據(jù)、權(quán)限等數(shù)據(jù)。這里的程序功能主要就是對用戶名、密碼、靜脈數(shù)據(jù)等,進行對比,并根據(jù)用戶的權(quán)限設(shè)置,把相應(yīng)結(jié)果返回給調(diào)用者。
4結(jié)束語
本系統(tǒng)已經(jīng)上線根據(jù)用戶的反映,系統(tǒng)運行穩(wěn)定,效果很好。起到了預(yù)期的安全認證作用。大大增加了用戶的內(nèi)部金融業(yè)務(wù)系統(tǒng)的安全性。
參考文獻:
[1] National Institute of Standards and Technology.Advanced Encryption Standard (AES).Federal Information Processing Standards Publica tion 197[S].2001.
[2] Wayman J L.Fundamentals of biometric authentication technologies[J].Int. J. Image Graph,2001,1(1): 93-113.
[3] IETF RFC 2058-Remote Authentication Dial In User Service(Radius) [S].January 1997.
[4] IETF RFC 2059-Radius Accounting[S].January 1997.
[5] Rigney C,Willens S,Rubens A,W Simpson.Remote Authentication Dial In User Service Accounting(Radius Accounting). RFC2886,June 2000.