Secure Enclave হল Apple ডিভাইসে একটি ডেডিকেটেড হার্ডওয়্যার কপ্রসেসর যা ক্রিপ্টোগ্রাফিক অপারেশন প্রক্রিয়াকরণ এবং গোপনীয় ডেটা সংরক্ষণের জন্য একটি বিচ্ছিন্ন সুরক্ষিত পরিবেশ বাস্তবায়ন করে। Secure Enclave L4 মাইক্রোকার্নেল সহ নিজস্ব মাইক্রোপ্রসেসরে চলে এবং ডিভাইসের প্রধান মেমোরি বা পেরিফেরালগুলিতে সরাসরি অ্যাক্সেস নেই। Apple Platform Security Guide অনুসারে, Secure Enclave চিপ স্তরে ক্রিপ্টোগ্রাফিক অপারেশন প্রদানের জন্য হার্ডওয়্যার TRNG এবং একটি ডেডিকেটেড AES ইঞ্জিন ব্যবহার করে।
মূল বিষয়
Secure Enclave (SEP — Secure Enclave Processor) হল Apple-এর SoC-তে সমন্বিত একটি ডেডিকেটেড 32-বিট RISC প্রসেসর (পুরনো চিপে ARM Cortex-A7/A8, মালিকানাধীন L4 মাইক্রোকার্নেল)। এটি সমস্ত ক্রিপ্টোগ্রাফিক এবং বায়োমেট্রিক অপারেশনের জন্য একটি সুরক্ষিত কপ্রসেসর হিসেবে কাজ করে যার জন্য হার্ডওয়্যার বিচ্ছিন্নতা প্রয়োজন।
Secure Enclave প্রথম A7 চিপে (iPhone 5S, 2013) Touch ID-এর সাথে উপস্থিত হয়েছিল। A7–A8-এ, Secure Enclave প্রসেসরের অংশ হিসেবে বাস্তবায়িত। A9 (iPhone 6S, 2015) থেকে শুরু করে, Secure Enclave স্বাধীন পাওয়ার এবং ক্লকিং সহ চিপের একটি পৃথক এলাকা ব্যবহার করে। A12 (2018) থেকে, Secure Enclave-এর নিজস্ব True Random Number Generator (TRNG) এবং একটি হার্ডওয়্যার Ed25519 অ্যাক্সিলারেটর রয়েছে।
প্রতিটি Secure Enclave-এর চিপ উৎপাদন পর্যায়ে একটি অনন্য শনাক্তকারী (UID) থাকে। UID অন্যান্য সমস্ত কী এনক্রিপ্ট করার জন্য রুট কী হিসাবে ব্যবহৃত হয়। এমনকি Appleও এই শনাক্তকারী বের বা পুনরুদ্ধার করতে পারে না — এটি শুধুমাত্র Secure Enclave-এর ভিতরেই অ্যাক্সেসযোগ্য।
আধুনিক মোবাইল অপারেটিং সিস্টেম জটিল এবং লক্ষ লক্ষ লাইন কোড ধারণ করে, যা এগুলিকে শোষণের জন্য ঝুঁকিপূর্ণ করে তোলে। এমনকি যদি কোনও আক্রমণকারী iOS-এর (কার্নেল-স্তর) সম্পূর্ণ নিয়ন্ত্রণ নেয়, Secure Enclave দুর্গম থাকে — এটি প্রধান SoC থেকে শারীরিকভাবে পৃথক এবং সরাসরি কমান্ড গ্রহণ করে না। শুধুমাত্র এনক্রিপ্টেড অনুরোধ একটি সুরক্ষিত চ্যানেলের মাধ্যমে SEP-এর সাথে যোগাযোগ করতে পারে।
Apple Platform Security (2025) অনুসারে, বর্তমান হার্ডওয়্যার সীমাবদ্ধতার সাথে লক করা ডিভাইসে Secure Enclave থেকে ডেটার কোনো সফল নিষ্কাশন নথিভুক্ত করা হয়নি।
Secure Enclave একটি স্বায়ত্তশাসিত প্রসেসর হিসেবে কাজ করে: ডিভাইস বুটের পরে, এটি নিজস্ব বুটলোডার (SEP ROM) দিয়ে শুরু হয়, L4 মাইক্রোকার্নেলের অখণ্ডতা যাচাই করে এবং তারপর একটি সুরক্ষিত মেলবক্সের মাধ্যমে অ্যাপ্লিকেশন প্রসেসর (AP) থেকে অনুরোধের জন্য অপেক্ষার অবস্থায় প্রবেশ করে।
অ্যাপ্লিকেশন প্রসেসর (AP) এবং Secure Enclave-এর মধ্যে যোগাযোগ একটি ভাগ করা সেশন কী-তে এনক্রিপশন সহ একটি সুরক্ষিত মেলবক্সের মাধ্যমে ঘটে। AP একটি এনক্রিপ্টেড অনুরোধ পাঠায়, SEP এটি ডিক্রিপ্ট করে, অপারেশন (স্বাক্ষর, ডিক্রিপশন, কী তৈরি) সম্পাদন করে এবং ফলাফল এনক্রিপ্টেড আকারে ফেরত দেয়। SEP কখনও আনএনক্রিপ্টেড কমান্ড গ্রহণ করে না।
সেশন কী স্থাপনের আগে, AP এবং SEP SEP ROM-তে এম্বেড করা এবং Apple সার্টিফিকেট দ্বারা যাচাইকৃত গ্রুপ কী (Group Key) ব্যবহার করে একটি প্রমাণীকরণ প্রোটোকল সম্পাদন করে। এই প্রক্রিয়া নিশ্চিত করে যে শুধুমাত্র একটি প্রকৃত Apple ডিভাইস এই Secure Enclave-এর সাথে যোগাযোগ করতে পারে।
সমস্ত ক্রিপ্টোগ্রাফিক কী হার্ডওয়্যার TRNG ব্যবহার করে Secure Enclave-এর ভিতরে তৈরি হয়। প্রতিটি কী ডিভাইসের UID-এর সাথে সংযুক্ত এবং রপ্তানি করা যায় না। একটি কী অ্যাক্সেস করার সময়, AP তার হ্যান্ডেল (যেমন Keychain-এ) নির্দিষ্ট করে এবং SEP কী প্রকাশ না করেই অপারেশন সম্পাদন করে।
// Secure Enclave-এর ভিতরে ECDSA কী তৈরি
@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 প্রসেসর একটি 32-বিট ARM Cortex-A7 (A7-A10) বা একটি মালিকানাধীন L4 মাইক্রোকার্নেল (A12+)। RAM স্ট্যাটিকভাবে বরাদ্দ (SRAM) এবং বাইরে থেকে দুর্গম। ROM (SEP ROM) বুটলোডার এবং গ্রুপ কী ধারণ করে। নন-ভোলাটাইল মেমোরি UID, রুট সার্টিফিকেট এবং স্থায়ী কী সংরক্ষণ করে।
Secure Enclave-এর SRAM আকার সীমিত (প্রজন্ম অনুসারে 16–64 KB)। এটি একটি আর্কিটেকচারাল সীমাবদ্ধতা: SEP-এর ভিতরে শুধুমাত্র ক্রিপ্টোগ্রাফিক অপারেশন এবং বায়োমেট্রিক টেমপ্লেট মিলান সম্পাদিত হয়। অন্যান্য সমস্ত ডেটা একটি এনক্রিপ্টেড চ্যানেলের মাধ্যমে AP-এর প্রধান মেমোরিতে স্থানান্তরিত হয়।
Secure Enclave-এ ডেডিকেটেড হার্ডওয়্যার ব্লক রয়েছে: AES ইঞ্জিন (হার্ডওয়্যার এনক্রিপশন/ডিক্রিপশন), P256 অ্যাক্সিলারেটর (ECDSA, ECDH), SHA-256/SHA-512 মডিউল, TRNG (রিং অসিলেটরের উপর ভিত্তি করে True Random Number Generator)। এটি ন্যূনতম বিদ্যুৎ খরচের সাথে উচ্চ কর্মক্ষমতা (গিগাবিট AES গতি) প্রদান করে।
| উপাদান | কার্য | কর্মক্ষমতা |
|---|---|---|
| AES ইঞ্জিন | হার্ডওয়্যার AES-256 এনক্রিপশন | 3.5 GB/s (A12+) |
| P256 অ্যাক্সিলারেটর | ECDSA স্বাক্ষর/যাচাইকরণ | 15000 op/s |
| TRNG | এলোমেলো সংখ্যা তৈরি | 1 Mbit/s |
| SHA-256 | ডেটা হ্যাশিং | 2 GB/s |
| UID (eFuse) | অনন্য চিপ শনাক্তকারী | 256 বিট |
Secure Enclave চিপের প্রতিটি ব্যাচ SEP ROM-এ এম্বেড করা গ্রুপ কী (Group Key) পায়। এই কীটি AP-এর সামনে SEP প্রমাণীকরণ এবং একটি এনক্রিপ্টেড চ্যানেল প্রতিষ্ঠার জন্য ব্যবহৃত হয়। Apple গ্রুপ কী-তে স্বাক্ষরকারী সার্টিফিকেট জারি করে, যা ফার্মওয়্যার স্তরে SEP-এর প্রামাণিকতা যাচাই করতে দেয়।
iOS ডেভেলপাররা সরাসরি Secure Enclave অ্যাক্সেস করেন না। ইন্টারঅ্যাকশন উচ্চ-স্তরের API-এর মাধ্যমে ঘটে: LocalAuthentication (Touch ID, Face ID), Keychain Services (SEP-তে কী সংরক্ষণ), CryptoKit (SEP কী-এর সাথে ক্রিপ্টোগ্রাফিক অপারেশন)।
CryptoKit ফ্রেমওয়ার্ক (iOS 13+) ECDSA কী তৈরি এবং ডেটা স্বাক্ষরের জন্য Secure Enclave-এ সরাসরি অ্যাক্সেস প্রদান করে। secureEnclaveKey ফ্ল্যাগ দিয়ে তৈরি কীগুলি শারীরিকভাবে SEP-এর ভিতরে অবস্থিত। স্বাক্ষর করার সময়, ডেটা একটি সুরক্ষিত চ্যানেলের মাধ্যমে প্রেরিত হয়, অপারেশন SEP-তে সম্পাদিত হয় এবং স্বাক্ষর অ্যাপ্লিকেশনে ফেরত দেওয়া হয়।
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 Services ক্রিপ্টোগ্রাফিক কী সংরক্ষণের জন্য Secure Enclave ব্যবহার করতে পারে। kSecAttrTokenID = kSecAttrTokenIDSecureEnclave অ্যাট্রিবিউট সিস্টেমকে বলে যে কীটি SEP-এর ভিতরে তৈরি এবং সংরক্ষণ করা উচিত। SEP-তে কীগুলি সর্বদা EC টাইপের (secp256r1/P-256), কারণ Secure Enclave RSA সমর্থন করে না।
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 পাসকোড প্রবেশ না করা পর্যন্ত সমস্ত বায়োমেট্রিক অনুরোধ ব্লক করে।
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 এমনভাবে ডিজাইন করা হয়েছে যে ব্যবহারকারী প্রমাণীকরণ ছাড়া ডেটা দুর্গম। পরিচিত আক্রমণ (A5-A11-এ checkm8) SEP থেকে ডেটা বের করতে পারে না — তারা AP-এর সাথে আপস করে কিন্তু Secure Enclave-এর সাথে নয়।
ECDSA (secp256r1/P-256) — স্বাক্ষর এবং যাচাইয়ের জন্য। ECDH — কী চুক্তির জন্য। AES-256 — সিমেট্রিক এনক্রিপশনের জন্য। SHA-256 — হ্যাশিংয়ের জন্য। RSA সমর্থিত নয়। সমস্ত অপারেশন হার্ডওয়্যারে সম্পাদিত হয়।
Apple Silicon (M1, M2, M3)-এ, Secure Enclave A-চিপের মতোই বাস্তবায়িত কিন্তু বর্ধিত সম্পদ সহ। এটি আরও সমবর্তী কী, দ্রুত P256 অপারেশন সমর্থন করে এবং ব্যবহারের ক্ষেত্রে (FileVault, অটোফিল, Safari) একটি বর্ধিত সেট রয়েছে।
UID (Unique ID) হল একটি 256-বিট এলোমেলো শনাক্তকারী যা চিপ উৎপাদনের সময় Secure Enclave-তে ফিউজ করা হয়। UID ডিভাইসের অন্যান্য সমস্ত কী এনক্রিপ্ট করতে রুট কী হিসাবে ব্যবহৃত হয়। এটি SEP সহ কোনো উপাদান দ্বারা পঠনযোগ্য নয়।
সম্পূর্ণ রিসেট রিকভারি মোড (DFU)-এর মাধ্যমে ফার্মওয়্যার পুনরুদ্ধার করার সময় ঘটে। Secure Enclave কী স্তরক্রম পুনর্নির্মাণ করে। সমস্ত Keychain ডেটা এবং বায়োমেট্রিক টেমপ্লেট কোনো পুনরুদ্ধারের সম্ভাবনা ছাড়াই স্থায়ীভাবে মুছে ফেলা হয় — এটি একটি অপরিবর্তনীয় প্রক্রিয়া।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন