เป‚เบˆเบกเบ•เบต Intel SGX เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบซเบผเบทเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™ enclave

เบ™เบฑเบเบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบˆเบฒเบเบกเบฐเบซเบฒเบงเบดเบ—เบฐเบเบฒเป„เบฅเบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”เปเบฅเบฐเป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบญเบ‡เบ—เบฑเบšเบ›เบปเบ”เบ›เปˆเบญเบเบ›เบฐเบŠเบฒเบŠเบปเบ™, เบกเบฐเบซเบฒเบงเบดเบ—เบฐเบเบฒเป„เบฅเปเบซเปˆเบ‡เบŠเบฒเบ”เบชเบดเบ‡เบเบฐเป‚เบ›เปเบฅเบฐ ETH Zurich เป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆเปƒเบ™เบเบฒเบ™เป‚เบˆเบกเบ•เบต enclaves เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบง Intel SGX (Software Guard eXtensions). เบเบฒเบ™เป‚เบˆเบกเบ•เบตเป€เบญเบตเป‰เบ™เบงเปˆเบฒ SmashEx เปเบฅเบฐเป€เบเบตเบ”เบˆเบฒเบเบšเบฑเบ™เบซเบฒเบเบฑเบš reentrance เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš runtime เบชเปเบฒเบฅเบฑเบš Intel SGX. เบงเบดเบ—เบตเบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™, เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบฅเบฑเบšเบขเบนเปˆเปƒเบ™ enclave, เบซเบผเบทเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡ enclave เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™.

เบ•เบปเบงเปเบšเบšเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบš enclaves เบ—เบตเปˆเบกเบตเป€เบงเบฅเบฒเปเบฅเปˆเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Intel SGX SDK (CVE-2021-0186) เปเบฅเบฐ Microsoft Open Enclave (CVE-2021-33767). เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เปเบฒเบญเบดเบ”, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเบเบฑเบ”เบฅเบฐเบซเบฑเบ” RSA เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบชเปเบฒเบฅเบฑเบš HTTPS เป„เบ”เป‰เบ–เบทเบเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™, เปเบฅเบฐเปƒเบ™เบ—เบตเบชเบญเบ‡, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เป€เบ™เบทเป‰เบญเบซเบฒเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบ cURL utility เปเบฅเปˆเบ™เบžเบฒเบเปƒเบ™ enclave. เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เบ”เป‰เบงเบเป‚เบ›เบฃเปเบเบฃเบกเปเบฅเป‰เบงเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ 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 เบฅเบธเป‰เบ™เบ—เบต 0 (Skylake) เปเบฅเบฐเบชเบฐเป€เบซเบ™เบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบฅเบฐเบ”เบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบชเบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ›เบดเบ” - enclaves, เป€เบ™เบทเป‰เบญเปƒเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เปเบฅเบฐ. เบ”เบฑเบ”เปเบเป‰เป‚เบ”เบ kernel เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป‚เบซเบกเบ” ringXNUMX, SMM เปเบฅเบฐ VMM. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป‚เบญเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป„เบ›เบซเบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™ enclave เป‚เบ”เบเปƒเบŠเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเปเบฅเบฐเบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบเบฑเบšเบ—เบฐเบšเบฝเบ™เปเบฅเบฐ stack - เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเบกเปˆเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ EENTER, EEXIT เปเบฅเบฐ ERESUME เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป‚เบญเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป„เบ›เบซเบฒ enclave, เป€เบŠเบดเปˆเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบดเบ”เบญเปเบฒเบ™เบฒเบ”. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™ enclave เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เป€เบญเบตเป‰เบ™เปเบšเบšเบ„เบฅเบฒเบชเบชเบดเบเป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบฒเบเปƒเบ™ enclave เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบžเบดเป€เบชเบ”เป€เบžเบทเปˆเบญเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบฒเบเบ™เบญเบ. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ Enclave เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ”เป‰เบงเบเบฎเบฒเบ”เปเบง เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป‚เบกเบ”เบนเบ™ DRAM.

