bg-tutorials

কোড সাইনিং সার্টিফিকেটের জন্য কীভাবে CSR তৈরি করবেন

একটি কোড সাইনিং সার্টিফিকেট প্রমাণ করে যে কে একটি সফটওয়্যার প্রকাশ করেছে এবং দেখায় যে কোডটি স্বাক্ষরিত হওয়ার পর থেকে পরিবর্তিত হয়নি। একটি অর্ডার করতে, আপনাকে একটি CSR (Certificate Signing Request) তৈরি করতে হয়, যা এনকোড করা টেক্সটের একটি ব্লক যা Certificate Authority (CA) আপনাকে শনাক্ত করতে এবং সার্টিফিকেট ইস্যু করতে ব্যবহার করে। কোড সাইনিং CSR গুলি ওয়েবসাইটের জন্য আপনি যে CSR তৈরি করেন তার থেকে ভিন্ন নিয়ম অনুসরণ করে, এবং সেই নিয়মগুলি ২০২৩ সালে পরিবর্তিত হয়েছে। এই গাইডে বর্তমান প্রক্রিয়া এবং এখনও প্রযোজ্য পদ্ধতিগুলি ব্যাখ্যা করা হয়েছে।

প্রাইভেট কী অবশ্যই হার্ডওয়্যারে থাকতে হবে

১ জুন, ২০২৩ থেকে, CA/Browser Forum Code Signing Baseline Requirements অনুসারে প্রতিটি সর্বজনীনভাবে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের প্রাইভেট কী অবশ্যই এমন হার্ডওয়্যারে তৈরি এবং সংরক্ষণ করতে হবে যা FIPS 140-2 Level 2, Common Criteria EAL4+, অথবা সমতুল্য কোনো মান পূরণ করে। এটি স্ট্যান্ডার্ড সার্টিফিকেট (Organization Validation এবং Individual Validation) এবং Extended Validation (EV) সার্টিফিকেট উভয়ের ক্ষেত্রেই প্রযোজ্য। EV কোড সাইনিংয়ে এই তারিখের আগে থেকেই হার্ডওয়্যার প্রয়োজন ছিল; ২০২৩ সালের পরিবর্তনটি একই নিয়মকে স্ট্যান্ডার্ড সার্টিফিকেট পর্যন্ত সম্প্রসারিত করেছে।

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

  • CA থেকে একটি পূর্ব-কনফিগার করা হার্ডওয়্যার টোকেন। CA কী পেয়ার এবং CSR সরাসরি একটি সার্টিফাইড USB টোকেনে তৈরি করে, ইস্যু করা সার্টিফিকেটটি তাতে ইনস্টল করে, এবং টোকেনটি আপনার কাছে পাঠায়। আপনি টোকেন প্লাগ ইন করে স্বাক্ষর করেন। এই পদ্ধতিতে আপনাকে নিজে CSR তৈরি করতে হয় না।
  • আপনার নিজস্ব HSM বা ক্লাউড HSM, key attestation সহ। যদি আপনার কাছে ইতিমধ্যেই একটি কমপ্লায়েন্ট Hardware Security Module (অথবা AWS CloudHSM, Azure Dedicated HSM, বা Google Cloud HSM এর মতো একটি ক্লাউড HSM) থাকে, তাহলে আপনি সেই ডিভাইসে কী এবং CSR তৈরি করেন এবং একটি অ্যাটেস্টেশন ফাইল প্রদান করেন যা CA কে প্রমাণ করে যে কী কমপ্লায়েন্ট হার্ডওয়্যারে তৈরি হয়েছে এবং তা থেকে এক্সপোর্ট করা যায় না।

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

অপশন ১: টোকেন প্লাস শিপমেন্ট (CA CSR তৈরি করে)

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

এর পরিবর্তে আপনি যা করবেন:

  • CA যে ভ্যালিডেশন ধাপগুলি চায় তা সম্পন্ন করুন (প্রতিষ্ঠান বা পরিচয় যাচাইকরণ)।
  • ফিজিক্যাল টোকেন পৌঁছানোর জন্য অপেক্ষা করুন।
  • টোকেন ড্রাইভার ইনস্টল করুন (সাধারণত SafeNet Authentication Client) এবং টোকেন সংযুক্ত অবস্থায় আপনার সফটওয়্যারে স্বাক্ষর করুন।

অপশন ২: আপনার নিজস্ব HSM বা টোকেনে CSR তৈরি করুন

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

ক্লাউড HSM (AWS CloudHSM, Azure Dedicated HSM, Google Cloud HSM) এর জন্য, HSM এর ভিতরে কী তৈরি করুন, প্ল্যাটফর্মটি যে CSR এবং অ্যাটেস্টেশন ফাইল তৈরি করে তা এক্সপোর্ট করুন, এবং অর্ডারের সময় উভয়ই আপনার CA কে জমা দিন।

হার্ডওয়্যার-ভিত্তিক CSR গুলির ক্ষেত্রে কিছু বিষয় সাধারণভাবে প্রযোজ্য:

  • Baseline Requirements অনুযায়ী কমপক্ষে ৩০৭২ বিট এর একটি RSA কী, বা সমতুল্য একটি ECDSA কী ব্যবহার করুন।
  • কী-টিকে নন-এক্সপোর্টেবল হিসেবে চিহ্নিত করুন যাতে এটি ডিভাইস থেকে বের হতে না পারে।
  • কী তৈরির সাথে সাথেই অ্যাটেস্টেশন তৈরি করুন। বৈধ অ্যাটেস্টেশন ছাড়া একটি CSR প্রত্যাখ্যান করা হবে।

OpenSSL, Java Keytool, MMC, CertReq, এবং Keychain পদ্ধতিগুলি এখন কোথায় খাপ খায়

আপনি হয়তো এমন পুরনো নির্দেশনা দেখে থাকবেন যা OpenSSL, Java keytool ইউটিলিটি, Microsoft Management Console (MMC), Windows এর certreq কমান্ড, বা macOS এ Keychain Access দিয়ে কোড সাইনিং CSR তৈরি করে। এগুলি নিজে থেকে সফটওয়্যারে একটি কী তৈরি করে, তাই এভাবে তৈরি করা একটি CSR আজকের দিনে একটি সর্বজনীনভাবে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের জন্য বৈধ নয়।

তবে সফটওয়্যার কীস্টোরের পরিবর্তে যখন আপনি এগুলিকে কমপ্লায়েন্ট হার্ডওয়্যারের দিকে নির্দেশ করেন, তখনও এগুলির একটি স্থান আছে। উদাহরণস্বরূপ, OpenSSL একটি PKCS#11 মডিউলের মাধ্যমে একটি HSM এর বিরুদ্ধে একটি CSR তৈরি করতে পারে, এবং CertReq বা MMC একটি রিকোয়েস্ট তৈরি করতে পারে যা একটি হার্ডওয়্যার কী স্টোরেজ প্রোভাইডার ব্যবহার করে। এই রেফারেন্সগুলি শুধুমাত্র সেই প্রেক্ষাপটেই ব্যবহার করুন, এবং সবসময় রিকোয়েস্টের সাথে ডিভাইস থেকে অ্যাটেস্টেশন যুক্ত করুন:

আপনার CSR এর বিষয়বস্তু যাচাই করুন

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

openssl req -noout -text -in codesigning.csr

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

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

আমার কি এখনও একটি কোড সাইনিং সার্টিফিকেটের জন্য CSR তৈরি করতে হবে?

কখনও কখনও। যদি আপনি টোকেন প্লাস শিপমেন্ট অর্ডার করেন, তাহলে CA আপনার জন্য টোকেনে কী এবং CSR তৈরি করে, তাই আপনাকে নিজে CSR তৈরি করতে হয় না। যদি আপনি নিজের HSM বা ক্লাউড HSM ব্যবহার করেন, তাহলে আপনি সেই হার্ডওয়্যারে CSR তৈরি করেন এবং একটি অ্যাটেস্টেশন ফাইলসহ তা জমা দেন। যেভাবেই হোক, কী অবশ্যই কমপ্লায়েন্ট হার্ডওয়্যারে তৈরি করতে হবে।

কেন আমি আর সফটওয়্যারে একটি কোড সাইনিং CSR তৈরি করতে পারি না?

CA/Browser Forum Code Signing Baseline Requirements ১ জুন, ২০২৩ থেকে হার্ডওয়্যার-সুরক্ষিত কী বাধ্যতামূলক করেছে। প্রাইভেট কী অবশ্যই এমন একটি ডিভাইসে তৈরি এবং সংরক্ষণ করতে হবে যা FIPS 140-2 Level 2, Common Criteria EAL4+, বা সমতুল্য কোনো মান পূরণ করে। সফটওয়্যারে তৈরি একটি কী সেই মান পূরণ করে না, তাই CA গুলি শুধুমাত্র-সফটওয়্যার CSR এর বিরুদ্ধে একটি সর্বজনীনভাবে বিশ্বস্ত সার্টিফিকেট ইস্যু করবে না।

অ্যাটেস্টেশন কী, এবং আমার কখন এটি প্রয়োজন?

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

একটি কোড সাইনিং CSR এ কোন কী সাইজ ব্যবহার করা উচিত?

কমপক্ষে ৩০৭২ বিটের একটি RSA কী, বা সমতুল্য একটি ECDSA কী ব্যবহার করুন। এটি কোড সাইনিংয়ের জন্য Baseline Requirements দ্বারা নির্ধারিত সর্বনিম্ন মান।

EV কোড সাইনিং সার্টিফিকেটের জন্য প্রক্রিয়া কি ভিন্ন?

হার্ডওয়্যার নিয়ম একই। EV কোড সাইনিং সার্টিফিকেটে সবসময়ই একটি হার্ডওয়্যার-সুরক্ষিত কী প্রয়োজন হতো, এবং ১ জুন, ২০২৩ থেকে স্ট্যান্ডার্ড কোড সাইনিং সার্টিফিকেটও একই প্রয়োজনীয়তা অনুসরণ করে। স্ট্যান্ডার্ড এবং EV এর মধ্যে প্রধান পার্থক্য হলো ভ্যালিডেশন লেভেল এবং সার্টিফিকেটটি যে ট্রাস্ট সিগন্যাল বহন করে তাতে, কী কীভাবে সংরক্ষণ করা হয় তাতে নয়।

CSR তৈরি করতে কি আমি OpenSSL বা keytool ব্যবহার করতে পারি?

শুধুমাত্র যদি সেগুলি কমপ্লায়েন্ট হার্ডওয়্যারকে লক্ষ্য করে। OpenSSL একটি PKCS#11 মডিউলের মাধ্যমে একটি HSM এর বিরুদ্ধে একটি CSR তৈরি করতে পারে, এবং keytool, MMC, বা CertReq একটি হার্ডওয়্যার কী স্টোর দ্বারা সমর্থিত একটি রিকোয়েস্ট তৈরি করতে পারে। এই টুলগুলি একটি সাধারণ সফটওয়্যার কীস্টোর থেকে যে CSR তৈরি করে তা একটি সর্বজনীনভাবে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের জন্য গ্রহণযোগ্য নয়।

আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!

দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10

উড়ন্ত একটি ড্রাগনের একটি বিস্তারিত চিত্র
লিখেছেন

SSL শংসাপত্রে বিশেষজ্ঞ অভিজ্ঞ বিষয়বস্তু লেখক। জটিল সাইবারসিকিউরিটি বিষয়গুলিকে পরিষ্কার, আকর্ষক সামগ্রীতে রূপান্তর করা। প্রভাবশালী বর্ণনার মাধ্যমে ডিজিটাল নিরাপত্তার উন্নতিতে অবদান রাখুন।