You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/bn/2-farm/lessons/6-keep-your-plant-secure/README.md

35 KiB

আপনার গাছকে সুরক্ষিত রাখুন

এই পাঠের একটি স্কেচনোটের সারসংক্ষেপ

স্কেচনোট করেছেন নিত্য নারাসিমহান। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন।

প্রাক-পাঠ কুইজ

প্রাক-পাঠ কুইজ

ভূমিকা

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

এই পাঠে আপনি IoT ডিভাইস সুরক্ষিত করার বিষয়ে শিখবেন। যেহেতু এটি এই প্রকল্পের শেষ পাঠ, আপনি ক্লাউড রিসোর্স পরিষ্কার করার পদ্ধতিও শিখবেন, যা সম্ভাব্য খরচ কমাতে সাহায্য করবে।

এই পাঠে আমরা আলোচনা করব:

🗑 এটি এই প্রকল্পের শেষ পাঠ, তাই এই পাঠ এবং অ্যাসাইনমেন্ট শেষ করার পর, আপনার ক্লাউড পরিষেবাগুলো পরিষ্কার করতে ভুলবেন না। অ্যাসাইনমেন্ট সম্পন্ন করার জন্য পরিষেবাগুলো প্রয়োজন হবে, তাই প্রথমে এটি সম্পন্ন করুন।

প্রয়োজনে নির্দেশনার জন্য আপনার প্রকল্প পরিষ্কার করার গাইড দেখুন।

কেন IoT ডিভাইস সুরক্ষিত করা প্রয়োজন?

IoT নিরাপত্তা নিশ্চিত করে যে শুধুমাত্র প্রত্যাশিত ডিভাইসগুলো আপনার ক্লাউড IoT পরিষেবার সাথে সংযুক্ত হতে পারে এবং টেলিমেট্রি পাঠাতে পারে, এবং শুধুমাত্র আপনার ক্লাউড পরিষেবা ডিভাইসগুলোতে কমান্ড পাঠাতে পারে। IoT ডেটা ব্যক্তিগত হতে পারে, যেমন চিকিৎসা বা ব্যক্তিগত তথ্য, তাই আপনার পুরো অ্যাপ্লিকেশনকে এই ডেটা ফাঁস হওয়া থেকে রক্ষা করার জন্য নিরাপত্তা বিবেচনা করতে হবে।

যদি আপনার IoT অ্যাপ্লিকেশন সুরক্ষিত না হয়, তাহলে বিভিন্ন ঝুঁকি রয়েছে:

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

এগুলো বাস্তব জীবনের পরিস্থিতি এবং প্রায়ই ঘটে। পূর্ববর্তী পাঠে কিছু উদাহরণ দেওয়া হয়েছিল, তবে এখানে আরও কিছু উদাহরণ রয়েছে:

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

💁 নিরাপত্তা একটি বিশাল বিষয়, এবং এই পাঠে শুধুমাত্র ক্লাউডের সাথে ডিভাইস সংযোগের মৌলিক বিষয়গুলো নিয়ে আলোচনা করা হবে। অন্যান্য বিষয় যেমন ডেটা পরিবর্তনের পর্যবেক্ষণ, ডিভাইস হ্যাকিং, বা ডিভাইস কনফিগারেশনের পরিবর্তন এখানে আলোচনা করা হবে না। IoT হ্যাকিং এতটাই বড় হুমকি যে Azure Defender for IoT-এর মতো সরঞ্জাম তৈরি করা হয়েছে। এই সরঞ্জামগুলো আপনার কম্পিউটারে থাকা অ্যান্টি-ভাইরাস এবং নিরাপত্তা সরঞ্জামের মতো, তবে ছোট, কম শক্তিশালী IoT ডিভাইসের জন্য ডিজাইন করা।

ক্রিপ্টোগ্রাফি

যখন একটি ডিভাইস IoT পরিষেবার সাথে সংযুক্ত হয়, এটি নিজেকে শনাক্ত করার জন্য একটি আইডি ব্যবহার করে। সমস্যাটি হলো এই আইডি ক্লোন করা যেতে পারে - একজন হ্যাকার একটি ক্ষতিকারক ডিভাইস সেট আপ করতে পারে যা একটি আসল ডিভাইসের মতো একই আইডি ব্যবহার করে কিন্তু ভুয়া ডেটা পাঠায়।

