顯示具有 Security 標籤的文章。 顯示所有文章
顯示具有 Security 標籤的文章。 顯示所有文章

2023年10月27日 星期五

2023年8月23日 星期三

Information Security: SE Root CA, Authentication vs Attestation by ChatGPT

"SE Root CA"中的 SE 是什麼?

在 "SE Root CA" 中,"SE" 通常代表 "Secure Element",它是指 "安全元件"。安全元件是一種專門設計用於處理和存儲敏感數據的硬體或軟體模組,旨在提供高度的安全性和保護,以防止未授權的存取和攻擊。

"SE Root CA" 可能指的是 "Secure Element Root Certification Authority",即安全元件根憑證授權機構。這表示該機構負責發布和管理與安全元件相關的憑證,這些憑證可用於驗證和確保安全元件的身份以及其參與的安全運作。

安全元件通常被應用於許多領域,包括智能卡、手機SIM卡、智能鑰匙、物聯網(IoT)設備等,以確保這些系統處理的敏感數據得到適當的保護。


比較 Authentication 和 Attestation

"Authentication" 和 "Attestation" 是兩個在資訊安全和身份驗證領域中常見的術語,
它們雖然有些相似,但指涉的概念和用途有所不同。

Authentication(身份驗證):
身份驗證是確定一個實體(通常是用戶或設備)是否為其聲稱的身份的過程。它的目的是確保只有合法的用戶或設備能夠訪問特定的系統、應用程序或資源。常見的身份驗證方式包括使用密碼、生物特徵(如指紋、面部識別)、硬體令牌(如安全密鑰卡)等。身份驗證通常涉及用戶提供識別信息並進行驗證,以確定其是否有權限訪問所需的資源。

Attestation(證明):
證明是指確認某個實體的屬性或狀態的過程。在資訊安全中,特別是在可信計算和安全設備領域,證明指的是對設備的特性或狀態進行驗證,以確保其具有預期的安全性。例如,當一個設備宣稱自己是一個受信任的平台時,證明可以用來驗證它是否符合特定的安全標準,並且沒有被破壞或受到惡意攻擊。

總的來說,
"Authentication" 著重於確認用戶或設備的身份,以確保其有權限訪問某個資源。
"Attestation" 則著重於確認設備的特性、狀態或安全性,以確保其具有預期的可信度。
這兩個概念在確保系統和資源的安全性方面都起著重要作用。

Information Security 資訊安全

REF https://isp.nuu.edu.tw/p/405-1074-1269,c82.php
REF https://medium.com/hannah-lin/%E5%BE%9E%E9%9B%B6%E9%96%8B%E5%A7%8B%E5%AD%B8%E8%B3%87%E5%AE%89-%E4%BB%80%E9%BA%BC%E6%98%AF%E8%B3%87%E8%A8%8A%E5%AE%89%E5%85%A8-75a7a208e8db


CIA Triad
*機密性 Confidentiality
資訊不得未經授權取得
Tool: 加密
Attack:

*完整性 Integrity
資訊完整不失真
Tool: HASH (CRC32/MD5/SHA/...)
Attack:

*可用性 Availability
經授權者可取得資訊
*可歸責性 (Accountability):確保實體之行為可唯一追溯到該實體的特性。
>鑑別性 (Authenticity):確保一主體或資源之識別就是其所聲明者的特性。鑑別性適用於如使用者、程序、系統與資訊等實體。
>不可否認性 (Non-repudiation):對一已發生之行動或事件的證明,使該行動或事件往後不能被否認的能力。




2023年5月6日 星期六

ISO-21434 TISAX ISO-27001 VDA ECE R155 R156

TISAX
Trusted Information Security Assessment eXchange (汽車安全評估訊息交換平台)

Assessment Level
      AL2到場檢驗與否由檢驗公司決定才是


雲端服務供應商 Google/Amazon/Microsoft 有 TISAX 認證


https://www.bureauveritas.com.tw/tisax-automotive-information-security-management
TISAX®為全球認可的汽車業資訊安全管理系統標準。與德國主要汽車品牌有來往的組織都需取得TISAX®,預計後續會有更多車廠要求供應鏈加入。在此建議處理敏感資訊的汽車供應商和服務提供者早了解TISAX®,並即時規劃應對之道。

主要益處
  • 台灣稽核員執行TISAX®稽核,為您在溝通上減少障礙
  • 防止資訊安全漏洞和網路攻擊
  • 取得客戶的對組織數據保護方式的信任
  • 識別風險,證明組織資訊安全符合業界標準
  • 全球通用的汽車行業資訊安全標準,取得汽車市場的進入門票


https://www.bsigroup.com/zh-TW/blog/Cybersecurity-and-Information-Resilience-Blog/2021/2021-infosec-standards-summit-TISAX-ISO21434/ 

2021年資安年會會後報導-連網汽車資安要求,以ISO 21434和TISAX規範因應汽車網路安全風險

隨著數位化、自動化科技的開展,汽車產業亦大步邁向車聯網與自動駕駛的未來。車聯網的概念就是物聯網,運用多重通訊技術,實現車輛與車輛、車輛與駕駛員,甚至車輛與雲端或公共基礎設施之間的互動;換句話說,透過一套縝密的網路通訊系統進行數據資料的傳遞,打造出能協同人、車、路以及環境的智慧網絡。

imagewdzuf.png

綜觀整個聯網自動車的產業生態系統,若將車子置於核心位子,聯網科技所牽涉的對象相當廣泛,包含車體的製造商、上下游供應商、購車客戶、相關基礎建設、監管機構與驗證機構等等,因科技的應用連結眾多單位,使得當我們在談論車子時,其概念已不僅限於單個機械車體,而是在聯網技術下,運作的電腦(程式)與潛在的資安風險。有鑑於此,BSI臺灣隱私保護與車聯網資安產品經理孫文良於演講中特別提醒:「當新的應用科技生成時,將可能辦伴隨著全新的(資安)風險,應做妥善地評估與處理。」

imageph6pj.png

當眾所期待的車聯網或自動駕駛車逐漸在市場上嶄露頭角時,首個重要問題就是──如何加強資安風險的控管? BSI孫經理表示,汽車產業的安全標準涵蓋三個範疇,分別為功能安全(Functional Safety)、品質(Quality),以及資訊與網路安全(Information & Cyber Security);除了被視為資安標準的基礎ISO 27001之外,ISO/SAE 21434與TISAX(Trusted Information Security Assessment Exchange)也是目前資訊與網路安全(Information & Cyber Security)範疇中較受關注的相關標準。

imagen90se.png

ISO 21434標準於2021年8月正式公告,孫經理表示,聯合國日前所制定的法規中,規範汽車產業的製造商須符合網路安全管理體系(Cyber-Security Management System,CSMS)的要求,而ISO/SAE 21434的標準則展現出CSMS的具體訴求,不僅確保整個供應鏈的流程與管理都達到合規性,也能透過實踐標準,形塑組織的網路安全文化。

孫經理提及ISO 21434的前身是 SAE J6031。綜觀其標準,從第5到第8的條款,講述的重點在於組織層面的網路安全政策,建立、維護並實施整體的資安規則和流程;另外,在第9-11條中,ISO 21434標準側重車輛的總體(V-model)開發過程和產品生命週期,分別在概念、開發、驗證、生產、營運與維護及退役等階段提出相關要求,依照其規定能產出該階段的工作文件,以確保其驗證有效。

imageht1od.png

概括而言,ISO/SAE 21434的優勢在於協助組織採取合理措施,不僅預防網路安全問題與培養內部網路安全之文化,也彰顯組織企業對網路安全的承諾。

imagempr8e.png

另一部分,資訊的透明化也是重要議題,TISAX(Trusted Information Security Assessment Exchange)為目前2,500多個公司所共同使用的資安標準交換平台,該標準的存在能確保供應鏈夥伴間資訊安全的透明度,並保持彼此間對安全評估標準的一致性;在TISAX平臺之上,無論供應鏈中的哪個環節,通過公認的資訊安全評估流程其稽核結果都可放置於TISAX平臺上,從而促進組織間的資訊交流。

imagejxgip.png

孫經理特別提出TISAX與ISO 27001的關聯與差異,他表示TISAX其中所羅列的41個安全控制項目與ISO 27001附錄A中的控制要求相似,不過整體而言兩個標準作用的面向是不同的,ISO 27001係以維持組織自身的資安安全性為主TISAX則是作為資訊交換的第三平台方,可促成整個產業供應鏈的資安管理透明化與標準化

imagesn59w.png

於演講最後,孫經理再次強調TISAX的執行不僅能減少供應商之間對資訊安全的重複評估,增加效率,也能促進整個汽車供應鏈的信任與信心。如今汽車產業的數位化在進步,資安面向的需求當然也要有所保固!

imagepyc2k.png


VDA

Verband Der Automobilindustrie
German Association of the Automotive Industry
德國汽車工業協會

https://www.tuvsud.com/zh-tw/services/auditing-and-system-certification/vda-6-x

證明在可靠性和品質方面的承諾

汽車是一種非常複雜的機器,由多種複雜零部件組成。在整個製造和維修流程中確保品質始終如一,這點十分重要。因此,汽車零部件製造商必須根據IATF 16949和/或VDA 6.1的標準進行驗證,而汽車服務供應商應滿足更高的VDA 6.2標準,工裝/機器製造商應獲得VDA 6.4驗證。

什麼是VDA 6.X?

VDA 6.X品質管理系統驗證是根據德國汽車製造商要求,針對汽車行業ISO 9001標準進行的一項擴展。

IATF 16949和VDA 6驗證根源於ISO 9001品質管理系統。 VDA 6分為兩個區域; 管理和產品與流程。

为什么这非常重要?

IATF 16949和VDA 6.1只是適用於汽車製造商的強制性要求,但汽車服務供應商還需要滿足VDA 6.2標準,汽車工具和機器製造商需要滿足VDA 6.4標準。透過實施VDA 6.X計畫,您的公司能夠致力於實現長期目標,始終滿足甚至超越客戶的期望。除了提高組織效率和產品品質,遵守驗證要求可以在最大限度上減少浪費和錯誤,從而提高整體生產力。

https://www.sgs.com.tw/service/page/119/2/120-certification-business-enhancement-services/155-vda-6-3-process-audits
VDA 6.3 PROCESS AUDITS
VDA 6.3 製程稽核 – 優化組織與供應鏈製程並控管製程風險。

ECE R155 R156
https://linchew.com/2021/04/ece-r155-r156/

ECE R155, R156: 車輛網絡安全和軟體更新法規概述

(更新2021/1/12) 聯合國歐洲經濟委員會(UNECE)的世界車輛法規協調論壇(WP29)在2020年6月24日頒布了有關車輛網絡安全和軟體更新的兩項新ECE法規,並於2021年1月份,正式生效。

目錄 > 概述

  1. ECE R155, R156: 車輛網絡安全和軟體更新法規概述
  2. ECE R155: 汽車產業-「網絡安全管理系統(CSMS)」法規概述
  3. ECE R155: 汽車產業-「網絡安全管理系統(CSMS)」法規細部解讀
  4. ECE R156: 汽車產業-「軟體更新和軟體更新管理系統」法規概述
  5. ECE R156: 汽車產業-「軟體更新和軟體更新管理系統」法規細部解讀

隨著車輛系統的高度發展,汽車產業正歷經了數位化的變革。如今,一輛汽車包含多達150個電子控制單元(ECU)和大約1億行的軟體代碼,而這個數字將在2030年再成長3倍。

當汽車走向高度數位化,資訊安全的風險也將遽增,由駭客攻擊而導致安全性問題,將威脅著車輛安全和消費者的隱私;如同筆者在ISO/SAE 21434文章中,也提到騰訊科恩實驗室成功駭入特斯拉的實例,汽車產業的資訊安全已刻不容緩。

R155, R156 所涵蓋的四大主題

有鑑於汽車的資訊安全風險,聯合國歐洲經濟委員會(UNECE)的世界車輛法規協調論壇(WP29)在2020年6月24日通過了兩個ECE法規要求,分別是R155及R156,這兩個法規要求已經於2021年1月份,正式生效。這兩項法規將涵蓋以下4個主題,分別為:

  1. R155: 管理車輛的資訊風險(或稱「網絡風險」,原文為Cyber Rik)
  2. R155: 透過設計來減輕在價值鏈中的風險,以確保車輛的安全
  3. R155: 偵測並回應整個車隊的安全事件
  4. R156: 針對「空中升級」(OTA updates),提供安全及保全(safe and secure)的軟體更新,並確保不損害到車輛安全(Safe)
額外補充: OTA updates

一般所謂的OTA updates,指的是Over-The-Air updates,即空中升級的意思。車輛的空中升級,一般可以分為兩類,分別是:

1) 空中軟體升級(Software Over-the-Air, SOTA)
2) 空中韌體升級(Firmware Over-the-Air, FOTA)

常見的導航圖資更新、媒體應用系統更新等皆屬於空中軟體升級的範圍,相對來說,空中韌體升級則是能夠針對電子控制單元(ECU)進行升級,由於ECU的改動可能導致或造成車輛安全或網絡安全的風險,因此在技術上非常具有挑戰性。
額外補充:各國對於新法規的反應與動向

由世界車輛法規協調論壇(WP29)所頒布的兩項法規,將於2021年1月份,正式生效,目前主要反應的國家:

1. 日本:當法規生效後,計畫採用這些規定
2. 南韓:採取循序漸進的方式,在2020年下半年將《網絡安全法規》的規定納入了一項國家指南,並在第二步著手實施該法規
3. 歐盟:新的《網絡安全法規》將從2022年7月起對所有新車型強制實施,並將對2024年7月起對所有新生產的車輛強制實施
額外備註:歐盟法規的參照

歐盟於2020年1月發布了《一般安全條例》(Regulation (EU) 2019/2144),原文提到:

(26) The connectivity and automation of vehicles increase the possibility for unauthorised remote access to in-vehicle data and the illegal modification of software over the air. In order to take into account such risks, UN Regulations or other regulatory acts on cyber security should be applied on a mandatory basis as soon as possible after their entry into force.

根據該指令,歐盟已宣布計劃引入EU的安全相關法規,以便從2022年7月開始對所有"新車型"強制執行,並在2024年7月之後針對所有“首次註冊”車輛的強制性要求。
ISO-21434 
https://linchew.com/2021/04/cybersecurity-trends-for-automotive/

車輛網絡安全趨勢 – ISO/SAE 21434 標準即將正式發行

近年,由於「車聯網」概念蓬勃發展,具備聯網功能的車輛占比持續提升;隨著這股風潮而起的另外一個議題「網絡安全(Cybersecurity)」,也越來越被業界重視。本文章, 將針對道路車輛的相關安全(Cybersecurity)法規進行整理,並聊聊即將發行的ISO/SAE 21434。

因應網絡安全議題,各國的反應:

美國

  • 2016年10月,美國國家公路交通安全管理局(NHTSA)發布了《現代車輛網絡安全最佳實踐( Cybersecurity Best Practices for Modern Vehicles),目的在幫助汽車製造廠商和軟體設計公司提升現代車輛網絡安全,並針對如何防止及抵禦網絡攻擊提供指引。
  • 2017年9月,NHTSA又發布了《自動駕駛系統2.0》(Automated Driving Systems 2.0,即ADS指南),該指南取代了2016年發布的聯邦自動駕駛汽車政策,並建議汽車產業投入資源進行風險評估和測試車輛網絡安全。

英國

英國標準協會( British Standards Institute, BSI)於 2018年12月19發布了《汽車網絡安全基礎指南-規格書(The fundamental principles of automotive cyber security. Specification),該指南由捷豹路虎( Jaguar Land Rover)、福特汽車( Ford)、賓利( Bentley)等企業及英國國家網絡安全中心( National Cyber Security Centre)共同編寫,由英國運輸部提供資金支持。該指南針對研發自動駕駛車輛的公司設置了標準,並提供了網絡安全的原則。

歐盟

  • 2017年1月, 原歐盟網路資訊安全局(現為歐盟網絡安全局 European Union Agency for Cybersecurity, ENISA)發布了《智能汽車的網絡安全和適應性》(Cyber Security and Resilience of smart cars),該指南列舉了汽車存在的問題及網絡威脅、風險及降低風險的因素和可以採取的安全措施。值得一提的是該指南並未將自動駕駛汽車涵蓋在範圍內。
  • 2019年,ENISA又發布了第二版 — 《智能汽車安全最佳實踐》(Good practices for security of Smart Cars),該指南特別包含了自動駕駛和半自動駕駛汽車,並針對上述兩者提供最佳網絡安全實踐。
  • 2021年,ENISA與JRC針對人工智慧與自動駕駛的網絡安全議題,共同起草了一份報告 – 《採用人工智慧來實現自動駕駛的網絡安全挑戰》(Cybersecurity Challenges in the Uptake of Artificial Intelligence in Autonomous Driving),該報告針對在自動駕駛車輛中採用AI技術的議題,提出了網絡安全的挑戰與見解。

德國

汽車產業資安事件層出不窮,因此德國汽車工業協會(VDA)的資訊安全委員會(Information Security Committee),制定了汽車產業的資訊安全的標準 Information Security Assessment(簡稱 VDA-ISA),並以此標準創造創建了《資訊安全評估與交換機制》(Trusted Information Security Assessment Exchange, TISAX),該機制是基於汽車產業的要求量身定製的標準,並參考國際標準ISO/IEC 27001、 ISO/IEC 27002 和 ISO/IEC 27017等標準,主要目的是要實現汽車行業資訊安全評估的相互認可,並並提供通用的評估和交換機制。

中國

2020年4月28日,由全國信息安全標準化技術委員會(SAC/TC260)提出國家標準《信息安全技術汽車電子系統網絡安全指南》(GB/T 38628-2020),並於2020年11月1日正式實施。

本指南(架構請參考下圖)針對具有網絡安全要求的汽車電子產品提供統一的規範和基於標準的活動指南,其標準內容主要包容三個部分,分別是:

  • 網絡安全組織管理(即公司管理層級)
  • 網絡安全活動(即產品開發生命週期,包含概念設計、產品開發、硬體開發、軟體開發、產品生產、運行和服務等階段)
  • 網絡安全支持保障(即一般支持的流程)
額外補充 - 標準起草單位

值得一提的是,這份標準的起草單位包含中國電子技術標準化研究院 、電子科技大學 、東軟集團股份有限公司 、國家信息技術安全研究中心 、中國汽車技術研究中心有限公司、等共計21個單位。
額外補充 - 標準的相似性

中國所提出的「信息安全技術汽車電子系統網絡安全指南」與UNECE R155的CSMS及ISO/SAE 21434有高度的相似性,建議在採用這份指南時,要同時關注其他兩個單位。

信息安全技術汽車電子系統網絡安全指南 指南架構
信息安全技術汽車電子系統網絡安全指南 指南架構

UNECE

有鑑於汽車的資訊安全風險,聯合國歐洲經濟委員會(UNECE)的世界車輛法規協調論壇(WP29)在2020年6月24日,針對汽車製造商制定了兩個規定,並於2021年1月份正式生效。這兩項規定分別是:

  • UN Regulation No. 155 : 網絡安全即網絡安全管理系統(Cyber security and cyber security management system)
  • UN Regulation No. 156 : 軟體更新即軟體更新管理系統(Software update and software update management system)

這兩個法規共涵蓋了四個主題,分別是:

  1. 管理車輛的網絡風險(Cyber Rik)
  2. 透過設計來減輕在價值鏈中的風險,以確保車輛的安全
  3. 偵測並回應整個車隊的安全事件
  4. 針對「空中升級」(OTA updates),提供安全及保全(safe and secure)的軟體更新,並確保不損害到車輛安全(Safe)
額外補充 - 關於R155, R156

建議可以延伸閱讀: ECE R155, R156法規概述

VDA QMC

VDA QMC為了因應網絡安全的趨勢、及其他法規(UNECE R155)與標準(ISO/SAE 21434)。相繼於2020年及2021年推出兩份參考文件,分別是:

  • 2020年6月,推出《車用網絡安全系統稽核》(Automotive Cybersecurity Management System Audit)黃色草稿版;本文件是因應UNECE R155針對車用網絡安全系統法規所制定的稽核查檢內容;目前本文件(ACSMS ENG_2020)已於2020年12月,發行正式版本。
  • 2021年2月,推出《ASPICE網絡安全增訂版》(ASPICE for Cybersecurity)黃色草稿版,該文件是針對ISO/SAE 21434在產品開發階段,做細部的延伸展開,以補足ISO標準的不足。值得一提的是,該文件仍處於審稿階段,預計在5月後會發行正式版本。
額外補充 - 取得文件

ACSMS ENG_2020可於VDA QMC的網站中購買,價格為€50.00。
ASPICE for Cybersecurity則可以在VDA QMC的網站中下載到黃色草稿版。

如果有想要取得這兩份文件的黃色草稿版,可以寫信給筆者,我可以提供一些幫忙 :)

國際標準組織3GPP、ISO和SAE

隨著各國相繼發展智慧車輛的相關標準,其中的車輛網絡安全已成為2020國際組織主要關注的議題,在國際組織中,3GPP( 3rd Generation Partnership Project,即第三代合作夥伴計劃)對V2X(車聯網)的技術建立了資訊安全技術要求,以保證通信層面的安全。而致力於汽車安全標準的ISO( 國際標準化組織)與SAE(Society of Automotive Engineers,即國際汽車工程師學會)組成聯合工作組,並在ISO/SAE TC22中起草了ISO/SAE 21434國際標準,旨在解決汽車產業的網絡安全問題。

ISO/SAE 21434的推出意味著OEM必須為連網汽車建立起網絡安全架構,在供應鏈中的所有供應商都遵循該標準。ISO/SAE 21434已經於2021/3/9進入FDIS(最終國際標準草案)版本,待審查完畢後,即將發布。關於此標準的狀態請詳參:ISO官方網站

ISO/SAE 21434 已經進入FDIS版本,正式版即將發布!
ISO/SAE 21434 已經進入FDIS版本,正式版即將發布!

功能安全實際上也是網絡安全的一部分,因此待ISO/SAE 21434 網絡安全標準推出後,業界勢必會同時考慮網絡安全與功能安全(ISO 26262),並搭配汽車產業既有的標準發開流程(如: ASPICE),以此形成三角架構。這個新的組合將會變成汽車產業的主要標準架構。

2022年10月6日 星期四

TrustZone

 Source https://www.twblogs.net/a/5bddf4012b717720b51b1916

瞭解TrustZone,讀了這篇就夠了

這篇文章源於老闆想了解TrustZone,要求我寫一篇文章簡單介紹TrustZone的原理。既然是給領導看的,只介紹原理哪裏夠,因此也添加了公司自己現有TEE環境的設計、實現和發展,也順帶加入了一些題外話。也是因爲要給領導看,所以文章也不能涉及太多技術細節,包括TrustZone模塊的詳細設計以及示例代碼等,所以只從總體上講解了什麼是TrustZone,TrustZone是如何實現安全隔離的、TrustZone相關的一些資源等。

如果你之前對TrustZone亦無所知,好吧,本文或許值得你一看;如果你已經瞭解了TrustZone,想知道更多的實現細節,抱歉,本文並不適合你,或許閱讀ARM官方網站和文檔以及各開源項目源碼是更好的選擇。

本文先交代TrustZone的安全背景,然後從較高層次展開介紹TrustZone的工作機制和原理(包括AXI總線架構、CPU、內存和中斷模型,以及安全隔離機制),列舉了幾個常見ARM平臺上的實現以及當前博通ARM平臺上的狀況,最後附帶一些TrustZone相關的開源項目以及其他資源鏈接,全文約7500字。(由於涉及安全的原因,本文已經刪掉介紹公司自己平臺相關的部分)。

本文內容主要來源於網絡,綜合了網上的多篇文章,也加入了一些自己的理解,重新組織了文章結構使其便於理解。

主要參考的文章包括:

本文還參考了貼吧、知乎等部分文章,由於涉及較多,無法一一列舉,再次對原作者的付出一併表示感謝!

除上面列舉的資源外,本文主要資料參考了ARM官方對TrustZone的介紹,主要有:

事實上,前面多篇文章的細節也來源於官方文檔。 本人不保留本文的所有權,歡迎轉載本文,讓更多的人來了解TrustZone。由於不想再次以類似 《TrustZone原理介紹》 一類作爲標題,但又不知道以什麼作爲標題貼切,所以隨手用了現在標題黨的套路,抱歉。

1. TrustZone介紹

1.1 安全背景

在介紹TrustZone前有必要簡單回顧下目前的一些安全手段。

CPU通過內存映射手段給每個進程營造一個單獨的地址空間來隔離多個進程的代碼和數據,通過內核空間和用戶空間不同的特權級來隔離操作系統和用戶進程的代碼和數據。但由於內存中的代碼和數據都是明文,容易被同處於內存中的其它應用偷窺,因此出現了擴展的安全模塊,應用將加密數據送往安全模塊,由安全模塊處理完後再返回結果給相應的應用。

很多消費電子設備都使用擴展的安全模塊來確保數據安全,目前常見的方式有:

  1. 外部掛接硬件安全模塊

    數據的處理交由外部的安全模塊實現,這些模塊能夠保護自己的資源和密鑰等數據的安全,如SIM卡、各種智能卡或連接到外部的硬件加解密模塊等,但其同主芯片的通信線路暴露在外部,容易被監聽破解。另外,通信的速率比較低。

  2. 內部集成硬件安全模塊

    將外部安全模塊的功能集成到芯片內,因此一個芯片上至少有兩個核:一個普通核和一個安全核。優點是核與核之間的通信在芯片內部實現,不再暴露在外面。缺點是核之間的通信速度仍然較低,而且單獨的安全核性能有限,還會會佔用SoC面積,成本較高。

1.2 TrustZone是個什麼鬼?

TrustZone是ARM針對消費電子設備設計的一種硬件架構,其目的是爲消費電子產品構建一個安全框架來抵禦各種可能的攻擊。

TrustZone在概念上將SoC的硬件和軟件資源劃分爲安全(Secure World)和非安全(Normal World)兩個世界,所有需要保密的操作在安全世界執行(如指紋識別、密碼處理、數據加解密、安全認證等),其餘操作在非安全世界執行(如用戶操作系統、各種應用程序等),安全世界和非安全世界通過一個名爲Monitor Mode的模式進行轉換,如圖1:

ARM的安全世界和非安全世界

圖1. ARM的安全世界和非安全世界

處理器架構上,TrustZone將每個物理核虛擬爲兩個核,一個非安全核(Non-secure Core, NS Core),運行非安全世界的代碼;和另一個安全核(Secure Core),運行安全世界的代碼。

兩個虛擬的核以基於時間片的方式運行,根據需要實時佔用物理核,並通過Monitor Mode在安全世界和非安全世界之間切換,類似同一CPU下的多應用程序環境,不同的是多應用程序環境下操作系統實現的是進程間切換,而Trustzone下的Monitor Mode實現了同一CPU上兩個操作系統間的切換。

AMBA3 AXI(AMBA3 Advanced eXtensble Interface)系統總線作爲TrustZone的基礎架構設施,提供了安全世界和非安全世界的隔離機制,確保非安全核只能訪問非安全世界的系統資源,而安全核能訪問所有資源,因此安全世界的資源不會被非安全世界(或普通世界)所訪問。

設計上,TrustZone並不是採用一刀切的方式讓每個芯片廠家都使用同樣的實現。總體上以AMBA3 AXI總線爲基礎,針對不同的應用場景設計了各種安全組件,芯片廠商根據具體的安全需求,選擇不同的安全組件來構建他們的TrustZone實現。

其中主要的組件有:

  • 必選組件

    • AMBA3 AXI總線,安全機制的基礎設施
    • 虛擬化的ARM Core,虛擬安全和非安全核
    • TZPC (TrustZone Protection Controller),根據需要控制外設的安全特性
    • TZASC (TrustZone Address Space Controller),對內存進行安全和非安全區域劃分和保護
  • 可選組件

    • TZMA (TrustZone Memory Adapter),片上ROM或RAM安全區域和非安全區域的劃分和保護
    • AXI-to-APB bridge,橋接APB總線,配合TZPC使APB總線外設支持TrustZone安全特性

除了以上列出的組件外,還有諸如 Level 2 Cache Controller, DMA Controller, Generic Interrupt Controller等。

邏輯上,安全世界中,安全系統的OS提供統一的服務,針對不同的安全需求加載不同的安全應用TA(Trusted Application)。 例如:針對某具體DRM的TA,針對DTCP-IP的TA,針對HDCP 2.0驗證的TA等。

圖2是一個ARM官網對TrustZone介紹的應用示意圖:

基於TrustZone的應用示意圖

圖2. 基於TrustZone的應用示意圖

圖中左邊藍色部分Rich OS Application Environment(REE)表示用戶操作環境,可以運行各種應用,例如電視或手機的用戶操作系統,圖中右邊綠色部分Trusted Execution Envrionment(TEE)表示系統的安全環境,運行Trusted OS,在此基礎上執行可信任應用,包括身份驗證、授權管理、DRM認證等,這部分隱藏在用戶界面背後,獨立於用戶操作環境,爲用戶操作環境提供安全服務。

可信執行環境(TEE, Trusted Execution Environment)是Global Platform(GP)提出的概念。對應於TEE還有一個REE(Rich Execution Environment)概念,分別對應於安全世界(Secure World)和非安全世界(Non-secure World, Normal World)。

GlobalPlatform(GP)是跨行業的國際標準組織,致力於開發、制定併發布安全芯片的技術標準,以促進多應用產業環境的管理 及其安全、可互操作的業務部署。目標是創建一個標準化的基礎架構, 加快安全應用程序及其關聯資源的部署,如數據和密鑰,同時保護安全應用程序及其關聯資源免受軟件方面的攻擊。

2. TrustZone原理和設計

以下主要從TrustZone的總線設計,CPU設計(包括處理器模型、內存模型和中斷模型)和安全隔離機制來介紹TrustZone的設計和工作原理。

2.1 總線設計

  • 總線

設計上,TrustZone 在系統總線上針對每一個信道的讀寫增加了一個額外的控制信號位,這個控制位叫做Non-Secure或者NS位,是AMBA3 AXI總線針對TrustZone作出的最重要、最核心的擴展設計。

這個控制信號針對讀和寫分別叫做ARPORT[1]和AWPORT[1]:

  • ARPROT[1]: 用於讀操作(Read transaction), 低表示Secure, 高表示Non-Secure
  • AWPROT[1]: 用於寫操作(Write transaction), 低表示Secure,高表示Non-Secure

總線上的所有主設備(master)在發起新的操作(transaction)時會設置這些信號,總線或從設備(slave)上解析模塊會對主設備發起的信號進行辨識,來確保主設備發起的操作在安全上沒有違規。

例如:硬件設計上,所有非安全世界的主設備(Non-Secure masters)在操作時必須將信號的NS位置高,而NS位置高又使得其無法訪問總線上安全世界的從設備(Secure Slaves),簡單來說就是對非安全世界主設備發出的地址信號進行解碼時在安全世界中找不到對應的從設備,從而導致操作失敗。

NS控制信號在AMBA3 AXI總線規範中定義。可以將其看作爲原有地址的擴展位,如果原有32爲尋址,增加NS可以看成是33位尋址,其中一半的32位物理尋址位於安全世界,另一半32位物理尋址位於非安全世界。

當然,非安全世界的主設備嘗試訪問安全世界的從設備會引發訪問錯誤,可能是SLVERR(slave error)或者DECERR(decode error),具體的錯誤依賴於其訪問外設的設計或系統總線的配置。

  • 外設

在TrustZone出現前,ARM的外設基於AMBA2 APB (Advanced Peripheral Bus)總線協議,但是APB總線上不存在類似AXI總線上的NS控制位。爲了兼容已經存在的APB總線設計,AMBA3規範中包含了AXI-to-APB bridge組件,這樣就確保基於AMBA2 APB的外設同AMBA3 AXI的系統兼容。AXI-to-APB bridge負責管理APB總線設備的安全事宜,其會拒絕不合理的安全請求,保證這些請求不會被轉發到相應的外設。

例如:新一代的芯片可以通過增加AXI-to-APB bridge組件來沿用上一代芯片的設計來使其外圍設備可以支持TrustZone。

2.2 處理器設計

2.2.1 處理器模型

TrustZone中,每個物理處理器核被虛擬爲一個安全核(Secure)和一個非安全核(Non-Secure),安全核運行安全世界的代碼,非安全核運行除安全世界外的其它代碼。由於安全世界和非安全世界的代碼採用時間片機制輪流運行在同一個物理核上,相應的節省了一個物理處理器核。

多核處理器上,也有建議說讓將某一個或幾個核指定爲安全專用核,只運行安全系統代碼來構建安全世界,其餘核運行非安全代碼,暫不清楚目前有哪些平臺採用這個實現。

圖3中,系統有4個物理核,每個又分爲兩個虛擬核(安全核和非安全核)的情況:

多核處理器上的安全核和非安全核

圖3. 多核處理器上的安全核和非安全核

2.2.2 L1內存模型

  • MMU

MMU是一種硬件電路,它包含兩類部件,一類是分段部件,一類是分頁部件,對應於內存管理的分段機制和分頁機制。分段機制把一個邏輯地址轉換爲線性地址;接着,分頁機制把一個線性地址轉換爲物理地址。

當CPU訪問一個虛擬地址時,這個虛地址被送到MMU翻譯,硬件首先把它和TLB中的所有條目同時(並行地)進行比較,如果它的虛頁號在TLB中,並且訪問沒有違反保護位,它的頁面會直接從TLB中取出而不去訪問頁表,從而提高地址轉換的效率。

安全世界和非安全世界都有自己的虛擬MMU,各自管理物理地址的映射。實際上只是兩個世界都有一份TTBR0、TTBR1、TTBCR寄存器,因此就會對應兩個MMU表。

儘管MMU有兩套,但TBL緩存硬件上只有一套,因此TBL對於兩個世界來說是共享的,其通過NS位來標誌其每一項具體屬於哪一個世界。這樣在兩個世界間進行切換時不再需要重新刷新TLB,提高執行效率。

