আইওটি ডিভাইসগুলিতে নেটওয়ার্ক আক্রমণের সংখ্যা বাড়ার পরেও, ফার্মওয়্যার সুরক্ষা প্রায়শই দ্বিতীয় অবস্থানে রাখা হয়।যেমন আক্রমণকারীরা সিস্টেম স্ট্যাক অনুপ্রবেশ এবং বুট প্রক্রিয়া এবং অন্তর্নিহিত হার্ডওয়্যার কনফিগারেশন লক্ষ্য, মেমরি আর্কিটেকচারের পছন্দ একটি যাচাইযোগ্য ট্রাস্ট চেইন প্রতিষ্ঠার জন্য একটি মূল সিদ্ধান্ত হয়ে উঠেছে।
অতএব, ফার্মওয়্যার নিরাপত্তা নিশ্চিত করার জন্য প্রতিটি উপাদান এক্সিকিউশন আগে এনক্রিপশন যাচাইকরণের মধ্য দিয়ে যেতে হবে। এই পথ একটি অপরিবর্তনীয় বুট লোডার দিয়ে শুরু হয়,যা প্রধান ফার্মওয়্যার লোড এবং যাচাই করার জন্য দায়ীযাইহোক, প্রতিটি ধাপে ব্যবহৃত মেমরি প্রযুক্তি অননুমোদিত পরিবর্তনগুলির জন্য ফার্মওয়্যারের দুর্বলতা হতে পারে।
অভ্যন্তরীণ এবং বাহ্যিক ফ্ল্যাশ মেমরি
ফার্মওয়্যার সংরক্ষণের জন্য ব্যবহৃত অ-অস্থায়ী মেমরির শারীরিক অবস্থান ডিভাইস হুমকি মডেলগুলির মধ্যে অন্যতম গুরুত্বপূর্ণ কারণ।ফার্মওয়্যার ইঞ্জিনিয়ারদের চিপে এমবেডেড ফ্ল্যাশ (ইফ্ল্যাশ) এবং এসপিআই বা কিউএসপিআইয়ের মতো সিরিয়াল ইন্টারফেসের মাধ্যমে সংযুক্ত বাহ্যিক ফ্ল্যাশ মডিউলগুলির মধ্যে একটি পছন্দ করতে হবে.
এমবেডেড ফ্ল্যাশ মেমরি সাধারণত সরাসরি মাইক্রোকন্ট্রোলার বা SoC চিপগুলিতে সংহত করা হয়।এই আর্কিটেকচার সর্বোচ্চ স্তরের শারীরিক নিরাপত্তা প্রদান করে কারণ আক্রমণকারীদের হস্তক্ষেপ করার জন্য কোন বাহ্যিক বাস উপলব্ধ নেইএমনকি অভ্যন্তরীণ ফ্ল্যাশ মেমরিতে অ্যাক্সেসও ডেডিকেটেড রেজিস্টার এবং লক বিট দ্বারা নিয়ন্ত্রিত হয়।
উপরন্তু, এমবেডেড ফ্ল্যাশ মেমরি স্থায়ী পাঠ সুরক্ষা সমর্থন করে।ডেভেলপাররা হ্যাকারদের ফার্মওয়্যার ইমেজ পরিবর্তন করতে বাধা দেওয়ার জন্য JTAG বা SWD ডিবাগিং ইন্টারফেসগুলি অক্ষম করতে পারেযাইহোক, এসওসিগুলি ছোট নোডের দিকে এগিয়ে যাওয়ার সাথে সাথে এই প্রযুক্তিটি উল্লেখযোগ্য স্কেলযোগ্যতার চ্যালেঞ্জের মুখোমুখি হয়।
এর বিপরীতে, বাহ্যিক ফ্ল্যাশ মেমরিটি প্রধান প্রসেসরটির বাইরে স্থাপন করা হয় এবং একটি উচ্চ গতির সিরিয়াল ইন্টারফেসের মাধ্যমে যোগাযোগ করে। এই আর্কিটেকচারাল পছন্দ স্টোরেজ ক্ষমতাকে সহজেই স্কেল করে তোলে,কিন্তু সিস্টেমের আক্রমণ পৃষ্ঠ বিস্তৃতপ্রসেসর এবং বাহ্যিক ফ্ল্যাশ মেমরির মধ্যে প্রেরিত যে কোন তথ্য অন্তর্নিহিতভাবে হুমকি যেমন শোনার, মাঝখানে মানুষ আক্রমণ, এবং শারীরিক হস্তক্ষেপের জন্য ঝুঁকিপূর্ণ।
এই ঝুঁকিগুলি মোকাবেলা করার জন্য, ফার্মওয়্যার ইঞ্জিনিয়ারদের সাউন্ড হার্ডওয়্যার এবং সফ্টওয়্যার সুরক্ষা ব্যবস্থা বাস্তবায়ন করতে হবে। অনেক বাহ্যিক এনওআর ফ্ল্যাশ মেমরি ডিভাইস একটি শারীরিক লেখার সুরক্ষা পিন দিয়ে সজ্জিত।যখন পিন একটি নির্দিষ্ট ভোল্টেজ এ স্থাপন করা হয়, চিপ এর অভ্যন্তরীণ যুক্তি কোন মুছে ফেলা বা লিখুন কমান্ড থেকে চালানো থেকে প্রতিরোধ করবে.
চিত্র 1: উইনবন্ড ইলেকট্রনিক্সের W77Q32JWSSIR TR সুরক্ষিত সিরিয়াল NOR ফ্ল্যাশ মেমরিতে জটিল যোগাযোগ চ্যানেল এনক্রিপশন ক্ষমতা রয়েছে। (চিত্র উৎসঃ উইনবন্ড ইলেকট্রনিক্স)
যাইহোক, যদি ডেটা পড়া যায়, কেবল ফ্ল্যাশ মেমরি লক করা যথেষ্ট নয়। এক্সিকিউশন চলাকালীন, আক্রমণকারীরা এখনও ঠিকানা এবং ডেটা বাস অ্যাক্সেস করতে পারে।এই দুর্বলতা বিশেষ সুরক্ষিত ফ্ল্যাশ ডিভাইসগুলির বিকাশের প্ররোচিত করেছে, হার্ডওয়্যার ভিত্তিক রুট অফ ট্রাস্ট প্রক্রিয়া, এনক্রিপ্ট করা যোগাযোগ চ্যানেল এবং রোলব্যাক আক্রমণ প্রতিরোধের জন্য একঘেয়েমি কাউন্টার সহ।
যাইহোক, যদি ভুল স্টোরেজ আর্কিটেকচারটি বেছে নেওয়া হয়, তবে ডিভাইসটি মৌলিক ত্রুটিগুলি ছেড়ে যাবে যা সফ্টওয়্যার প্যাচগুলির দ্বারা সম্পূর্ণরূপে সংশোধন করা যাবে না। উদাহরণস্বরূপ,যে ডিজাইনগুলি এনক্রিপশন বা যাচাইকরণ ছাড়াই বাহ্যিক EEPROM এ ফার্মওয়্যার সঞ্চয় করে তারা সর্বদা হার্ডওয়্যার আক্রমণকারীদের জন্য ঝুঁকিপূর্ণবিপরীতে, অত্যধিক সীমাবদ্ধতার সাথে একটি মেমরি নির্বাচন করা এর কার্যকারিতা প্রভাবিত করতে পারে।
অতএব, ইঞ্জিনিয়ারদের মেমরি আর্কিটেকচারের মাধ্যমে ফার্মওয়্যার সুরক্ষা সর্বাধিক করার জন্য সেরা অনুশীলন এবং নকশা কৌশলগুলি বুঝতে হবে।
নিরাপদ ফার্মওয়্যার স্টোরেজ ডিজাইনের জন্য সেরা অনুশীলন
স্টার্টআপ থেকে রানটাইম পর্যন্ত একটি নিরাপদ ফার্মওয়্যার স্টোরেজ পথ ডিজাইন করার সময়, ফার্মওয়্যার ইঞ্জিনিয়ারদের নিম্নলিখিত নীতিগুলি অনুসরণ করতে হবেঃ
1. হার্ডওয়্যার ভিত্তিক বিশ্বাসের মূল
এক্সিকিউশন সর্বদা অপরিবর্তনীয় মেমরি এলাকা থেকে শুরু করা উচিত। উদাহরণস্বরূপ, বুট রম বা স্থায়ীভাবে সুরক্ষিত ফ্ল্যাশ সেক্টরে অন্যান্য সমস্ত ফার্মওয়্যার যাচাই করার জন্য কোড থাকা উচিত।এটি নিশ্চিত করবে যে আক্রমণকারীরা প্রাথমিক পাসওয়ার্ডের সাথে হস্তক্ষেপ করে যাচাইকরণ বাইপাস করতে পারবে না.
2. এনক্রিপ্ট করা স্বাক্ষর ব্যবহার করুন
নিরাপদ বুট লোডারকে কেবলমাত্র বিশ্বাসযোগ্য ব্যক্তিগত কী দিয়ে স্বাক্ষরিত ফার্মওয়্যার চিত্রগুলি চালানোর জন্য কনফিগার করুন। এইভাবে, এমনকি যদি আক্রমণকারীরা মেমরিতে অ্যাক্সেস করতে এবং বিটগুলি সংশোধন করতে পারে তবে তারা অননুমোদিত কোড প্রতিরোধ করতে পারে।যদি গোপনীয়তা প্রয়োজন হয়, সংরক্ষিত ফার্মওয়্যার এনক্রিপ্ট করা যাবে.
3. হার্ডওয়্যার নিরাপত্তা বৈশিষ্ট্য ব্যবহার করুন
যদি সিস্টেম আর্কিটেকচারটি বাহ্যিক স্টোরেজ ব্যবহার করে, তবে ইঞ্জিনিয়ারদের এমন ডিভাইসগুলি বেছে নেওয়া উচিত যা হার্ডওয়্যার সুরক্ষা সমর্থন করে, যেমন অন্তর্নির্মিত পাসওয়ার্ড সুরক্ষা বা সহজ এনক্রিপশন।যদিও এই ডিভাইসগুলি সম্পূর্ণ নিরাপত্তা উপাদানগুলির মত শক্তিশালী নাও হতে পারে, তারা সুরক্ষার আরেকটি স্তর যোগ করে।
চিত্র ২ঃ ম্যাক্রোনিক্স সিরিয়াল পেরিফেরাল ইন্টারফেসের সাথে MX25L3233FM2I-08Q 32 Mb সিরিয়াল NOR ফ্ল্যাশ মেমরি সমর্থন করে। (চিত্র উৎসঃ ম্যাক্রোনিক্স)
4. ফার্মওয়্যার এবং তথ্য বিচ্ছিন্ন
মেমরি এলাকা সংগঠিত করুন এবং সবচেয়ে সংবেদনশীল কোড আলাদা করুন। এমসিইউতে, একটি সুরক্ষিত মেমরি এলাকায় গুরুত্বপূর্ণ রুটিন নির্দেশাবলী রাখুন। এমনকি ফার্মওয়্যার, যদি হার্ডওয়্যার দ্বারা সমর্থিত হয়,নির্দিষ্ট ফ্ল্যাশ মেমরি ব্যাংকগুলিকে শুধুমাত্র এক্সিকিউটেবল বা শুধুমাত্র পঠনযোগ্য হিসাবে চিহ্নিত করতে পারে.
5. নিরাপত্তা ফার্মওয়্যার আপডেট পরিকল্পনা
নিশ্চিত করুন যে আপডেট প্রক্রিয়াটি নিজেই বৈধ করা হয়েছে (যেমন আপডেট প্যাকেজটি স্বাক্ষর করার প্রয়োজন) । যদি ডিজাইনটি অস্থায়ী আপডেটের জন্য বাহ্যিক স্টোরেজ ব্যবহার করে,মূল ফার্মওয়্যার স্টোরেজের মতোই নিরাপত্তা ব্যবস্থা গ্রহণ করা উচিত.

