成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于TEE,你需要知道的五大要素

原創(chuàng) 精選
移動開發(fā) 移動應用
現在手機已經成為我們每個人生活的必需品,那安卓手機的安全就成為了最為重要的一部分。

我們通常提到的安卓手機不僅僅只有安卓系統(tǒng),還有與安全息息相關的TEE系統(tǒng),當然除了這兩個系統(tǒng)之外,還會有其他系統(tǒng),在此我僅僅闡述TEE與安卓是如何并存的,先向大家介紹下這兩個系統(tǒng)如何部署,緊接著從SMC調度和通信方式,庫的角度來分別說明兩個系統(tǒng)的通信機制,最后為大家簡單說明一下TEE API的GP標準。

1.TEE和安卓架構

首先,我們從整體大方向上,先看一下安卓系統(tǒng)和TEE系統(tǒng)是如何并存的。如下圖 1 TEE和安卓系統(tǒng)并存架構所示:

圖 1 TEE和安卓系統(tǒng)并存架構

上圖中的左半部分非安全側(Non-secure)就是大家熟悉的安卓系統(tǒng),通常我們稱之為REE,右半部分安全側(Secure)就是TEE系統(tǒng),目前市場上存在多種TEE系統(tǒng),如高通的QSEE,Trustonic,開源的OPTEE等。

圖中的EL0,EL1,EL3是ARM架構中的異常等級,其中EL0和EL1是必須實現的,可以粗略的認為EL0是應用層,EL1是系統(tǒng)內核層,其中最重要的是REE側EL1中需要部署TEE相關驅動,REE側最后是通過該驅動,同后面提到的EL3進行通信,進而完成一些功能的。EL2主要提供對虛擬化的支持,在本文中先忽略EL2。EL3是比較重要的部分,提供了REE側(Non-secure)和安全側(Secure)的功能切換。從圖中也可以看出,只有EL3橫跨REE側和安全側,從而為這兩個系統(tǒng)提供了通信的接口,比如我們常用的指紋功能和支付功能就需要REE側和安全側交互的,后面內容中我會給大家具體闡述兩個系統(tǒng)的通信。

在ARM提供的Trustzone白皮書中有提到,為了使系統(tǒng)更加健壯,建議EL3中的Monitor模式在執(zhí)行時,關閉中斷。

2.SMC

在此我首先強調一點,TEE系統(tǒng)和安卓系統(tǒng)是兩個完全獨立的系統(tǒng),這兩個系統(tǒng)獨立運行。但在實際實用中,這兩個系統(tǒng)需要進行通信,比如我們手機鎖屏或者使用指紋進行解鎖時,均需要安卓系統(tǒng)和TEE系統(tǒng)共同配合完成,其通信是通過SMC指令來完成的,其本質上就是觸發(fā)一個SMC的中斷(如下圖2中紅色框中所示),從而讓安卓或者TEE跳轉到Monitor模式(下圖中的Monitor/Firmware),而SMC的中斷處理類似于系統(tǒng)中的上下文切換。

圖 2 環(huán)境切換

至此大家應該對SMC有了簡單的認識,但在此我需要明確一點,進入Monitor模式并非只有SMC一種方式,比如直接寫寄存器CPSR等。

3. REE/TEE傳輸方式

上面簡單說明了SMC,那當REE和TEE側要進行數據傳輸時,又該如何處理呢?在現有的處理方案中采用了共享內存,包括靜態(tài)的共享內存和動態(tài)的共享內存。由于靜態(tài)的共享內存是REE側和TEE側約定好的一塊共享內存,不管是否需要,都會預留一塊區(qū)域,比較浪費內存。動態(tài)共享內存,操作步驟較復雜,需要我們先申請內存,再進行mmap映射(TEE側和REE側都需要進行映射)),然后通過共享內存進行數據傳輸。

那大家再思考一個問題, TEE側傳輸數據到REE側和REE側傳輸數據到TEE側時,其共享內存分別是由誰申請的?解答此問題前,我需要引入一個Session的名詞,TEE側和REE側通信前都需要建立一個Session,在REE側建立Session時,共享內存就準備好了,之后不管數據是從哪邊傳遞到哪邊,均使用的是之前已經準備好的共享內存。

