專利名稱:一種認證方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡通信技術(shù)領(lǐng)域,尤其涉及一種認證方法、裝置和系統(tǒng)。
背景技術(shù):
目前隨著網(wǎng)絡通信技術(shù)的發(fā)展,對用戶身份的認證方式也越來越多;其中,針對于網(wǎng)絡的認證方式,尤其是分布式網(wǎng)絡環(huán)境下的用戶身份認證和資源訪問認證通常采用 Kerberos協(xié)議進行認證。常見的Kerberos認證系統(tǒng)有三個參與者客戶端(Client)、目標服務器(Server) 和密匙分發(fā)中心(KDC,Key Distribution Center),其基本原理為用戶(客戶端)若要訪問服務器上的服務,首先必須通過KDC進行身份驗證(Authentication),并申請針對該服務的票證(Ticket Request);在獲得KDC授予的服務票證之后,將該票證提交給服務器以申請服務(Service Request);最后,服務器驗證票證的合法性,決定是否向其提供服務。然而,在上述認證過程中,部分報文非常容易被攻擊者攻擊并重放,以騙取相關(guān)用戶和服務的憑證信息。而為了防止這種重放攻擊,目前的機制是在Kerberos認證過程中, 在用戶的請求報文中加入時間戳,并設置時間窗(例如5min),如果服務器收到用戶報文的時間戳落在時間窗里,則認為合法報文,否則認為是攻擊者重放的歷史報文。但是,一方面, 為了保證時間戳生效,使用Kerberos認證的全網(wǎng)客戶端和服務器就要保持時間同步,但在分布式網(wǎng)絡環(huán)境中,時鐘同步的實現(xiàn)并非易事,代價較大;另一方面,一旦時間系統(tǒng)被攻破, 則Kerberos防重放攻擊的機制也會隨之瓦解。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種認證方法、裝置和系統(tǒng),能夠防止認證過程中的重放攻擊, 并能減少通信消耗,提高認證效率。根據(jù)本發(fā)明實施例的一個方面,本發(fā)明實施例提供了一種認證方法,包括向密匙分發(fā)中心KDC發(fā)送包含第一隨機數(shù)的認證服務請求;接收所述KDC判斷所述認證服務請求合法后返回的認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;向KDC發(fā)送包含第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;接收所述KDC判斷所述票證授權(quán)服務請求合法后返回的票證授權(quán)服務響應消息, 所述票證授權(quán)服務響應消息中包含有所述第二隨機數(shù)和服務票證;向目標服務器發(fā)送包含所述第一隨機數(shù)和所述服務票證的應用服務請求;接收所述目標服務器判斷所述應用服務請求合法后返回的應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);向目標服務器發(fā)送包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;
接收所述目標服務器判斷應用服務響應消息合法后發(fā)送的認證成功的應用服務響應消息。根據(jù)本發(fā)明實施例的另一個方面,本發(fā)明實施例又提供了一種認證方法,包括接收客戶端發(fā)送的包含第一隨機數(shù)的認證服務請求;當判斷所述認證服務請求合法時,向所述客戶端返回認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;接收所述客戶端發(fā)送的包含有第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;當判斷所述票證授權(quán)服務請求合法時,向所述客戶端返回包含有所述第二隨機數(shù)和服務票證的票證授權(quán)服務響應消息;接收客戶端發(fā)送的包含有第一隨機數(shù)和服務票證的應用服務請求;當判斷所述應用服務請求合法時,向所述客戶端返回應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);接收所述客戶端發(fā)送的包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;當判斷所述應用服務響應消息合法時,向所述客戶端發(fā)送認證成功的應用服務響應消息。根據(jù)本發(fā)明實施例的另一個方面,本發(fā)明實施例又提供了一種客戶端,包括第一處理單元,用于向KDC發(fā)送包含第一隨機數(shù)的認證服務請求;接收所述KDC判斷所述認證服務請求合法后返回的認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;第二處理單元,用于向KDC發(fā)送包含第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;接收所述KDC判斷所述票證授權(quán)服務請求合法后返回的票證授權(quán)服務響應消息,所述票證授權(quán)服務響應消息中包含有所述第二隨機數(shù)和服務票證;第三處理單元,用于向目標服務器發(fā)送包含所述第一隨機數(shù)和所述服務票證的應用服務請求;接收所述目標服務器判斷所述應用服務請求合法后返回的應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);第四處理單元,用于向目標服務器發(fā)送包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;接收所述目標服務器判斷應用服務響應消息合法后發(fā)送的認證成功的應用服務響應消息。根據(jù)本發(fā)明實施例的另一個方面,本發(fā)明實施例又提供了一種認證裝置,包括認證服務模塊AS、票證授權(quán)服務模塊TGS、服務端認證服務模塊SAS和服務提供模塊;其中,認證服務模塊AS,用于接收客戶端發(fā)送的包含第一隨機數(shù)的認證服務請求后,當判斷所述認證服務請求合法時,向所述客戶端返回認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;票證授權(quán)服務模塊TGS,用于接收所述客戶端發(fā)送的包含有第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;并當判斷所述票證授權(quán)服務請求合法時,向所述客戶端返回包含有所述第二隨機數(shù)和服務票證的票證授權(quán)服務響應消息;服務端認證服務模塊SAS,用于接收客戶端發(fā)送的包含有第一隨機數(shù)和服務票證的應用服務請求后,當判斷所述應用服務請求合法時,向所述客戶端返回應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);所述服務提供模塊用于接收所述客戶端發(fā)送的包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;當判斷所述應用服務響應消息合法時,向所述客戶端發(fā)送認證成功的應用服務響應消息。根據(jù)本發(fā)明實施例的另一個方面,本發(fā)明實施例又提供了一種認證系統(tǒng),包括如上所述的客戶端和認證裝置。可以看出,采用本發(fā)明實施例的方法、裝置和系統(tǒng),在認證過程中,采用隨機生成的隨機數(shù)在每次進行認證申請票證時充當序列號使用,通過在信息報文的交互過程中采用隨機數(shù)與利用該隨機數(shù)進行防偽映射后產(chǎn)生的序列號的對應關(guān)系來進行合法性驗證,以此來消除現(xiàn)有的認證過程中對于時鐘同步的要求,減少了認證步驟的通信消耗,提高了認證效率,同時利用充當序列號的隨機數(shù)也可實現(xiàn)防止重放攻擊的目的。
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例提供的一種認證方法流程示意圖;圖2是本發(fā)明實施例提供的另一種認證方法流程示意圖;圖3是本發(fā)明實施例提供的又一種認證方法流程示意圖;圖4是本發(fā)明實施例提供的一種認證裝置結(jié)構(gòu)示意框圖;圖5是本發(fā)明實施例提供的另一種認證裝置結(jié)構(gòu)示意框圖;圖6是本發(fā)明實施例提供的認證系統(tǒng)結(jié)構(gòu)示意框圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。在本發(fā)明實施例中,接收端的和發(fā)送端是指接收報文或發(fā)送報文的網(wǎng)絡設備,在不同的信息交互過程中,同樣的網(wǎng)絡設備可能是在一過程中是接收端而在另一過程中是發(fā)送端,例如在Kerberos協(xié)議認證過程中,客戶端即是發(fā)送端,也是接收端;具體本文不再贅述。為了便于本領(lǐng)域技術(shù)人員更好的理解,下面結(jié)合附圖和具體實施例進行詳細說明,以下皆以Kerberos協(xié)議認證過程為例進行說明。本發(fā)明實施例1提供了一種認證方法,如圖1所示,該方法將從客戶端側(cè)對認證過
7程進行描述,該方法包括步驟101 向KDC發(fā)送包含第一隨機數(shù)的認證服務請求,并接收所述KDC判斷所述認證服務請求合法后返回的包含第二隨機數(shù)和授權(quán)票證的認證服務響應消息;步驟102 通過對所述第二隨機數(shù)進行防偽映射生成第一序列號后,向KDC發(fā)送包含所述第一序列號和第一隨機數(shù)的票證授權(quán)服務請求;接收所述KDC判斷所述認證服務請求合法后返回的包含第二隨機數(shù)和服務票證的票證授權(quán)服務響應消息;其中,所述第一序列號可以通過以下方式生成,但不局限于此S1021、通過對接收到的所述認證服務響應消息進行解密獲得所述第二隨機數(shù);S1022、對所述第二隨機數(shù)進行防偽映射獲得所述第一序列號。步驟103 向目標服務器發(fā)送包含第一隨機數(shù)和所述服務票證的應用服務請求, 并接收所述目標服務器返回的包含第三隨機數(shù)的應用服務質(zhì)詢消息;步驟104 通過對所述第三隨機數(shù)進行防偽映射生成第二序列號后,向目標服務器發(fā)送包含該第二序列號的應用服務響應消息,并接收所述目標服務器發(fā)送的表示是否允許訪問的應用服務響應消息;其中,所述第二序列號可以通過下述方式生成,但不局限于此S1041、通過對接收到的所述應用服務質(zhì)詢消息進行解密獲得所述第三隨機數(shù);S1042、對所述第三隨機數(shù)進行防偽映射獲得所述第二序列號。從上述實施例的方案可以看出,在認證過程中,采用隨機生成的隨機數(shù)在每次進行認證申請票證時充當序列號使用,通過在信息報文的收發(fā)過程中采用隨機數(shù)與利用該隨機數(shù)進行防偽映射后產(chǎn)生的序列號的對應關(guān)系來進行合法性驗證,以此來消除認證過程中對于時鐘同步的要求,減少了認證步驟的通信消耗,提高了認證效率,同時利用充當序列號的隨機數(shù)也可實現(xiàn)防止重放攻擊的目的。本發(fā)明實施例2提供了一種認證方法,如圖2所示,該方法將從網(wǎng)絡側(cè)對認證過程進行描述,該方法包括步驟201 接收客戶端發(fā)送的包含第一隨機數(shù)的認證服務請求;當判斷所述認證服務請求合法時,向所述客戶端返回認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;其中,可通過以下方式判斷所述認證服務請求是否合法,但并不局限于此S2011、根據(jù)所述認證服務請求查詢用戶會話信息數(shù)據(jù)庫,判斷是否存在與利用所述第一隨機數(shù)認證相同的認證會話的四元組信息;S2012、當不存在與利用所述第一隨機數(shù)認證相同的認證會話的四元組信息時,確定所述認證服務請求合法。步驟202 接收所述客戶端發(fā)送的包含有第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;當判斷所述票證授權(quán)服務請求合法時,向所述客戶端返回包含有所述第二隨機數(shù)和服務票證的票證授權(quán)服務響應消息;其中,可通過下述方式判斷當前所述票證授權(quán)服務請求是否合法,同樣不限于此S2021、通過對所述票證授權(quán)服務請求進行解密得到所述第一序列號;S2022、當所述第一序列號與本地的第二隨機數(shù)存在映射關(guān)系時,確定所述票證授權(quán)服務請求合法。步驟203 接收客戶端發(fā)送的包含有第一隨機數(shù)和服務票證的應用服務請求;當判斷所述應用服務請求合法時,向所述客戶端返回應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);其中,可通過但不限于以下方式判斷所述應用服務請求是否合法S2031、對所述應用服務請求報文進行解密得到第一隨機數(shù);S2032、根據(jù)所述第一隨機數(shù)查詢用戶會話信息數(shù)據(jù)庫,所述用戶會話信息數(shù)據(jù)庫通常保存了認證會話四元組等信息;當所述用戶會話信息數(shù)據(jù)庫中不存在與利用所述第一隨機數(shù)認證相同的認證會話四元組信息時,確定所述應用服務請求報文合法。其中,所述用戶會話信息數(shù)據(jù)庫設置于KDC側(cè),用于存放認證會話四元組等信息; 所述認證會話四元組表明此次會話的唯一性,例如可以是諸如Ic,s, rc, rs}等格式信息, 表明此次會話是客戶端(Client)與目標服務器(Server)之間進行的,其中c為客戶端 (Client)、s為目標服務器(krVer)、rc為客戶端(Client)產(chǎn)生的隨機數(shù)、rs為目標服務器(Server)產(chǎn)生的隨機數(shù),依此類推,本文在此不再贅述。步驟204 接收所述客戶端發(fā)送的包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;當判斷所述應用服務響應消息合法時,向所述客戶端發(fā)送認證成功的應用服務響應消息;值得注意的是,可通過但不限于下述方式判斷所述應用服務響應消息是否合法S2041、通過對所述應用服務響應消息進行解密獲得第二序列號;S2042、當所述第二序列號與本地的第三隨機數(shù)存在映射關(guān)系時,確定所述應用服務響應消息合法。采用此種認證方法,在通過生成認證會話隨機數(shù)序列號,并利用防偽映射的方法, 能夠確保被竊取的報文不能被重放,消除可認證過程中對于時鐘同步的要求,減少了認證步驟的通信消耗,提高了認證效率。下面以上述實施例的方法步驟在Kerberos認證過程中的具體實現(xiàn)為例,對上述實施例的方法進行詳細說明。如圖3所示,在Kerberos認證過程中防止重放攻擊的方法可以包括以下步驟步驟301 當客戶端請求認證時,所述客戶端向KDC的認證服務模塊(AS, Authentication Services)發(fā)送包含隨機數(shù)rc的Kerberos認證服務請求報文(KRB_AS_ REQ),以請求訪問服務資源的票證授權(quán)票證(TGT,Ticket-Granting Ticket);其中,該隨機數(shù)rc可以由客戶端(Client)預先產(chǎn)生,并在系統(tǒng)中與所述KDC和目標服務器共享。步驟302 所述KDC中的AS接收到所述客戶端發(fā)送的Kerberos認證服務請求報文KRB_AS_REQ后,當判斷所述認證服務請求報文KRB_AS_REQ合法后,向所述客戶端返回認證服務響應消息(KRB_AS_REP),所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證 TGT ;具體的,所述KDC可以通過下述方式判斷當前請求報文是否為合法報文,但不局限于此1)查詢用戶會話信息數(shù)據(jù)庫,判斷是否存在與隨機數(shù)rc相同的認證會話四元組;
其中,所述用戶會話信息數(shù)據(jù)庫設置于KDC側(cè),用于存放認證會話四元組等信息; 所述認證會話四元組表明此次會話的唯一性,例如可以是諸如Ic,S, rc, rs}等格式信息, 表明此次會話是客戶端(Client)與目標服務器(Server)之間進行的,其中c為客戶端 (Client)、s為目標服務器(krVer)、rc為客戶端(Client)產(chǎn)生的隨機數(shù)、rs為目標服務器(Server)產(chǎn)生的隨機數(shù),依此類推,本文在此不再贅述。2)當所述用戶會話信息數(shù)據(jù)庫中存在與隨機數(shù)rc相同的認證會話四元組時,則認為所述認證服務請求報文KRB_AS_REQ不合法,為重放攻擊報文;否則,認為所述認證服務請求報文合法;AS根據(jù)判斷的結(jié)果進行后續(xù)處理,具體包括如果是重放攻擊報文,則直接向客戶端返回錯誤信息;如果是合法報文,則生成第二隨機數(shù)rs,并以第二隨機數(shù)rs構(gòu)建 Kerberos認證服務回應報文(KRB_AS_REP),向客戶端提供其所需的票證TGT。步驟303 向KDC發(fā)送包含第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求 KRB_TGS_REQ,所述第一序列號根據(jù)所述第二隨機數(shù)生成;具體的,當所述客戶端根據(jù)接收到的所述KDC的AS模塊返回的Kerberos認證服務回應報文KRB_AS_REP后,可以通過下述方式來生成第一序列號1)通過對所述KRB_AS_REP報文進行解密得到隨機數(shù)rs ;2)對該隨機數(shù)rs進行防偽映射,并保存起來作為第一序列號rs’ = f (rs)。其中4為防偽映射函數(shù),其可以采用形如以下的函數(shù)1^+1,1^-1,2打8+1...等, 但不局限于此。所述客戶端將產(chǎn)生的第一序列號rs’ = f (rs)與隨機數(shù)rc作為報文的一個字段構(gòu)建Kerberos授權(quán)票證服務請求報文(KRB_TGS_REQ),并發(fā)送給KDC的票證授予服務器 (TGS, Ticket-Granting Server),以申請服務票證(service ticket)。需要注意的是,如果用戶申請多個服務,則此處的防偽映射會按照f的不同而進行不同變化,而無須重新發(fā)起步驟301和302中的報文;步驟304 所述KDC判斷所述票證授權(quán)服務請求合法后,向所述客戶端返回票證授權(quán)服務響應消息KRB_TGS_REP,所述票證授權(quán)服務響應消息中包含有所述第二隨機數(shù)和服務票證;具體的,當所述KDC的TGS接收到客戶端發(fā)送的KRB_TGS_REQ報文之后,可以通過下述方式判斷當前Kerberos票證授予服務請求是否合法,但不局限于此1)通過對所述KRB_TGS_REQ報文進行解密得到序列號rs,和TGT ;2)判斷所述序列號rs’與本地rs是否存在映射關(guān)系rs’ = f (rs),如果是則認為當前請求合法,否則認為不合法,是重放攻擊報文。所述TGS根據(jù)判斷的結(jié)果進行相應處理,具體包括如果是重放攻擊報文,則KDC 直接向客戶端返回錯誤信息;如果不是重放攻擊,則從所述TGT中提取出用戶的身份標識信息,并以第二隨機數(shù)rs和服務票證(service ticket)構(gòu)建Kerberos票證授權(quán)服務回應報文(KRB_TGS_REP)發(fā)送給所述客戶端,以向客戶端提供其訪問服務資源的票證TGT。值得注意的是,由于TGS和AS皆為KDC內(nèi)部的模塊,其二者之間可以進行數(shù)據(jù)信息的實時共享,因而在步驟302中當AS隨機產(chǎn)生隨機數(shù)rs時,所述TGS即可獲知該隨機數(shù), 所以在該步驟中當解密得到所述序列號rs’后,所述TGS即可判斷與本地rs是否存在映射關(guān)系rs’ =f(rs),具體本文不再贅述。步驟305 所述客戶端根據(jù)接收的所述票證授權(quán)服務響應消息中的服務票證 (service ticket),向目標服務器發(fā)送包含所述第一隨機數(shù)和所述服務票證的應用服務請求;具體的,當所述客戶端接收到所述票證授權(quán)服務響應消息,獲得服務票證 (service ticket)后,利用該服務票證和第一隨機數(shù)rc構(gòu)建Kerberos應用服務請求報文 (KRB_AP_REQ),并將所述應用服務請求報文(KRB_AP_REQ)發(fā)送給目標服務器中的服務端認證服務模塊(SAQ,請求訪問所述服務資源;步驟306 所述目標服務器判斷所述應用服務請求合法后,向所述客戶端返回應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);具體的,當所述目標服務器中的服務端認證服務模塊SAS接收到所述客戶端發(fā)送的Kerberos應用服務請求報文KRB_AP_REQ后,可以通過下述方式判斷當前Kerberos應用服務請求報文是否為合法報文,但不局限于此 1)通過對所述KRB_AP_REQ報文進行解密得到第一隨機數(shù)rc ;2)查詢用戶會話信息數(shù)據(jù)庫,判斷是否存在與第一隨機數(shù)rc相同認證會話四元組3)如果存在,則認為該KRB_AP_REQ報文為重放攻擊報文;否則,認為該KRB_AP_ REQ報文為合法;然后SAS根據(jù)判斷的結(jié)果進行后續(xù)處理,具體包括如果是重放攻擊報文,則SAS 直接向客戶端返回錯誤信息;如果不是重放攻擊報文,則SAS生成第三隨機數(shù)rv,并以第三隨機數(shù)rv構(gòu)建Kerberos應用服務質(zhì)詢報文(KRB_SAS_REQ發(fā)送給所述客戶端,以向客戶端發(fā)起應用服務質(zhì)詢。步驟307 所述客戶端向目標服務器發(fā)送包含第二序列號的應用服務響應消息, 所述第二序列號根據(jù)所述第三隨機數(shù)生成;具體的,當所述客戶端接收到所述SAS模塊的Kerberos應用服務質(zhì)詢后,通過下述方式來生成第二序列號A、通過對所述KRB_SAS_RES報文進行解密得到第三隨機數(shù)rv ;B、對第三隨機數(shù)rv進行防偽映射,并保存起來作為序列號rv’ = f (rv)。其中4為防偽映射函數(shù),其可以采用形如以下的函數(shù)1^+1,1^-1,2打8+1...等, 但不局限于此;然后所述客戶端將產(chǎn)生的序列號rv’= f (rv)作為報文的一個字段構(gòu)建Kerberos 應用服務響應報文(KRB_AP_REP),并將所述應用服務響應報文(KRB_AP_REP)發(fā)送給目標服務器的服務提供模塊(krvice),以回應所述SAS發(fā)起的質(zhì)詢;步驟308 當判斷所述應用服務響應消息合法時,所述目標服務器向所述客戶端發(fā)送認證成功的應用服務響應消息。具體的,當所述目標服務器的Service模塊接收到所述客戶端的Kerberos應用服務響應報文后,通過對所述應用服務響應報文進行解密得到第二序列號rv’,判斷所述第二序列號rv’與本地rv是否存在映射關(guān)系rv’ = f (rv),如果存在映射關(guān)系,則認為該應用服務響應報文合法,否則認為該應用服務響應報文是重放攻擊報文。進一步的,當目標服務器判斷該應用服務響應報文是重放攻擊報文時,則直接向客戶端返回錯誤信息;當目標服務器判斷該應用服務響應報文不是重放攻擊報文時,則可允許客戶端訪問,為其提供服務資源,并通過Kerberos應用服務響應報文(KRB_AP_REP)通知所述客戶端。除此之外,受Kerberos協(xié)議報文長度的制約,上述實施例的方法在具體實施時, 產(chǎn)生的各種隨機數(shù)的長度通常為32bit,當然本發(fā)明實施例并不局限于此,在具體實施時也可根據(jù)實際情況進行調(diào)整,不再贅述。尤其需要注意的是,在本發(fā)明上述實施例的方法中,對于判斷包含隨機數(shù)的請求報文是否為重放攻擊可以通過多種方式進行判斷,只要是利用所述隨機數(shù)進行判斷即可, 而上述幾種判斷方式僅僅是其中優(yōu)選的方式而已,并不局限于此;同時,對于各種序列號的生成也可采用多種方式實現(xiàn),只要是利用隨機數(shù)生成即可,上述的幾種生成方式僅僅是其中的有選方式而已,具體的生成方式并不局限于此??梢钥闯?,在Kerberos認證過程中,利用該隨機數(shù)來替代現(xiàn)有標準Kerberos協(xié)議報文中的時間戳,即采用隨機生成的隨機數(shù)在每次進行認證申請票證時充當序列號使用, 在信息報文的交互過程中采用隨機數(shù)與利用該隨機數(shù)進行防偽映射后產(chǎn)生的序列號的對應關(guān)系來進行合法性驗證,從而可使得該防止重放攻擊的方法不受限于時間同步的要求, 因而可以更好的實現(xiàn)防止重放攻擊。例如,當隨機產(chǎn)生隨機數(shù)rc時,利用rc替代KRB_AS_ REQ報文中的時間戳;再例如,當隨機產(chǎn)生隨機數(shù)rs時,利用rs替代KRB_AS_REP報文中的時間戳;其它隨機數(shù)替代報文中的時間戳的方式與此類似,在此不再贅述;同時,也減少了認證過程中時間同步的通信消耗,提高了認證效率。本發(fā)明實施例4又提出了一種客戶端,如圖4所示,所述客戶端包括第一處理單元401、第二處理單元402、第三處理單元403和第四處理單元404 ;其中,所述第一處理單元401,用于向KDC發(fā)送包含第一隨機數(shù)的認證服務請求;接收所述KDC判斷所述認證服務請求合法后返回的認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;所述第二處理單元402,用于向KDC發(fā)送包含第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;接收所述KDC判斷所述票證授權(quán)服務請求合法后返回的票證授權(quán)服務響應消息,所述票證授權(quán)服務響應消息中包含有所述第二隨機數(shù)和服務票證;所述第三處理單元403,用于向目標服務器發(fā)送包含所述第一隨機數(shù)和所述服務票證的應用服務請求;接收所述目標服務器判斷所述應用服務請求合法后返回的應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);所述第四處理單元404,用于向目標服務器發(fā)送包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;接收所述目標服務器判斷應用服務響應消息合法后發(fā)送的認證成功的應用服務響應消息。此外,所述第二處理單元可包括通過對接收到的所述認證服務響應消息進行解密獲得所述第二隨機數(shù)的第一解密模塊,以及對所述第二隨機數(shù)進行防偽映射獲得所述第一序列號的第一生成模塊。除此之外,所述第四處理單元可包括通過對接收到的所述應用服務質(zhì)詢消息進行解密獲得所述第三隨機數(shù)的第二解密模塊,以及對所述第三隨機數(shù)進行防偽映射獲得所述第二序列號的第二生成模塊。本發(fā)明實施例又提出了一種認證裝置,如圖5所示,該認證裝置包括認證服務模塊AS 531、票證授權(quán)服務模塊TGS 532、服務端認證服務模塊SAS 521和服務提供模塊522 ; 其中,所述AS 532用于接收客戶端發(fā)送的包含第一隨機數(shù)的認證服務請求后,當判斷所述認證服務請求合法時,向所述客戶端返回認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;所述TGS 532用于接收所述客戶端發(fā)送的包含有第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;并當判斷所述票證授權(quán)服務請求合法時,向所述客戶端返回包含有所述第二隨機數(shù)和服務票證的票證授權(quán)服務響應消息;所述SAS 521用于接收客戶端發(fā)送的包含有第一隨機數(shù)和服務票證的應用服務請求后,當判斷所述應用服務請求合法時,向所述客戶端返回應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);所述服務提供模塊522用于接收所述客戶端發(fā)送的包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;當判斷所述應用服務響應消息合法時,向所述客戶端發(fā)送認證成功的應用服務響應消息。具體的,所述AS可以包括第一查詢模塊,用于根據(jù)所述認證服務請求查詢用戶會話信息數(shù)據(jù)庫;第一確定模塊,用于所述用戶會話信息數(shù)據(jù)庫中當不存在與利用所述第一隨機數(shù)認證相同的認證會話的四元組信息時,確定所述認證服務請求合法。此外,所述TGS可包括第一獲取模塊,用于通過對所述票證授權(quán)服務請求進行解密得到所述第一序列號;第一映射模塊,用于當所述第一序列號與的第二隨機數(shù)存在映射關(guān)系時,確定所述票證授權(quán)服務請求合法。優(yōu)選的,所述SAS可包括第二獲取模塊,用于對所述應用服務請求報文進行解密得到第一隨機數(shù);第二查詢模塊,用于根據(jù)所述第一隨機數(shù)查詢用戶會話信息數(shù)據(jù)庫;第二確定模塊,用于當所述用戶會話信息數(shù)據(jù)庫中不存在與利用所述第一隨機數(shù)認證相同的認證會話四元組信息時,確定所述應用服務請求報文合法。值得注意的是,基于上述認證裝置的各種結(jié)構(gòu),所述服務提供模塊還可包括第三獲取模塊,用于通過對所述應用服務響應消息進行解密獲得第二序列號;第二映射模塊,用于當所述第二序列號與的第三隨機數(shù)存在映射關(guān)系時,確定所述應用服務響應消息合法。本發(fā)明實施例6又提出一種Kerberos認證系統(tǒng),如圖6所示,該系統(tǒng)包括客戶端 510、目標服務器520和KDC530 ;所述目標服務器520還包括服務端認證服務模塊SAS521 ; 其中,所述客戶端分別與目標服務器中的SAS521和服務提供模塊522、以及KDC530中的認證服務模塊AS531和票證授權(quán)服務模塊TGS532相連;具體的,所述客戶端510用于生成第一隨機數(shù),并向所述AS531發(fā)送包含第一隨機數(shù)的認證服務請求;所述AS531用于判斷所述認證服務請求是否合法,如果是,則生成第二隨機數(shù),并利用該第二隨機數(shù)與授權(quán)票證構(gòu)建認證服務響應報文發(fā)送給客戶端510 ;所述客戶端510用于利用所述第二隨機數(shù)生成第一序列號,并向所述TGS532發(fā)送包含第一序列號和第一隨機數(shù)的票證授權(quán)服務請求;所述TGS532用于判斷所述票證授權(quán)服務請求是否合法,如果是,則向客戶端510 返回包含第二隨機數(shù)和服務票證的票證授權(quán)服務回復;所述客戶端510用于向SAS521發(fā)送包含第一隨機數(shù)和服務票證的應用服務請求;所述SAS521用于判斷所述應用服務請求是否合法,如果是,則生成第三隨機數(shù)并向所述客戶端510發(fā)起應用服務質(zhì)詢;所述客戶端510用于利用所述第三隨機數(shù)生成第二序列號,并向服務提供模塊 522發(fā)送包含該第二序列號的應用服務回復;所述服務提供模塊522用于判斷當前應用服務回復是否合法,如果是,則向所述客戶端510發(fā)送允許訪問服務的應用服務響應。具體的,所述AS531還可包括第一查詢單元和第一判斷單元;其中,所述第一查詢單元用于查詢用戶會話信息數(shù)據(jù)庫的認證會話四元組,并將查詢結(jié)果通知給第一判斷單元;所述第一判斷單元用于接收所述第一查詢單元的通知,并當所述數(shù)據(jù)庫中存在與利用第一隨機數(shù)相同的認證會話四元組時,確定當前請求為重放攻擊,否則確定當前請求合法。此外,所述TGS還可包括第一解密單元和第一映射單元;其中,所述第一解密單元用于通過對所述票證授權(quán)服務請求報文進行解密得到第一序列號,并通知所述第一映射單元;所述第一映射單元用于接收所述通知,并當所述第一序列號與本地的第二隨機數(shù)存在映射關(guān)系時,認定當前請求合法,否則認定為重放攻擊。另外,所述SAS還可包括第二解密單元、第二查詢單元和第二判斷單元;其中,所述第二解密單元用于通過對應用服務請求報文進行解密得到隨機數(shù)rc ;所述第二查詢單元用于查詢用戶會話信息數(shù)據(jù)庫的認證會話四元組,并將查詢結(jié)果通知給第二判斷單元; 所述第二判斷單元用于接收所述第二查詢單元的通知,并當所述數(shù)據(jù)庫中存在與利用第一隨機數(shù)相同的認證會話四元組時,確定當前請求為重放攻擊,否則確定當前請求合法。除此之外,所述服務提供模塊還可包括第三解密單元和第二映射單元;其中,所述第三解密單元用于通過對所述應用服務響應報文進行解密得到第二序列號,并通知給所述第二映射單元;所述第二映射單元用于接收所述通知,并當所述第二序列號與本地第三隨機數(shù)存在映射關(guān)系時,認定當前回復合法,否則認定為重放攻擊?;谏鲜觯隹蛻舳诉€可包括第四解密單元和第三映射單元;其中,所述第四解密單元用于通過對認證服務響應報文解密得到第一隨機數(shù)、通過對應用服務質(zhì)詢報文解密得到第三隨機數(shù),并將解密結(jié)果通知第三映射單元;所述第三映射單元用于接收通知結(jié)果,并對所述第一隨機數(shù)或第三隨機數(shù)進行防偽映射后保存起來分別作為第一序列號或第二序列號。值得注意的是,在本發(fā)明上述各實施例中,所述服務端認證服務模塊(SAQ是相對于現(xiàn)有標準Kerberos協(xié)議認證系統(tǒng)新增加的模塊,其主要是通過與客戶端的信息交互, 并利用所述信息交互過程中的隨機數(shù)使目標服務器可以驗證客戶端的身份,進而防止請求服務過程中的防重放攻擊;同時,由于所述SAS模塊和服務提供模塊皆屬于所述目標服務器的內(nèi)部模塊,其二者之間的數(shù)據(jù)信息處于實時共享狀態(tài),因而當SAS隨機產(chǎn)生隨機數(shù)rv 時,所述服務提供模塊即可獲知該隨機數(shù),所以在該步驟中當解密得到所述序列號rv’后,所述TGS即可判斷與本地rv是否存在映射關(guān)系rv’ = f (rv),具體本文不再贅述。專業(yè)人員還可以進一步應能意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。 這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應用和設計約束條件。 專業(yè)技術(shù)人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明實施例的范圍。結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明實施例。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明實施例的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明實施例將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。以上所述僅為本發(fā)明實施例的較佳實施例而已,并不用以限制本發(fā)明實施例,凡在本發(fā)明實施例的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明實施例的保護范圍之內(nèi)。
1權(quán)利要求
1.一種認證方法,其特征在于,包括向密匙分發(fā)中心KDC發(fā)送包含第一隨機數(shù)的認證服務請求;接收所述KDC判斷所述認證服務請求合法后返回的認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;向KDC發(fā)送包含第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;接收所述KDC判斷所述票證授權(quán)服務請求合法后返回的票證授權(quán)服務響應消息,所述票證授權(quán)服務響應消息中包含有所述第二隨機數(shù)和服務票證;向目標服務器發(fā)送包含所述第一隨機數(shù)和所述服務票證的應用服務請求; 接收所述目標服務器判斷所述應用服務請求合法后返回的應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);向目標服務器發(fā)送包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;接收所述目標服務器判斷應用服務響應消息合法后發(fā)送的認證成功的應用服務響應消息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一序列號的生成方式包括 通過對接收到的所述認證服務響應消息進行解密獲得所述第二隨機數(shù); 對所述第二隨機數(shù)進行防偽映射獲得所述第一序列號。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第二序列號的生成方式包括 通過對接收到的所述應用服務質(zhì)詢消息進行解密獲得所述第三隨機數(shù); 對所述第三隨機數(shù)進行防偽映射獲得所述第二序列號。
4.一種認證方法,其特征在于,包括接收客戶端發(fā)送的包含第一隨機數(shù)的認證服務請求;當判斷所述認證服務請求合法時,向所述客戶端返回認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;接收所述客戶端發(fā)送的包含有第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;當判斷所述票證授權(quán)服務請求合法時,向所述客戶端返回包含有所述第二隨機數(shù)和服務票證的票證授權(quán)服務響應消息;接收客戶端發(fā)送的包含有第一隨機數(shù)和服務票證的應用服務請求; 當判斷所述應用服務請求合法時,向所述客戶端返回應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);接收所述客戶端發(fā)送的包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;當判斷所述應用服務響應消息合法時,向所述客戶端發(fā)送認證成功的應用服務響應消肩、ο
5.根據(jù)權(quán)利要求4所述的認證方法,其特征在于,所述判斷所述認證服務請求合法包括根據(jù)所述認證服務請求查詢用戶會話信息數(shù)據(jù)庫,判斷是否存在與利用所述第一隨機數(shù)認證相同的認證會話的四元組信息;當不存在與利用所述第一隨機數(shù)認證相同的認證會話的四元組信息時,確定所述認證服務請求合法。
6.根據(jù)權(quán)利要求4所述的認證方法,其特征在于,所述判斷所述票證授權(quán)服務請求合法包括通過對所述票證授權(quán)服務請求進行解密得到所述第一序列號; 當所述第一序列號與本地的第二隨機數(shù)存在映射關(guān)系時,確定所述票證授權(quán)服務請求合法。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述判斷所述應用服務請求合法的方法包括對所述應用服務請求報文進行解密得到第一隨機數(shù);根據(jù)所述第一隨機數(shù)查詢用戶會話信息數(shù)據(jù)庫,當所述用戶會話信息數(shù)據(jù)庫中不存在與利用所述第一隨機數(shù)認證相同的認證會話四元組信息時,確定所述應用服務請求報文合法。
8.根據(jù)權(quán)利要求4至7任意一項所述的方法,其特征在于,所述判斷所述應用服務響應消息合法的方法包括通過對所述應用服務響應消息進行解密獲得第二序列號;當所述第二序列號與本地的第三隨機數(shù)存在映射關(guān)系時,確定所述應用服務響應消息合法。
9.一種客戶端,其特征在于,包括第一處理單元,用于向KDC發(fā)送包含第一隨機數(shù)的認證服務請求;接收所述KDC判斷所述認證服務請求合法后返回的認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;第二處理單元,用于向KDC發(fā)送包含第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;接收所述KDC判斷所述票證授權(quán)服務請求合法后返回的票證授權(quán)服務響應消息,所述票證授權(quán)服務響應消息中包含有所述第二隨機數(shù)和服務票證;第三處理單元,用于向目標服務器發(fā)送包含所述第一隨機數(shù)和所述服務票證的應用服務請求;接收所述目標服務器判斷所述應用服務請求合法后返回的應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);第四處理單元,用于向目標服務器發(fā)送包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;接收所述目標服務器判斷應用服務響應消息合法后發(fā)送的認證成功的應用服務響應消息。
10.根據(jù)權(quán)利要求9所述的客戶端,其特征在于,所述第二處理單元包括第一解密模塊,用于通過對接收到的所述認證服務響應消息進行解密獲得所述第二隨機數(shù);第一生成模塊,用于對所述第二隨機數(shù)進行防偽映射獲得所述第一序列號。 所述第四處理單元包括第二解密模塊,用于通過對接收到的所述應用服務質(zhì)詢消息進行解密獲得所述第三隨機數(shù);第二生成模塊,用于對所述第三隨機數(shù)進行防偽映射獲得所述第二序列號。
11.一種認證裝置,其特征在于,包括認證服務模塊AS,用于接收客戶端發(fā)送的包含第一隨機數(shù)的認證服務請求后,當判斷所述認證服務請求合法時,向所述客戶端返回認證服務響應消息,所述認證服務響應消息中包含有第二隨機數(shù)和授權(quán)票證;票證授權(quán)服務模塊TGS,用于接收所述客戶端發(fā)送的包含有第一序列號和所述第一隨機數(shù)的票證授權(quán)服務請求,所述第一序列號根據(jù)所述第二隨機數(shù)生成;并當判斷所述票證授權(quán)服務請求合法時,向所述客戶端返回包含有所述第二隨機數(shù)和服務票證的票證授權(quán)服務響應消息;服務端認證服務模塊SAS,用于接收客戶端發(fā)送的包含有第一隨機數(shù)和服務票證的應用服務請求,當判斷所述應用服務請求合法時,向所述客戶端返回應用服務質(zhì)詢消息,所述應用服務質(zhì)詢消息中包含有第三隨機數(shù);所述服務提供模塊,用于接收所述客戶端發(fā)送的包含第二序列號的應用服務響應消息,所述第二序列號根據(jù)所述第三隨機數(shù)生成;當判斷所述應用服務響應消息合法時,向所述客戶端發(fā)送認證成功的應用服務響應消息。
12.根據(jù)權(quán)利要求11所述的認證裝置,其特征在于,所述AS包括第一查詢模塊,用于根據(jù)所述認證服務請求查詢用戶會話信息數(shù)據(jù)庫;第一確定模塊,用于所述用戶會話信息數(shù)據(jù)庫中當不存在與利用所述第一隨機數(shù)認證相同的認證會話的四元組信息時,確定所述認證服務請求合法。
13.根據(jù)權(quán)利要求11所述的認證裝置,其特征在于,所述TGS包括第一獲取模塊,用于通過對所述票證授權(quán)服務請求進行解密得到所述第一序列號;第一映射模塊,用于當所述第一序列號與的第二隨機數(shù)存在映射關(guān)系時,確定所述票證授權(quán)服務請求合法。
14.一種認證系統(tǒng),其特征在于,包括如上述權(quán)利要求9至10任意一項所述的客戶端, 以及如上述權(quán)利要求11至13任意一項所述的認證裝置。
全文摘要
本發(fā)明實施例提供一種認證方法、裝置和系統(tǒng);該方法包括向KDC發(fā)送包含第一隨機數(shù)的認證服務請求,接收KDC返回的包含第二隨機數(shù)和授權(quán)票證的認證服務回復;利用第二隨機數(shù)生成第一序列號,向KDC發(fā)送包含第一序列號和第一隨機數(shù)的票證授權(quán)服務請求;接收KDC返回的包含第二隨機數(shù)和服務票證的票證授權(quán)服務回復;向目標服務器發(fā)送包含第一隨機數(shù)的應用服務請求,接收目標服務器返回的包含第三隨機數(shù)的應用服務質(zhì)詢;利用第三隨機數(shù)生成第二序列號,向目標服務器發(fā)送包含第二序列號的應用服務回復,接收目標服務器發(fā)送的允許訪問的應用服務響應。采用本發(fā)明實施例的方法、裝置和系統(tǒng),能夠防止重放攻擊,并能減少通信消耗,提高認證效率。
文檔編號H04L29/06GK102457482SQ20101051591
公開日2012年5月16日 申請日期2010年10月19日 優(yōu)先權(quán)日2010年10月19日
發(fā)明者潘錦鋒 申請人:成都市華為賽門鐵克科技有限公司