αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž›αžΎ Intel SGX αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž” αž¬αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αž˜αž½αž™αŸ”

αž€αŸ’αžšαž»αž˜αž’αŸ’αž“αž€αžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœαž˜αž€αž–αžΈαžŸαžΆαž€αž›αžœαž·αž‘αŸ’αž™αžΆαž›αŸαž™αžœαž·αž‘αŸ’αž™αžΆαžŸαžΆαžŸαŸ’αžαŸ’αžš αž“αž·αž„αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž€αžΆαžšαž–αžΆαžšαž‡αžΆαžαž·αžšαž”αžŸαŸ‹αž€αž„αž‘αŸαž–αžšαŸ†αžŠαŸ„αŸ‡αž”αŸ’αžšαž‡αžΆαž‡αž“ αžŸαžΆαž€αž›αžœαž·αž‘αŸ’αž™αžΆαž›αŸαž™αž‡αžΆαžαž·αžŸαž·αž„αŸ’αž αž”αž»αžšαžΈ αž“αž·αž„ ETH Zurich αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαŸ’αž˜αžΈαž€αŸ’αž“αž»αž„αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž›αžΎαž”αžŽαŸ’αžαžΆαž‰αžŠαŸ‚αž›αžŠαžΆαž…αŸ‹αžŠαŸ„αž™ Intel SGX (Software Guard eXtensions) αŸ” αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ SmashEx αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αž‘αžΎαž„αžŠαŸ„αž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž…αžΌαž›αž‘αžΎαž„αžœαž·αž‰αž“αŸ…αž–αŸαž›αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž€αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸƒαžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Intel SGX αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„ αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž… αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹ αž¬αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž€αžΌαžŠαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžšαž”αžŸαŸ‹ enclave αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž‚αŸ†αžšαžΌαž“αŸƒαž€αžΆαžšαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ enclaves αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ Intel SGX SDK (CVE-2021-0186) αž“αž·αž„ Microsoft Open Enclave (CVE-2021-33767) αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸ†αž”αžΌαž„ αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αžΆαž‰αž™αž€αžŸαŸ„ RSA αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸαž αž‘αŸ†αž–αŸαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ HTTPS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰ αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαž–αžΈαžš αžœαžΆαž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž˜αžΆαžαž·αž€αžΆαžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αžŠαŸ„αž™αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ cURL αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αŸ” αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαžΆαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž½αž…αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ Intel SGX SDK 2.13 αž“αž·αž„ Open Enclave 0.17.1 αŸ” αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎ Intel SGX SDK αž“αž·αž„ Microsoft Open Enclave αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž€αŸαž›αŸαž…αž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„ Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX αž“αž·αž„ Veracruz αž•αž„αžŠαŸ‚αžšαŸ”

αž…αžΌαžšαž™αžΎαž„αž…αžΆαŸ†αžαžΆαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ SGX (Software Guard Extensions) αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„ Intel Core processors (Skylake) αž‡αŸ†αž“αžΆαž“αŸ‹αž‘αžΈαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™ αž αžΎαž™αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αž˜αŸ’αžšαž·αžαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ‚αž„αž…αŸ‚αž€αžαŸ†αž”αž“αŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αž·αž‘αž‡αž·αž - enclaves αž˜αžΆαžαž·αž€αžΆαžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž’αžΆαž“αž”αžΆαž“ αž“αž·αž„ αž”αžΆαž“αž€αŸ‚αž”αŸ’αžšαŸ‚αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αžŠαŸ„αž™αžαžΊαžŽαŸ‚αž› αž“αž·αž„αž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” ring0, SMM αž“αž·αž„ VMM αŸ” αžœαžΆαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αŸαžšαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αŸ…αž›αŸαžαž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžšαž›αŸ„αžαž”αŸ‚αž”αž”αŸ’αžšαž–αŸƒαžŽαžΈ αž“αž·αž„αž§αž”αžΆαž™αž€αž›αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αž“αž·αž„αž‡αž„αŸ‹ - αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžαŸ’αž˜αžΈαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‡αžΆαž–αž·αžŸαŸαžŸ EENTER, EEXIT αž“αž·αž„ ERESUME αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸαžšαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αŸ…αž”αžšαž·αž€αŸ’αžαžΆαžšαžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž’αžΆαž‡αŸ’αž‰αžΆαž’αžšαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž›αŸαžαž€αžΌαžŠαžŠαŸ‚αž›αžŠαžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αž’αžΆαž…αž”αŸ’αžšαžΎαžœαž·αž’αžΈαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αž”αž»αžšαžΆαžŽ αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΌαž›αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžšαžαžΆαž„αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹ αž“αž·αž„αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž–αž·αžŸαŸαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž αŸ…αž˜αž»αžαž„αžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ…αŸ” αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† Enclave αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΌαžŒαž»αž› DRAM αž‡αžΆαžŠαžΎαž˜αŸ”

αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž›αžΎ Intel SGX αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž” αž¬αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αž˜αž½αž™αŸ”

αž”αž‰αŸ’αž αžΆαž‚αžΊαžαžΆαž”αž…αŸ’αž…αŸαž€αžœαž·αž‡αŸ’αž‡αžΆ SGX αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαŸ†αž›αžΌαžαž€αžΌαž“αž˜αž½αž™αžŠαŸ„αž™αž”αŸ„αŸ‡αž…αŸ„αž›αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž αžΎαž™αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž˜αž–αŸαž‘αŸ’αž’αž˜αž·αž“αž’αž“αž»αžœαžαŸ’αžαž±αŸ’αž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αžΌαžœαž”αž»αž–αŸ’αžœαž€αžΆαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„αž”αŸ‚αž”αž“αŸαŸ‡αžŠαŸ„αž™αž’αžΆαžαžΌαž˜αŸ” αž˜αž·αž“αžŠαžΌαž…αžαžΊαžŽαŸ‚αž›αžšαž”αžŸαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αž˜αŸ’αž˜αžαžΆαž‘αŸ αž€αžΌαžŠαž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž”αžšαž·αž€αŸ’αžαžΆαžšαž˜αž·αž“αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαž”αž‹αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαŸ€αž”αž…αŸ†αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž’αžΆαžαžΌαž˜αž·αž…αž‘αŸ αž“αŸ…αž–αŸαž›αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„αžŠαŸ‚αž›αž˜αž·αž“αžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αŸ” αž”αžΎαž‚αŸ’αž˜αžΆαž“αž”αž»αž–αŸ’αžœαž αŸαžαž»αž’αžΆαžαžΌαž˜αž·αž€αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‘αŸ αž§αž”αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ†αžαžΆαž“αž‚αŸ’αžšαž”αŸ‹αž–αŸαž› αž αžΎαž™αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ…αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžœαž·αž‰ αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž“αŸ…αž–αŸαž›αžαŸ’αž›αŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› enclave αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αž“αŸ‚αž€αžŸαŸ†αžαžΆαž“αŸ‹αŸ— αž“αž·αž„αžŸαŸ’αžαž·αžαž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž˜αž·αž“αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– (αž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ CPU αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€/αžŸαŸ’αžŠαžΆαžšαž‘αžΎαž„αžœαž·αž‰)αŸ”

αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž›αžΎ Intel SGX αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž” αž¬αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αž˜αž½αž™αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αž˜αŸ’αž˜αžαžΆ αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ SGX αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒαž§αž”αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ†αžαžΆαž“αžŠαŸ„αž™αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžΆαž“αŸ” αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αžšαž·αžŸαŸ’αžαžΆαž“αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš enclave αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹ αž¬αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž‰αŸ’αž‰αžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž€αŸαž’αžΆαž…αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž€αŸ†αž αž»αžŸαž‘αžΎαž„αžœαž·αž‰αž•αž„αžŠαŸ‚αžšαŸ” αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžš SmashEx αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αž“αŸ…αž€αŸ’αž“αž»αž„ SDK αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž‘αŸ…αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž‘αžΎαž„αžœαž·αž‰αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž±αŸ’αž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” αžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž›αžαžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡ αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αžšαŸ†αžαžΆαž“αžŠαž›αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒ enclave αž–αŸ„αž›αž‚αžΊαž§αŸ” αžαŸ’αžšαžΌαžœαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸƒαž”αžšαž·αžŸαŸ’αžαžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ„αŸ‡αž”αž„αŸ‹αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„ αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αžœαž·αž“αžŠαžΌαž–αŸαž›αžœαŸαž›αžΆαžαžΌαž…αž˜αž½αž™ αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž”αž‰αŸ’αž…αžΌαž›αŸ” αž‡αžΆαž–αž·αžŸαŸαžŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’ (αž”αžšαž·αžŸαŸ’αžαžΆαž“αžαžΆαž„αž€αŸ’αžšαŸ…αž”αžšαž·αž€αŸ’αžαžΆαžš) αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αžαŸ’αž˜αžΈαž—αŸ’αž›αžΆαž˜αŸ—αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž’αžΆαžαž»αž…αžΌαž› (EENTER) αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαž‘αž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžœαž·αž‰αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž˜αž½αž™αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž‡αž„αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ enclave αž˜αž·αž“β€‹αž‘αžΆαž“αŸ‹β€‹αž”αžΆαž“β€‹αž”αž‰αŸ’αž…αž”αŸ‹β€‹αž“αŸ…β€‹αž‘αžΎαž™β€‹αž‘αŸ αžŠαŸ‚αž›β€‹αž€αŸ’αž“αž»αž„β€‹αž“αŸ„αŸ‡β€‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž…αž»αŸ‡β€‹αžˆαŸ’αž˜αŸ„αŸ‡ CPU αž€αŸβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžšαž€αŸ’αžŸαžΆβ€‹αž‘αž»αž€β€‹αž•αž„β€‹αžŠαŸ‚αžšαŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αžΆαž…αžαŸ’αžšαž‘αž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ… enclave αžœαž·αž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ„αž™αžŸαžΆαžš stack αžšαž”αžŸαŸ‹ enclave αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž–αŸαž› interrupt αž“αŸ„αŸ‡ enclave αž“αžΉαž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž‡αžΆαž˜αž½αž™ stack αžšαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ memory system αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ back-oriented programming (ROP ) αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸ)αŸ” αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ ROP αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž˜αž·αž“αž–αŸ’αž™αžΆαž™αžΆαž˜αžŠαžΆαž€αŸ‹αž€αžΌαžŠαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž”αŸ†αžŽαŸ‚αž€αž“αŸƒαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ‚αž›αž˜αžΆαž“αžšαž½αž…αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αž»αž€ αžŠαŸ„αž™αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžαŸ’αžšαž‘αž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ (αž‡αžΆαž€αŸ’αž”αž½αž“ αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αž»αžαž„αžΆαžšαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž”αž‰αŸ’αž…αž”αŸ‹) . αž€αžΆαžšαž„αžΆαžšαž“αŸƒαž€αžΆαžšαž€αŸαž„αž”αŸ’αžšαžœαŸαž‰αŸ’αž…αž˜αž€αž›αžΎαž€αžΆαžšαž€αžŸαžΆαž„αžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž“αŸƒαž€αžΆαžšαž αŸ…αž‘αŸ…αž€αžΆαž“αŸ‹αž”αŸ’αž›αž»αž€αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆ ("αž§αž”αž€αžšαžŽαŸ") αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ”

αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž›αžΎ Intel SGX αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž” αž¬αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αž˜αž½αž™αŸ”
αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž›αžΎ Intel SGX αžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαžŸαžΎαž” αž¬αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αž˜αž½αž™αŸ”


αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