## Building Trust in Container Environment * TPM(truested platform module): 提供硬體做身份識別的軟體 https://support.microsoft.com/zh-tw/topic/%E4%BB%80%E9%BA%BC%E6%98%AF-tpm-705f241d-025d-4470-80c5-4feeb24fa1ee =>如果TPM辨識身份成功,系統才可以順利完成開機程序 * CRTM(Core Root of Trust for Measurement)收集BIOS開機資訊,並且把這些收集的metrics給TPM 現在需要用到一樣的道理,用一個vPTM的東西作為kernel或是user space層管理container security的工具 * IMA(ntegrity Measurement Architecture)測量所有在OS上執行的檔案,透過TPM處理 #### vPTM希望可以收集container runtime的資料,而如何將這些metrics從container送出給vPTM呢? * remote attestation protocol: > 需要提供host certicate,以及user certificate,container需要先透過os kernel的host signature list確認過是合法的程式才會到user certificate程序,user certificate會決定哪個user的container可以執行哪些程式 ![](https://hackmd.io/_uploads/BJRl6YJa3.png) (base64) * signature list:會動態改變目前list上面的資料,如果有新執行的process就會先取得permission(kernel)-->hash,signature * signature list 會和host certificate一同被compile進kernel內部(這是load latency) * use_valid(identity verification time)-->歸類在paper裡面的Executables Measurement and Verification Overhead 在push container image前,需要先將container image做fingerprint並且紀錄container signature list ### vTPM可以放在user space或是kernel space ![](https://hackmd.io/_uploads/HylYeq1Tn.png) >The loading delay is the time to load the signature list and certificate into the kernel. We measure them by inserting measurement functions in runc. 如何管理這些certificates? ![](https://hackmd.io/_uploads/HyTqMc163.png) 改造後打包的container image: ![](https://hackmd.io/_uploads/SyEpMcJ63.png)