Secure Enclave — สถาปัตยกรรมและวิธีการทำงานของโคโปรเซสเซอร์ที่ได้รับการป้องกัน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-03-14 เวลาอ่าน: 10 นาที

Secure Enclave คือโคโปรเซสเซอร์ฮาร์ดแวร์เฉพาะในอุปกรณ์ Apple ที่สร้างสภาพแวดล้อมที่ปลอดภัยแบบแยกส่วนสำหรับการประมวลผลการดำเนินการเข้ารหัสและการจัดเก็บข้อมูลที่เป็นความลับ Secure Enclave ทำงานบนไมโครโปรเซสเซอร์ของตัวเองกับไมโครเคอร์เนล L4 และไม่สามารถเข้าถึงหน่วยความจำหลักหรืออุปกรณ์ต่อพ่วงของอุปกรณ์ได้โดยตรง ตาม Apple Platform Security Guide Secure Enclave ใช้เครื่องกำเนิดตัวเลขสุ่มฮาร์ดแวร์ TRNG และเอ็นจิน AES เฉพาะเพื่อให้การดำเนินการเข้ารหัสในระดับชิป

ประเด็นสำคัญ

  • Secure Enclave — โคโปรเซสเซอร์ Apple ที่แยกตัวออกมาพร้อมโปรเซสเซอร์ หน่วยความจำ และเอ็นจิน AES ของตัวเอง
  • Touch ID และ Face ID ใช้ Secure Enclave สำหรับการจัดเก็บและการจับคู่เทมเพลตไบโอเมตริกอย่างปลอดภัย
  • คีย์ การเข้ารหัสถูกสร้างขึ้นภายใน Secure Enclave และไม่เคยออกจากมันในรูปแบบที่ไม่เข้ารหัส
  • การแยก ฮาร์ดแวร์รับประกันว่าแม้เคอร์เนล iOS ที่ถูกบุกรุกก็ไม่สามารถเข้าถึงข้อมูลของ Secure Enclave ได้
  • SOC มี Secure Enclave เฉพาะเริ่มตั้งแต่ชิป A7 (iPhone 5S, 2013) และแยกต่างหากเริ่มตั้งแต่ A9

Secure Enclave คืออะไร?

Secure Enclave (SEP — Secure Enclave Processor) คือโปรเซสเซอร์ RISC 32 บิตเฉพาะ (ARM Cortex-A7/A8 บนชิปรุ่นเก่า, ไมโครเคอร์เนล L4 ที่เป็นกรรมสิทธิ์) ที่รวมอยู่ใน SoC ของ Apple มันทำหน้าที่เป็นโคโปรเซสเซอร์ที่ปลอดภัยสำหรับการดำเนินการเข้ารหัสและไบโอเมตริกทั้งหมดที่ต้องการการแยกฮาร์ดแวร์

ประวัติศาสตร์และรุ่นต่างๆ

Secure Enclave ปรากฏครั้งแรกใน ชิป A7 (iPhone 5S, 2013) พร้อมกับ Touch ID ใน A7–A8 Secure Enclave ถูกนำมาใช้เป็นส่วนหนึ่งของโปรเซสเซอร์ เริ่มตั้งแต่ A9 (iPhone 6S, 2015) Secure Enclave ใช้พื้นที่แยกต่างหากของชิปพร้อมพลังงานและสัญญาณนาฬิกาอิสระ ตั้งแต่ A12 (2018) Secure Enclave มี เครื่องกำเนิดตัวเลขสุ่มจริง (TRNG) ของตัวเองและตัวเร่งฮาร์ดแวร์ Ed25519

แต่ละ Secure Enclave มีตัวระบุที่ไม่ซ้ำกัน (UID) ที่ถูกฝังในขั้นตอนการผลิตชิป UID ถูกใช้เป็นคีย์รากสำหรับเข้ารหัสคีย์อื่นๆ ทั้งหมด แม้แต่ Apple ก็ไม่สามารถแยกหรือกู้คืนตัวระบุนี้ได้ — มันสามารถเข้าถึงได้เฉพาะภายใน Secure Enclave เท่านั้น

ทำไมต้องมีการแยก