對於TLB共享並不是硬性規定的,部分芯片在兩個世界間切換時可能通過硬件部分或全部刷新TLB。

  • Cache

同TLB類似,硬件上兩個世界共享一套Cache,具體的Cache數據屬於哪一個世界也由其NS位指定,在世界間切換也不需要刷新Cache。

2.2.3 中斷模型

基於TrustZone的處理器有三套異常向量表:

  • 一套用於非安全世界,
  • 一套用於安全世界,
  • 還有一套用於Monitor模式。

與之前非TrustZone的處理器不同的是,這三套中斷向量表的基地址在運行時可以通過CP15的寄存器VBAR(Vector Base Address Register)進行修改。

復位時,安全世界的中斷向量表由處理器的輸入信號VINITHI決定,沒有設置時爲0x00000000,有設置時爲0xFFFF0000;非安全世界和Monitor模式的中斷向量表默認沒有設置,需要通過軟件設置後才能使用。

默認情況下,IRQ和FIQ異常發生後系統直接進入Monitor模式,由於IRQ是絕大多數環境下最常見的中斷源,因此ARM建議配置IRQ作爲非安全世界的中斷源,FIQ作爲安全世界的中斷源。這樣配置有兩個優點:

  • 當處理器運行在非安全世界時,IRQ直接進入非安全世界的處理函數;如果處理器運行在安全世界,當IRQ發生時,會先進入到Monitor模式,然後跳到非安全世界的IRQ處理函數執行
  • 僅將FIQ配置爲安全世界的中斷源,而IRQ保持不變,現有代碼僅需做少量修改就可以滿足

將IRQ設置爲非安全世界的中斷源時系統IRQ的切換見圖4:

IRQ作爲非安全世界的中斷源

圖4. IRQ作爲非安全世界的中斷源

2.2.4 系統模式切換

基於TrustZone的系統有三種狀態,安全世界、非安全世界和用於二者切換的Monitor Mode。

協處理器CP15的寄存器SCR(Secure Configuration Register)有一個NS位用於指示當前處理器位於哪一個世界,該寄存器在非安全世界是不能訪問的。當CPU處於Monitor Mode時,無論NS位是0還是1,處理器都是在安全世界運行代碼。因此Monitor Mode下總是安全世界,但如果此時NS爲1,訪問CP15的其它寄存器獲取到的是其在非安全世界的值。

非安全世界到Monitor模式的切換

處理器從非安全世界進入Monitor Mode的操作由系統嚴格控制,而且所有這些操作在Monitor Mode看來都屬於異常。 從非安全世界到Monitor Mode的操作可通過以下方式觸發:

  • 軟件執行SMC (Secure Monitor Call)指令
  • 硬件異常機制的一個子集(換而言之,並非所有硬件異常都可以觸發進入Monitor Mode),包括:
    • IRQ
    • FIQ
    • external Data Abort
    • external Prefetch Abort

Monitor Mode

Monitor Mode內執行的代碼依賴於具體的實現,其功能類似於進程切換,不同的是這裏是不同模式間CPU狀態切換。

軟件在Monitor Mode下先保存當前世界的狀態,然後恢復下一個世界的狀態。操作完成後以從異常返回的方式開始運行下一個世界的代碼。

爲什麼安全模式和非安全模式不能直接切換?

非安全世界無權訪問CP15的SCR寄存器,所以無法通過設置NS來直接切換到安全世界,只能先轉換到Monitor Mode,再到安全世界。

如果軟件運行在安全世界(非Monitor Mode)下,通過將CP15的NS位置1,安全世界可以直接跳轉到非安全世界,由於此時CPU的流水線和寄存器還遺留了安全世界的數據和設置,非安全模式下的應用可以獲取到這些數據,會有極大的安全風險。因此,只建議在Monitor Mode下通過設置NS位來切換到非安全模式。

綜上,安全世界和非安全世界不存在直接的切換,所有切換操作都通過Monitor Mode來執行。

圖5展現了安全世界和非安全世界之間的切換方式:

安全世界和非安全世界之間的切換

圖5. 安全世界和非安全世界之間的切換

2.3 隔離機制

除了CPU執行時實行安全世界和非安全世界的隔離外,AMBA3 AXI總線提供了外設隔離的基礎。

2.3.1 內存隔離機制

這裏的內存指外部的DDR和片上的ROM以及SRAM,其隔離和保護通過總線組件TZASC和TZMA的設置來實現。

  • TZASC (TrustZone Address Space Controller)
    • TZASC可以把外部DDR分成多個區域,每個區域可以單獨配置爲安全或非安全區域,非安全世界的代碼和應用只能訪問非安全區域。TZASC只能用於內存設備,不適合用於配置塊設備,如Nand Flash。
  • TZMA (TrustZone Memory Adapter)
    • TZMA可以把片上ROM和SRAM隔離出安全和非安全區域。TZMA最大可以將片上存儲的低2MB配置爲安全區域,其餘部分配置爲非安全區域。大小劃分上,片上安全區域可以在芯片出廠前設置爲固定大小,或運行時通過TZPC動態配置。TZMA使用上有些限制,其不適用於外部內存劃分,而且也只能配置一個安全區域。

2.3.2 外設隔離機制

外設上,基於APB總線的設備不支持AXI總線的NS控制信號,所以AXI到APB總線需要AXI-to-APB bridge設備連接,除此之外,還需要TZPC (TrustZone Protection Controller) 來向APB總線上的設備提供類似AXI上的NS控制信號。

由於TZPC可以在運行時動態設置,這就決定了外設的安全特性是動態變化的,例如鍵盤平時可以作爲非安全的輸入設備,在輸入密碼時可以配置爲安全設備,只允許安全世界訪問。

2.3.3 隔離機制示意圖

整個系統內存和外設隔離機制示意圖見圖6.

系統內存和外設隔離機制示意圖

圖6. 系統內存和外設隔離機制示意圖

