ID บทความ: 000088045 ประเภทข้อมูล: ข้อมูลผลิตภัณฑ์และเอกสารประกอบ การตรวจสอบครั้งล่าสุด: 19/10/2021

หน่วยความจํา Heap เริ่มทํางานในระหว่างการสร้าง Enclave อย่างไร

BUILT IN - ARTICLE INTRO SECOND COMPONENT
สรุปข้อมูล

กระบวนการสําหรับการจัดสรรหน่วยความจําฮีปให้กับขอบเขต Intel® Software Guard Extensions (Intel® SGX)

คำอธิบาย

ไม่สามารถระบุได้ว่าหน่วยความจํา heap ที่ใหญ่กว่าหน่วยความจํา Enclave Page Cache (EPC) ที่มีอยู่ถูกจัดสรรให้กับขอบเขตเมื่อสร้างได้อย่างไร

ความละเอียด

Intel® Software Guard Extensions (Intel® SGX) ใช้คําสั่งโปรเซสเซอร์ EADD เพื่อเพิ่มหน่วยความจํา รวมถึงฮีปลงในขอบเขต สําหรับ EADD หน้า heap จะต้องมีหน้า Enclave Page Cache (EPC) ฟรีที่พร้อมใช้งาน หากมีหน้าฟรีอยู่แล้ว EADD จะนําไปใช้ทันที หาก EPC เต็มแล้ว หน้าที่ใช้งานในปัจจุบันจะถูกเลื่อนออกและทําให้ว่าง ที่ตอนนี้ฟรีหน้าสามารถใช้สําหรับ heap หน้า. หน้านี้อยู่ใน EPC เนื่องจากเป็นหน้าว่างใหม่ ไม่ว่าในกรณีใด จะไม่มีการสลับหน้า เมื่อ EADD จริงเกิดขึ้น หน้านี้จะมีอยู่ใน EPC อยู่แล้ว โดยไม่จําเป็นต้องแบ่งหน้าหรือสลับ

ทําตามรหัส:

  1. ประการแรก SGX signtool จะกําหนดรูปแบบขอบเขต โดยจะวางข้อมูลเค้าโครงไว้ในเมตาดาต้า นี่คือที่ที่จะเพิ่มฮีปและตั้งค่าเป็น EADD เท่านั้น: manage_metadata#L775
  2. ระหว่างการโหลด Enclave ลูปตัวโหลด Run-time System (uRTS) ที่ไม่น่าเชื่อถือผ่านรายการเค้าโครงและเพิ่มอย่างเหมาะสม: loader.cpp#L382
  3. แต่ละหน้า enclave จะถูกเพิ่มโดยการเรียกไดรเวอร์ ซึ่งเรียกใช้ EADD: loader.cpp#L311

ผลิตภัณฑ์ที่เกี่ยวข้อง

บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้