1. 在安全通道建立的情況下,資料安全互動的應答流程圖如下所示,具體步驟解釋如下:
1> 避免SCP03安全通道協定中的CMAC與C-MAC的混淆,CMAC是計算C-MAC校驗值的一 種機制,比如 圖示中的 NIST SP 800-38B,而C-MAC則是附加在發送指令後面的,主要 是 用于接收方對接收到的指令做資料完整性教驗的。
2> 關于 MAC chaining value 的使用,它的初始值為16位元組的0x00, 然後每一次發送方在發 送APDU 指令之前計算C-MAC的時候就生成一個新的MAC chaining value,這個新的 MAC chaining value既作為回報資料的頭部,同時也作為下一條指令的起始段(隻有首條指令 的初始值為0x00, 後續的指令則是依次進行連結的),是以這個數值可以将連續的APDU指令 進行連結進而保證指令的時序,例如進行一次車主配對就會有很多指令和回報,此時可以使 用MAC chaining value将指令連結起來,将這一連串的操作稱之為車主配對操作,然後分享 數字鑰匙或者删除數字鑰匙等操作也是一堆APDU指令的集合,都可用此 MAC chaining value 來確定操作時序。
3> Lc+8 (Lc 是APDU指令的資料長度,8是CMAC計算機制所需要的,并非在後面添加 Padding Data), 另外SCP03協定明确說明了在計算C-MAC的時候是不需要包含Le的。
4> 附加在發送的APDU指令之後的C-MAC每次都是提取計算出來的MAC chaining value的 高8位元組的資料,其實下面的圖示是缺少了一步,在實際項目實施的過程中,接收方也是需 要使用對稱密鑰 S-MAC對接收到的指令資料部分也進行一次CMAC操作,将自身計算的與 指令中附加的C-MAC進行比對就可校驗發送指令的完整性。
5> 接收方完成C-MAC的完整性比對之後,則使用對稱密鑰S-RMAC計算出R-MAC并附加在 回報資料後面,緊随在R-MAC後面的則是狀态字,這裡要注意的是如果是錯誤狀态字則隻回 錯誤狀态(如6985/6800等) ,其他正響應9000或者警告類狀态字(62XX/63XX)則嚴格按照下 圖所示。
6> 可以看到流程中的S-MAC和 S-RMAC都是用于校驗雙方資料完整性的,還有一個S-ENC 則是對資料包進行加密的,假定是密文傳輸的情況下,先将指令或者回報資料使用對稱密鑰 S-ENC進行加密,然後才按照下圖操作即為密文傳輸方式。
7> 本圖示是基于發送和接收方已完成身份驗證并建立了安全通道和雙端都儲存了三個對稱的 安全通道密鑰(S-ENC/S-RMAC/S-MAC),有了安全通道密鑰以後,就可以執行下圖所示的數 據安全互動的流程了。

2. 下面是密文資料傳輸的APDU指令指令示意圖(APDU Command Data Field Encryption)
1> 先對資料按照AES padding填充規則對資料進行填充 2> 填充資料後對資料部分執行AES-CBC算法得到加密的資料 3> 對整個密文的APDU指令執行CMAC操作計算出 C-MAC 4> 将C-MAC附加在密文後面則為密文傳輸的APDU指令 5> 是以接收方則需要先校驗C-MAC,校驗通過之後則執行AES-CBC解密操作即可擷取明文資料
3. 下面是密文資料傳輸的APDU回報指令示意圖(APDU Response Data Field Encryption)
1> 先對回報資料按照AES padding填充規則對資料進行填充 2> 填充資料後對資料部分執行AES-CBC算法得到加密的資料 3> 對整個密文的APDU指令執行CMAC操作計算出 R-MAC 4> 将R-MAC附加在密文後面則為密文傳輸的APDU指令 5> 是以發送方則需要先校驗R-MAC,校驗通過之後則執行AES-CBC解密操作即可擷取明文資料
4. 下面是發送方計算C-MAC示意圖(APDU C-MAC Generation) 參照文章第一點的描述,此處不再贅述了。
5. 下面是接收方計算R-MAC的示意圖(APDU R-MAC Generation) 參考本文章第一點的描述,此處将不再贅述了。
總結來說SCP03是分成兩大部分的,第一部分,對S-MAC,S-RMAC,S-ENC的生成和通訊雙方雙向認證的過程做出一種規範并說明(這部分可以去參考CCC3.0車輛與手機之間的标準交易流程); SCP03第二部分則說明了安全通道建立後如何利用這三個對稱密鑰(S-MAC,S-RMAC,S-ENC)進行安全通道通信的架構和流程,SCP03的第二部分的架構可以應用于各種場合,關于安全通道的三個對稱密鑰可能不同的安全體系有不同的生成方式,比如汽車電子數字鑰匙,就是在标準交易的過程中完成身份驗證和安全通道密鑰的産生,但是一旦安全通道建立,都會按SCP03第二部分所描述的架構進行安全通信。本文主要針對的SCP03第二部分的安全互動流程進行講解,如果需要了解安全通道對稱密鑰如何産生可參靠先前車輛與手機進行标準交易的流程講解!