此圖來源於網上,實際上TZPC還連接到片內的ROM/RAM設備上,用於配置片上存儲的安全區域。

2.4 安全啓動

AMBA3 AXI總線機制隔離出安全世界和非安全世界,但這是系統啓動之後的事情。如何確保系統本身是安全的呢?這就涉及到系統啓動的過程。

系統上電覆位後,先從安全世界開始執行。安全世界會對非安全世界的bootloader進行驗證,確保非安全世界執行的代碼經過授權而沒有被篡改過。然後非安全世界的bootloader會加載非安全世界的OS,完成整個系統的啓動。

在非安全系統的bootloader加載OS時,仍然需要安全世界對OS的代碼進行驗證,確保沒有被篡改。

圖7是典型的TrustZone芯片的啓動流程:

典型的TruestZone芯片啓動流程

圖7. 典型的TruestZone芯片啓動流程

整個啓動流程跟目前博通平臺的安全啓動原理基本一致,上電後安全芯片先啓動,然後校驗主芯片的bootloader,接下來bootloader提交系統的OS和文件系統給BSP進行校驗,通過後加載主系統,確保主系統是安全的。

從上電覆位開始的整個啓動過程中,下一級的安全基於上一級的驗證,最終依賴於芯片內置的OTP和安全硬件,逐級的驗證構成了整個系統的信任鏈。信任鏈中的某一個環節被破壞,都會導致整個系統不安全。

3. 各家TrustZone實現

基於安全考慮,各家TrustZone都實行閉源,關於其實現細節的介紹都較少。

網上能找到少許關於高通方案上TrustZone的介紹:

  • 安全世界 QSEE (Qualcomm Secure Execution Environment)
  • 非安全世界 HLOS (High Level OS)

整個系統的架構如圖8:

image

圖8. 高通QSEE系統架構圖

4. 其它

  • ARMv8-A架構定義了四個異常等級,分別爲EL0到EL3,其中數字越大代表特權(privilege)越大:

    • EL0: 無特權模式(unprivileged)
    • EL1: 操作系統內核模式(OS kernel mode)
    • EL2: 虛擬機監視器模式(Hypervisor mode)
    • EL3: TrustZone monitor mode ARMv8-A Security Level
  • TrustZone設計的相關方

    • ARM公司,定義TrustZone並實現硬件設計,TEE,TZAPI等
    • 芯片廠家,在具體芯片上實現TrustZone設計,包括三星、高通、MTK、TI、ST、華爲等
    • 應用提供方,如DRM廠家和安全應用開發商,實現DRM、Playready、DTCP-IP和一些其它安全應用開發和認證
  • Trust OS

    TEE環境下也要有一個操作系統,各家都有自己的Trustzone的操作系統,如Trustonic、高通的QSEE、國內的豆莢,還有開源的OPTEE等。在操作系統之上自然要有應用程序,在Trustzone裏面我們一般叫TrustApp,當然TEE裏面每個TrustApp都在一個沙盒裏,互相之間是隔離的。比如說支付,就可以做成一個App(需要注意的是,和Normal World裏面的App是兩個概念),這個App簡單來說就負責用私鑰把網上發來的Challenge籤個名,而這個簽名的動作是需要在Secure World裏面做的,避免惡意程序竊取到私鑰來僞造簽名。

    例如支付寶,其實支付寶也是隻支持幾個Trust OS的。同時,支付寶還定義了一系列標準,用來完成他的行爲。

    現在的Trust OS大都會遵循GlobalPlatform的規範,這個組織致力於制定統一的Trust OS的API的接口規範,這樣一個TrustApp只要用GP API,就可以方便移植到各個不同的TEE操作系統上了。

  • Intel 平臺的 SGX

    針對可信計算,類似ARM的TrustZone,Intel也針對x86平臺提出了自己的安全架構SGX:

    Intel® Software Guard Extensions (Intel® SGX)

    https://software.intel.com/zh-cn/sgx-sdk

    SGX全稱Intel Software Guard Extensions,顧名思義,其是對因特爾體系(IA)的一個擴展,用於增強軟件的安全性。這種方式並不是識別和隔離平臺上的所有惡意軟件,而是將合法軟件的安全操作封裝在一個enclave中,保護其不受惡意軟件的攻擊,特權或者非特權的軟件都無法訪問enclave,也就是說,一旦軟件和數據位於enclave中,即便操作系統或者和VMM(Hypervisor)也無法影響enclave裏面的代碼和數據。Enclave的安全邊界只包含CPU和它自身。SGX創建的enclave也可以理解爲一個可信執行環境TEE(Trusted Execution Environment)。不過其與ARM TrustZone(TZ)還是有一點小區別的,TZ中通過CPU劃分爲兩個隔離環境(安全世界和正常世界),兩者之間通過SMC指令通信;而SGX中一個CPU可以運行多個安全enclaves,併發執行亦可。

    簡單來講, Intel SGX最關鍵的優勢在於將程序以外的software stack如OS和BIOS都排除在了TCB(Trusted Computing Base)以外。換句話說,就是在容器enclave裏的code只信任自己和intel的CPU。

    網上有人是這樣對比TrustZone和SGX的:

    Trustzone默認相信SecureOS,安全世界。SGX僅相信CPU core,通過SGX指令構建enclave容器。簡單比喻,TEE是個公用大保險櫃,什麼東西都裝進去,有漏洞的app可能也進去了,而且保險櫃鑰匙在管理員手上,必須相信管理員。SGX每個app有自己的保險櫃,鑰匙在自己手上

    SGX要進入工業界應用尚需時間,一個重要的問題是現在在intel發行的服務器芯片上還沒有SGX,而SGX的重要應用就是在數據中心和雲端的應用。

5. TrustZone開源項目

除了各傢俬有實現外,ARM也有不少開源項目,知名度較高的有:

6. 參考