ISP এর মাধ্যমে পড়া থেকে AVR ফ্ল্যাশকে রক্ষা করছেন?


15

আমি আইএসপি এর মাধ্যমে পুরো ফ্ল্যাশটি পড়ার হাত থেকে রক্ষা করার চেষ্টা করছি। এটিতে বুটলোডার রয়েছে, যা স্ব-প্রোগ্রাম অ্যাপ্লিকেশন বিভাগে সক্ষম।

এতে লক বাইট সেট করা হচ্ছে:

LB1/LB2 ব্যবহারকারীকে নতুন ফার্মওয়্যার আপলোড করতে বুটলোডার ব্যবহার করতে দেবে না।

BLB12/BLB11এবং BLB01&BLB02আমার ভুল না হলে আইএসপি-এর মাধ্যমে ফ্ল্যাশ পড়তে বাধা দেবে না।

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

উত্তর:


18

আপনি একটি চিপ নির্দিষ্ট করেন নি, নিম্নলিখিতটি বেশিরভাগই 8 বিটের আটমেগা ডিভাইসগুলির জন্য প্রস্তুত, তবে এটি সাধারণ তথ্য। আরও নির্দিষ্ট তথ্যের জন্য আপনার নির্দিষ্ট চিপের ডেটাশিটের জন্য 'মেমোরি প্রোগ্রামিং' বিভাগটি পড়ুন!

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

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

এভিআর লক বিট টেবিল

এই 2 টি লক বিট একা (LB1 এবং LB2) কম যখন 99.9% লোককে আপনার ফার্মওয়্যার চুরি করতে বাধা দেবে! সম্ভবত 99.9% এরও বেশি। আপনার কোডটিকে রিভার্সিং করা প্রায় সর্বদা সহজ হবে।

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

আমার জ্ঞানের সর্বাধিক জ্ঞানের কাছে (আমার ভুল হতে পারে তবে আমি মনে করি যে এর আগে আমি এর সাথে সমস্যাটি সমাধান করতে পারতাম)) বুটলোডার সুরক্ষা ফিউজ (বিএলবি 12 এবং বিএলবি 11) থাকা ডিভাইসে আপনি নিজের কাস্টম বুটলোডার বিভাগটি লক করতে পারেন , এসপিআই অক্ষম করতে পারেন এবং হতে পারেন 97-98% লোক থেকে সুরক্ষিত।

তবে যখন কোনও লক বিট প্রোগ্রাম করা হয় না, সেখানে কোনও মেমরি লক বৈশিষ্ট্য সক্ষম থাকে না !!! আইএসপি অক্ষম শুধুমাত্র 70% লোককে ব্লক করার জন্য যথেষ্ট।

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

এটমেলের এভিআর লাইনটি উচ্চ সুরক্ষা ডিভাইস নয় (স্পষ্টভাবে উল্লেখ করা না থাকলেই!) এবং যেমন তারা কোনও কোড সুরক্ষার গ্যারান্টি নিয়ে আসে না এবং তাদেরও হওয়া উচিত নয়! সমস্ত অ-সুরক্ষিত ডিভাইসগুলির মতো (এবং দুর্ভাগ্যক্রমে কিছু সুরক্ষিত এমনকি)) তারা সাধারণ আক্রমণগুলির ঝুঁকিতে রয়েছে!


সম্পাদন করা

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

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

বুটলোডার আপগ্রেড করার জন্য (মাঝে মাঝে) আমি এইচভি প্রোগ্রামিং ইন্টারফেস শিরোনামটি বোর্ডে রাখব। তবে কেউ ফ্ল্যাশ পড়ার জন্য এইচভি প্রোগ্রামার ব্যবহার করতে পারেন? আমি জানি এইচভি প্রোগ্রামার চিপ মুছতে পারে এমনকি আইএসপি / জেট্যাগ অক্ষম থাকে।

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


সর্বশেষ মন্তব্যের জন্য +1, যদি অন্য কোনও ব্লকে ব্যর্থ হয় তবে কেবল চিপটি ডিল্ডার করতে এবং লক বিটের পুনরায় সেট করতে একটি এভিআর ডিবাগার / প্রোগ্রামার এটি আটকে রাখতে পারে এবং আপনার সুরক্ষা সবই শেষ হয়ে যায়।
heelorld922