ระบบปฏิบัติการมือถือสมัยใหม่มีความซับซ้อนและมีโค้ดหลายล้านบรรทัด ทำให้พวกมันเสี่ยงต่อการถูกโจมตี แม้ว่าผู้โจมตีจะควบคุม iOS ได้อย่างสมบูรณ์ (ระดับเคอร์เนล) Secure Enclave ก็ยังคงไม่สามารถเข้าถึงได้ — มันถูกแยกทางกายภาพจาก SoC หลักและไม่รับคำสั่งโดยตรง มีเพียงคำขอที่เข้ารหัสผ่านช่องทางที่ปลอดภัยเท่านั้นที่สามารถโต้ตอบกับ SEP ได้

ตาม Apple Platform Security (2025) ไม่มีการแยกข้อมูลจาก Secure Enclave บนอุปกรณ์ที่ล็อกไว้สำเร็จภายใต้ข้อจำกัดฮาร์ดแวร์ปัจจุบัน

Secure Enclave ทำงานอย่างไร?

Secure Enclave ทำหน้าที่เป็นโปรเซสเซอร์ อิสระ: หลังจากบูตอุปกรณ์ มันเริ่มต้นด้วยบูตโหลดเดอร์ของตัวเอง (SEP ROM) ตรวจสอบความสมบูรณ์ของไมโครเคอร์เนล L4 จากนั้นเข้าสู่สถานะรอคำขอจาก Application Processor (AP) ผ่านกล่องจดหมายที่ปลอดภัย

ช่องทางการสื่อสาร AP-SEP

การสื่อสารระหว่าง Application Processor (AP) และ Secure Enclave เกิดขึ้นผ่าน กล่อง จดหมายที่ปลอดภัยด้วยการเข้ารหัสโดยใช้คีย์เซสชันร่วมกัน AP ส่งคำขอที่เข้ารหัส SEP ถอดรหัส ดำเนินการ (ลายเซ็น, การถอดรหัส, การสร้างคีย์) และส่งคืนผลลัพธ์ในรูปแบบที่เข้ารหัส SEP ไม่เคยยอมรับคำสั่งที่ไม่เข้ารหัส

ก่อน การสร้าง คีย์เซสชัน AP และ SEP ดำเนินโปรโตคอลการตรวจสอบสิทธิ์ที่ใช้คีย์กลุ่ม (Group Key) ที่ฝังอยู่ใน SEP ROM และตรวจสอบโดยใบรับรอง Apple กลไกนี้รับประกันว่าเฉพาะอุปกรณ์ Apple ของแท้เท่านั้นที่สามารถโต้ตอบกับ Secure Enclave นี้ได้

การสร้างและการป้องกันคีย์

คีย์ การเข้ารหัสทั้งหมดถูกสร้างขึ้นภายใน Secure Enclave โดยใช้ TRNG ฮาร์ดแวร์ แต่ละคีย์เชื่อมโยงกับ UID ของอุปกรณ์และไม่สามารถส่งออกได้ เมื่อเข้าถึงคีย์ AP จะระบุแฮนเดิลของมัน (เช่นใน Keychain) และ SEP ดำเนินการโดยไม่เปิดเผยคีย์นั้น

objective-c
// การสร้างคีย์ ECDSA ภายใน Secure Enclave
@interface AppDelegate ()
- (SecKeyRef)generateSEKey;
@end

- (SecKeyRef)generateSEKey {
    let attributes: [String: Any] = [
        kSecAttrKeyType as String: kSecAttrKeyTypeECSECPrimeRandom,
        kSecAttrKeySizeInBits as String: 256,
        kSecAttrTokenID as String: kSecAttrTokenIDSecureEnclave,
        kSecPrivateKeyAttrs as String: [
            kSecAttrIsPermanent as String: true,
            kSecAttrLabel as String: "com.app.key"
        ]
    ]
    var error: Unmanaged<CFError?>?
    return SecKeyCreateRandomKey(attributes as CFDictionary, &error)
}

สถาปัตยกรรมและส่วนประกอบ

Secure Enclave ไม่ใช่แค่โมดูลซอฟต์แวร์ — มันเป็น คอมพิวเตอร์ อิสระที่สมบูรณ์บนชิป มันประกอบด้วยโปรเซสเซอร์, RAM, ROM, หน่วยความจำแบบไม่ลบเลือน และตัวเร่งการเข้ารหัสเฉพาะทางของตัวเอง

โปรเซสเซอร์และหน่วยความจำ

