SGX
Intel SGX, Software Guard Extensions, একটি নির্দিষ্ট থ্রেট মডেল এবং সফটওয়্যার ইন্টারফেসসহ এনক্লেভ এক্সিকিউশন সুবিধা প্রদান করে। কোনো নির্দিষ্ট সিস্টেমে এনক্লেভ অ্যাপ্লিকেশন চলতে পারবে কিনা তা নিশ্চিত করার জন্য কেবল CPU সাপোর্ট যথেষ্ট নয়।
আপনার যা জানা প্রয়োজন
Intel SGX, Software Guard Extensions, একটি নির্দিষ্ট থ্রেট মডেল এবং সফটওয়্যার ইন্টারফেসসহ এনক্লেভ এক্সিকিউশন সুবিধা প্রদান করে। কোনো নির্দিষ্ট সিস্টেমে এনক্লেভ অ্যাপ্লিকেশন চলতে পারবে কিনা তা নিশ্চিত করার জন্য কেবল CPU সাপোর্ট যথেষ্ট নয়।
এটি যেভাবে কাজ করে
SGX এনক্লেভ মেমোরি এবং এন্ট্রি/এক্সিট মেকানিজম সংজ্ঞায়িত করে, যেখানে একটি এনক্লেভ পেজ ক্যাশ প্ল্যাটফর্ম ও OS সাপোর্টের মাধ্যমে পরিচালিত হয়। একটি এনক্লেভ অ্যাপ্লিকেশন বিশ্বস্ত এবং অবিশ্বস্ত উপাদানগুলোকে পৃথক করে এবং এনক্লেভের পরিচয় প্রতিষ্ঠার জন্য অ্যাটেস্টেশন ব্যবহার করতে পারে। ব্যবহারযোগ্য এনক্লেভ মেমোরির পরিমাণ এবং সমর্থিত লঞ্চ নীতি প্ল্যাটফর্ম-নির্দিষ্ট।
যেখানে এটি কার্যকর
একটি অ্যাপ্লিকেশন পরিবেষ্টিত হোস্টকে তার ট্রাস্ট বাউন্ডারির বাইরে রেখে সংকীর্ণ পরিসরের গণনা এবং গোপন তথ্য একটি এনক্লেভের মধ্যে রাখতে পারে। I/O, অবিশ্বস্ত ইনপুট, এক্সেপশন আচরণ এবং সাইড-চ্যানেল সম্পর্কিত বিষয়গুলোর জন্য এখনও সুস্পষ্ট ডিজাইনের প্রয়োজন হয়।
সাপোর্ট এবং সক্ষমতা কীভাবে পরীক্ষা করবেন
CPUID.07H.00H:EBX বিট 2 এবং SGX-নির্দিষ্ট CPUID leaf 12H তথ্য পরীক্ষা করুন, তারপর ফার্মওয়্যার প্রভিশনিং, ড্রাইভার/রানটাইম সাপোর্ট এবং অ্যাপ্লিকেশনের অ্যাটেস্টেশন প্রয়োজনীয়তা যাচাই করুন। নির্দিষ্ট প্ল্যাটফর্মের সমর্থিত কনফিগারেশন অনুসরণ করুন।
সক্ষমতা, সক্রিয়করণ এবং প্রয়োগ আলাদাভাবে পরীক্ষা করা আবশ্যক। একটি প্রসেসর একটি সুরক্ষাকে সমর্থন করতে পারে যখন OS, অ্যাপ্লিকেশন বা ভার্চুয়াল-মেশিন নীতি এটি সক্রিয় করে না। একটি ডাটাবেস সমর্থন ক্ষেত্র একটি চলমান সিস্টেমের প্রমাণীকরণ নয়।
এই বৈশিষ্ট্যটি যা নিশ্চিত করে না
কোনো SGX লেবেল SGX1/SGX2-এর বিবরণ, নমনীয় লঞ্চ নিয়ন্ত্রণ, অ্যাটেস্টেশন সেবার প্রাপ্যতা বা নির্দিষ্ট এনক্লেভ-মেমোরি সক্ষমতা নিশ্চিত করে না। এটি যেকোনো অপরিবর্তিত অ্যাপ্লিকেশনকে গোপন করে তোলে না বা প্রতিটি সাইড-চ্যানেল দূর করে না।
বাস্তবে সামঞ্জস্য এবং কর্মক্ষমতা
OS, ফার্মওয়্যার এবং প্রভাবিত রানটাইম আপ টু ডেট রাখুন। যদি কোনো সুরক্ষা একটি সামঞ্জস্যের সমস্যা প্রকাশ করে, তবে প্রথমে বিক্রেতার ডায়াগনস্টিকস এবং সমর্থিত আপডেটগুলি ব্যবহার করুন। একটি বিস্তৃত সুরক্ষা টগল সম্পর্কহীন অ্যাপ্লিকেশনগুলিকে প্রভাবিত করতে পারে এবং একটি সুস্পষ্ট স্থাপনা এবং পুনরুদ্ধার নীতি অনুসরণ করা উচিত।
একটি ব্যবহারিক যাচাইকরণ চেকলিস্ট
- সংশ্লিষ্ট সুনির্দিষ্ট প্রসেসর বা প্ল্যাটফর্ম মডেল এবং অ্যাপ্লিকেশন, OS ও রানটাইম সংস্করণগুলি রেকর্ড করুন। প্রকৃত ত্রুটি বা প্রয়োজনীয়তার সঠিক শব্দচয়ন সংরক্ষণ করুন।
- সেই নির্দিষ্ট মডেলের জন্য প্রস্তুতকারকের রেফারেন্স পরীক্ষা করুন, তারপর প্রোগ্রামটি যে পরিবেশে চলে সেখানে কার্যকর সক্ষমতা এবং সক্রিয় অবস্থা পর্যবেক্ষণ করুন।
- নির্বাচিত বাইনারি বা ব্যাকএন্ডের প্রতিটি প্রয়োজনীয়তা তুলনা করুন। একই নামের কোনো বৈশিষ্ট্য, উপনাম বা বিস্তৃত প্রযুক্তির লেবেলই যথেষ্ট নয়।
- অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বাস্তবায়ন নির্বাচন করেছে কিনা তা নিশ্চিত করুন। প্রয়োজনীয়তা পূরণ না হলে এর নথিভুক্ত ডায়াগনস্টিকস এবং একটি সমর্থিত ফলব্যাক ব্যবহার করুন।
- একবারে একটি সমর্থিত পরিবর্তন করুন এবং একই কাজের চাপ পুনরাবৃত্তি করুন। মূল কনফিগারেশন এবং পুনরুদ্ধারের পথ উপলব্ধ রাখুন।
যদি বৈশিষ্ট্যটি তালিকাভুক্ত থাকে কিন্তু সফটওয়্যার এটি ব্যবহার করতে না পারে
নির্দিষ্ট ব্যর্থ উপাদানটি দিয়ে শুরু করুন। একটি হার্ডওয়্যার ডাটাবেস সংরক্ষিত সক্ষমতা বর্ণনা করে; অপারেটিং সিস্টেম বা হাইপারভাইজর একটি ভিন্ন কার্যকর পরিবেশ প্রকাশ করতে পারে। একটি অবৈধ-নির্দেশনা (illegal-instruction) ত্রুটির ক্ষেত্রেও প্রকৃত ত্রুটিপূর্ণ নির্দেশনা এবং বাইনারি বিল্ড তদন্ত করা প্রয়োজন, কারণ ডেটা ক্ষতি বা সম্পর্কহীন কোনো অসমর্থিত নির্দেশনাও একই রকম লক্ষণ তৈরি করতে পারে।
নির্দিষ্ট প্ল্যাটফর্মের জন্য সমর্থিত অ্যাপ্লিকেশন, ড্রাইভার বা রানটাইম সংস্করণ ইনস্টল করুন এবং প্রয়োজনে ভেন্ডরের নথিভুক্ত বেসলাইন বা ফলব্যাক বিল্ড ব্যবহার করুন। একটি সফটওয়্যার আপডেট এমন কোনো নির্দেশনা তৈরি করতে পারে না যা প্রসেসরে নেই। ফার্মওয়্যার এবং নিরাপত্তা-নীতি পরিবর্তনগুলি একটি সাধারণ অপ্টিমাইজেশন রেসিপির পরিবর্তে সিস্টেম প্রস্তুতকারকের পদ্ধতি এবং একটি পুনরুদ্ধার পরিকল্পনা অনুসরণ করা উচিত।
এই ব্যাখ্যার উৎস এবং পরিধি
Intel 64 and IA-32 Architectures Software Developer's Manual · Intel SGX ডেভেলপার রেফারেন্স বাস্তবায়ন
এই রেফারেন্সগুলি আর্কিটেকচারাল আচরণ এবং সফটওয়্যার প্রয়োজনীয়তা স্থাপন করে। এগুলি একটি লিঙ্কযুক্ত হার্ডওয়্যার মডেল পৃষ্ঠার প্রতিটি বৈশিষ্ট্যের মান স্বাধীনভাবে যাচাই করে না। মডেল সাপোর্টের জন্য, সেই পৃষ্ঠার প্রস্তুতকারকের প্রমাণ ব্যবহার করুন এবং কার্যকর সিস্টেম কনফিগারেশন পরীক্ষা করুন। এই নিবন্ধটি কোনো বেঞ্চমার্ক, সার্টিফিকেশন বা স্বাধীন পর্যালোচনার তারিখ সরবরাহ করে না।
উৎস এবং যাচাইকরণ
সম্পাদকীয় মালিকানা: Feex। কোনো স্বাধীন পর্যালোচনার তারিখ রেকর্ড করা নেই। আমরা কীভাবে গবেষণা করি.
- Intel 64 and IA-32 Architectures Software Developer's Manual · ভলিউম 1 এবং 2 নামযুক্ত নির্দেশিকা পরিবার এবং CPUID বর্ণনা করে; ভলিউম 3 স্টেট, পেজিং, VMX এবং সুরক্ষা নিয়ন্ত্রণ বর্ণনা করে। আর্কিটেকচার ডকুমেন্টেশন কোনো নির্দিষ্ট মডেলের জন্য সাপোর্ট নিশ্চিত করে না।
- Intel SGX ডেভেলপার রেফারেন্স বাস্তবায়ন · এনক্লেভ ডিপ্লয়মেন্টের জন্য অফিশিয়াল SDK/রানটাইম প্রজেক্ট এবং রেফারেন্স। নির্দিষ্ট প্ল্যাটফর্ম এবং অ্যাটেস্টেশন প্রয়োজনীয়তা অ্যাপ্লিকেশন-নির্দিষ্টই থাকে।
এই নিবন্ধটি কি দরকারী ছিল?
একটি হ্যাঁ বা না-ই যথেষ্ট। আপনি চাইলে একটি কারণ বেছে নিন, বা একটি ছোট মন্তব্য যোগ করুন।
ধন্যবাদ। এটি আমাদের এই পৃষ্ঠাটি উন্নত করতে সহায়তা করে।