১. সংক্ষিপ্ত বিবরণ
ক্লাউড কেএমএস হলো একটি ক্লাউড-হোস্টেড কী ম্যানেজমেন্ট পরিষেবা, যা আপনাকে আপনার ক্লাউড পরিষেবাগুলির জন্য ক্রিপ্টোগ্রাফিক কীগুলি ঠিক অন-প্রিমিসেসের মতোই পরিচালনা করতে দেয়। এতে হার্ডওয়্যার-সমর্থিত কী-এর জন্য ক্লাউড এইচএসএম সহ বিভিন্ন ধরণের ও উৎসের কী ব্যবহার করে এনক্রিপশন, ডিক্রিপশন, সাইনিং এবং ভেরিফিকেশনের সুবিধা রয়েছে। এই টিউটোরিয়ালটি আপনাকে অ্যাসিমেট্রিক ক্লাউড কেএমএস কী ব্যবহার করে ডেটা সাইন এবং ভেরিফাই করার পদ্ধতি শেখাবে।
তুমি শিখবে
- ক্লাউড কেএমএস এপিআই কীভাবে সক্রিয় করবেন
- কীভাবে একটি চাবির রিং তৈরি করবেন
- অ্যাসিমেট্রিক সাইনিং/ভেরিফিকেশনের জন্য কীভাবে একটি ক্রিপ্টো কী তৈরি করবেন
২. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। (যদি আপনার আগে থেকে Gmail বা G Suite অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)
প্রজেক্ট আইডিটি মনে রাখবেন, যা সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে ব্যবহৃত হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এই কোডল্যাবে এটিকে পরবর্তীতে PROJECT_ID হিসাবে উল্লেখ করা হবে।
- এরপরে, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে।
এই কোডল্যাবটি চালাতে খুব বেশি খরচ হওয়ার কথা নয়, এমনকি আদৌ কোনো খরচ নাও হতে পারে। "পরিষ্কার-পরিচ্ছন্নতা" (Cleaning up) বিভাগে দেওয়া নির্দেশাবলী অবশ্যই অনুসরণ করবেন, যেখানে রিসোর্স বন্ধ করার পরামর্শ দেওয়া হয়েছে, যাতে এই টিউটোরিয়ালের বাইরে আপনার কোনো বিল না আসে। গুগল ক্লাউডের নতুন ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল শুরু করুন
এই কোডল্যাবে আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চালিত একটি বিনামূল্যের ভার্চুয়ালাইজড পরিবেশ। জিসিপি কনসোল থেকে উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনে ক্লিক করুন:
পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:
এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। অন্য কোনো নির্দেশনা না থাকলে, সমস্ত কমান্ড এই শেল থেকেই চালান।
৩. ক্লাউড কেএমএস পরিষেবা সক্রিয় করুন
Cloud KMS ব্যবহার করার আগে, আপনাকে প্রথমে আপনার প্রোজেক্টে সার্ভিসটি এনাবল করতে হবে। প্রতি প্রোজেক্টে এটি শুধুমাত্র একবারই করতে হবে। Cloud KMS সার্ভিসটি এনাবল করতে, নিম্নলিখিত কমান্ডটি চালান:
$ gcloud services enable cloudkms.googleapis.com \
--project "${GOOGLE_CLOUD_PROJECT}"
এটি চালু হতে এক মিনিট পর্যন্ত সময় লাগতে পারে। প্রক্রিয়াটি শেষ হলে কমান্ডটি সফলতার বার্তা দেবে।
৪. কেএমএস কী তৈরি করুন
একটি ক্লাউড কেএমএস কী রিং তৈরি করুন। ক্লাউড কেএমএস-এ, কী রিং হলো ক্রিপ্টোগ্রাফিক কী-গুলোর একটি যৌক্তিক সংগ্রহ। কী রিং-টিতে কী-গুলো সম্পর্কে মেটাডেটা থাকে, যেমন তাদের অবস্থান। global রিজিয়নে my-keyring নামে একটি কী রিং তৈরি করুন:
$ gcloud kms keyrings create "my-keyring" \
--location "global"
এখন আপনার তৈরি করা কী রিং-এর ভিতরে asymmetric-signing উদ্দেশ্য সহ my-asymmetric-signing-key নামে একটি ক্রিপ্টো কী তৈরি করুন।
$ gcloud kms keys create "my-asymmetric-signing-key" \
--location "global" \
--keyring "my-keyring" \
--purpose "asymmetric-signing" \
--default-algorithm "rsa-sign-pkcs1-4096-sha512"
৫. সাইন ডেটা
এনক্রিপশনের বিপরীতে, একটি অ্যাসিমেট্রিক ক্লাউড কেএমএস কী ব্যবহার করে এনক্রিপ্ট করা ডেটা ডিক্রিপ্ট করার জন্য ক্লাউড কেএমএস পরিষেবাতে অনলাইন অ্যাক্সেসের প্রয়োজন হয়। gcloud কমান্ড লাইন টুল ব্যবহার করে ফাইল থেকে সাইফারটেক্সটটি ডিক্রিপ্ট করুন:
স্বাক্ষর করার জন্য ডেটা সহ একটি ফাইল তৈরি করুন এবং ক্লাউড কেএমএস কী (Cloud KMS key) ব্যবহার করে ডেটাটি স্বাক্ষর করতে gcloud কমান্ড লাইন টুলটি ব্যবহার করুন:
$ echo "my-contents" > ./data.txt
$ gcloud kms asymmetric-sign \
--location "global" \
--keyring "my-keyring" \
--key "my-asymmetric-signing-key" \
--version "1" \
--digest-algorithm "sha512" \
--input-file ./data.txt \
--signature-file ./data.txt.sig
স্বাক্ষরটি ডিস্কে data.txt.sig ফাইলে সংরক্ষিত থাকে। আপনি যদি data.txt.sig ফাইলটি খোলেন, তাহলে লক্ষ্য করবেন যে এতে অদ্ভুত, মুদ্রণ-অযোগ্য অক্ষর রয়েছে। এর কারণ হলো, প্রাপ্ত ডেটা বাইনারি ফরম্যাটে থাকে।
ডাটাবেসে সিগনেচার সংরক্ষণ করার সময় বা HTTP রিকোয়েস্টের অংশ হিসেবে পাঠানোর সময়, ডেটা এনকোড করার প্রয়োজন হতে পারে। একটি প্রচলিত এনকোডিং পদ্ধতি হলো বেস৬৪ (base64)।
৬. ডেটা যাচাই করুন
অ্যাসিমেট্রিক কী ব্যবহার করলে, ক্লাউড কেএমএস সরাসরি ভেরিফিকেশন করে না। এর পরিবর্তে, এটি একটি পাবলিক কী-তে অ্যাক্সেস দেয় এবং আপনি পাবলিক কী ক্রিপ্টোগ্রাফির মাধ্যমে সেই পাবলিক কী ব্যবহার করে ডেটা ভেরিফাই করেন। অ্যাসিমেট্রিক কী ব্যবহার করে ভেরিফিকেশন সম্পূর্ণ অফলাইনে করা যায় এবং এর জন্য ক্লাউড কেএমএস বা অন্য কোনো গুগল ক্লাউড এপিআই-তে অ্যাক্সেসের প্রয়োজন হয় না। openssl মতো কোনো ক্রিপ্টোগ্রাফিক টুল অথবা পাবলিক কী ক্রিপ্টোগ্রাফি সমর্থন করে এমন কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ বা লাইব্রেরি ব্যবহার করে ভেরিফিকেশন করা হয়।
ক্লাউড কেএমএস থেকে পাবলিক কী ডাউনলোড করুন:
$ gcloud kms keys versions get-public-key "1" \
--location "global" \
--keyring "my-keyring" \
--key "my-asymmetric-signing-key" \
--output-file ./key.pub
openssl কমান্ড লাইন টুল ব্যবহার করে পাবলিক কী-এর সাথে স্বাক্ষরটি যাচাই করুন:
$ openssl dgst -sha256 \
-verify ./key.pub \
-signature ./data.txt.sig ./data.txt
কনসোলে একটি সফলতার বার্তা প্রিন্ট হবে, যা নির্দেশ করবে যে ডিজিটাল স্বাক্ষরটি বৈধ।
Verified OK
৭. অভিনন্দন!
আপনি ক্লাউড কেএমএস এপিআই সক্রিয় করেছেন, একটি অ্যাসিমেট্রিক সাইনিং কী তৈরি করেছেন এবং ডেটা স্বাক্ষর ও যাচাই করেছেন! ক্লাউড কেএমএস একটি শক্তিশালী পণ্য এবং স্বাক্ষর ও যাচাইকরণ এর সক্ষমতার একটি ক্ষুদ্র অংশ মাত্র।
পরিষ্কার করা
আপনার অনুসন্ধান শেষ হলে, অনুগ্রহ করে আপনার প্রজেক্টটি মুছে ফেলার কথা বিবেচনা করুন।
- ক্লাউড প্ল্যাটফর্ম কনসোলে যান
- যে প্রজেক্টটি বন্ধ করতে চান, সেটি নির্বাচন করুন, তারপর উপরে থাকা 'ডিলিট' বোতামে ক্লিক করুন। এটি প্রজেক্টটিকে মুছে ফেলার জন্য নির্ধারিত করে দেবে।
আরও জানুন
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.০ জেনেরিক লাইসেন্সের অধীনে লাইসেন্সকৃত।