AVR এবং PIC নিয়ামকগুলিতে ফার্মওয়্যার সুরক্ষা


23

আমি যে মাইক্রোকন্ট্রোলারটি দিয়েছি সেগুলিতে যে কেউ এইএইএক্স ফাইলটি জ্বালিয়ে দিতে পারে সেগুলি কি সেঁটে ফেলতে পারে?

যদি এটি সম্ভব হয় তবে কীভাবে কেউ নিশ্চিত করতে পারেন যে এম্বেড করা সিস্টেমে তাদের কোড সুরক্ষিত রয়েছে? পিআইসি এবং এভিআর মাইক্রোকন্ট্রোলারদের ক্ষেত্রে, কেউ কীভাবে তাদের ফার্মওয়্যারগুলি পুনরুত্পাদন করা থেকে রক্ষা করতে পারে?



1
# 1 ক্ষেত্রে আপনি মনে করছেন যে আপনি আপনার ক্লায়েন্টদের হেক্স ফাইলটি সরবরাহ করেছেন, সেক্ষেত্রে তারা কেবল এটি বেশ কয়েকটি ক্লোন ডিভাইসে লিখতে পারে, যদিও কোডটি সম্ভব হয় তবুও এটি বিশদকরণের প্রয়োজন নেই । লকড ডিভাইস (# 2) এর ক্ষেত্রে, কোডটি পেতে তারা কতটা নির্ধারিত হয় তা সাধারণত এটি বিবেচনা করা হয় (অন্য কথায় তারা কতটা ব্যয় করতে প্রস্তুত) তবে এটি সম্ভবত সম্ভব।
অ্যালেক্সান_ই

1
এটি দু'বছর ছিল, তবে সুরক্ষার এই দিনগুলিতে জনপ্রিয় ডিভাইসগুলির জন্য গড়ে এক বা দু'দিনে পরাজিত হতে থাকে। মূলত একবার কেউ সিদ্ধান্ত নিয়েছে যে এটি করা ভাল। আপনি যদি সত্যিই সুরক্ষা চান তবে আপনার চিপ ব্যবসায়টি প্রবেশ করতে হবে, তবে আপনি শেল্ফ বাণিজ্যিক অংশগুলি বন্ধ করে পাবেন না।
old_timer

উত্তর:


33

এম্বেড থাকা ফার্মওয়্যার কোডটি আজকাল বেশিরভাগ মাইক্রো কন্ট্রোলারের অংশ বা প্রস্তুতকারকের নির্দিষ্ট পদ্ধতি রয়েছে। এটি সাধারণত এমন সার্কিটগুলি লক করে করা হয় যা সাধারণত কোড মেমোরিটি পড়তে দেয়। (আপনাকে ডেটা শিটে বা প্রযোজ্য অ্যাপ্লিকেশন নোটগুলিতে নির্মাতাদের ওয়েব সাইটে কিছু নির্দিষ্ট বিবরণ সন্ধান করতে হবে)।

একবার লক হয়ে গেলে সাধারণ কৌশলগুলি ব্যবহার করে কোড মেমোরিটি পড়া সম্ভব হয় না। এটি আপনার এম্বেড থাকা অ্যাপ্লিকেশনের জন্য মেশিন কোডটি দেখা থেকে বেশিরভাগ হ্যাকারদের রাখার জন্য যুক্তিসঙ্গত সুরক্ষা সরবরাহ করে।

আজকাল অনেক এমসিইউ ডিভাইসগুলিতে প্রোগ্রাম কোডটি বাড়াতে অন-বোর্ডে ফ্ল্যাশ মেমরি রয়েছে। ফ্ল্যাশ-এ সঞ্চিত পূর্বে সঞ্চিত এবং সুরক্ষিত প্রোগ্রামটি সাধারণত নতুন কোডের সাথে প্রতিস্থাপন করা যেতে পারে তবে সুরক্ষা ব্যবস্থা আনলক করতে সম্পূর্ণ চিপ ফ্ল্যাশ মুছা অপারেশন লাগে। মুছে ফেলা অংশটি আসল সুরক্ষা লকের আগে যেমন করত তেমন কাজ করবে। যদি কোনও নতুন প্রোগ্রাম লোড করা থাকে তবে নতুনভাবে লোড হওয়া মেশিন কোডটি সুরক্ষিত রাখতে সাধারণত অংশটি পুনরায় লক করা সম্ভব।

মাইক্রোকন্ট্রোলারগুলিতে কোড সুরক্ষার যে কোনও আলোচনাই এই উল্লেখ ব্যতীত সম্পূর্ণ হবে না যে অংশ নির্মাতার দ্বারা প্রদত্ত যে কোনও সুরক্ষা স্কিম বোকা প্রমাণ বলে সাধারণত কোনও গ্যারান্টি নেই। উত্পাদকরা এমনকি এটিও বলে রাখবেন যে সুরক্ষা সিস্টেমগুলি 100% বোকা প্রমাণ নয়। এর অন্যতম কারণ হ'ল পুরো ব্ল্যাক মার্কেট শিল্প চলছে যেখানে একটি পারিশ্রমিকের জন্য, অধ্যবসায়ী হ্যাকাররা যে কোনও ব্যক্তিকে যে অর্থ প্রদান করতে চায় তার জন্য সুরক্ষিত অংশ থেকে কোড পড়বে। তারা বিভিন্ন স্কিম তৈরি করেছে যা সুরক্ষিত মাইক্রো কন্ট্রোলারগুলিতে কোডটি ROMs বা FLASHes থেকে পড়ার অনুমতি দেয়। এর মধ্যে কয়েকটি স্কিমে অবিশ্বাস্যভাবে চালাক তবে কিছু অংশের পরিবারে অন্যের চেয়ে ভাল সাফল্যের জন্য কাজ করে। সুতরাং এই বাস্তবতা সম্পর্কে সচেতন হন তারপরে আপনি নিজের প্রোগ্রামটিকে চোখের ছাঁটাই থেকে রক্ষা করার চেষ্টা করবেন।

মেশিন কোডের বাইনারি ইমেজটিতে কারও হাত পড়লে যে কোনও মাইক্রোকন্ট্রোলার থেকে পড়েছিল, তা সে সুরক্ষিত মাইক্রোকন্ট্রোলার ছিল কিনা, তারা মেশিন কোডটি ডিসেসেম্বারার নামে একটি সরঞ্জামের মাধ্যমে প্রক্রিয়া করতে পারে। এটি বাইনারি ডেটাটিকে আবার অ্যাসেম্বলি ভাষা কোডে পরিণত করবে যা আপনার প্রোগ্রামের অ্যালগরিদমগুলি কীভাবে কাজ করে তা শিখতে চেষ্টা করার জন্য অধ্যয়ন করা যেতে পারে। মেশিন কোডটি সঠিকভাবে বিচ্ছিন্ন করা একটি বেদনাদায়ক কাজ যা প্রচুর পরিমাণে কাজ নিতে পারে। শেষ পর্যন্ত প্রক্রিয়াটি আমার বর্ণিত মত সংঠক কোডে নিয়ে যেতে পারে। যদি আপনার প্রোগ্রামটি কিছু উচ্চ স্তরের ভাষায় যেমন সি, সি ++ বা বেসিকের লিখিত হয় তবে এসেম্বলি কোডটি কেবল আপনার প্রোগ্রামের সংকলিত এবং সংযুক্ত ফলাফলের প্রতিনিধিত্ব করবে। উচ্চ স্তরের ভাষা স্তরে ফিরে পুরোপুরি ইঞ্জিনিয়ার চুরি কোডটি বিপরীত করা সম্ভব হয় না।

এর অর্থ কী তা হল একটি উচ্চ স্তরের ভাষায় আপনার এমবেডেড অ্যাপ্লিকেশন ফার্মওয়্যারটি লিখতে আসলে একটি উপকার হয়। এটি অন্য একটি স্তর সরবরাহ করে যা আপনার প্রোগ্রামকে পুরোপুরি বিপরীত ইঞ্জিনিয়ারিং করা শক্ত করে তোলে। এম্বেডেড অ্যাপ্লিকেশনটি সংকলন করতে কমপাইলারদের অনুকূলকরণের ক্ষেত্রে সর্বোপরি শিল্পের ব্যবহারের মাধ্যমে আরও বৃহত্তর সুবিধা হ'ল কারণ সর্বোচ্চ পারফরম্যান্স অপটিমাইজাররা আক্ষরিকভাবে প্রোগ্রামটিকে একটি বিশাল স্প্যাগেটি বাটিতে রূপান্তর করতে পারে যা ডজনগুলি কলকে সংক্ষিপ্ত সাবরুটিনগুলিতে পরিণত করে যা খুব শক্ত are একটি বিচ্ছিন্নতা মধ্যে সিদ্ধান্ত গ্রহণ করা।

বেশিরভাগ অভিজ্ঞ এম্বেড থাকা বিকাশকারীরা আপনাকে এগিয়ে যেতে এবং আপনার অ্যাপ্লিকেশনটিতে এমসিইউতে দেওয়া যে কোনও সুরক্ষা স্কিম ব্যবহার করতে বলবে .... তবে এটি আপনার পণ্যের রাস্তার শেষে নির্ভর করবে না। তারা আপনাকে বলবে যে প্রতিযোগিতায় এগিয়ে থাকার সর্বোত্তম উপায় হ'ল আপনার পণ্যকে ক্রমাগত আপগ্রেড করা যাতে হ্যাকাররা আপনার কোডটি ক্লোন করেছে এমন সময়কালের মধ্যে পুরানো সংস্করণগুলি তারিখের ও বিরক্তিকর হবে। চারপাশের কোডটি পরিবর্তন করুন, নতুন বৈশিষ্ট্য যুক্ত করুন, আপনার সমস্ত আই / ওএস এবং আপনার মনে হতে পারে এমন কোনও অন্যান্য জিনিস অদলবদল করতে আপনার পিসি বোর্ডগুলিকে সময়ে সময়ে স্পিন করুন। এভাবে আপনি প্রতিবারের মতো রেস জয় করতে পারবেন।


আপনাকে অনেক ধন্যবাদ
@ মিশেল

12

আমি মনে করি মাইকেল এর উত্তর এই প্রশ্নের পক্ষে যথেষ্ট তবে আমি এই দুটি লিঙ্ক যুক্ত করেছি: PIC হ্যাকিং 18F1320 এবং তারা যা কিছু বানায় আমরা তা ভেঙে ফেলতে পারি! এই দুটিই আমার কাছে খুব আকর্ষণীয় ছিল।


অধ্যবসায়ী EE সেই শেষ লিঙ্কটি, এবং তালিকা থেকে অনুপস্থিত ডিভাইসগুলি / গবেষণা / তুলনা / বাছাই করা উচিত study জটিলতা সর্বদা আরও প্রতিরোধক - যেমন একটি DS3641 বা ATSHA204 যুক্ত করা । যদিও কোনও অতিরিক্ত সুরক্ষা কখনই 100% অটুট হতে পারে না, যুক্ত হওয়া জটিলতা এটিকে উপযুক্ত করে তুলতে পারে।
rdtsc
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.