基于openEuler 云場景TrustZone 開發環境搭建
1.TrustZone簡介

為了給移動設備提供一個安全的運行環境, ARM從ARMv6的架構開始引入了TrustZone技術。TrustZone技術將中央處理器(Central Processing Unit,CPU)的工作狀態分為了正常世界狀態 (Normal World Status,NWS)和安全世界狀態(Secure World Status,SWS)。支持TrustZone技術的芯片提供了對外圍硬件資源的硬件級別的保護 和安全隔離。當CPU處于正常世界狀態時,任何應用都無法訪問安全硬件設備,也無法訪問屬于安全世界狀態下的內存、緩存(Cache)以及其他外圍安全硬件設備。
TEE基于TrustZone技術提供可信運行環境,還為開發人員提供了應用程序編程接口(Application Programming Interface,API),以方便他們開發實際應用程序。在整個系統的軟件層面,一般的操作系統(如 Linux、Android、Windows等)以及應用運行在正常世界狀態中,TEE運行在安全世界狀態中,正常世界狀態內的開發資源相對于安全世界狀態較為豐富,因此通常稱運行在正常世界狀態中的環境為豐富執行環境(Rich Execution Environment, REE),對應的客戶端應用統稱為CA(Client Application),而可信任的操作系統以及上層的可信應用 (Trusted Application,TA)運行于安全世界狀態,運行在安全世界狀態中的系統就是TEE(Trusted Execution Environment)。
鯤鵬處理器基于ARM CPU架構,提供TrustZone硬件TEE技術. 本文在搭載鯤鵬芯片的Taishan服務器上,基于官方demo和openEuler操作系統搭建云場景Trustzone開發環境。
2.openEuler OS環境搭建
首先在https://repo.openeuler.org/openEuler-20.03-LTS/ISO/aarch64/?中下載openEuler鏡像,建議選擇Everything版本。
在華為iBMC中選擇Taishan服務器,在遠程控制中選擇HTML5集成遠程控制臺
加載之前下載好的鏡像
選擇啟動方式為光盤啟動。
強制重啟服務器
重啟后進行初始化配置,選擇簡體中文語言
選擇“安裝位置”,這里選擇sda,并選擇回收空間
配置網絡,選擇“網絡和主機名”,在安裝過程中可以使用圖形界面配置網絡信息。
在這里手動添加IP地址和網關
返回到主菜單,選擇“軟件選擇”
依次選擇服務器->標準->開發工具->網絡服務器
配置完成后,點擊“開始安裝”,安裝系統,中間按要求輸入賬號密碼即可
3.升級BIOS固件
進入iBMC 選擇系統管理->固件升級->選擇指定固件->開始升級
升級完成后,重啟iBMC。
4.依賴包安裝
python安裝
工具名稱
建議版本
說明
Python
python2.7.13及以上
此工具用于對TA進行簽名
Gcc
V?7.3.0(2019.02x86_54)
openssl
簽名腳本調用
進入https://www.python.org/downloads/release/python-2716/?下載合適版本,這里選擇的是2.7.16版本
下載完成后,傳輸文件Python-2.7.16.tar.xz到對應服務器的/opt路徑中解壓并安裝,在/opt目錄下依次執行
tar?-xzvf?demo.tar.xz? ./configure make make?install
等待完成,查詢python版本驗證是否安裝成功
python?-V
出現對應的版本號說明已經成功安裝
openssl安裝
將demo中提供的openssl-1.0.2d.tar.gz(或者自行下載更新的包)傳入服務器中,執行:
tar?–vxf?openssl-1.0.2d.tar.gz??//?解壓
進入openssl-1.0.2文件夾下,執行:
./config make make?install
將/usr/local/ssl/lib文件下的全部內容拷貝到/usr/local/lib64下
cd?/usr/local/ssl/lib cp?-rf?*?/usr/local/lib64/
將/usr/local/ssl/include文件下的內容拷貝到/usr/local/include/下
cd?/usr/local/ssl/include cp?-rf?*?/usr/local/include/
zilb安裝
將demo中提供的zlib-1.2.8.tar.xz(或者自行下載更新的包)傳入服務器中,執行:
tar?–vxf?zlib-1.2.8.tar.xz
進入zlib-1.2.8/文件夾下依次執行:
./configure make make?install
5. CA、TA的RSA加解密demo執行
環境變量和路徑配置
創建/vendor/bin和/data兩個路徑,將demo包中的/vendor/bin下的所有文件傳到服務器/vendor/bin下,其中應該有 tzdriver.ko和teecd和其他庫文件。
mkdir?/vendor/bin mkdir?/data
進入/root文件夾,編輯.bashrc文件添加庫環境變量
cd?/root/ vim?.bashrc
在.bashrc文件中添加一行export LD_LIBRARY_PATH=/vendor/bin/:$LD_LIBRARY_PATH
加載驅動模塊
insmod?/vendor/bin/tzdriver.ko
開啟守護進程teecd
/vendor/bin/teecd
TA sec文件編譯
將demo包中TA demo程序拷貝到/home/中(或指定自定義路徑),進入ta/demos文件夾下
cd?/home/ta/demos
文件夾下有build_TA.sh文件和rsa-demo文件夾(內包含rsa加解密TA端的c代碼)
打開build_TA.sh,修改CODE_PATH為rsa-demo
執行腳本進行編譯
./build_TA.sh
生成*.o文件后需要輸入賬戶密碼對文件簽名:
編譯成功后,在ta/demos/output/路徑下生成編譯輸出RSA加解密對應的可信應用.sec文件,格式為ID+.sec
拷貝ta/demos/output/下生成的.sec文件到/data文件夾下
CA執行程序編譯
進入/tee_usr/rsa-demo文件夾中,可以看到RSA加解密的CA demo源碼和對應的makefile文件
執行make命令,生成對應的可執行文件和.o文件
拷貝對應的可執行文件rsa-demoCA到/vendor/bin下
cp?rsa-demoCA?/vendor/bin
此時執行/vendor/bin下的rsa加解密可執行文件
/vendor/bin/rsa-demoCA
執行成功,則可以看見對應的rsa的加解密過程和數據打印,說明rsa加解密執行成功
云計算
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。