เป‚เบˆเบกเบ•เบต Intel SGX เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบซเบผเบทเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™ enclave

เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบงเปˆเบฒเป€เบ—เบเป‚เบ™เป‚เบฅเบเบต SGX เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบ›เบดเบ”เบฅเป‰เบญเบกเป‚เบ”เบเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ‚เบญเบ‡เบฎเบฒเบ”เปเบง, เปเบฅเบฐ enclaves เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš kernel เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ›เบปเบเบเบฐเบ•เบด, เบฅเบฐเบซเบฑเบ”เบžเบฒเบเปƒเบ™ enclaves เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ primitives เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ–เบดเป‰เบก asynchronously. เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน, enclave เบชเบฒเบกเบฒเบ”เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป„เบ”เป‰เบ—เบธเบเป€เบงเบฅเบฒเปเบฅเบฐเบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ enclave เบเปเบฒเบฅเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบฅเบฐเบขเบนเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบ›เบญเบ”เป„เบž (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เป€เบกเบทเปˆเบญ CPU เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบ / เบŸเบทเป‰เบ™เบŸเบน).

เป‚เบˆเบกเบ•เบต Intel SGX เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบซเบผเบทเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™ enclave

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด, เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบต SGX เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ enclave เป„เบ”เป‰เบ–เบทเบเบฅเบปเบšเบเบงเบ™เป‚เบ”เบเบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเป„เบ”เป‰. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก runtime enclave เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบžเบฒเบเปƒเบ™ enclave เบซเบผเบทเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบชเบฑเบ™เบเบฒเบ™, เปเบ•เปˆเบกเบฑเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” reentrant. เบเบฒเบ™เป‚เบˆเบกเบ•เบต SmashEx เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เปƒเบ™ SDK เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบฒเบ™เป€เบญเบตเป‰เบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบ‚เบนเบ”เบฎเบตเบ”เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ, เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบˆเบฐเบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ enclave, i.e. เบ•เป‰เบญเบ‡เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, เบœเบนเป‰เป‚เบˆเบกเบ•เบตเป„เบ”เป‰เบฎเบฑเบšเบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปƒเบ™เป„เบฅเบเบฐเบ—เบตเปˆเบเบฐเบ—เบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบฅเบฐเบšเบปเบš (เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบžเบฒเบเบ™เบญเบ enclave), เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบซเบกเปˆเปƒเบ™เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒ enclave (EENTER), เป€เบŠเบดเปˆเบ‡เบˆเบฐเบเบฑเบšเบ„เบทเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฑเบšเบฅเบฐเบšเบปเบšเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปƒเบ”เบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ stack เบชเปเบฒเบฅเบฑเบš. enclave เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เบ—เบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹, เปƒเบ™โ€‹เบ—เบตเปˆโ€‹เบฅเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™ CPU เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เป„เบงเป‰โ€‹.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฅเบฐเบšเบปเบšเบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™ enclave เป„เบ”เป‰, เปเบ•เปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ stack เบ‚เบญเบ‡ enclave เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡, enclave เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบฑเบš stack เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš, เบŠเบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เบเบฑเบšเบ„เบทเบ™ (ROP. ) เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™. Oriented Programming). เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เป€เบ•เบฑเบเบ™เบดเบ ROP, เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบšเปเปˆเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบงเบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ•เบปเบ™เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบ•เปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเป‚เบซเบฅเบ”, เบชเบดเป‰เบ™เบชเบธเบ”เบ”เป‰เบงเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบทเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก (เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš, เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”) . เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เปเบกเปˆเบ™เบฅเบปเบ‡เบกเบฒเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบเบฒเบ™เป‚เบ—เบซเบฒเบšเบฅเบฑเบญเบเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™ ("gadgets") เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

เป‚เบˆเบกเบ•เบต Intel SGX เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบซเบผเบทเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™ enclave
เป‚เบˆเบกเบ•เบต Intel SGX เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบซเบผเบทเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™ enclave


เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™