大家有機會看CA(REE側的一個可執(zhí)行程序)的代碼,會發(fā)現都會先建立Session,之后就可以進行響應的業(yè)務處理。目前市場有不同的TEE廠商,他們實現細節(jié)會存在一些差異,但其思路都是一致的。

4. 庫

一般TEE廠家會給我們提供TEE相關的庫,這個庫里面會通過調用TEE對應驅動進而完成各項功能。通常在開發(fā)需要TEE環(huán)境的程序時,最好可以找對應TEE廠家索要Demo,有這個Demo后,我們就知道該如何基于對應的TEE進行程序開發(fā)。

5.GP

我在同一些從事安卓的朋友交流時,發(fā)現他們要么是不知道TEE,要么是知道TEE,但不知道GP。試想一下,市場上存在很多TEE廠商,比如我們熟悉的豆莢,Trustonic等,每一家都有他們獨有的API接口,那對于一些基于TEE的功能,如指紋,支付等,那是不是需要針對每一個TEE,要進行不同的適配?而GP全稱是Global Platform,它提供了一些安全相關的API要求,假如所有項目上均采用GP的方式,那基于TEE的模塊(如常見的指紋,支付等),就無需做很大的改動,且在同這類供應商溝通時,需要告知供應商,當前項目上是否采用GP接口的方式。

總結

至此,我已經介紹了我們需要知道的五大要素,此時,我們來思考一下,假如我的項目上需要增加指紋功能,我需要做什么工作呢?

  • TEE環(huán)境的部署,包含TEE系統(tǒng)本身,Monitor, REE側同TEE相關的驅動,庫等,其他的細節(jié)可以同TEE供應商溝通。
  • 同指紋廠商溝通,告知其項目上使用的TEE系統(tǒng)和TEE版本是否采用GP接口,項目上采用的指紋器件型號等。

本文中,我把TEE拆分為五要素,但實際上,TEE系統(tǒng)遠比本文介紹的要復雜,希望大家可以通過本文對TEE有一個大框架的認識,在此基礎上,可以繼續(xù)深入研究。

作者介紹

趙青窕,51CTO社區(qū)編輯,從事多年驅動開發(fā)。研究興趣包含安全OS和網絡安全領域,發(fā)表過網絡相關專利。

責任編輯:華軒 來源: 51CTO
相關推薦

2018-12-27 14:21:31

https安全http

2019-11-15 14:00:39

HTTPSHTTP前端

2010-01-06 15:26:14

JSON語法

2018-12-28 14:16:11

安全

2010-05-06 08:55:23

ADO.NET

2012-01-03 19:09:42

移動應用

2013-09-03 09:18:55

云計算混合云

2011-05-06 08:41:33

UI設計應用程序iPad

2015-03-03 10:41:43

2013-08-01 10:38:22

2014-07-31 17:13:50

編碼程序員

2023-01-30 11:43:04

開源代碼

2010-07-26 14:18:08

數據中心能效管理

2017-03-28 15:47:17

數據治理數據庫

2018-05-16 09:41:13

神經網絡NN函數

2023-02-10 08:44:05

KafkaLinkedIn模式

2015-06-30 10:59:22

MobileWeb適配

2023-10-16 13:36:00

邊緣計算數據

2016-11-01 23:16:52

光纖光纖線纜

2016-01-20 09:44:22

物聯網標準
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品免费看 | 欧美视频在线观看 | 国产在线资源 | 毛片免费观看 | 欧美a级成人淫片免费看 | 天天摸天天干 | 久久久女| 视频在线h| 日韩中文在线观看 | avtt国产| 国产a视频 | 黑人巨大精品欧美黑白配亚洲 | 欧美日韩成人网 | 国产精品久久久久久久7电影 | 精品videossex高潮汇编 | 久久成人精品视频 | 久久国产精品视频 | 91久色| 国产日韩精品在线 | 欧美一区在线视频 | 欧美在线观看一区二区 | 中文字幕 在线观看 | 日本一区二区视频 | 91久久夜色| 日韩一区在线播放 | 精品一区二区三区中文字幕 | 奇米影视77| cao在线 | 成人亚洲片 | 91视频18| 欧美精品啪啪 | 亚洲一区二区三区四区五区中文 | 狠狠亚洲 | 成人在线免费观看av | av一区在线观看 | 中文字幕日韩在线 | 国内精品久久久久久 | 综合色在线 | av看看| 亚洲一区二区三区四区五区中文 | 国产精品一区三区 |