技術領域
本發明涉及用戶認證技術,并且特別地,涉及在基于IP的電話網絡中用于用戶認證的方法和裝置。
背景技術:
IP多媒體子系統(IMS)是用于向移動用戶傳送互聯網協議(IP)多媒體的骨干網絡。IMS網絡典型地劃分為接入域和網絡域,每個都具有自己的安全規范。用戶可通過接入網提供商的接入網來接入IP網絡,然后通過一個或多個業務網絡提供商提供的一個或多個業務網絡訪問不同的業務,例如語音、視頻和流媒體。
IMS網絡中的認證典型地基于公知的認證和密鑰協商(AKA)機制。AKA是典型地用于3G網絡的安全協議。AKA是使用共享秘密和對稱加密算法的基于挑戰響應的認證機制。AKA導致在用戶設備以及能夠向用戶提供一組安全業務的IMS網絡之間的安全關聯(即,一組安全數據)的建立。
公共加密算法還沒有被廣泛應用于電話域。然而,在電話域,例如IMS網絡中利用公鑰基礎設施(PKI)進行認證正呈增長趨勢。雖然公共加密算法技術可以顯著提高IMS網絡的安全性,然而還存在許多技術上需要考慮的問題,這些問題以前限制了加密算法技術在IMS網絡中的使用。特別地,關注的一個焦點為私有密鑰可從包含在用戶設備中的所聲稱的“安全”易失性存儲器恢復。因此,任何允許在終端存儲器內進行私有密鑰的甚至是臨時存儲的方案都被認為是不可接受的。
因此存在IMS網絡內基于公鑰基礎設施(PKI)的用于最終用戶-網絡的認證的需求。另外一個存在的需求為用于認證IMS網絡中用戶的方法和裝置,其確保將私有密鑰存儲于安全智能卡或另一個安全存儲器上。此外還存在的一個需求為用于認證IMS網絡中用戶的方法和裝置,其確保所有包括私有密鑰的計算都在安全智能卡或另一個安全處理器中執行。
技術實現要素:
通常地,提供在基于IP的電話環境,例如IMS網絡中使用公鑰基礎設施(PKI)進行用戶認證的方法和裝置。根據本發明的一個方面,提供了一種由嘗試訪問基于IP的電話網絡的用戶設備執行的認證方法。從與用戶設備相關聯的安全存儲器初始獲取用戶的一個或多個私有密鑰。安全存儲器可以是,例如,具有能夠安全存儲數據和對數據進行運算的IMS用戶標識模塊(ISIM)的智能卡的元件。之后,所公開的方法包括:生成完整性密鑰和加密密鑰;使用會話密鑰加密完整性密鑰和加密密鑰;通過所述基于IP的電話網絡的公共密鑰加密所述會話密鑰;以及,向基于IP的電話網絡提供已加密的會話密鑰、已加密的完整性密鑰和已加密的加密密鑰用于認證。
根據本發明的另一個方面,提供了一種利用嘗試訪問基于IP的電話網絡的用戶設備來認證用戶的方法,用戶通過以下方式來認證:獲取通過所述基于IP的電話網絡的公共密鑰加密的已加密的會話密鑰;從所述用戶設備獲取已加密的完整性密鑰和已加密的加密密鑰,其中所述完整性密鑰和所述加密密鑰由與所述用戶設備相關聯的安全設備使用所述用戶的一個或多個私有密鑰生成;使用所述基于IP的電話網絡的公共密鑰解密所述已加密的會話密鑰;使用所述已解密的會話密鑰解密所述已加密的完整性密鑰和已加密的加密密鑰;以及,基于公鑰基礎設施(PKI)計算來認證所述用戶設備。
在各種示例性實現方式中,已加密的會話密鑰、已加密的完整性密鑰和已加密的加密密鑰中的一個或多個可選地可使用一個或多個私有密鑰進行加密。此外,用戶身份可使用會話密鑰進行加密。通過這種方式,用戶身份可僅由會話密鑰的持有者獲得。可采用隨機數(nonce)來防止重放攻擊。
對本發明更完整的理解,連同本發明更進一步的特征和優點,將通過參考下面的詳細描述和附圖的方式獲得。
附圖說明
圖1示出了可將本發明應用于其中的示例性IMS網絡環境;
圖2為結合本發明特征的示例性智能卡;
圖3為描述在基于IP的電話網絡,例如IMS網絡中使用的PKI認證處理的示例性實施方式的流程圖;和
圖4為描述在基于IP的電話網絡中由網絡服務器使用的服務器認證處理的示例性實施方式的流程圖。
具體實施方式
本發明提供在IMS網絡內基于公鑰基礎設施(PKI)的最終用戶-網絡的認證。根據本發明的一個方面,使用存儲在,例如與用戶相關聯的具有IMS用戶身份模塊(ISIM)的安全智能卡或用于IPTV的安全機頂盒上的一個或多個私有密鑰在IMS網絡中認證用戶。根據本發明的另一個方面,在IMS網絡中認證用戶時,所有包括私有密鑰的運算都在安全智能卡或另一個安全處理器上進行。如這里所使用的,“安全”設備,例如智能卡,將包括滿足一個或多個預定義安全標準的設備。例如,具有ISIM的智能卡將包括安全智能卡。
通常地,所公開的公共密鑰加密技術用于IMS網絡執行相互的最終用戶-網絡認證,這將導致實質上類似傳統AKA認證機制的密鑰協商。此外,所公開的公共密鑰加密技術不需要共享密鑰。
圖1示出了可將本發明應用于其中的示例性IMS網絡環境100。雖然本發明在此處以示例性IMS網絡環境100的環境中示出,然而本發明也可應用于其他基于IP的電話網絡,例如SIP和有線電視,這對本領域普通技術人員來說是很明顯的。如圖1所示,示例性IMS網絡環境100包括用戶設備(UE)裝置110和IMS核心網絡系統120。用戶設備裝置110代表用戶終端(例如無線電話或機頂盒)并且包括相關聯的,例如具有ISIM應用的智能卡114。如在這里所使用的,智能卡114代表能夠安全地存儲秘密數據并對那些數據執行運算的任何實體。IMS核心網絡系統120包括家庭網絡130和訪問網絡140。
家庭網絡130包括家庭用戶服務器(HSS)132、互通呼叫會話控制功能(I-CSCF)134和服務呼叫會話控制功能(S-CSCF)136。備選地,S-CSCF 136可由負責用戶認證的任何網絡服務器實現。訪問網絡140包括代理呼叫會話控制功能(P-CSCF)144。通常地,IMS網絡中定義的呼叫會話控制功能(CSCF)實體適于完成呼叫或會話過程中的諸如控制和路由功能。
代理、互通和服務CSCF基于它們相應的功能進行區分。P-CSCF 144適于用戶設備110的接入,并且任意用戶設備110可通過P-CSCF 144獲得對IMS網絡100的訪問。S-CSCF 136提供諸如會話控制和路由的核心功能。I-CSCF 134適于選擇S-CSCF 136,以及在不同服務提供商或不同區域網絡之間相互通信。HSS 132適于存儲用戶的定制數據和配置數據(例如,用戶證書),以及支持對用戶的認證和授權(AAA)功能。
如圖1所示,每個用戶設備裝置110包括第一接口105和第二接口150。接口105為用戶設備裝置110和IMS網絡100之間的雙向認證接口。接口105適于實現用戶認證功能。接口150適于提供用戶設備裝置110和P-CSCF 144之間的通信安全性。
如前面所指出的,接口105和150典型地在3GPP中通過用戶設備注冊過程期間IMS AKA機制的應用加以實現。然而,本發明提供了在IMS網絡內基于公鑰基礎設施(PKI)的最終用戶-網絡認證。
如下面所進一步討論的,本發明一方面提出了現有的具有ISIM應用或另外的與具有用戶私有密鑰的用戶設備裝置110相關聯的安全存儲設備的智能卡,網絡證書,基于私有密鑰生成完整性密鑰(IK)和加密密鑰(CK)的(可選)功能,以及使用網絡提供商將會選擇的至少一個現有的PKI算法(諸如RSA,Eliptic Curves或E1Gamal)進行加密的ISIM應用的能力。本發明的另一方面提出了一種具有在最終-用戶終端交流的新協議的IMS認證,ISIM和服務呼叫會話控制功能(S-CSCF)。
圖2為結合本發明特征的,諸如ISIM的示例性智能卡200的框圖。如圖2所示,示例性智能卡200包括:
1)一個或多個用戶私有密鑰210(用于簽名和加密),為簡便起見,此處僅使用了一個Upr;
2)用于計算完整性密鑰IK和加密密鑰CK的功能220(典型地在ISIM卡中已提供)。如下面所討論的,可能需要將功能220擴充以用作輸入、私有密鑰、或某些其他密鑰素材代替ISIM共享密鑰;
3)(可選地),功能230用于隨機計算一次性會話密鑰KS,如下面所討論的,其用于加密其他密鑰,并且還作為網絡-用戶認證的挑戰。這個密鑰的長度通常等于IK和CK密鑰的組合長度;以及
4)用戶公有和私有標識240(諸如IMS中的IMS私有用戶標識(IMPI)和IMS公有用戶標識(IMPU)),出于示例的目的,組成一個串Id。
圖3為用于IMS網絡中的PKI認證過程300的示例性實現方案的流程圖。通常地,會話開始于UE 310嘗試注冊到網絡100時。為了注冊,UE 310需要向網絡認證,并且需要將服務器作為屬于網絡的服務器來認證。本發明的PKI認證是通過使用證書(參見例如ITU-T Rec.X.509)實現的。在這種情況下,假設(雖然這種假設不是必需的)網絡作為證書證明機構,因此具有網絡公共密鑰的網絡證書位于智能卡200中。
為了啟動注冊,UE 310在步驟325中請求智能卡305提供認證者Autn。智能卡305計算(如下面所解釋的,可能與UE 310協作)認證者Autn,并在步驟330中向UE 310傳送認證者Autn,如下面在會話題目為“認證者Autn的計算”中所進一步討論的那樣。
一旦計算出了Autn參數,接下來在步驟335,例如,其作為注冊消息(諸如SIP注冊方法)的一部分被傳遞至網絡服務器315。這個認證過程并不是必需在注冊期間進行。典型地,可在需要認證并且認證是任何協議的一部分的任何時間執行認證過程,這對本領域普通技術人員而言將是非常明顯的。
雖然不是必須的(可能浪費帶寬和執行時間),然而可能的是用戶包括其整數以及Autn參數。當然在這種情況下,網絡服務器315對證書的檢索過程將被替換為如下所描述的其鏈條中的檢驗證書的過程。
一經接收到Autn參數,服務器315執行服務器認證處理400,下面結合圖4做進一步的討論。通常地,認證過程400基于所接收的Autn參數認證用戶,并且計算網絡服務器315用來向用戶認證自身的Autn’參數。在步驟360,將Autn’參數發送到UE 310。
UE 310接收到Autn’參數消息時,UE 310檢驗網絡簽名,然而為了基于私有密鑰解密,在步驟365中,取出對應于智能卡305的加密的隨機數的部分。如果消息的完整性檢驗失敗,或者解密值不等于freshness+1,則UE 310根據針對這種特定情況的網絡策略繼續。如果兩次檢驗均通過,則該過程結束。
認證者Autn的計算
如上面結合圖3所討論的那樣,在步驟330,智能卡305計算認證者Autn。認證者Autn可表示如下:
Autn=Upr{Npu[Ks]|Ks[Id,freshness,IK|CK]},
其中
1)freshness為保護通信免受重放攻擊的隨機數(例如,計時器值、或IMS SEQ參數、或其它任意隨機數);并且通常在長度上與IK和CK密鑰的組合長度相等;
2)“|”代表字符串連接操作;
3)Ks[…]代表通過密鑰Ks執行的對稱密鑰加密運算(例如,DES、三重DES、AES、或一次一密亂碼本);
4)Npu[…]代表通過來自網絡證書的可用的網絡公共密鑰Npu的加密;
5)Upr{…}代表通過用戶私有簽名密鑰進行簽名運算。例如,首先計算變量的哈希(例如,SHA2哈希),接著通過所述密鑰將結果加密,并且最后將所述結果與變量相連接。這種簽名的存在解決了兩個問題:第一,它保護消息的完整性,以及第二,它提供(結合freshness參數)不可否認特征,由于它構成用戶已經發起會話的證據,所以對于運營商來說通常是非常重要的。
因此,結果Autn串由3個連接的部分組成:
Autn=A|B|C,其中
A=Npu[Ks],只能夠通過網絡來解密;
B=Ks[Id,freshness,IK|CK],只允許將Id和密鑰恢復給密鑰Ks的持有者,其中,再次,可以僅通過網絡從A導出;以及
C=Upr[Hash(A|B)],允許之前的兩個部分的完整性檢查以及向接收機證明用戶已經發布了消息。
值得注意的是,完全地保護了用戶的身份(包含在B中)。
進一步值得注意的是,單獨地計算B的步驟不是非常重要。因為在實現中,它被用于最小化高價的私有密鑰的計算。替代方式是計算A=Npu[Id,freshness,IK|CK]并且完全省略B,在這種情況下可以不需要導出Ks。
為了優化性能,上述計算的某些部分(例如,不涉及用戶私有密鑰運算的那些)實際上可以在UE 310上執行,在這種情況下,可能需要在UE 310和智能卡305之間交換一個或多個攜帶所述計算的結果的消息。
在本發明的示例性實施例中,通常總是在卡305上執行的唯一運算是通過私有密鑰的簽名。最后,相比于其余的運算,它是唯一可能需要的密集計算。
服務器認證處理400
如上述結合附圖3的討論,網絡服務器315執行服務器認證處理400以基于所接收的Autn參數來認證用戶以及計算網絡服務器315用于向用戶認證其自身的Autn’參數。
圖4為描述IMS網絡中由網絡服務器315使用的服務器認證處理400的示例性實施方案的流程圖。如圖4所示,在步驟410中,網絡服務器315最初使用它的私有密鑰解密A并且從所接收的Autn參數恢復密鑰KS,作為恢復其它參數的手段。
接著,在步驟420中,服務器認證處理400接著使用密鑰KS解密B以及恢復用戶的身份Id。一旦得到確認,網絡服務器315檢查合法用戶的訂閱目錄中是否有通過這個身份索引的記錄,并且,如果有,用戶是否被授權注冊或接收由其中攜帶這個參數的特殊協議消息指定的任何其它服務。網絡服務器315還檢索用戶的證書(除非如上所述有用戶發送證書的需要)。如果在表中沒有條目,處理停止并且,根據網絡安全策略,或者在服務器過載報告為拒絕服務攻擊的情況下,可以記錄事件。
在步驟430中,網絡服務器315繼續恢復隨機數freshness并且確定是否有重放的可能性。例如,如果使用了時間戳,則網絡服務器315檢查它是否在可接受的時間窗中。同樣地,如果使用了序列號(例如,AKA算法中的序列),則網絡服務器315會再次檢查它的值是否在可接受的范圍內(并且,如果不是,它可以與UE 310發起重新排序過程)。如果檢查不合格,過程結束并且,根據網絡安全策略,或者在服務器過載報告為拒絕服務攻擊的情況下,特別是如果有明顯的重放指示,可以記錄事件。
在步驟440中,網絡服務器315a)通過用戶的公共密鑰(從用戶的證書獲得)來解密C;b)計算A|B的哈希;以及c)比較a)和b)中所獲得的量。如果這些量不同,該消息被認為是篡改的,或者在服務器過載報告為拒絕服務攻擊的情況下,可以記錄事件(這個步驟可以在步驟3之前)。
然后,在步驟450中,網絡服務器315繼續恢復IK和CK。在這個時候,用戶310到網絡的認證已經完成,并且因為網絡會具有AKA認證技術,所以它具有相同的信息。
為了向用戶認證其自身(并且有效地確認用戶認證的成功),在步驟460,網絡服務器315計算Autn’的參數,如下:
Autn’=Npr{Upu[freshness+1]},
其中,
1)Upu[…]代表通過來自用戶證書的可用的用戶公共密鑰Upu的加密;
2)Npr[…]代表通過網絡私有簽名密鑰的簽名運算:首先計算變量的哈希(例如,SHA2哈希),接著利用所述密鑰將結果加密,并且最后將所述結果與變量相連接。這種簽名的存在解決了兩個問題:第一,它保護消息的完整性,以及第二并且更為重要的是,它提供消息來自網絡的證據。
結論
在其它益處中,本發明確保充分完好地轉發IMS會話的秘密,因為會話安全的安全性不比依靠現有的IMS認證機制(AKA)差。本發明還確保,也能夠使用AKA中現有的其它因素認證機制(例如,序列號,SQN),如果網絡運營商需要。本發明還可以確保用戶隱私,因為不需要明顯地傳送用戶身份。最后,本發明可以有選擇地確保只在智能卡上執行絕對必要的計算,從而識別這種計算的低效率。
雖然圖3和圖4示出了步驟的示例性順序,但是順序可以改變也是本發明的實施例。算法的各種置換都作為本發明的可替換的實施例。
雖然通過參考軟件程序中的過程步驟描述了本發明的示例性實施例,但是所屬技術領域的技術人員可以了解的是,在數字領域中可以實現各種功能,如軟件程序中,或電路元件或狀態機的硬件中,或軟件和硬件的組合中的過程步驟。所述軟件可以被部署在,例如,數字信號處理、微控制器、或通用計算機中。所述硬件和軟件額可以體現在集成電路中實現的電路中。
因此,本發明的功能可以按方法和用于實現那些方法裝置的形式來體現。本發明的一個或多個方面可以按程序代碼的形式來體現,例如,是否存儲在存儲媒介中、加載到機器中和/或由機器執行、或通過一些傳輸媒介傳輸,其中,當程序代碼被加載到機器中并且被機器(例如,計算機)執行時,所述機器成為實現本發明的裝置。當在通用處理器上實現時,程序代碼段結合處理器以提供與特定的邏輯電路近似地運行的設備。本發明還可以在一個或多個集成電路、數字信號處理器、微處理器、以及微控制器中實現。
系統和產品的細節
如現有技術中已知的,本發明所討論的方法和裝置可以作為產品而分布,其自身包括具有體現計算機可讀代碼裝置的計算機可讀媒介。結合計算機系統,計算機可讀程序代碼裝置是可操作的,執行全部或部分步驟以實現本發明所討論方法或創建本發明所討論的裝置。計算機可讀媒介可以是可記錄媒介(例如,軟盤、硬盤、光盤、存儲卡、半導體設備、芯片、特定用途集成電路(ASIC))或者可以是傳輸媒介(例如,包括光纖的網絡,萬維網,電纜,或者使用時分多址、碼分多址、或其它射頻信道的無線信道)。可以使用任何已知或發展中的能夠存儲適于計算機使用的信息的媒介。計算機可讀代碼裝置為允許計算機讀取指令和數據任何裝置,例如,磁性媒體上的磁變或光盤表面的高度變化。
本發明描述的計算機系統和服務器均包括存儲器,其將配置相關的處理器以實現本發明所公開的方法、步驟、和功能。存儲器可以是分布式的或本地的并且處理器可以是分布式的或單一的。存儲器可以實現為電性的、磁性的或光學的存儲器,或者這些或其它類型的存儲設備的任意組合。此外,術語“存儲器”應當充分廣泛地解釋為包含任意能夠被讀取的信息或在相關處理器可訪問的可尋址空間的地址中寫入任意信息。通過這種定義,因為相關的處理器能夠從網絡中檢索信息,網絡上的信息仍然在存儲器中。
應該明了的是,本發明所描述的和示出的實施例和變化僅是本發明原理的說明并且所屬技術領域的技術人員在不脫離本發明的范圍和精神的情況下可以實現各種修改。