WUSB安全議題不可小覷 新穎PTK管理防守有功

WUSB是一種高頻寬的短距離無線傳輸技術,該技術被視為下一代無線傳輸技術的重要角色。然而,由於安全性受到疑慮,因此有業者研發出不同的PTK管理方式,盼能藉此加強WUSB之安全性。
由WiMedia聯盟(WiMedia Alliance)主導的無線通用序列匯流排(Wireless Universal Serial Bus, WUSB)技術,主要是由超寬頻(Ultra-wide Band, UWB)的無線廣播技術為基礎,在3公尺內達到480Mbit/s、在10公尺內達到110Mbit/s的傳輸速率。再加上它的頻譜範圍涵蓋3.1G~10.6GHz,因此,在不同地區皆可彈性調整,使得無線USB能在世界各地廣泛應用。  

然而,也因為具有方便使用的特性,如何維持高度安全性,也成為無線USB的重要課題。根據目前無線USB規範1.0的制定,在互為主從的連接設備因為信任逾時(Trust Timeout)而導致原先的對稱臨時金鑰(Pair-wise Temporal Key, PTK)過期後,就必須更換PTK,以維護設備間的安全性。  

矛盾的是,該規範並沒有明確定義何時應拋棄過期的PTK。因此,在信任逾時後,無線USB主機可能立即刪除PTK,也可能保留一段時間,或甚至永久保留。也因為這樣的不確定性,可能對使用者帶來不安全的使用環境,因此本文根據這一特點,提出一種新的PTK管理方法。它有兩個新穎之處︰一是在信任逾時後的重新連結逾時(Reconnect Timeout)期間保留 PTK;二是當主機檢測到信任逾時後,發送Keep_Alive IE訊號,並發起四向交握(Four-way Handshake),以確保安全性。以下即針對此管理方法詳述。  

PTK保留時間惹爭議  

在無線USB規範中,一般無線USB設備會向無線USB主機發出DN_Connect以進行連接。收到此請求後,主機即開始關聯過程(Association Process),以取得主金鑰和背景連接(Connection Context, CC)。主金鑰其後用於兩端的認證過程,以取得臨時金鑰,即PTK和群組暫時金鑰(Group Transient Key, GTK),這些臨時金鑰多用於主機與設備之間的加密通訊。  

這裡討論的PTK,可以用於交換最多248個封包,並延續達9年之久。但根據無線USB之相關規定,當設備遇到信任逾時時,就須發起重新連接過程,同時它一定要使用加密封包才能進行。而當信任逾時以後,主機就應丟棄PTK。 然而,正如前文所述,相關規範並沒有明確定義何時應丟棄PTK,再加上主機與設備的信任逾時窗口可能不同,因此可能出現如圖1的各種問題:

點圖放大
圖1 主機接收到重新連接請求的不同情況

第一種情況較為普通,它是指主機在自己信任逾時前就收到重新連接請求,因為有設備已經超過了自定的信任逾時。這種情況下,主機仍擁有PTK,因此可以重新連接,請求進行解密,進而完成一次重新連接。  

第二種情況,是主機在信任逾時後立即刪除 PTK。在這種情況下,設備的重新連接請求(即加密的DN_Connect)無法被主機解密。因此,主機無法開始四向交握,而設備也不能恢復。設備將進入未連接狀態,並再次從頭啟動連接過程。  

還有一種可能,是主機在信任逾時後保留PTK,直到收到DN_Connect、對DN_Connect進行處理並生成新的PTK為止。但是,設備只能重試DN_Connect 六次。此外,如果所有DN_Connect均由於封包損壞或通道不良而遺失,則主機會無限期保留PTK和內容。這不但是系統資源的一種浪費,更有可能被駭客所利用。  

新型PTK管理方法加強控管  

從上述情況可得知,主機仍應該在信任逾時、PTK過期後保留PTK,但關鍵問題是:應持續多久?還有,如果沒有收到DN_Connect,主機須要採用哪種動作?為了回答上述問題,已有業者提出一種改進的PTK 管理方法。首先,將PTK保留一個重新連結逾時時間。重新連結逾時的定義為信任逾時後的一段時間,在這期間,無線USB主機繼續維持PTK為啟動狀態,並由重新連結逾時時間幫助重新連接過程,以符合PTK的安全要求。  

其次,定義一個主機初始重新連接(Host Initiated Reconnect)事件,即當主機檢測到信任逾時時,主機將發送Keep_Alive IE,並發起一個四向交握。設備初始重新連接(Device Initiated Reconnect)則是已存在的事件,每當設備發生信任逾時時,它都可啟用。  

在重新連結逾時期限內,新定義的主機初始重新連接過程和現有的設備初始重新連接過程會同時工作,以提升重新連接過程的成功機率。其概念與運作方式如圖2。在重新連結逾時期間,若是主機初始重新連接過程和設備初始重新連接同時運作時失敗,PTK將在重新連結逾時之後被摧毀,以確保安全。兩種重新連接過程定義如下︰

主機初始重新連接
  假設主機檢測到信任超時,並且可能由於封包損壞而沒有收到DN_Connect,主機會發送Keep_Alive IE給設備。當設備端用加密後的DN_Alive或DN_Connect作出回應時,主機將重新開始四向交握過程,並完成設備的重新連接。此方法主要用於主機檢測到、但設備尚未檢測到信任逾時的情況。這種情況下,造成信任逾時的原因多半是來自設備的封包遺失。因此,在信任逾時後,主機將再發出三個 Keep_Alive_IE,並等待任何設備回應重新連結逾時的加密DN_Alive或DN_Connect通知。
設備初始重新連接
  假定設備先檢測到了信任逾時,則設備會向主機發送最多已加密的六次DN_Connect。如果無線USB主機雖未檢測到信任逾時,但DN_Connect已被成功解密,則PTK可保留。但若無線USB主機也檢測到信任逾時,但在定義的重新連結逾時時間內PTK仍被保留,則DN_Connect也能成功解密。幫助重新連結逾時完成重新連接。

點圖放大
圖2 各式重新連接之狀況

為實現這兩種重新連接過程,建議重新連接逾時時間為390毫秒。原因是,假設每個65毫秒的超幀(Superframe)有n個微調度管理指令(Micro-scheduled Management Command, MMC),那麼前文提及在主機初始重新連接時,發出三個KeepAlive_IE的KeepAlive時間,即為3×65ms×1/(n)=195ms/(n)。 至於在設備初始重新連接時,六個DN_Connect的DN_Connect時間即大約6×65ms×1/(n)=390ms/(n)。再加上此兩者可以同時發生,因此考慮最差情況,建議的連結時間為390毫秒。  

PTK管理猶未晚  

總之,由於無線USB規範並未明確地指出信任逾時以後的PTK管理。這種模糊性有可能導致重新連接的失敗、系統資源的浪費,或甚至安全機制的漏洞。有了主機初始重新連接與設備初始重新連接這兩種機制,就可以解決信任逾時以後的PTK管理問題。  

(本文作者任職於恩智浦)

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

我知道了!