โปรเซสเซอร์ ของ Secure Enclave คือ ARM Cortex-A7 32 บิต (A7-A10) หรือไมโครเคอร์เนล L4 ที่เป็นกรรมสิทธิ์ (A12+) RAM ถูกจัดสรรแบบคงที่ (SRAM) และไม่สามารถเข้าถึงได้จากภายนอก ROM (SEP ROM) ประกอบด้วยบูตโหลดเดอร์และคีย์กลุ่ม หน่วยความจำแบบไม่ลบเลือนจัดเก็บ UID, ใบรับรองราก และคีย์ถาวร

ขนาด SRAM ของ Secure Enclave มีจำกัด (16–64 KB ขึ้นอยู่กับรุ่น) นี่คือข้อจำกัดทางสถาปัตยกรรม: ภายใน SEP มีเพียงการดำเนินการเข้ารหัสและการจับคู่เทมเพลตไบโอเมตริกเท่านั้นที่ดำเนินการ ข้อมูลอื่นๆ ทั้งหมดจะถูกถ่ายโอนผ่านช่องทางที่เข้ารหัสไปยังหน่วยความจำหลักของ AP

ตัวเร่งการเข้ารหัส

Secure Enclave ประกอบด้วย บล็อก ฮาร์ดแวร์เฉพาะ: เอ็นจิน AES (การเข้ารหัส/ถอดรหัสด้วยฮาร์ดแวร์), ตัวเร่ง P256 (ECDSA, ECDH), โมดูล SHA-256/SHA-512, TRNG (เครื่องกำเนิดตัวเลขสุ่มจริงที่ใช้ออสซิลเลเตอร์แบบวงแหวน) สิ่งนี้ให้ประสิทธิภาพสูง (ความเร็ว AES ระดับกิกะบิต) โดยใช้พลังงานน้อยที่สุด

ส่วนประกอบฟังก์ชันประสิทธิภาพ
เอ็นจิน AESการเข้ารหัส AES-256 ด้วยฮาร์ดแวร์3.5 GB/s (A12+)
ตัวเร่ง P256การลงนาม/ตรวจสอบ ECDSA15000 op/s
TRNGการสร้างตัวเลขสุ่ม1 Mbit/s
SHA-256การแฮชข้อมูล2 GB/s
UID (eFuse)ตัวระบุชิปที่ไม่ซ้ำกัน256 บิต

คีย์กลุ่มและใบรับรอง

แต่ละ ชุด ของชิป Secure Enclave จะได้รับคีย์กลุ่ม (Group Key) ที่ฝังอยู่ใน SEP ROM คีย์นี้ใช้สำหรับการตรวจสอบสิทธิ์ของ SEP ต่อ AP และสำหรับการสร้างช่องทางที่เข้ารหัส Apple ออกใบรับรองที่ลงนามคีย์กลุ่ม ทำให้สามารถตรวจสอบความถูกต้องของ SEP ในระดับเฟิร์มแวร์ได้

การโต้ตอบกับแอปพลิเคชัน

นักพัฒนา iOS ไม่ได้เข้าถึง Secure Enclave โดยตรง การโต้ตอบเกิดขึ้นผ่าน API ระดับสูง: LocalAuthentication (Touch ID, Face ID), Keychain Services (การจัดเก็บคีย์ใน SEP), CryptoKit (การดำเนินการเข้ารหัสด้วยคีย์ SEP)

CryptoKit และ Secure Enclave

เฟรมเวิร์ก CryptoKit (iOS 13+) ให้การเข้าถึง Secure Enclave โดยตรงสำหรับการสร้างคีย์ ECDSA และการลงนามข้อมูล คีย์ที่สร้างขึ้นด้วยแฟล็ก secureEnclaveKey จะอยู่ใน SEP ทางกายภาพ เมื่อลงนาม ข้อมูลจะถูกส่งผ่านช่องทางที่ปลอดภัย การดำเนินการจะดำเนินการใน SEP และลายเซ็นจะถูกส่งกลับไปยังแอปพลิเคชัน

swift
import CryptoKit
import LocalAuthentication

func signWithSecureEnclave() throws -> Data {
    let context = LAContext()
    let accessControl = try SecAccessControl(
        protection: kSecAttrAccessibleWhenUnlockedThisDeviceOnly,
        flags: .userPresence
    )

    let key = try SecureEnclave.P256.SigningKey(
        accessControl: accessControl
    )

    let dataToSign = "authenticate".data(using: .utf8)!
    return try key.signature(for: dataToSign)
}

