車用網路

車載資通訊勇往直前 IEEE 1609.2把關安全

2010-08-13
如同傳統的無線網路服務,車載資通訊(Telematics)應用一樣存在著資訊安全隱憂。這些應用必須借助相關的資訊安全機制,來保護資料在無線環境傳送中的隱私權、防止身分與訊息偽造、防止有心人士利用此網路來竊聽和惡意攻擊方式。但兩者最大的不同點在於,在高速移動的車載環境中,這些資訊安全機制必須在有效的時間內提供完整的服務,讓行駛中的車輛在所處車用網路範圍內能夠享有資料交換的安全性與隱私性的防護。
IEEE 1609.2即為IEEE 1609通訊協定架構中,負責資訊安全服務於應用與管理訊息的傳遞。如圖1所示,IEEE規範出資訊安全主要涵蓋於應用層和傳送訊息封包時所做規範。

資料來源:IEEE Std 1609
圖1 IEEE 1609通訊協定之架構

在介紹1609.2車載通訊規格所使用的演算法前,先介紹何謂數位簽章(Digital Signature)。  

須有數位簽章才發送電子憑證  

所謂的數位簽章,是使用以非對稱性之金鑰對演算法來達成,係指包含「私密金鑰」及保存在電子憑證內相對應的「公開金鑰」。每個使用者均擁有一組包含公開金鑰和私密金鑰的對稱性金鑰性(Public- Private Key Pair),此私密金鑰須由客戶妥善保管,可與公開金鑰互相驗證,而公開金鑰則須經過認證機構(Certificate Authority, CA)認證後發給公開金鑰電子憑證,其內容包括憑證序號、客戶代號或名稱、公開金鑰、憑證有效期限、認證機構單位名稱及認證機構的數位簽章等。 認證機構驗證主要須先驗證客戶的身分與其公開金鑰後,才發送電子憑證,並以認證中心的數位簽章保護、防止偽造及竄改,作為公開金鑰的有效證據,同時當作驗證私密金鑰的憑據。接著,說明如圖2中Signed_Message的1609.2簽章訊息格式:

資料來源:IEEE Std 1609
圖2 Signed Message

protocol_version
  為版本格式。

type分別可為signed或encrypted
  告知此封包為簽章或加密。

signer為簽章的型態
  type可分為憑證或數位摘要,型態如果為數位摘要,則是將憑證內容經過Hashing Generator產生一組摘要(Digest),取後面8位元當索引值,如為憑證資料則填入憑證資料(圖3)。

資料來源:IEEE Std 1609
圖3 Certificate Message

unsigned_message
  主要填入尚未簽章資料長度資料,因為未來版本將加入時間和位置座標,主要是交由1609.3規範,因此在此不介紹。

signature產生數位簽章
  輸入unsigned_message資料經過簽章後產生數位簽章,也就是使用ECDSA Signature Generator,輸入自己的私鑰和unsigned_message,經由電腦運算將私密金鑰(電子印章)及將原網路交易訊息濃縮成訊息摘要予以運算,即為執行簽章的程序,並把數位簽章加入簽章訊息中,再將簽章訊息傳送出去,亦即signed_message。

加密與解密保障傳輸安全  

加解密(Encryption & Decryption)的部分,其中非對稱式(Asymmetric)的加密,是採用ECIES NIST P256演算法,這部分的演算法僅用來加密隨機亂數(Random)產生的對稱式金鑰(Symmetric Key),而這個對稱式金鑰才是用來加解密真正的資料訊息,其建議採用的對稱 式加密演算法是高級加密標準/計數器模式(Advanced Encryption Standard-Counter Cipher Mode, AES-CCM)。  

系統之所以這樣設計,是因為對稱式的加解密速度比非對稱式的加解密快許多,因此系統先用亂數產生一個對稱式金鑰,並將數量較大的資料訊息使用AES-CCM對稱式演算法加密後,再將對稱式金鑰使用非對稱式ECIES NIST P256演算法加密,然後一併傳遞給對方。  

對方在收到封包後,先採用非對稱式演算法解出對稱式金鑰,然後再利用這個對稱式金鑰及對稱式演算法,快速地解開資料封包,取出正確的訊息。  

如圖3資料加解密架構圖所示,此架構主要作用於對資料做加解密,共分為兩個模組,AES-CCM模組主要負責對所輸入資料以對稱式金鑰做加解密,而ECIES模組則是對所輸入的對稱式金鑰做加解密,當封包傳遞時對對稱式金鑰做保密之用,如圖4資料加解密所示。

圖4 資料加解密架構圖

AES-CCM資料加解密  

如圖5的AES-CCM架構圖,主要傳入資料分別有對稱式金鑰來做加解密,同時每次加解密時會產生不同Nonce來做XOR運算,相同的,加密所輸入的金鑰和Nonce,解密時也需要相同於加密所使用的金鑰和Nonce。

圖5 AES-CCM架構圖

而AES-CCM演算法,輸入參數則是對稱式金鑰和資料來進行動作,CCM則為Counter+CBC MAC。其計 數器主要是先把訊息(Message)切為數個區塊(Block),每一個區塊所用的計數器都會加1。而密碼區塊鏈結(Cipher-Block Chaining, CBC)為訊息驗證(Message Authentication)技術,主要是產生一個訊息完整度檢查(Message Integrity Check, MIC)。802.11的MIC一詞其實就是密碼學(Cryptography)所用的訊息驗證碼(Message Authentication Code, MAC)。  

此架構的CCM則是使用CCM_init( )函式來把所需參數做初始化,再將初始化值傳給CCM_encrypt( )或CCM_decrypt( )做加解密,動作為將資料的Message第一個區塊用AES( )加密後,再將結果與第二個區塊作XOR,然後再把第二個區塊作AES( )加密。  

接下來的動作一樣,一直重複到最後的計數器數,最後產生密文,而解密動作則是相反動作,產生明文。  

ECIES對稱Key加解密  

如圖6資料加解密架構圖右半部,主要動作是對輸入的對稱式金鑰和輸入的公鑰做加解密,同時每次加密時會產生不同V.C.T數值,V為公鑰值,C為密文也就是對稱式金鑰加密值,T為Tag值主要是做驗證比對封包值(Checksum)之用。

圖6 AES-CCM架構圖

此架構為了得到V值而呼叫gen ephem_ point、encode ephem_point、get encKey and MacKey程序,再經過加密(Encrypt)程序得到C,以及gen mac程序得到T。而解密則是把輸入V.C.T和私鑰,做解密動作得到明文。  

圖7為Encrypted Message標準格式,Version恆為1,type 恆為encrypted,content_type為簽章加密(signed_S)或只做 加密app_data,recipients為內含幾組憑證資訊,而cert_id為憑證經過Hash雜湊演算法得到後8位元值,其下的欄位為前述所介紹,不再說明。

資料來源:IEEE Std 1609
圖7 Encrypted Message格式

1609.2新舊版本類似  

接下來介紹新版(1609.2-v2-2009-10-20)和舊版(1609.2-v1-2006)之間的差異,由圖7架構中可看出新版和舊版差異性不大,其中核心簽章認證和加解密技術與舊版方式一樣,尚未修改。  

主要相異處是在新版更加詳細地說明了一些憑證管理系統間流程定義與一些相關憑證的驗證。如圖8灰色框所示,新版新增下列幾項檢查:

圖8 1609.2架構圖

Message Freshness Check
  針對憑證此訊息是否在有效期間內,不超過5秒。

Message Replay Check
  針對此憑證訊息是否已接受過,避免重複攻擊。

Message Location Check
  針對此憑證訊息是否在有效區域內,不超過1,000公尺。

Certificate Revocation List Check
  針對此憑證訊息是否已被廢除。

Fragmented Message Check
  如果憑證鏈或廢除憑證鏈太長,則先將Data分割在做簽章或加密。

Certification Chain Checks
  判斷此憑證鏈是否符合root CA、psid、有效區域內、有效期限內。

通訊品質與效能為先  

在高速車速行駛下,如何加快加解密與簽章 技術是項非常重要的議題,雖然加密越多,想嘗試破解的駭客也越多,但在破解競賽中將推出更 多的演算法,未來的作法也會納入到硬體上實作,加快處理速度。不過,目前在車載通訊上主要都還是著墨於通訊品質與效能,筆者認為將在品質穩定後才會開始有學術研究 的參與,畢竟此車載通訊若無法使用,就更不用談資訊安全了!  

(本文作者任職於資策會新興智慧研究所)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!