@ গ্যারেট ফোগলি: নিশ্চিত নন যে আপনি কোডটি চুরি করার চেষ্টা করছেন বলে আপনাকে কী নেতৃত্ব দেয়, প্লিজ আমাকে জানান এবং আমি আমার প্রশ্নটি সংশোধন করব যাতে অন্যরাও একইভাবে চিন্তা না করে। আমি নিজের কোডটি, আমার নিজের বুটলোডার ন্যূনতম সুরক্ষা দেওয়ার চেষ্টা করছি। যাইহোক, এই সম্পর্কে আরও দুটি প্রশ্ন। চিপটি এটিএমএগা 328, ভেবেছিল পরিবারটিতে সাধারণ লক বিটের ব্যবহার হবে। আপনি ব্যাখ্যা করেছেন LB1এবং LB2যা আমি আমার প্রশ্নে আপগ্রেডের উদ্দেশ্যে বুটলোডার ব্যবহারের সীমিত বিকল্প হিসাবেও বর্ণনা করেছি। সুতরাং এটি কোনও বিকল্প নয়। হিসাবে BLB12এবং BLB11- যে আমি বুঝতে পারি না। (চালিয়ে যেতে হবে)
পাবলো

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

@ পাবলো, দুঃখিত, আমি বোঝাতে চাইছি কোনও অপরাধ নেই। আমি যখন আপনার প্রশ্নটি প্রথম দেখলাম তখন চুরির ধারণাটি আমার কাছে ঘটেনি; এবং আমি একটি উত্তর লিখেছিলাম যা কিছুটা লকড কোডটি পুনরুদ্ধার করার দিকে নিবদ্ধ ছিল। তবে আমি কর্মে ছিলাম এবং উত্তরটি জমা দেওয়ার আগে আমার ২ ঘন্টা ডলারের বিরতি ছিল। তারপরে যখন আমি ফিরে আসলাম তখন আমি লক্ষ্য করেছি যে এখনও কোনও উত্তর নেই এবং কিছুটা অবাক হয়েছিল, আপনার প্রশ্নটি পুনরায় পড়ার পরে আমি ভেবেছিলাম যে 'চুরি' এর কারণ হতে পারে। আপনার দোষ মোটেও নয়, আমি এখন দাবি অস্বীকারকে সরিয়ে দিয়েছি। প্রসেসরের মডেলটি সেই টেবিলের তালিকাভুক্ত পার্থক্যের কারণে এবং
8/16/32 বিবিটি এভিআর'র কারণেই প্রয়োজন ছিল

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

3

আপনি কয়েকটি এটিমেগা ডিভাইসে লক বিটগুলি ব্যবহার করতে পারেন এবং তবুও বুটলোডার সহ আপনার কোড আপডেট করতে পারেন।

আমি এটিএমটিগা 328 এ এলবি 1 এবং এলবি 2 প্রোগ্রাম করেছি Then তারপরে বুটলোডারকে অনুরোধ জানালাম, মূল প্রোগ্রামটি আপডেট করেছি - সবই নিখুঁতভাবে কাজ করেছে।

আইএসপি না কোনও ফ্ল্যাশ / ইপ্রোম / ফিউজ পড়তে বা লিখতে পারে না তবে বুটলোডার অ্যাপ্লিকেশন বিভাগটি এখনও লিখতে পারে।

আইএসপি সহ একটি চিপ ইরেজ লক বিটগুলি (এলবি 1 এবং এলবি 2) সাফ করবে, তবে পুরো ফ্ল্যাশ / ইপ্রোমও মুছে ফেলবে, সুতরাং আপনি আপনার কোডটি সুরক্ষিত করতে পারেন (তবে আপনাকে নিশ্চিত করতে হবে যে আপনার বুটলোডার হ্যাক করা যায় না)


3
বর্তমানে গৃহীত উত্তরের উপর কীভাবে এই উন্নতি হয়?
ইগনাসিও ওয়াজকেজ-আব্রামগুলি

মনে রাখবেন যে আপনি যতক্ষণ না কোনও স্ট্যান্ডার্ড আরডিনো-স্টাইলে বুটলোডার আবাসিক থাকেন, ততক্ষণ আপনি লক রিডব্যাকটি অর্থহীন হবেন যতক্ষণ না আপনি উন্নত 328 পি-মোড মোড ব্যবহার না করেন যা অ্যাপ্লিকেশন স্মৃতিতে বুটলোডার এলপিএমকে অক্ষম করে। অন্যথায় আপনাকে প্রোগ্রামিং যাচাই করতে সক্ষম না হয়ে এই ব্যয়টি দূর করতে আপনাকে বুটলোডারটি সংশোধন করতে হবে। (আপনি সম্ভাব্যভাবে একটি পৃথক যাচাইকরণ ব্যবস্থা তৈরি করতে পারেন তবে এটি এমন মানসম্মত হবে যা আপনাকে আর্দুডকে সংশোধন / প্রতিস্থাপন করা প্রয়োজন)
ক্রিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.