একই আইডি ব্যবহার করে বৈধ এবং ক্ষতিকারক ডিভাইস টেলিমেট্রি পাঠাতে পারে

এর সমাধান হলো প্রেরিত ডেটাকে একটি স্ক্র্যাম্বলড ফরম্যাটে রূপান্তর করা, যা ডিভাইস এবং ক্লাউডের মধ্যে একটি গোপন মান ব্যবহার করে। এই প্রক্রিয়াকে এনক্রিপশন বলা হয়, এবং ডেটা এনক্রিপ্ট করতে ব্যবহৃত মানটিকে এনক্রিপশন কী বলা হয়।

যদি এনক্রিপশন ব্যবহার করা হয়, তবে শুধুমাত্র এনক্রিপ্টেড বার্তাগুলো গ্রহণ করা হবে, অন্যগুলো প্রত্যাখ্যান করা হবে

ক্লাউড পরিষেবা তখন ডেটাকে আবার পাঠযোগ্য ফরম্যাটে রূপান্তর করতে পারে, একটি প্রক্রিয়া ব্যবহার করে যাকে ডিক্রিপশন বলা হয়, যা হয় একই এনক্রিপশন কী বা একটি ডিক্রিপশন কী ব্যবহার করে। যদি এনক্রিপ্টেড বার্তাটি কী দ্বারা ডিক্রিপ্ট করা না যায়, তবে ডিভাইসটি হ্যাক হয়েছে এবং বার্তাটি প্রত্যাখ্যান করা হয়।

এনক্রিপশন এবং ডিক্রিপশনের কৌশলকে ক্রিপ্টোগ্রাফি বলা হয়।

প্রাচীন ক্রিপ্টোগ্রাফি

প্রাচীনতম ক্রিপ্টোগ্রাফির ধরন ছিল প্রতিস্থাপন সাইফার, যা ৩,৫০০ বছর আগের। প্রতিস্থাপন সাইফার একটি অক্ষরকে অন্য অক্ষর দিয়ে প্রতিস্থাপন করে। উদাহরণস্বরূপ, Caesar cipher একটি নির্ধারিত পরিমাণে বর্ণমালাকে সরিয়ে দেয়, যেখানে শুধুমাত্র এনক্রিপ্টেড বার্তার প্রেরক এবং প্রাপকেরা জানে কতগুলো অক্ষর সরাতে হবে।

[বাকি অংশ অনুবাদ করা হবে...] 💁 আপনার IoT ডিভাইসের মেয়াদ শেষ হওয়ার সময়ের কারণে সঠিক সময় জানা প্রয়োজন, যা সাধারণত একটি NTP সার্ভার থেকে পড়া হয়। যদি সময় সঠিক না হয়, সংযোগ ব্যর্থ হবে। সংযোগের পরে, ডিভাইস থেকে IoT Hub-এ বা IoT Hub থেকে ডিভাইসে পাঠানো সমস্ত ডেটা শেয়ার করা অ্যাক্সেস কী দিয়ে এনক্রিপ্ট করা হবে।

আপনার কী মনে হয় যদি একাধিক ডিভাইস একই সংযোগ স্ট্রিং শেয়ার করে তাহলে কী হবে?

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

IoT শেখার সময় কোডে কী রাখা সহজ হয়, যেমন আপনি আগের পাঠে করেছিলেন, তবে আপনাকে নিশ্চিত করতে হবে যে এই কীটি পাবলিক সোর্স কোড কন্ট্রোলে চেক করা হয় না।

ডিভাইসগুলির ২টি কী এবং ২টি সংশ্লিষ্ট সংযোগ স্ট্রিং থাকে। এটি আপনাকে কী ঘোরানোর অনুমতি দেয় - অর্থাৎ প্রথমটি ক্ষতিগ্রস্ত হলে একটি কী থেকে অন্যটিতে স্যুইচ করা এবং প্রথম কীটি পুনরায় তৈরি করা।

X.509 সার্টিফিকেট

যখন আপনি পাবলিক/প্রাইভেট কী জোড়া দিয়ে অসমমিত এনক্রিপশন ব্যবহার করছেন, তখন আপনাকে আপনার পাবলিক কীটি তাদের কাছে প্রদান করতে হবে যারা আপনাকে ডেটা পাঠাতে চায়। সমস্যা হলো, কীভাবে আপনার কী গ্রহণকারী নিশ্চিত হবে যে এটি আসলেই আপনার পাবলিক কী, অন্য কেউ আপনার পরিচয় নিয়ে ভান করছে না? একটি কী প্রদান করার পরিবর্তে, আপনি একটি সার্টিফিকেট প্রদান করতে পারেন যা আপনার পাবলিক কী ধারণ করে এবং একটি বিশ্বস্ত তৃতীয় পক্ষ দ্বারা যাচাই করা হয়েছে, যাকে X.509 সার্টিফিকেট বলা হয়।

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

💁 প্রোডাকশন রিলিজের জন্য কখনোই সেলফ-সাইন সার্টিফিকেট ব্যবহার করবেন না।

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

সার্টিফিকেটের ক্ষেত্রগুলির সম্পূর্ণ তালিকা আপনি Microsoft Understanding X.509 Public Key Certificates টিউটোরিয়াল এ পড়তে পারেন।

X.509 সার্টিফিকেট ব্যবহার করার সময়, প্রেরক এবং প্রাপক উভয়েরই নিজস্ব পাবলিক এবং প্রাইভেট কী থাকবে, পাশাপাশি উভয়েরই X.509 সার্টিফিকেট থাকবে যা পাবলিক কী ধারণ করে। তারা কোনোভাবে X.509 সার্টিফিকেট বিনিময় করে, একে অপরের পাবলিক কী ব্যবহার করে তারা পাঠানো ডেটা এনক্রিপ্ট করে এবং তাদের নিজস্ব প্রাইভেট কী ব্যবহার করে তারা প্রাপ্ত ডেটা ডিক্রিপ্ট করে।

পাবলিক কী শেয়ার করার পরিবর্তে, আপনি একটি সার্টিফিকেট শেয়ার করতে পারেন। সার্টিফিকেট ব্যবহারকারী এটি আপনার কাছ থেকে এসেছে কিনা তা যাচাই করতে পারে সার্টিফিকেট অথরিটির সাথে চেক করে যিনি এটি স্বাক্ষর করেছেন।

X.509 সার্টিফিকেট ব্যবহার করার একটি বড় সুবিধা হলো এগুলি ডিভাইসগুলির মধ্যে শেয়ার করা যেতে পারে। আপনি একটি সার্টিফিকেট তৈরি করতে পারেন, এটি IoT Hub-এ আপলোড করতে পারেন এবং এটি আপনার সমস্ত ডিভাইসের জন্য ব্যবহার করতে পারেন। প্রতিটি ডিভাইস তখন শুধুমাত্র প্রাইভেট কীটি জানতে হবে IoT Hub থেকে প্রাপ্ত বার্তাগুলি ডিক্রিপ্ট করার জন্য।

আপনার ডিভাইস IoT Hub-এ পাঠানো বার্তাগুলি এনক্রিপ্ট করতে যে সার্টিফিকেটটি ব্যবহার করে তা Microsoft দ্বারা প্রকাশিত হয়। এটি একই সার্টিফিকেট যা অনেক Azure পরিষেবাগুলি ব্যবহার করে এবং কখনও কখনও SDK-তে অন্তর্ভুক্ত থাকে।

💁 মনে রাখবেন, একটি পাবলিক কী ঠিক সেটাই - পাবলিক। Azure পাবলিক কী শুধুমাত্র Azure-এ পাঠানো ডেটা এনক্রিপ্ট করতে ব্যবহার করা যেতে পারে, ডিক্রিপ্ট করতে নয়, তাই এটি সর্বত্র শেয়ার করা যেতে পারে, এমনকি সোর্স কোডেও। উদাহরণস্বরূপ, আপনি এটি Azure IoT C SDK সোর্স কোড এ দেখতে পারেন।

X.509 সার্টিফিকেট নিয়ে অনেক জটিল শব্দ রয়েছে। আপনি The laymans guide to X.509 certificate jargon এ কিছু শব্দের সংজ্ঞা পড়তে পারেন।

X.509 সার্টিফিকেট তৈরি এবং ব্যবহার করুন

X.509 সার্টিফিকেট তৈরি করার ধাপগুলো হলো:

  1. একটি পাবলিক/প্রাইভেট কী জোড়া তৈরি করুন। পাবলিক/প্রাইভেট কী জোড়া তৈরি করার জন্য সবচেয়ে বেশি ব্যবহৃত অ্যালগরিদম হলো RivestShamirAdleman(RSA)।

  2. পাবলিক কীটি সংশ্লিষ্ট ডেটার সাথে স্বাক্ষরের জন্য জমা দিন, হয় CA দ্বারা, অথবা সেলফ-সাইনিং দ্বারা।

