[發明專利]一種實現安全與高性能進程間通信的方法和系統有效
| 申請號: | 202110136600.0 | 申請日: | 2021-02-01 |
| 公開(公告)號: | CN112817780B | 公開(公告)日: | 2022-03-11 |
| 發明(設計)人: | 夏虞斌;楊璧丞;杜東;馮二虎;江學強;陳海波 | 申請(專利權)人: | 上海交通大學 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F9/50;G06F9/48 |
| 代理公司: | 上海漢聲知識產權代理有限公司 31236 | 代理人: | 胡晶 |
| 地址: | 200240 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 實現 安全 性能 進程 通信 方法 系統 | ||
1.一種實現安全與高性能進程間通信的方法,其特征在于,所述方法包括:
步驟S1:開發人員完成飛地進程Enclave開發,加載至計算系統;
步驟S2:由計算系統加載宿主進程Host程序,并且啟動飛地進程Enclave;
步驟S3:宿主進程Host程序啟動與飛地進程Enclave的通信,將信息放在接力頁中,調用Monitor來請求進程間通信;
步驟S4:Monitor確保接力頁只有一個內存映射,同時將Monitor的所有權由宿主進程Host轉移至飛地進程Enclave;
若啟用可選的內存加密,則利用新寄存器使接力頁使用全局密鑰進行加解密;
步驟S5:飛地進程Enclave程序處理完進程間通信IPC請求后返回,進程間通信IPC結束;
步驟S6:飛地進程Enclave程序啟動與另一飛地進程Enclave的進程間通信,Monitor建立飛地進程Enclave 1與Name Server的連接;
步驟S7:飛地進程Enclave 1向Name Server請求飛地進程Enclave 2的Capability,獲得Capability后即可與飛地進程Enclave 2進行進程間通信;
步驟S8:Monitor重新映射接力頁來實現飛地進程Enclave 1與飛地進程Enclave2之間的消息傳遞;
若啟用可選的內存加密,則利用新寄存器使接力頁使用全局密鑰進行加解密。
2.根據權利要求1所述的方法,其特征在于,所述步驟S1包括:由宿主進程Host向Monitor請求創建飛地進程Enclave,創建后需要校驗Enclave Hash,校驗通過后飛地進程Enclave創建完畢。
3.根據權利要求1所述的方法,其特征在于,所述步驟S2包括:將所述飛地進程Enclave的內存保護起來,只有飛地進程Enclave自身能訪問,宿主進程Host無法訪問飛地進程Enclave的數據。
4.根據權利要求1所述的方法,其特征在于,所述步驟S3包括:所述接力頁在虛擬內存中只有一個映射的特殊物理頁,Monitor會將接力頁的虛擬地址映射在本發明的可選新寄存器Reg_hole_VA_start和Reg_hole_VA_size框定的范圍內。
5.根據權利要求1所述的方法,其特征在于,所述步驟S4包括:Monitor保證所述接力頁在虛擬內存中只有一個映射,并且將Monitor的所有權從宿主進程Host轉移至飛地進程Enclave;
若啟用可選的內存加密,Monitor會保證接力頁的虛擬地址落在新寄存器Reg_hole_VA_start和Reg_hole_VA_size框定的范圍內,在該范圍內的頁使用全局密鑰進行加解密。
6.根據權利要求1所述的方法,其特征在于,所述步驟S5包括:飛地進程Enclave完成運行邏輯后掛起,控制流回到宿主進程Host,該步驟中的調度以及上下文切換由Monitor負責完成。
7.根據權利要求1所述的方法,其特征在于,所述步驟S6包括:所述Name Server為一個飛地進程Enclave,該飛地進程Enclave負責在飛地進程Enclave之間建立連接。
8.根據權利要求1所述的方法,其特征在于,所述步驟S7包括:Monitor提供call-cap與grant-cap兩種Capability,前者賦予Enclave與其他Enclave通信的能力,后者賦予Enclave給出Capability的能力。
9.根據權利要求1所述的方法,其特征在于,所述步驟S8包括:利用所述接力頁,在TEE(Trusted Execution Environment)場景下實現進程間通信IPC過程中零拷貝的進行消息傳遞,并引入一對新的寄存器,實現可選的數據完整性保護機制。
10.一種實現安全與高性能進程間通信的系統,其特征在于,所述系統包括:
模塊M1:開發人員完成飛地進程Enclave開發,加載至計算系統;
模塊M2:由計算系統加載宿主進程Host程序,并且啟動飛地進程Enclave;
模塊M3:宿主進程Host程序啟動與飛地進程Enclave的通信,將信息放接力頁中,調用Monitor來請求進程間通信;
模塊M4:Monitor確保接力頁只有一個內存映射,同時將Monitor的所有權由宿主進程Host轉移至飛地進程Enclave;
若啟用可選的內存加密,則利用新寄存器使接力頁使用全局密鑰進行加解密;
模塊M5:飛地進程Enclave程序處理完進程間通信IPC請求后返回,進程間通信IPC結束;
模塊M6:飛地進程Enclave程序啟動與另一飛地進程Enclave的進程間通信,Monitor建立飛地進程Enclave 1與Name Server的連接;
模塊M7:飛地進程Enclave 1向Name Server請求飛地進程Enclave 2的Capability,獲得Capability后即可與飛地進程Enclave 2進行進程間通信;
模塊M8:Monitor重新映射接力頁來實現飛地進程Enclave 1與飛地進程Enclave2之間的消息傳遞;
若啟用可選的內存加密,則利用新寄存器使接力頁使用全局密鑰進行加解密。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海交通大學,未經上海交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110136600.0/1.html,轉載請聲明來源鉆瓜專利網。





