附 錄 C (規范性附錄) NEAU-A鑒別機制
C.1 NEAU-A鑒別機制概述
本附錄定義了NFC實體鑒別機制NEAU-A,該機制采用了ISO/IEC 9798-3:1998/Amd.1:2010中的TePA實體鑒別技術和GB/T 28455-2012中的TePA-AC技術。NEAU-A的鑒別過程如圖C.1所示,在需要時可信第三方將參與鑒別過程,為發送者A和接收者B提供鑒別服務,對第三方TTP的支持為機制必備能力。同時,本機制能夠基于ISO/IEC 20009-2:2013規定的匿名鑒別機制支持發送者A和接收者B的匿名需求。
本附錄涉及到的密碼算法應符合國家對密碼管理的相關規定。

圖C.1 NEAU-A實體鑒別協議概述
C.2 準備
在開始服務前,對于每個NFC-SEC實體需具備以下部分:
——各自具備數字證書CertA、CertB、CertTTP和對應的私鑰。
——在支持可信第三方調用的情況下,實體A和實體B具備TTP的數字證書CertTTP。
——ISO/IEC 18092:2004中規定的它自身的nfcid3和其他NFC-SEC實體的nfcid3。
——每個NFC-SEC實體知道自己是否支持TTP的策略,發送方知道是否TTP是可以連接的。
C.3 支持可信第三方TTP的鑒別流程
1、實體A向實體B發送包括TTP||NA||CertA的ACT_REQ鑒別消息,其中,NA為實體A產生的隨機數,CertA為實體A的證書,TTP代表是否引入參與鑒別過程;
2、實體B收到來自實體A的ACT_REQ鑒別消息后,如果身份鑒別方式支持第三方,則實體B產生隨機數NB,利用自身的私鑰CSB計算數字簽名SigB=SIG(CSB,IDA||IDB||TTP||NA||NB||QB),其中SIG為SM2數字簽名算法,IDA和IDB分別為實體A和實體B的標識信息,QB為實體B的臨時公鑰,實體B向實體A發送包括TTP||NB||NA||CertB||QB||SigB的ACT_RES鑒別消息,其中CertB為實體B的證書;
4、實體A收到來自實體B的ACT_RES鑒別消息后,如果身份鑒別方式支持第三方,則實體A向實體TTP發送包括NA||NB||CertA||CertB的TAEP_REQ鑒別消息;
5、實體TTP收到來自實體A的包括NA||NB||CertA||CertB的TAEP_REQ鑒別消息后,根據CertA和CertB的有效性對實體A和實體B的合法性進行鑒別,根據鑒別結果組成ResA和ResB,其中ResA和Res分別包含對實體A和實體B的鑒別結果和對應的證書;利用自身的私鑰CSTTP計算數字簽名SigTTP=SIG(CSTTP,NA||NB||ResA||ResB),其中SIG為SM2數字簽名算法,實體TTP向實體A發送包括NA||NB||ResA||ResB||SigTTP的TAEP_RES鑒別消息;
6、實體A收到來自實體TTP的TAEP_RES鑒別消息后,進行驗證:
a) 驗證TAEP_RES鑒別消息中SigTTP中實體TTP的簽名,并檢查TAEP_REQ鑒別消息中實體A產生的隨機數NA與包含在SigTTP中實體TTP的簽名數據中的隨機數NA是否相符,若驗證通過則執行b);
b) 得到實體B的驗證結果ResB,若實體B合法有效,則執行c),否則實體A完成對實體B的鑒別,則實行7;
c) 獲得實體B的公鑰,驗證ACT_RES鑒別消息中SigB的數字簽名,并檢查實體A的標識信息IDA與包含在SigB簽名數據中的標識信息IDA是否一致,校驗ACT_REQ鑒別消息中的隨機數NA與包含在SigB簽名數據中的隨機數NA是否一致,若驗證通過,實體A完成對實體B的鑒別,則實行7;
7、實體A利用自身的私鑰CSA計算實體A的數字簽名SigA=SIG(CSA, IDA||IDB||NA||NB||QA),其中QA為實體A的臨時公鑰;實體A檢查是否已存儲有實體B的臨時公鑰QB,若已存儲有QB,則使用已存儲的QB,否則檢查收到的ACT_RES鑒別消息中的QB的有效性,如果有效,則使用收到的ACT_RES鑒別消息中的QB,如果無效,則終止鑒別;體A基于SM2密鑰交換協議,利用實體A事先產生的臨時私鑰dA和實體B的臨時公鑰QB計算秘密信息z=f(dA, QB),其中f指SM2密鑰交換協議的密鑰計算函數,如果計算出錯,則終止鑒別,否則,實體A將計算出的秘密信息z轉換為字符串Z,計算密鑰MK= KDF(NA, NB, Z, IDA, IDB),其中KDF指9.3節密鑰推導算法,計算消息鑒別碼MacTagA=MAC(MK, IDA, IDB, QA, QB),其中MAC1為9.5.2節消息鑒別碼計算方法,并發送包括NA||NB||QA||ResA||ResB||SigTTP||SigA||MacTagA的VFY_REQ鑒別消息給實體B;
8、實體B接收到來自實體A的VFY_RES鑒別消息后,檢查VFY_RES鑒別消息中字段數據的正確性:
a) 驗證VFY_RES鑒別消息中SigTTP中實體TTP的簽名,并檢查TAEP_RES鑒別消息中實體B產生的隨機數NB與包含在SigTTP中實體TTP的簽名數據中的隨機數NB是否相符,若驗證通過則執行b);
b) 得到實體A的驗證結果ResA,若實體A合法有效,則執行c),否則實體A完成對實體B的鑒別,則則終止鑒別過程;
c) 獲得實體A的公鑰,驗證VFY_RES鑒別消息中SigA的數字簽名,并檢查實體B的標識信息IDB與包含在SigA簽名數據中的標識信息IDB是否一致,校驗ACT_REQ鑒別消息中的隨機數NB與包含在SigA簽名數據中的隨機數NB是否一致,若驗證通過,實體B完成對實體A的鑒別,則實行9;
9、實體B檢查是否已存儲有實體A的臨時公鑰QA,若已存儲有QA,則使用已存儲的QA,否則檢查收到的VFY_RES鑒別消息中的QA的有效性,如果有效,則使用收到的VFY_REQ鑒別消息中的QA,如果無效,則終止鑒別;
10、實體B基于SM2密鑰交換協議,利用實體B事先產生的臨時私鑰dB和實體A的臨時公鑰QA計算秘密信息z=f(dB,QA),如果計算出錯,則終止鑒別,否則,實體B將計算出的秘密信息z轉換為字符串Z,并計算密鑰MK= KDF(NA, NB, Z, IDA, IDB),計算消息鑒別碼MacTagA=MAC(MK, IDA, IDB, QA, QB),并與收到的實體A發送的VFY_RES鑒別消息中的MacTagA進行比較,如果不相等,則密鑰確認失敗,終止鑒別過程;否則,計算消息鑒別碼MacTagB=MAC(MK, IDB, IDA, QB, QA),將包括MacTagB的VFY_RES鑒別消息發送給實體A;
10、實體A收到來自實體B的VFY_RES鑒別消息后,計算MacTagB=MAC(MK, IDB, IDA, QB, QA),并與收到的VFY_RES鑒別消息中的MacTagB進行比較,如果不相等,則密鑰確認失敗;如果相等,則認為密鑰確認成功。
C.4 不支持可信第三方TTP的鑒別流程
1、實體A向實體B發送發送包括TTP||NA||CertA的ACT_REQ鑒別消息,其中,NA為實體A產生的隨機數,CertA為實體A的證書,TTP代表是否引入參與鑒別過程;
2、實體B收到來自實體A的ACT_REQ鑒別消息后,如果身份鑒別方式不支持第三方,則檢查證書CertA的有效性,若證書無效,則終止鑒別;
3、實體B產生隨機數NB,利用自身的私鑰CSB計算數字簽名SigB=SIG(CSB,IDA||IDB||TTP||NA||NB||QB),其中SIG為SM2數字簽名算法,IDA和IDB分別為實體A和實體B的標識信息,QB為實體B的臨時公鑰,實體B向實體A發送包括TTP||NB||NA||CertB||QB||SigB的ACT_RES鑒別消息,其中CertB為實體B的證書;
4、實體A收到來自實體B的ACT_RES鑒別消息后,如果身份鑒別方式不支持第三方,則檢查ACT_RES鑒別消息中字段數據的正確性,若驗證不正確,則終止鑒別;
5、實體A利用自身的私鑰CSA計算實體A的數字簽名SigA=SIG(CSA, IDA||IDB||NA||NB||QA),其中QA為實體A的臨時公鑰;實體A檢查是否已存儲有實體B的臨時公鑰QB,若已存儲有QB,則使用已存儲的QB,否則檢查收到的ACT_RES鑒別消息中的QB的有效性,如果有效,則使用收到的ACT_RES鑒別消息中的QB,如果無效,則終止鑒別;
6、實體A基于SM2密鑰交換協議,利用實體A事先產生的臨時私鑰dA和實體B的臨時公鑰QB計算秘密信息z=f(dA, QB),其中f指SM2密鑰交換協議的密鑰計算函數,如果計算出錯,則終止鑒別,否則,實體A將計算出的秘密信息z轉換為字符串Z,計算密鑰MK= KDF(NA, NB, Z, IDA, IDB),其中KDF指9.3節密鑰推導算法,計算消息鑒別碼MacTagA=MAC(MK, IDA, IDB, QA, QB),其中MAC1為9.5.2節消息鑒別碼計算方法,并發送包括NA||NB||QA||SigA||MacTagA的VFY_REQ鑒別消息給實體B;
7、實體B接收到來自實體A的包括NA||NB||QA||SigA||MacTagA的VFY_RES鑒別消息后,檢查第VFY_RES鑒別消息中字段數據的正確性,若驗證不正確,則終止鑒別;
8、實體B檢查是否已存儲有實體A的臨時公鑰QA,若已存儲有QA,則使用已存儲的QA,否則檢查收到的VFY_RES鑒別消息中的QA的有效性,如果有效,則使用收到的VFY_REQ鑒別消息中的QA,如果無效,則終止鑒別;
9、實體B基于SM2密鑰交換協議,利用實體B事先產生的臨時私鑰dB和實體A的臨時公鑰QA計算秘密信息z=f(dB,QA),如果計算出錯,則終止鑒別,否則,實體B將計算出的秘密信息z轉換為字符串Z,并計算密鑰MK= KDF(NA, NB, Z, IDA, IDB),計算消息鑒別碼MacTagA=MAC(MK, IDA, IDB, QA, QB),并與收到的實體A發送的VFY_REQ鑒別消息中的MacTagA進行比較,如果不相等,則終止鑒別;否則,實體B認為實體A合法,并計算消息鑒別碼MacTagB=MAC(MK, IDB, IDA, QB, QA),將包括MacTagB的VFY_RES鑒別消息發送給實體A;
10、實體A收到來自實體B的VFY_RES鑒別消息后,計算MacTagB=MAC(MK, IDB, IDA, QB, QA),并與收到的VFY_RES鑒別消息中的MacTagB進行比較,如果不相等,則認為實體B非法;如果相等,則認為實體B合法。
C.5 密鑰推導
C.5.1 發送者(A)
為SSE計算MKSSE = KDF-SSE (NA, NB, Z, IDA, IDB)。
為SCH計算{MKSCH, KESCH, KISCH} = KDF-SCH (NA, NB, Z, IDA, IDB)。
C.5.2 接收者(B)
為SSE計算MKSSE = KDF-SSE (NA, NB, Z, IDA, IDB)。
為SCH計算{MKSCH, KESCH, KISCH} = KDF-SCH (NA, NB, Z, IDA, IDB)。
GB/T 33746.2—2017 近場通信(NFC)安全技術要求 第2部分:安全機制要求
推薦文章: