一種實體鑒別方法及裝置的制造方法
【技術領域】
[0001]本發明涉及網絡安全技術領域,尤其涉及實體鑒別方法及裝置。
【背景技術】
[0002]近場通信(Near Field Communicat1n, NFC)技術基于空中接口進行通信,不需要任何物理或可見接觸,在其獲得廣泛應用的同時,也面臨著多種安全威脅,包括:攻擊者通過監聽非法截獲通信雙方的交互信息;通過復制或偽造對合法的卡進行假冒;通過大射頻功率的讀卡器遠程讀取卡內保密信息,然后利用后臺服務器進行破解以達到非法獲取卡內信息的目的等。針對上述攻擊,NFC技術必須具備防偽造能力,通過通信雙方的身份鑒別機制,提供卡與讀卡器身份鑒別功能,為通信雙方身份的合法性和真實性提供保證。但目前的NFC空中接口通信技術沒有提供身份鑒別機制,存在較大的安全隱患。
【發明內容】
[0003]本發明為解決【背景技術】中存在的問題,提出一種實體鑒別方法及裝置。
[0004]一種實體鑒別方法,其特征在于:
[0005]步驟1,實體A向實體B發送包括Na I |CertA的第一身份鑒別消息,其中,NA為實體A產生的隨機數,CertA為實體A的證書;
[0006]步驟2,實體B收到來自實體A的第一身份鑒別消息后,檢查第一身份鑒別消息中證書CertA的有效性,若證書無效,則終止鑒別;
[0007]步驟3,實體B產生隨機數Nb,利用自身的私鑰CSb計算數字簽名SigB=SIG (CSB,IDa I I IDb I I Na I I Nb I I Qb),其中SIG為數字簽名算法,IDa和IDb分別為實體A和實體B的標識信息,Qb為實體B的臨時公鑰,實體B向實體A發送包括Na I I Nb I I CertB | | Qb | | SigB的第二身份鑒別消息,其中CertB為實體B的證書;
[0008]步驟4,實體A收到來自實體B的包括Na I Nb CertB Qb I SigB的第二身份鑒別消息后,檢查第二身份鑒別消息中字段數據的正確性,若驗證不正確,則終止鑒別;
[0009]步驟5,實體A利用自身的私鑰CSa計算實體A的數字簽名SigA=SIG (CSA, IDa | | IDBI I Na I I Nb I I Qa),其中Qa為實體A的臨時公鑰;實體A檢查是否已存儲有實體B的臨時公鑰Qb,若已存儲有Qb,則使用已存儲的Qb,否則檢查收到的第二身份鑒別消息中的Qb的有效性,如果有效,則使用收到的第二身份鑒別消息中的Qb,如果無效,則終止鑒別;
[0010]步驟6,實體A基于E⑶H密鑰交換協議,利用實體A事先產生的臨時私鑰dA和實體B的臨時公鑰Qb計算秘密信息z=f(dA,QB),其中f指密鑰計算函數,如果計算出錯,則終止鑒別,否則,實體A將計算出的秘密信息z轉換為字符串Z,計算密鑰MK=KDF (Na, Nb, Z, IDa, IDb),其中KDF指密鑰推導算法,計算消息鑒別碼MacTagA=MACl (MK, IDa, IDb, Qa, Qb),其中MACl為一種消息鑒別碼計算方法,并發送包括Na| Nb |Qa| ISigJ |MacTagA的第三身份鑒別消息給實體B ;
[0011]步驟7,實體B接收到來自實體A的包括Na I Nb Qa SigA I MacTagA的第三身份鑒別消息后,檢查第三身份鑒別消息中字段數據的正確性,若驗證不正確,則終止鑒別;
[0012]步驟8,實體B檢查是否已存儲有實體A的臨時公鑰Qa,若已存儲有Qa,則使用已存儲的Qa,否則檢查收到的第三身份鑒別消息中的Qa的有效性,如果有效,則使用收到的第三身份鑒別消息中的Qa,如果無效,則終止鑒別;
[0013]步驟9,實體B基于E⑶H密鑰交換協議,利用實體B事先產生的臨時私鑰dB和實體A的臨時公鑰Qa計算秘密信息z=f(dB,Qa),如果計算出錯,則終止鑒別,否則,實體B將計算出的秘密信息z轉換為字符串Z,并計算密鑰MK=KDF(Na,Nb, Z, IDa, IDb),計算消息鑒別碼MacTagA=MACl (MK, IDa, IDb, Qa, Qb),并與收到的實體A發送的第三身份鑒別消息中的行比較,如果不相等,則終止鑒別;否則,實體B認為實體A合法,并計算消息鑒別碼MacTagB=MACl (MK, IDb, IDa, Qb, Qa),將包括MacTagB的第四身份鑒別消息發送給實體A ;
[0014]步驟10,實體A收到來自實體B的第四身份鑒別消息后,計算MacTagB=MACl (MK, IDb, IDa, Qb, Qa),并與收到的第四身份鑒別消息中的MacTagB進行比較,如果不相等,則認為實體B非法;如果相等,則認為實體B合法。
[0015]一種實體A與實體B進行實體鑒別時,實體A的工作方法,其特征在于,所述方法包括如下步驟:
[0016]產生隨機數Na,向實體B發送包括NA| | CertA的第一身份鑒別消息,其中,CertA為實體A的證書;
[0017]收到來自實體B的包括Na| Nb CertB Qb SigB的第二身份鑒別消息后,檢查第二身份鑒別消息中字段數據的正確性,若驗證不正確,將終止鑒別;
[0018]利用自身的私鑰CSa和臨時公鑰Qa計算數字簽名SigA=SIG (CSA, IDa | | IDb | | Na | | NbQa);檢查是否已存儲有實體B的臨時公鑰Qb,若已存儲有Qb,則使用已存儲的Qb,否則檢查收到的第二身份鑒別消息中的Qb的有效性,如果有效,則使用收到的第二身份鑒別消息中的Qb,如果無效,則終止鑒別;
[0019]基于E⑶H密鑰交換協議,利用事先產生的臨時私鑰dA和實體B的臨時公鑰Qb計算秘密信息z=f (dA, Qb),如果計算出錯,則終止鑒別,否貝IJ,將計算出的秘密信息z轉換為字符串Z,計算密鑰MK=KDF (Na, Nb, Z, IDa, IDb),計算消息鑒別碼MacTagA=MACl (MK, IDa, IDb, Qa, Qb),并發送包括 Na | | Nb | | Qa | | SigA | | MacTagA 的第三身份鑒別消息給頭體B ;
[0020]收到來自實體B的第四身份鑒別消息后,計算MacTagB=MACl (MK, IDb, IDa, Qb, Qa),并與收到的第四身份鑒別消息中的MacTagB進行比較,如果不相等,則認為實體B非法;如果相等,則認為實體B合法。
[0021]其中,SIG為一種數字簽名算法,IDa為實體A的身份標識,IDb為實體B的身份標識,f為一種密鑰計算函數,KDF為一種密鑰推導算法,MACl為一種消息鑒別碼計算方法。
[0022]一種實體A與實體B進行實體鑒別時,實體B的工作方法,其特征在于,所述方法包括如下步驟:
[0023]收到來自實體A的包括Na I I &1^的第一身份鑒別消息后,檢查第一身份鑒別消息中證書CertA的有效性,若證書無效,則終止鑒別;產生隨機數Nb,利用自身的私鑰CSb和臨時公鑰Qb計算數字簽名SigB=SIG(CSB,IDa| IDb Na Nb Qb),向實體A發送包括NaI Nb CertB Qb SigB的第二身份鑒別消息,其中CertB為證書;
[0024]接收到來自實體A的包括Na I Nb IqaI |SigA| |MacTagA第三身份鑒別消息后,檢查第三身份鑒別消息中字段數據的正確性,若驗證不正確,則終止鑒別;
[0025]檢查是否已存儲有實體A的臨時公鑰Qa,若已存儲有Qa,則使用已存儲的Qa,否則檢查收到的第三身份鑒別消息中的Qa的有效性,如果有效,則使用收到的第三身份鑒別消息中的Qa,如果無效,則終止鑒別;
[0026]基于E⑶H密鑰交換協議,利用事先產生的臨時私鑰dB和實體A的臨時公鑰Qa計算秘密信息z=f(dB,QA),如果計算出錯,則終止鑒別,否則,將計算出的秘密信息z轉換為字符串Z,并計算密鑰MK=KDF (Na, Nb, Z, IDa, IDb),計算消息鑒別碼MacTagA=MACl (MK, IDa, IDb, Qa, Qb),并與收到的實體A發送的第三身份鑒別消息中的MacTagA進行比較,如果不相等,則終止鑒別;否則,認為實體A合法,并計算消息鑒別碼MacTagB=MACl (MK, IDb, IDa, Qb, Qa),將包括MacTagB的第四身份鑒別消息發送給實體A。
[0027]其中,SIG為一種數字簽名算法,IDa為實體A的身份標識,IDb為實體B的身份標識,f為一種密鑰計算函數,KDF為一種密鑰推導算法,MACl為一種消息鑒別碼計算方法。
[0028]一種裝置,用于與另一裝置進行實體鑒別,所述裝置包括存儲單元、處理單元及收發單元,其特征在于:
[0029]存儲單元用于存儲所述裝置的證書CertA、私鑰CSa ;
[0030]處理單元用于產生隨機數Na、臨時私鑰dA和臨時公鑰Qa ;
[0031]收發單元用于向所述另一裝置發送包括Na| I &1^的第一身份鑒別消息;還用于接收所述另一裝置發送的包括NaI Inb CertJ |qb| Sige的第二身份鑒別消息;
[0032]處理單元還用于對收到的來自所述另一裝置的包括?I Nb |CertB| | Qb | |SigB的第二身份鑒別消息進行檢查,若驗證不正確,則終止鑒別;
[0033]處理單元還用于利用私鑰CSa和臨時公鑰Qa計算數字簽名SigA=SIG(CSA,IDa | ID
B na Nb |qa);
[0034]處理單元還用于檢查是否已存儲有所述另一裝置的臨時公鑰Qb,若已存儲有Qb,則使用已存儲的Qb,否則檢查收到的第二身份鑒別消息中的Qb的有效性,如果有效,則使用收到的第二身份鑒別消息中的Qb,如果無效,則終止鑒別;
[0035]處理單元還用于基于E⑶H密鑰交換協議,利用dA和所述另一裝置的臨時公鑰Qb計算秘密信息z=f (dA,Qb),計算正確時將計算出的秘密信息z轉換為字符串Z,計算密鑰MK=KDF (Na, Nb, Z, IDa, IDb),計算消息鑒別碼 MacTagA=MACl (MK, IDa, IDb, Qa, Qb);
[0036]收發單元還用于向所述另一裝置發送包括NaI InJ IqaI |SigA| |MacTagA的第三身份鑒別消息,并用于接收所述另一裝置發送的包括MacTagB的第四身份鑒別消息;
[0037]處理單元還用于計算MacTag13=MACl (MK, IDb, IDa, Qb, Qa),然后將計算得到的MacTagB與所述另一裝置發來的MacTagB進行比較,如果相等,則認為所述另一裝置身份合法。
[0038]其中,SIG為一