Azure CLI-তে IoT Hub-এ একটি নতুন ডিভাইস আইডেন্টিটি তৈরি করার এবং স্বয়ংক্রিয়ভাবে পাবলিক/প্রাইভেট কী জোড়া তৈরি করার এবং একটি সেলফ-সাইন সার্টিফিকেট তৈরি করার কমান্ড রয়েছে।

💁 আপনি যদি Azure CLI ব্যবহার না করে বিস্তারিত ধাপ দেখতে চান, আপনি এটি Microsoft IoT Hub ডকুমেন্টেশনের Using OpenSSL to create self-signed certificates টিউটোরিয়াল এ খুঁজে পেতে পারেন।

টাস্ক - X.509 সার্টিফিকেট ব্যবহার করে একটি ডিভাইস আইডেন্টিটি তৈরি করুন

  1. নতুন ডিভাইস আইডেন্টিটি নিবন্ধন করতে এবং স্বয়ংক্রিয়ভাবে কী এবং সার্টিফিকেট তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:

    az iot hub device-identity create --device-id soil-moisture-sensor-x509 \
                                      --am x509_thumbprint \
                                      --output-dir . \
                                      --hub-name <hub_name>
    

    <hub_name> এর জায়গায় আপনার IoT Hub-এর নাম দিন।

    এটি soil-moisture-sensor-x509 নামে একটি ডিভাইস তৈরি করবে যা আপনি আগের পাঠে তৈরি করা ডিভাইস আইডেন্টিটি থেকে আলাদা। এই কমান্ডটি বর্তমান ডিরেক্টরিতে ২টি ফাইল তৈরি করবে:

    • soil-moisture-sensor-x509-key.pem - এই ফাইলটি ডিভাইসের প্রাইভেট কী ধারণ করে।
    • soil-moisture-sensor-x509-cert.pem - এটি ডিভাইসের X.509 সার্টিফিকেট ফাইল।

    এই ফাইলগুলো নিরাপদে রাখুন! প্রাইভেট কী ফাইলটি পাবলিক সোর্স কোড কন্ট্রোলে চেক করা উচিত নয়।

টাস্ক - আপনার ডিভাইস কোডে X.509 সার্টিফিকেট ব্যবহার করুন

X.509 সার্টিফিকেট ব্যবহার করে আপনার IoT ডিভাইসকে ক্লাউডের সাথে সংযুক্ত করার জন্য প্রাসঙ্গিক গাইডটি অনুসরণ করুন:


🚀 চ্যালেঞ্জ

Resource Groups এবং IoT Hubs-এর মতো Azure পরিষেবাগুলি তৈরি, পরিচালনা এবং মুছে ফেলার একাধিক উপায় রয়েছে। একটি উপায় হলো Azure Portal - একটি ওয়েব-ভিত্তিক ইন্টারফেস যা আপনাকে Azure পরিষেবাগুলি পরিচালনা করার জন্য একটি GUI প্রদান করে।

portal.azure.com এ যান এবং পোর্টালটি অন্বেষণ করুন। দেখুন আপনি পোর্টাল ব্যবহার করে একটি IoT Hub তৈরি করতে পারেন কিনা, তারপর এটি মুছে ফেলুন।

ইঙ্গিত - পোর্টাল ব্যবহার করে পরিষেবা তৈরি করার সময়, আপনাকে আগে থেকে একটি Resource Group তৈরি করতে হবে না, পরিষেবা তৈরি করার সময় একটি তৈরি করা যেতে পারে। কাজ শেষ হলে এটি মুছে ফেলতে ভুলবেন না!

Azure Portal সম্পর্কে প্রচুর ডকুমেন্টেশন, টিউটোরিয়াল এবং গাইড আপনি Azure portal documentation এ খুঁজে পেতে পারেন।

পোস্ট-লেকচার কুইজ

পোস্ট-লেকচার কুইজ

পর্যালোচনা এবং স্ব-অধ্যয়ন

অ্যাসাইনমেন্ট

নতুন IoT ডিভাইস তৈরি করুন


অস্বীকৃতি:
এই নথিটি AI অনুবাদ পরিষেবা Co-op Translator ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।