本發明涉及通信領域的安全技術,尤其涉及一種物聯網的安全算法協商方法、網元及物聯網終端。
背景技術:
物聯網(Internet of Things,簡稱IoT)就是物物相連的互聯網,能夠用于智能交通及環境保護等各種應用。
在通信的過程中,傳輸的數據可能也會受到攻擊,為了減少攻擊的破壞力,可能需要對物聯網數據進行安全保護。
安全保護可包括完整性保護和加密保護。通常情況下,加密保護用于數據泄露;完整性保護用于防止數據被篡改。
在進行通信之前,需要選擇出每一個物聯網終端的完整性算法和加密保護算法。
在現有的長期演進(Long Term Evolution,簡為LTE),演進型基站eNB通過網絡管理配置兩個算法列表。一個算法列表包括有完整性算法,另一個算法列表包括加密算法。所述算法列表由通信運營商根據運營策略進行優先級排序。在為物聯網終端確定安全算法時,由網絡側的eNB等網元,根據所述這些算法的優先級,為物聯網終端選擇出完整性算法和加密算法,然后通知物聯網終端即可。
這種確定安全算法的方法,可能出現的問題時,基于運營商提供的優先級排序確定的安全算法并不適用于具體的物聯網終端,可能會導致物聯網終端使用過程中出現算法過于復雜導致的運算量大運算時間長等問題。
技術實現要素:
有鑒于此,本發明實施例期望提供一種物聯網的安全算法協商方法、網元及物聯網終端,以解決基于通信運營商提供的優先級選擇安全算法,導致的不適用于特定物聯網終端的問題。
為達到上述目的,本發明的技術方案是這樣實現的:
本發明實施例提供一種物聯網的安全算法協商方法,應用于網絡側,所述方法包括:
接收物聯網終端發送的安全能力信息;其中,所述安全能力信息包括所述物聯網終端支持的安全算法列表;所述安全算法列表包括至少一個安全算法;
基于所述安全算法列表表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網終端的通信;
將選擇的所述安全算法通知所述物聯網終端。
基于上述方案,所述安全算法列表為安全算法按照優先級排序形成的有序列表;
所述基于所述安全算法列表表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網終端的通信,包括:
根據所述安全算法在所述有序列表中的排列順序,選擇用于所述物聯網終端通信的安全算法。
基于上述方案,所述安全算法包括加密算法及完整性算法,和/或認證加密算法;
其中,所述加密算法用于數據的加密保護;所述完整性算法用于數據的完整性保護;所述認證加密算法同時用于數據的加密保護和完整性保護。
基于上述方案,所述安全能力信息還包括安全策略;其中,所述安全策略用于指示是否提供用戶面數據的完整性保護。
基于上述方案,當所述安全策略指示要求用戶面數據的完整性保護時,所述方法還包括:
當所述物聯網終端的用戶面數據的完整性保護計費時,獲取所述物聯網終端的業務訂購消息;
當所述業務訂購消息表明所述物聯網終端沒有訂購用戶面數據的完整性保護業務,則向所述物聯網終端發送連接拒絕消息,或,當所述業務訂購消息表明所述物聯網終端有訂購用戶面數據的完整性保護的業務,則向所述物聯網終端發送連接接受消息。
基于上述方案,所述方法還包括:
當所述物聯網終端的用戶面數據的完整性保護不計費時,向所述物聯網終端發送連接接受消息。
基于上述方案,所述安全策略還用于指示所述物聯網終端是否支持認證加密算法;其中,所述認證加密算法為能夠同時用于數據的加密保護和完整性保護的所述安全算法。
基于上述方案,所述基于所述安全算法列表表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網終端的通信,包括以下至少其中之一:
當所述物聯網終端不要求用戶面數據的完整性保護,且不支持認證加密算法時,從所述安全算法列表中選擇優先級最高的加密算法及優先級最高的完整性算法,其中,選擇的所述加密算法用于信令面及用戶面數據的保護,選擇的所述完整性算法用于信令面數據的完整性保護;
當所述物聯網終端要求用戶面數據的完整性保護,且不支持認證加密算法時,從所述安全算法列表中選擇優先級最高的加密算法及優先級最高的完整性算法;其中,選擇的所述加密算法用于信令面數據和用戶面數據加密保護,選擇的所述完整性算法同時用于信令面數據和用戶面數據的完整性保護;
當所述物聯網終端不要求用戶面數據的完整性保護,且支持認證加密算法時,從所述安全算法列表中選擇優先級最高的認證加密算法及優先級最高的加密算法;其中,選擇的所述認證加密算法用于信令面數據的加密保護和完整性保護;選擇的所述加密算法用于用戶面數據的加密保護;
當所述物聯網終端要求用戶面數據的完整性保護,且支持認證加密算法時,從所述安全算法列表中選擇優先級最高的認證加密算法;其中,選擇的所述認證加密算法用于信令面數據和的加密保護和完整性保護,及用戶面數據的加密保護和完整性保護。
本發明實施例第二方面提供一種物聯網的安全算法協商方法,應用于終端側,所述方法包括:
向網絡側發送安全能力信息;其中,所述安全能力信息包括所述物聯網終端支持的安全算法列表;所述安全算法列表用于網絡側基于所述安全算法表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網的通信;所述安全算法列表包括至少一個安全算法;
接收所述網絡側發送通知,其中,所述通知用于告知所述網絡側選擇的所述安全算法。
基于上述方案,所述安全算法列表為安全算法按照優先級排序形成的有序列表;
所述基于所述安全算法列表表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網終端的通信,包括:
根據所述安全算法在所述有序列表中的排列順序,選擇用于所述物聯網終端通信的安全算法。
基于上述方案,所述安全能力信息還包括安全策略;其中,所述安全策略用于指示是否要求用戶面數據的完整性保護。
基于上述方案,所述安全策略還能夠用于指示所述物聯網終端是否支持認證加密算法;其中,所述認證加密算法為能夠同時用于數據的加密保護和完整性保護的所述安全算法。
本發明實施例第三方面提供一種網元,所述網元包括:
第一接收單元,用于接收物聯網終端發送的安全能力信息;其中,所述安全能力信息包括所述物聯網終端支持的安全算法列表;所述安全算法列表包括至少一個安全算法;
選擇單元,用于基于所述安全算法列表表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網終端的通信;
第一發送單元,用于將選擇的所述安全算法通知所述物聯網終端。
基于上述方案,所述安全算法列表為安全算法按照優先級排序形成的有序列表;
所述選擇單元,具體用于根據所述安全算法在所述有序列表中的排列順序,選擇用于所述物聯網終端通信的安全算法。
基于上述方案,所述安全算法包括加密算法及完整性算法,和/或認證加密算法;
其中,所述加密算法用于數據的加密保護;所述完整性算法用于數據的完整性保護;所述認證加密算法同時用于數據的加密保護和完整性保護。
基于上述方案,所述安全能力信息還包括安全策略;其中,所述安全策略用于指示是否提供用戶面數據的完整性保護。
基于上述方案,當所述安全策略指示要求用戶面數據的完整性保護時,所述網元還包括:
獲取單元,用于當所述物聯網終端的用戶面數據的完整性保護計費時,獲取所述物聯網終端的業務訂購消息;
第一發送單元,用于當所述業務訂購消息表明所述物聯網終端沒有訂購用戶面數據的完整性保護業務,則向所述物聯網終端發送連接拒絕消息,或,當所述業務訂購消息表明所述物聯網終端有訂購用戶面數據的完整性保護的業務,則向所述物聯網終端發送連接接受消息。
基于上述方案,所述第一發送單元,還用于當所述物聯網終端的用戶面數據的完整性保護不計費時,向所述物聯網終端發送連接接受消息。
基于上述方案,所述安全策略還用于指示所述物聯網終端是否支持認證加密算法;其中,所述認證加密算法為能夠同時用于數據的加密保護和完整性保護的所述安全算法。
基于上述方案,所述選擇單元,用以執行以下至少其中之一:
當所述物聯網終端不要求用戶面數據的完整性保護,且不支持認證加密算法時,從所述安全算法列表中選擇優先級最高的加密算法及優先級最高的完整性算法,其中,選擇的所述加密算法用于信令面及用戶面數據的保護,選擇的所述完整性算法用于信令面數據的完整性保護;
當所述物聯網終端要求用戶面數據的完整性保護,且不支持認證加密算法時,從所述安全算法列表中選擇優先級最高的加密算法及優先級最高的完整性算法;其中,選擇的所述加密算法用于信令面數據和用戶面數據加密保護,選擇的所述完整性算法同時用于信令面數據和用戶面數據的完整性保護;
當所述物聯網終端不要求用戶面數據的完整性保護,且支持認證加密算法時,從所述安全算法列表中選擇優先級最高的認證加密算法及優先級最高的加密算法;其中,選擇的所述認證加密算法用于信令面數據的加密保護和完整性保護;選擇的所述加密算法用于用戶面數據的加密保護;
當所述物聯網終端要求用戶面數據的完整性保護,且支持認證加密算法時,從所述安全算法列表中選擇優先級最高的認證加密算法;其中,選擇的所述認證加密算法用于信令面數據和的加密保護和完整性保護,及用戶面數據的加密保護和完整性保護。
本發明實施例第四方面提供一種物聯網終端,所述物聯網終端包括:
第二發送單元,用于向網絡側發送安全能力信息;其中,所述安全能力信息包括所述物聯網終端支持的安全算法列表,用于網絡側基于所述安全算法表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網的通信;所述安全算法列表包括至少一個安全算法;
第二接收單元,用于基于所述權算法列表表征的優先級,選擇一個所述安全算法用于所述物聯網終端的通信。
基于上述方案,所述安全算法列表為安全算法按照優先級排序形成的有序列表;
所述第二接收單元,用于根據所述安全算法在所述有序列表中的排列順序,選擇用于所述物聯網終端通信的安全算法。
基于上述方案,所述安全能力信息還包括安全策略;其中,所述安全策略用于指示是否要求用戶面數據的完整性保護。
基于上述方案,所述安全策略還能夠用于指示所述物聯網終端是否支持認證加密算法;其中,所述認證加密算法為能夠同時用于數據的加密保護和完整性保護的所述安全算法。
在本發明實施例中提供物聯網的安全算法協商方法、網元及物聯網終端;在確定安全算法的安全算法及優先級都是由物聯網終端決定的,這樣方便物聯網終端根據自身的能力參數和業務需求,自行設置安全算法的優先級,從而選擇出適應于所述物聯網終端的安全算法,減少根據通信運營商提供的優先級選擇安全算法導致的呆板及不能滿足物聯網終端的個性需求的現象。
附圖說明
圖1為本發明實施例提供的第一種物聯網的安全算法協商方法的流程示意圖;
圖2為本發明實施例提供的第二種物聯網的安全算法協商方法的流程示意圖;
圖3為本發明實施例提供的網元的結構示意圖;
圖4為本發明實施例提供的物聯網終端的結構示意圖;
圖5為本發明實施例提供的第三種物聯網的安全算法協商方法的流程示意圖。
具體實施方式
以下結合說明書附圖及具體實施例對本發明的技術方案做進一步的詳細闡述。
實施例一:
如圖1所示,本實施例提供一種物聯網的安全算法協商方法,應用于網絡側,所述方法包括:
步驟S110:接收物聯網終端發送的安全能力信息;其中,所述安全能力信息包括所述物聯網終端支持的安全算法列表;所述安全算法列表包括至少一個安全算法;
步驟S120:基于所述安全算法列表表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網終端的通信;
步驟S130:將選擇的所述安全算法通知所述物聯網終端。
本實施例所述的物聯網的安全算法協商方法為應用于網絡側的方法,具體可以應用于網絡側的移動管理實體(Mobility Management Entity,簡稱MME)或通用分組無線服務技術業務支持節點(Serving GPRS Support Node,SGSN)等網元。其中,所述GPRS為General Packet Radio Service的縮寫,對應的中文即為所述通用分組無線服務技術。
在本實施例中網絡側將從物聯網終端接收安全能力信息,這里的安全能力信息至少包括安全算法列表,這里的安全算法列表中至少包括一個安全算法。所述安全算法為提供數據的加密保護和完整性保護的算法。在本實施例中所述安全算法列表可用于表征安全算法的優先級,通常優先級越高的安全算法,被選擇用于數據的安全保護的概率越高。所述安全算法的優先級可為由物聯網終端決定的。在步驟S110中接收所述安全能力信息時,可包括通過接收承載有所述安全能力信息的連接請求來實現。
在本實施例中所述安全算法列表是從物聯網終端接收的,在選擇用于物聯網終端通信的安全算法時,是基于安全算法列表表征的優先級來選擇的,這樣的話,所述物聯網終端就可以根據自身的需求設置所述安全算法的優先級,這樣就能夠實現物聯網終端自身參與安全算法的選擇,以選擇更為合適的安全算法用于物聯網終端的通信。
例如,物聯網終端A支持M種安全算法,且分別是安全算法1、安全算法2、……安全算法M-1及安全算法M。物聯網終端A可以根據自身的中央處理器CPU處理能力、存儲資源能力及電池的容量等處理能力參數、及物聯網A的業務要求等信息,設置上述M中安全算法的優先級。該優先級可用于表征用戶傾向選擇對應的安全算法的概率。例如,安全算法1和安全算法2,物聯網終端A都支持,但是安全算法1相對安全算法2的復雜度較高,這樣利用安全算法2進行安全保護消耗的物聯網終端A的時間較長,若物聯網終端A的業務的延時性要求就低,則所述物聯網終端A在設置所述優先級時,就會將安全算法2的優先級設置得高于安全算法1的優先級。當然,以上提供了一種物聯網終端A自動設置所述優先級的方式,在具體的實現過程中,物聯網終端還可以基于用戶指示設置安全算法的優先級。例如,物聯網終端A接收到一個設置指令,該設置指令中對M個安全算法進行優先順序排序,則在設置安全算法的優先級時,根據所述優先順序排序進行設置。
在本實施例中所述安全算法列表的構成有很多種,以下提供兩種可選形式:
第一種:
所述安全算法列表為安全算法按照優先級排序形成的有序列表;則所述步驟S120可包括:根據所述安全算法在所述有序列表中的排列順序,選擇用于所述物聯網終端通信的安全算法。此時,在安全算法在所述有序列表中是按優先級進行排列的;例如,根據優先級的高低,從高到低排列或從低到高排列。這樣的話,所述安全算法位于所述有序列表中的排列順序是與該安全算法的優先級相對應的。顯然,在該種形式中,安全算法列表通過排列順序表示安全算法的優先級。
第二種:
所述安全算法列表包括安全算法及該優先級字段;此時,所述安全算法列表中的安全算法,并不一定會按照優先級從高到底排列或從低到高排列。網絡側的網元可以通過直接讀取所述優先級字段,確定各個安全算法的優先級。
比較上述兩種形式,第一種,網絡側與物聯網終端之間交互的數據量少,網絡側在選擇優先級最高的安全算法時,可到安全算法的頭部或尾部提取安全算法,操作簡便;第二種,由于直接提供了優先級,優先級的確定更加精確和直觀。
所述安全算法列表內包括的安全算法可包括如下情況:
第一種:
所述安全算法列表內包括的安全算法由加密算法及完整性算法組成;所述完整性算法用于數據的完整性保護。所述安全算法列表可包括加密算法列表和完整性算法列表,例如,加密算法的有序列表和完整性算法的有序列表。
第二種:
所述安全算法列表內包括的安全算法由加密算法、完整性算法及認證加密算法組成;所述認證加密算法同時用于數據的加密保護和完整性保護。
所述安全算法列表可包括加密算法列表、完整性算法列表及認證加密算法列表,例如,加密算法的有序列表、完整性算法的有序列表,認證加密算法的有序列表。
第三種:
所述安全算法列表內包括的安全算法為認證加密算法。所述安全算法列表包括認證加密算法列表,例如,認證安全算法的有序列表。
上述加密算法的有序列表、完整性算法的有序列表及所述認證加密算法的有序列表都為上述安全算法的有序列表的一種,都可以通過列表中對應算法的排序順序來表征優先級。
進一步地,所述安全能力信息還包括安全策略;其中,所述安全策略用于指示是否要求用戶面數據的完整性保護。
物聯網終端與網絡側的基站之間的通信數據,可分為信令面數據和用戶面數據,現有技術中通常僅對信令面數據進行保護,在本實施例中可以由所述安全策略來指示網絡側是否對用戶面數據進行完整性保護。若所述安全策略指示提供用戶面數據的完整性保護,則會利用步驟S120中選擇的安全算法對通信中的用戶面數據進行完整性保護,否則就不保護用戶面數據。在步驟S130中將選擇的安全算法通知物聯網終端,這樣物聯網終端就能夠知道后續采用哪一種安全算法進行安全保護。這樣的話,一方面可以提供用戶面數據的完整性保護,若執行用戶面數據的完整性保護,顯然可以降低用戶面數據被篡改的可能性,提升用戶面數據傳輸的可靠性和安全性。另一方面,由物聯網終端自行決定是否需要進行用戶面數據的完整性保護,顯然這樣可以滿足不同物聯網終端的個性需求。
基于上述方案,當所述安全策略指示要求用戶面數據的完整性保護時,所述方法還包括:
當所述物聯網終端的用戶面數據的完整性保護計費時,獲取所述物聯網終端的業務訂購消息;
當所述業務訂購消息表明所述物聯網終端沒有訂購用戶面數據的完整性保護業務,則向所述物聯網終端發送連接拒絕消息,或,當所述業務訂購消息表明所述物聯網終端有訂購用戶面數據的完整性保護的業務,則向所述物聯網終端發送連接接受消息。
如要求用戶面數據的完整性保護,可能該用戶面數據對應的業務的完整性保護是需要計費的。此時,網絡側的網元,將獲取物聯網終端的業務訂購消息,例如從訂購系統中或用戶簽約數據庫中獲取所述業務訂購消息;再通過解析業務訂購消息,確定出物聯網終端是否有訂購用戶面數據的完整性保護業務。若物聯網終端訂購了該業務,則向物聯網終端發送連接接受消息,表示本次協商成功;若未訂購該業務,則向物聯完終端發送連接拒絕消息,表示此處協商失敗。
當然,若所述物聯網終端的用戶面數據的完整性保護不計費,向所述物聯網終端發送連接接受消息。網絡側的網元就可以不用獲取所述業務訂購信息,就可以直接向物聯完終端發送連接接受消息,表示協商成功。
若協商成功,則網絡側會根據協商結果來進行數據的安全保護,否則需要物聯網終端與網絡側的MME或SGSN進行再次安全算法的協商。
所述安全策略還用于指示所述物聯網終端是否支持認證加密算法;其中,所述認證加密算法為能夠同時用于數據的加密保護和完整性保護的所述安全算法。
網絡側可以根據安全算法列表中是否包括認證加密算法,來確定物聯網終端是否支持認證加密算法;但是為了簡化網絡側的操作,在本實施例中所述安全策略還用于指示物聯網終端是否支持認證加密算法。例如,所述安全策略可包括2bit;一個bit的兩種狀態用于表示物聯網終端是否要求用戶面數據的完整保護,另一個bit的兩種狀態可用于表示物聯完終端是否支持認證加密算法。當然那,所述安全策略的組成方式有多種,不局限于上述任意一種。
這樣的話,可以單獨安全策略或結合安全策略和安全算法列表,確定出物聯網終端是否要求用戶面數據的完整性保護,及是否支持認證加密算法。由于一個認證加密算法,可同時用于完整性保護和加密保護,相對于采用獨立的加密算法進行加密保護和采用完整性算法進行完整性保護,具有復雜度低及計算量少的特點,若一個物聯網終端的支持認證加密算法時,通常可優先選擇認證加密算法,但是最終是否選擇認證加密算法,還可根據不同種安全算法之間的種類優先級來確定。
結合上述,所述步驟S120可至少包括以下四種情況的一種或多種:
第一種:
當所述物聯網終端不要求用戶面數據的完整性保護,且不支持認證加密算法時,從所述安全算法列表中選擇優先級最高的加密算法及優先級最高的完整性算法,其中,選擇的所述加密算法用于信令面及用戶面數據的保護,選擇的所述完整性算法用于信令面數據的完整性保護。由于物聯網終端不要求用戶面數據的完整性保護,則選擇出的安全算法僅用于信令面數據的加密保護和完整性保護。
第二種:
當所述物聯網終端要求用戶面數據的完整性保護,且不支持認證加密算法時,從所述安全算法列表中選擇優先級最高的加密算法及優先級最高的完整性算法;其中,選擇的所述加密算法用于信令面數據和用戶面數據加密保護,選擇的所述完整性算法同時用于信令面數據和用戶面數據的完整性保護。由于物聯網終端要求用戶面數據的完整性保護,則選擇出的完整性算法既用于信令面數據的完整性保護,又用于用戶面數據的完整性保護。
第三種:
當所述物聯網終端不要求用戶面數據的完整性保護,且支持認證加密算法時,從所述安全算法列表中選擇優先級最高的認證加密算法和優先級最高的加密算法;其中,選擇的所述認證加密算法用于信令面數據的加密保護和完整性保護;選擇的所述加密算法用于用戶面數據的加密保護。由于物聯網終端不要求用戶面數據的完整性保護,則選擇出的認證加密算法僅用于信令面數據的完整性保護和加密保護;且不對用戶面數據進行完整性保護。
第四種:
當所述物聯網終端要求用戶面數據的完整性保護,且支持認證加密算法時,從所述安全算法列表中選擇優先級最高的認證加密算法;其中,選擇的所述認證加密算法用于信令面數據和的加密保護和完整性保護,及用戶面數據的加密保護和完整性保護。
總之,本實施例中網絡側在安全算法時,會從物聯網終端接收安全能力信息,根據物聯網終端自身發送的安全信息列表來選擇安全算法,這樣就能夠避免基于運營商提供的優先級來選擇安全策略導致的不適用于特定終端的問題。
實施例二:
如圖2所示,本實施例提供一種物聯網的安全算法協商方法,應用于終端側,所述方法包括:
步驟S210:向網絡側發送安全能力信息;其中,所述安全能力信息包括所述物聯網終端支持的安全算法列表,用于網絡側基于所述安全算法表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網的通信;所述安全算法列表包括至少一個安全算法;
步驟S220:接收所述網絡側發送通知,其中,所述通知用于告知所述網絡側選擇的所述安全算法。
本實施例為應用于物聯網的安全算法協商方法,在本實施例中所述物聯網終端會將自身存儲的所述安全算法列表發送給網絡側,具體如,通過基站的轉發,將所述安全算法列表發送給MME或SGSN等網絡側的網元,由網絡側的網元根據所述安全算法列表與物聯網終端采用同樣的算法協商原則,選擇出用于該物聯網終端通信的安全算法。在本實施例中所述安全算法列表提供用于加密保護和完整性保護的各種算法。故在步驟S220中將接收網絡側發送的通知,從而確定出所選擇的安全算法。
顯然采用這種方法,安全算法是基于網絡側基于物聯網終端提供的優先級確定的,這樣就能夠不同物聯網終端的終端能力及業務需求等個性需求,能夠選擇更加適合當前物聯網終端的安全算法,進行通信的安全管控。
在一些實施例中,所述安全算法列表為安全算法按照優先級排序形成的有序列表;所述步驟S220可包括:根據所述安全算法在所述有序列表中的排列順序,選擇用于所述物聯網終端通信的安全算法。此處,將所述安全算法列表為有序列表,在具體實現時,還可利用前述包括優先級字段的非有序列表。將安全算法列表設置為有序列表,這樣能夠減少與網絡側交互的數據量,簡化在選擇安全算法時的復雜度。
在一些實施例中,所述安全能力信息還包括安全策略;其中,所述安全策略用于指示是否要求用戶面數據的完整性保護。在本實施例中所述安全能力信息還包括安全策略,該安全策略策略用于指示是否要求用戶面數據的完整性保護。顯然在本發明實施例中,一方面可提供用戶面數據的完整性保護,另一方面將基于物聯網終端自身發送的安全策略來確定是否要求進行完整性保護。若所述安全策略指示要求用戶面數據的完整性保護,則選擇出的安全算法不僅會對信令面數據進行完整性保護,還會用于對用戶面數據進行完整性保護。
在一些實施例中,所述安全策略還能夠用于指示所述物聯網終端是否支持認證加密算法;其中,所述認證加密算法為能夠同時用于數據的加密保護和完整性保護的所述安全算法。
有一些物聯網終端支持認證加密算法,可能有一些物聯網終端并不支持認證加密算法,而認證加密算法,一個算法可以同時進行加密保護以減少數據泄露的可能性,還可以進行完整性保護,減少數據被篡改的概率,相對于采用加密算法進行加密保護,采用完整性算法進行完整性保護,具有復雜度低及計算時間少的特點。故在本實施例中若物聯網終端支持認證加密算法,則利用所述安全策略進行指示,這樣網絡側及物聯網終端將會優先選擇認證加密算法,這樣有利于后續物聯網終端在通信過程中的操作簡化。
總之,本實施例提供例一種物聯網的安全算法協商方法,在選擇安全算法時是基于物聯網終端自身提供的安全算法列表表征的優先級來確定的,這樣就能夠減少統一根據通信運營商的運營策略進行安全算法的選擇的呆板,及不能很好適用于物聯網終端的硬件能力和業務需求的現象。
實施例三:
如圖3所示,本實施例提供一種網元,所述網元包括:
第一接收單元110,用于接收物聯網終端發送的安全能力信息;其中,所述安全能力信息包括所述物聯網終端支持的安全算法列表;所述安全算法列表包括至少一個安全算法;
選擇單元120,用于基于所述安全算法列表表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網終端的通信;
第一發送單元130,用于將選擇的所述安全算法通知所述物聯網終端。
本實施例提供一種位于網絡側的網元,所述網元可為MME或SGSN等網絡功能實體。
所述第一接收單元110和所述第一發送單元130可對應于所述網元的通信接口,這里的通信接口可為各種類型能夠與物聯網終端通信的接口。該通信接口能夠直接從物聯網終端或利用其他中間節點轉發接收到所述物聯網終端提供的安全算法列表,和/或,用于向物聯網終端發送通知,以告知物聯網終端所選擇的安全算法。
所述選擇單元120可對應于所述網元內的各種處理結構,所述處理結構可包括處理器或處理電路等。所述處理器可包括中央處理器、微處理器、數字信號處理器、應用處理器或可編程整列等。所述處理電路可包括專用集成電路等。所述選擇單元能夠根據接收到的安全算法列表表征的優先級,選擇出適應于所述物聯網終端的安全算法。
總之,本實施例提供的網元,在為物聯網終端進行安全算法選擇時,不再是根據通信運營商的運營策略來選擇,而是根據物聯網終端自行提供安全算法列表表征的優先級來確定,這樣選擇出的安全算法更夠適用于物聯網終端的處理能力參數及業務需求等特點,減少選擇出的安全算法不太適用于物聯網終端導致的計算復雜及計算量大等問題。
所述安全算法列表為安全算法按照優先級排序形成的有序列表;
所述選擇單元120,具體用于根據所述安全算法在所述有序列表中的排列順序,選擇用于所述物聯網終端通信的安全算法。在本實施例中所述安全算法列表是一個有序列表,安全算法在有序列表中的排列順序與安全算法的優先級相對應,這樣所述選擇單元120可直接根據安全算法的排列順序確定出優先級,并選擇出對應的安全算法。當然在具體的實現過程中,所述安全算發列表還可包括優先級字段,該優先級字段可用于表征每一個安全算法的優先級;故不局限于所述有序列表。但是在本實施例中選擇有序列表作為安全算法列表,所述第一接收單元110從所述物聯網終端接收的數據量少,安全算法選擇時可以不必解析優先級字段,直接到對應的位置選擇出優先級適宜的安全算法即可,操作簡單。
在一些實施例中,所述安全算法包括加密算法及完整性算法,和/或認證加密算法;其中,所述加密算法用于數據的加密保護;所述完整性算法用于數據的完整性保護;所述認證加密算法同時用于數據的加密保護和完整性保護。在本實施例中所述安全算法可包括三種類型,及三種組成結構。這三種類型分別是僅用于加密保護的加密算法,僅用于完整性保護的完整性算法,及既可用于加密保護又可用于完整性保護的加密認證方法。
所述安全算法的三種組成結構分別是:
第一種:安全算法由加密算法及完整性算法組成;
第二種:安全算法由加密算法、完整性算法及認證加密算法組成;
第三種:安全算法由認證加密算法組成。
進一步地,所述安全能力信息還包括安全策略;其中,所述安全策略用于指示是否提供用戶面數據的完整性保護。在本實施例中所述網元還可能會接收到安全策略,該安全策略可用于指示是否提供用戶面數據的完整性保護,這樣網元就會根據安全策略,確定出完整性保護的數據范圍。顯然本實施例提供的網元,在執行安全算法的協商過程中,一方面可提供用戶面數據的安全保護,另一方面還可允許物聯網終端自行確定是否進行用戶面數據的保護。
再進一步地,當所述安全策略指示要求用戶面數據的完整性保護時,所述網元還包括:
獲取單元,用于當所述物聯網終端的用戶面數據的完整性保護計費時,獲取所述物聯網終端的業務訂購消息;
所述第一發送單元130,用于當所述業務訂購消息表明所述物聯網終端沒有訂購用戶面數據的完整性保護業務,則向所述物聯網終端發送連接拒絕消息,或,當所述業務訂購消息表明所述物聯網終端有訂購用戶面數據的完整性保護的業務,則向所述物聯網終端發送連接接受消息。
在本實施例中所述獲取單元的結構可對應于處理結構,該處理結構可為處理器或處理電路,處理器或處理電路的可參加前述對應部分,在此就不重復了。此時,處理器或處理電路可以通過查詢本地數據庫獲得所述業務訂購消息。所述獲取單元還可對應于通信接口,可通過與其他設備的交互獲得所述用戶訂購消息。
所述第一發送單元130在物聯網終端要求用戶面數據的完整性保護且物聯網終端沒有訂購用戶面數據的完整性保護業務時,拒絕物聯網終端的連接請求,從而發送連接拒絕消息,否則發送連接接收消息。
進一步地,所述第一發送單元130,還用于當所述物聯網終端的用戶面數據的完整性保護不計費時,向所述物聯網終端發送連接接受消息。
此外,所述安全策略還用于指示所述物聯網終端是否支持認證加密算法;其中,所述認證加密算法為能夠同時用于數據的加密保護和完整性保護的所述安全算法。安全策略還可指示是否支持認證加密算法,所述選擇單元120就可以根據安全策略確定出對應的物聯網終端是否支持認證加密算法,這樣可簡化操作。
所述選擇單元120,用以執行以下至少其中之一:
當所述物聯網終端不要求用戶面數據的完整性保護,且不支持認證加密算法時,從所述安全算法列表中選擇優先級最高的加密算法及優先級最高的完整性算法,其中,選擇的所述加密算法用于信令面及用戶面數據的保護,選擇的所述完整性算法用于信令面數據的完整性保護;
當所述物聯網終端要求用戶面數據的完整性保護,且不支持認證加密算法時,從所述安全算法列表中選擇優先級最高的加密算法及優先級最高的完整性算法;其中,選擇的所述加密算法用于信令面數據和用戶面數據加密保護,選擇的所述完整性算法同時用于信令面數據和用戶面數據的完整性保護;
當所述物聯網終端不要求用戶面數據的完整性保護,且支持認證加密算法時,從所述安全算法列表中選擇優先級最高的認證加密算法;其中,選擇的所述認證加密算法用于信令面數據的加密保護和完整性保護,及用戶面數據的加密保護;
當所述物聯網終端要求用戶面數據的完整性保護,且支持認證加密算法時,從所述安全算法列表中選擇優先級最高的認證加密算法;其中,選擇的所述認證加密算法用于信令面數據和的加密保護和完整性保護,及用戶面數據的加密保護和完整性保護。
總之,本實施例提供的網元,在選擇安全算法時時基于從物聯網終端提供的安全算法列表表征的優先級來確定的,這樣可以選擇出更適合當前物聯網終端的安全算法,減少因為不適應于當前物聯網終端導致的復雜度高及計算量大等問題。
實施例四:
如圖4所示,本實施例提供一種物聯網終端,所述物聯網終端包括:
第二發送單元210,用于向網絡側發送安全能力信息;其中,所述安全能力信息包括所述物聯網終端支持的安全算法列表;所述安全算法列表用于網絡側基于所述安全算法表征的所述安全算法的優先級,選擇一個所述安全算法用于所述物聯網的通信;所述安全算法列表包括至少一個安全算法;
第二接收單元220,用于接收所述網絡側發送通知,其中,所述通知用于告知所述網絡側選擇的所述安全算法。
本實施例提供的物聯網終端可為各種物聯網的終端,例如,智能水表、智能照明設備及智能消防設備等各種設備。
所述第二發送單元210和所述第二接收單元220均可為對應于物聯網終端內的通信接口。所述通信接口可為有線接口或無線接口,在本實施例中優選無線接口,能夠與網絡側進行信息交互,完成安全算法的協商。在本實施例中所述物聯網終端會通過第一發送單元210向網絡側發送包括安全算法列表的安全能力信息,安全算法列表本身就能夠表征安全算法的優先級,選擇出安全算法;而物聯網終端利用第二接收單元220,接收網絡側的通知,就完整了安全算法的協商,這樣能夠選擇出更適合物聯網終端的安全算法。
進一步地,所述安全算法列表為安全算法按照優先級排序形成的有序列表;所述第二接收單元220,用于根據所述安全算法在所述有序列表中的排列順序,選擇用于所述物聯網終端通信的安全算法。當然具體實現時,不局限于上述有序列表。
在一些實施例中,所述安全能力信息還包括安全策略;其中,所述安全策略用于指示是否要求用戶面數據的完整性保護。這樣可以實現物聯網終端自動要求用戶面數據的完整性保護。
在另一些實施例中,所述安全策略還能夠用于指示所述物聯網終端是否支持認證加密算法;其中,所述認證加密算法為能夠同時用于數據的加密保護和完整性保護的所述安全算法。這樣方便網絡側,簡便確定物聯網終端是否支持認證加密算法。
以下結合上述任意實施例提供兩個具體示例:
如圖5所示,本示例提供一種物聯網的安全算法協商方法,包括:
步驟1:連接請求的傳輸,具體包括:物聯網終端向SGSN/MME發送連接請求。該連接請求中包括用戶標識及網絡能力信息。所述用戶標識能夠唯一指示發送所述連接請求的物聯網終端。所述用戶標識可包括國際移動用戶識別碼(International Mobile Subscriber Identity,簡稱MSI)和/或臨時移動用戶識別碼(Temporary Mobile Subscriber Identity,簡稱TMSI).所述網絡能力信息又包括安全能力信息。該安全能力信息又包括安全算法列表及安全策略。網絡能力信息表征的物聯網終端的網絡能力,安全能力信息表征的物聯網終端的安全能力。安全能力是網絡能力的一部分。安全算法可包括加密算法,完整性算法和認證加密算法。安全策略指物聯網終端是否提供用戶面數據的完整性保護,以及是否物聯網終端支持認證加密算法。
步驟2:認證矢量的獲取,具體包括獲取SGSN/MME從HSS認證矢量。這里的認證矢量的獲取可以參見現有技術中,用于第三代移動通信網絡的認證和密鑰協商機制(Authentication and Key Agreement,簡稱AKA)認證過程中認證矢量的獲取,在此就不贅述了。
步驟3:SGSN/MME根據算法協商原則選擇出使用的安全算法并且推導出加密密鑰Ktc和完整性保護密鑰Kti。通常所述Ktc和所述Kti可為等于數據包的長度,例如,為128bit。這里的Ktc和Kti均可根據AKA協議推導產生的。
步驟4:認證和加密請求消息的傳輸。這里的認證和加密請求消息可用于通知物聯網終端選擇出的使用的安全算法。所述認證和加密請求消息的傳輸可包括:SGSN/MME發送給物聯網終端認證和加密請求消息,該消息可包含用于AKA協議的隨機數RAND和認證令牌AUTN,以及所選擇使用的算法和網絡能力。SGSN/MME使用完整性保護密鑰Kti和所選的完整性算法對此消息進行數據完整性保護。
步驟5:物聯網終端如果認證和加密請求消息中沒有出現數據認證標簽則中斷連接;若認證和加密請求消息中有數據認證標簽則推導出Ktc和Kti.驗證數據認證標簽。物聯網終端使用通用用戶識別模塊(Universal Subscriber Identity Module,簡稱USIM)卡執行通用移動通信系統(Universal Mobile Telecommunications System,簡稱UMTS)/演進分組系統(Evolved Packet System,簡稱EPS)及AKA協議并推導出加密密鑰Ktc和完整性保護密鑰Kti.物聯網終端使用Kti和所選的完整性算法來驗證數據認證標簽。如果驗證失敗,物聯網終端則中斷連接。如果驗證成功,物聯網終端再驗證從SGSN/MME收到的網絡能力是否與它發送的一致。如果一致可以確認沒有其他節點的攻擊。
步驟6:認證和加密響應消息的傳輸,具體包括:物聯網終端向SGSN/MME發送認證和加密響應消息。此消息包括物聯網終端生成的數字認證標簽,且該數字認證標簽的計算使用完整性保護密鑰Kti和所選的完整性算法來完成。
步驟7:利用選擇的算法進行安全保護,具體可包括:物聯網終端激活所選的算法,以對后續的用戶面數據和信令面面數據進行保護。
步驟8:協商完成,進行安全保護,具體可包括:SGSN/MME收到認證和加密響應消息后,認證和加密響應消息使用密鑰Kti和所選的完整性算法對數據認證標簽驗證。如果驗證失敗,則斷開連接;如果驗證成功,SGSN/MME激活所選的算法,以對后續的用戶面數據和信令面數據進行保護。這里的激活可為選擇出的使用的安全算法設置使用標簽等操作,這樣后續在進行數據處理時,就能夠根據該標簽,確定出利用該安全算法進行加密保護和完整性保護。
步驟9:位置更新。例如,物聯網終端的位置移動了,就可能涉及位置更新,則SGSN/MME通過與歸屬位置寄存器(Home Location Register,簡稱HLR)/歸屬簽約用戶服務器(Home Subscriber Server,簡稱HSS)進行的信息交互,確定出是否進行了位置更新。通常,在SGSN/MME和HSS間完成位置更新流程之后,SGSN/MME將獲取物聯網終端的業務訂購消息。
步驟10:連接接收消息的傳輸,具體可包括:如果對用戶面數據的完整性保護不需要收費,SGSN/MME不必比對物聯網終端發送的對用戶面數據的完整性保護要求和業務訂購信息,可以直接向物聯網終端發出連接接受的消息。這種處理方式同樣適用于物聯網終端不要求對用戶面數據進行完整性保護。如果對用戶的數據的完整性保護需要收費,SGSN/MME需要比對物聯網終端發送的對用戶面數據的完整性保護要求與它在HSS中的用戶業務訂購信息,如果一致,向物聯網終端發出連接接受的消息;如果不一致,則向物聯網終端發出連接拒絕的消息。
步驟11:協商完成。
在步驟2中選擇使用的安全算法時,可分為以下4種情況:
1):物聯網終端不要求用戶面數據的完整性保護并且不支持認證加密算法。SGSN/MME分別從有序的加密算法列表和完整性算法列表中選擇物聯網終端能夠支持的最高優先級的加密算法和完整性算法。SGSN/MME和物聯網終端應用所選擇的加密算法和完整性算法保護信令面數據,以防止信令面數據的竊聽和修改。所選的完整性算法也用于保護認證和算法協商過程中消息的完整性。SGSN/MME和物聯網終端使用所選擇的加密算法來保護用戶面數據的機密性。
2):物聯網終端需要用戶面數據的完整性保護,但不支持認證加密算法。SGSN/MME分別從有序的加密算法列表和完整性算法列表中選擇物聯網終端能夠支持的最高優先級的加密算法和完整性算法。SGSN/MME和物聯網終端使用所選擇的加密算法和完整性算法來保護信令面數據和用戶面數據的機密性及完整性。所選的完整性算法也用于保護認證和算法協商過程中消息的完整性。
3):物聯網終端不要求對用戶面數據進行完整性保護,但支持認證加密算法。SGSN/MME分別從有序的加密算法列表,認證加密算法列表中和完整性算法列表中選擇物聯網終端能夠支持的最高優先級的加密算法,認證加密算法和完整性算法。SGSN/MME和物聯網終端應用認證加密算法保護信令面數據,以防止信令面數據的竊聽和修改。SGSN/MME和物聯網終端使用加密算法,以確保用戶面數據的機密性。所選的完整性算法用于保護認證和算法協商過程中消息的完整性。
4):物聯網終端需要用戶面數據的完整性保護和支持認證加密算法。SGSN/MME從有序的認證加密算法列表和完整性算法列表中選擇物聯網終端能夠支持的最高優先級的認證加密算法和完整性算法。SGSN/MME和物聯網終端使用認證加密算法來保護信令面數據和用戶面數據的機密性及完整性。所選的完整性算法用于保護認證和算法協商過程中消息的完整性。
在本申請所提供的幾個實施例中,應該理解到,所揭露的設備和方法,可以通過其它的方式實現。以上所描述的設備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,如:多個單元或組件可以結合,或可以集成到另一個系統,或一些特征可以忽略,或不執行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個地方,也可以分布到多個網絡單元上;可以根據實際的需要選擇其中的部分或全部單元來實現本實施例方案的目的。
另外,在本發明各實施例中的各功能單元可以全部集成在一個處理模塊中,也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一個單元中;上述集成的單元既可以采用硬件的形式實現,也可以采用硬件加軟件功能單元的形式實現。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:移動存儲設備、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以所述權利要求的保護范圍為準。