Keychain และ Secure Enclave

Keychain Services สามารถใช้ Secure Enclave สำหรับการจัดเก็บคีย์การเข้ารหัส แอตทริบิวต์ kSecAttrTokenID = kSecAttrTokenIDSecureEnclave บอกระบบว่าคีย์ควรถูกสร้างและจัดเก็บภายใน SEP คีย์ใน SEP เป็นประเภท EC (secp256r1/P-256) เสมอ เนื่องจาก Secure Enclave ไม่รองรับ RSA

Secure Enclave และไบโอเมตริก

Touch ID และ Face ID เป็นฟีเจอร์สำคัญของผู้ใช้ที่นำมาใช้ผ่าน Secure Enclave SEP ไม่เพียงแต่จัดเก็บเทมเพลตไบโอเมตริกเท่านั้น แต่ยังดำเนินการจับคู่กับข้อมูลที่ให้มา ซึ่งช่วยขจัดความเป็นไปได้ในการสกัดกั้นภาพลายนิ้วมือหรือใบหน้า

การจัดเก็บข้อมูลไบโอเมตริก

เมื่อ ลงทะเบียน ลายนิ้วมือหรือใบหน้า เซนเซอร์จะส่งภาพไปยัง Secure Enclave ซึ่งจะถูกแปลงเป็นเทมเพลตทางคณิตศาสตร์ (ไม่ใช่ภาพ!) และเก็บไว้ในหน่วยความจำที่เข้ารหัสของ SEP ภาพต้นฉบับจะถูกทำลาย เทมเพลตไม่สามารถถูกแยกออกมาได้ภายนอก — SEP สามารถเปรียบเทียบเทมเพลตใหม่กับเทมเพลตที่จัดเก็บไว้เท่านั้น

Secure Enclave สามารถจัดเก็บได้สูงสุด 5 ลายนิ้วมือหรือใบหน้า เทมเพลตทั้งหมดได้รับการป้องกันโดย UID ของอุปกรณ์ เมื่ออุปกรณ์รีสตาร์ท SEP จะบล็อกการเข้าถึงเทมเพลตจนกว่าจะป้อนรหัสผ่าน (รหัสล็อก ไม่ใช่ไบโอเมตริก) เป็นครั้งแรก

กระบวนการตรวจสอบสิทธิ์

เมื่อ ผู้ใช้ วางนิ้วบน Touch ID เซนเซอร์จะจับภาพและ (ผ่านไดรเวอร์ iOS) ส่งไปยัง Secure Enclave ผ่านช่องทางที่ปลอดภัย SEP เปรียบเทียบเทมเพลตกับเทมเพลตที่จัดเก็บไว้ หากตรงกัน SEP จะส่งคืนสถานะสำเร็จให้กับ AP พร้อมกับคีย์ชั่วคราวสำหรับปลดล็อก Keychain ความพยายามที่ล้มเหลวจะถูกติดตาม และหลังจากจำนวนครั้งที่กำหนดได้ SEP จะบล็อกคำขอไบโอเมตริกทั้งหมดจนกว่าจะป้อนรหัสผ่าน

swift
import LocalAuthentication

func authenticateUser() {
    let context = LAContext()
    var error: NSError?

    guard context.canEvaluatePolicy(
        .deviceOwnerAuthenticationWithBiometrics,
        error: &error
    ) else { return }

    context.evaluatePolicy(
        .deviceOwnerAuthenticationWithBiometrics,
        localizedReason: "ตรวจสอบสิทธิ์"
    ) { success, error in
        if success {
            // SEP ยืนยันการจับคู่ไบโอเมตริกแล้ว
        }
    }
}

ความปลอดภัยเมื่อสูญเสียอุปกรณ์

เมื่อสูญเสีย อุปกรณ์ ข้อมูลไบโอเมตริกจะได้รับการป้องกันในหลายระดับ: เทมเพลตถูกเข้ารหัสด้วย UID (อ่านไม่ได้ภายนอก SEP), SEP ต้องใช้รหัสผ่านอุปกรณ์ทุกครั้งที่รีสตาร์ท หลังจากไม่มีการใช้งาน 48 ชั่วโมง หรือหลังจากความพยายามไบโอเมตริกล้มเหลว 5 ครั้ง โหมดสูญหายผ่าน Find My จะบล็อก SEP เพิ่มเติม

คำถามที่พบบ่อย

สามารถเข้าถึงข้อมูลของ Secure Enclave ได้หรือไม่?

บนอุปกรณ์ที่ ล็อก ไว้ — ไม่ได้ Secure Enclave ถูกออกแบบให้ข้อมูลไม่สามารถเข้าถึงได้หากไม่มีการตรวจสอบสิทธิ์ผู้ใช้ การโจมตีที่รู้จัก (checkm8 บน A5-A11) ไม่สามารถแยกข้อมูลจาก SEP ได้ — มันบุกรุก AP แต่ไม่ใช่ Secure Enclave

Secure Enclave รองรับอัลกอริทึมใดบ้าง?

ECDSA (secp256r1/P-256) — สำหรับการลงนามและการตรวจสอบ ECDH — สำหรับการตกลงคีย์ AES-256 — สำหรับการเข้ารหัสแบบสมมาตร SHA-256 — สำหรับการแฮช RSA ไม่ได้รับการสนับสนุน การดำเนินการทั้งหมดดำเนินการด้วยฮาร์ดแวร์

Secure Enclave บน Mac ที่ใช้ Apple Silicon แตกต่างหรือไม่?

บน Apple Silicon (M1, M2, M3) Secure Enclave ถูกนำมาใช้คล้ายกับชิป A แต่มีทรัพยากรเพิ่มขึ้น รองรับคีย์พร้อมกันมากขึ้น การดำเนินการ P256 เร็วขึ้น และมีชุดกรณีการใช้งานที่ขยายออกไป (FileVault, การเติมข้อความอัตโนมัติ, Safari)

UID ของ Secure Enclave คืออะไร?

UID (รหัสเฉพาะ) คือตัวระบุสุ่ม 256 บิตที่ถูกฝังใน Secure Enclave ระหว่างการผลิตชิป UID ถูกใช้เป็นคีย์รากสำหรับเข้ารหัสคีย์อื่นๆ ทั้งหมดบนอุปกรณ์ ไม่มีส่วนประกอบใด รวมถึง SEP เอง ที่สามารถอ่านมันได้

จะรีเซ็ต Secure Enclave ได้อย่างไร?

การรีเซ็ต อย่างสมบูรณ์เกิดขึ้นเมื่อกู้คืนเฟิร์มแวร์ผ่านโหมดกู้คืน (DFU) Secure Enclave สร้างลำดับชั้นคีย์ใหม่ ข้อมูล Keychain ทั้งหมดและเทมเพลตไบโอเมตริกจะถูกลบอย่างถาวรโดยไม่สามารถกู้คืนได้ — นี่เป็นกระบวนการที่ไม่สามารถย้อนกลับได้

สรุป

  • Secure Enclave — โคโปรเซสเซอร์ฮาร์ดแวร์ Apple ที่แยกตัวออกมาพร้อมโปรเซสเซอร์ หน่วยความจำ และตัวเร่งการเข้ารหัสของตัวเอง
  • เทมเพลต ไบโอเมตริกของ Touch ID และ Face ID ถูกจัดเก็บและประมวลผลเฉพาะภายใน SEP เท่านั้น AP ไม่สามารถเข้าถึงมันได้
  • คีย์ การเข้ารหัสถูกสร้างโดย Secure Enclave โดยใช้ TRNG ฮาร์ดแวร์และไม่สามารถส่งออกได้
  • CryptoKit และ Keychain อนุญาตให้แอปพลิเคชันใช้ Secure Enclave ผ่าน kSecAttrTokenIDSecureEnclave
  • SEP ประกอบด้วยเอ็นจิน AES (3.5 GB/s), ตัวเร่ง P256 (15000 ลายเซ็น/s) และบล็อก SHA-256 เฉพาะ
  • การแยก ฮาร์ดแวร์รับประกันการปกป้องข้อมูลแม้ว่าเคอร์เนล iOS จะถูกบุกรุกอย่างสมบูรณ์
  • ใช้ Secure Enclave ผ่าน CryptoKit เพื่อจัดเก็บคีย์การลงนามส่วนตัวในแอปพลิเคชัน iOS

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม