HTTPS কী, এবং কীভাবে কাজ করে

[#ক]: আমি ইন্টারনেটের কিছু ধারণা দিয়ে শুরু করছি। এটা একটু বিরক্তিকর লাগলেও একটু কষ্ট করে পড়ার অনুরোধ করছি!

০.১। ইন্টারনেটে সংযুক্ত প্রতিটা ফোন, কম্পিউটার বা IOT (কণাগনক) এর একটা ঠিকানা লাগে। কারণ সার্ভারের ঠিকানা না জানলে সেটার কাছে আমরা যাব কীভাবে? আর আমার ফোনের ঠিকানা না জানলে সার্ভার সেটার কাছে উত্তর পাঠাবে কীভাবে? এই ঠিকানাগুলিকে বলা হয় ইন্টারনেট প্রটোকল অ্যাড্রেস, বা সংক্ষেপে আইপি অ্যাড্রেস। বর্তমানে আইপি অ্যাড্রেস চতুর্থ সংস্করণ ব্যাবহার করা হয় যেটা শুধু সংখ্যা দিয়ে লেখা। তবে ধীরে ধীরে সেগুলি শেষ হয়ে যাচ্ছে বলে আইপি অ্যাড্রেস ষষ্ঠ সংস্করণ শুরু হয়েছে, যা সংখ্যা এবং অক্ষর দিয়ে লেখা হয়। যেমন www.facebook.com-র ঠিকানা হচ্ছে 31.13.71.36 (চতুর্থ সংস্করণ) বা 2a03:2880:f112:83:face:b00c:0:25de (ষষ্ঠ সংস্করণ)। আপনার নেটওয়ার্ক এই ঠিকানা ছাড়া ফেইসবুকের কাছে আপনাকে পৌছে দিতে পারবে না।

০.২। তাহলে আপনি যদি ব্রাউজার খুলে ফেইসবুকে যেতে চান, তাহলে কি আপনাকে এই ঠিকানা লেখা লাগবে? সেটা সম্ভব না, কারণ আমরা অল্প কয়টা ফোন নাম্বার মনে রাখতেই হিমসিম খাই, এই ধরণের বিদঘুটে ঠিকানা মনে রাখা তো আরো কঠিন। কিন্তু আমাদের জন্য facebook.com ধরণের নাম মনে রাখা সহজ। তাই নাম থেকে ঠিকানা বের করার জন্য একটা পদ্ধতি বের করা হলো, যার নাম Domain Name System (DNS). তাই আপনি যখন ব্রাউজারে বা ফোনে facebook.com খুলতে যান, আপনার ব্রাউজার বা ফোন তার নেটওয়ার্ক সফটওয়্যারকে বলে, “ও ভাই, এইডা একটু ফেইসবুক ডট কমরে পাডায়া দেন”। তখন নেটওয়ার্ক সফটওয়্যার প্রথমে নিজের মেমোরিতে খুঁজে দেখে, ঠিকানা আছে নাকি। না থাকলে আইএসপির ডিএনএস সার্ভার কে জিজ্ঞেস করে। আইএসপির ডিএনএস সার্ভার না জানলে তার যে আইএসপি (হ্যা, আইএসপিরও আইএসপি থাকে কয়েল স্তর পর্যন্ত) তাকে জিজ্ঞেস করে। সবার উপরে আছে রুট বা শিকড় ডিএনএস সার্ভার। এভাবে কোন এক ডিএনএস সার্ভার শেষ পর্যন্ত উত্তর দেয়, ফেইসবুকের ঠিকানা 31.13.71.36, তারপর ফেইসবুকের কাছে আপনার অনুরোধ যায় এবং উত্তর আসে।

০.৩। ধরুন, আপনি সাবেতকে কিছু টাকা দেবেন, কিন্তু সাবেত দেখতে কেমন, আপনি জানেন না। আপনি তার এলাকায় গিয়ে একটা দোকানে জিজ্ঞেস করলেন, “ভাই, সাবেত সাহেবের বাসা কোনটা?” আপনি জানেন না যে দোকানদার দবির একটা ঠগ। সে আপনাকে তার নিজের বাসার ঠিকানা দিয়ে তার ছেলেকে বলে দিল, “দরজা খুলে বলবি, তুই সাবেত”। আপনিও গিয়ে সাবেত ভেবে দবিরের ছেলেকে আপনার টাকাটা দিয়ে দিলেন।

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

০.৪। আপনি যদি টাকা দেয়ার আগে দবিরের ছেলে, যে সাবেত সেজেছে, তার কাছে তার জাতীয় পরিচয়পত্র দেখতে চাইতেন, তাহলে আর এই সমস্যা হতো না। (দবিরও ঘাঘু লোক, সে জাল পরিচয়পত্র তৈরি করে ফেলতে পারে। তখন আপনি কীভাবে বুঝবেন যে এটা জাল? সে যে সাবেত, সেটা কীভাবে নিশ্চিন্ত হবেন? উত্তরের জন্য পড়তে থাকুন)

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

০.৬। ওয়েব ব্যবহারে HTTPS উপরের ৪ এবং ৫ নম্বর পয়েন্টগুলির একটা সমাধান দেয়। আপনি যখন কোন ওয়েবসাইটে যাবেন, তখন সেটা আপনাকে বিশ্বাসযোগ্যভাবে “আমি সাবেত” বলবে, এবং আপনার ব্রাউজার আর সেই ওয়েবসাইটের যোগাযোগের জন্য প্রতিবারের জন্য একটা নতুন ভাষা তৈরি করবে।

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

তাহলে সমাধানটা কী?

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

অংকের ক্ষেত্রেও সেটার উদাহরণ আমরা সবাই জানি। ১৩৯ কে ২২৩ দিয়ে গুণ করলে কত হয়? কাগজ-কলম দিয়ে করতে না পারলেও, ক্যালকুলেটর দিয়ে আপনি সহজেই উত্তরটা বের করতে পারবেন। কিন্তু যদি আপনাকে জিজ্ঞেস করি, কোন দুইটা সংখাকে গুণ করলে ৩০,৯৯৭ হয়, তখন উত্তরটা বের করা যায়, কিন্তু সহজ না। যেহেতু বের করা যায়, তাই এটা একমুখী না। কিন্তু ১৩৯ বা ২২৩ এর বদলে যদি বিশাল, ২০০০-ডিজিটের দুটো সংখ্যা নিতাম? তখনও গুণ করা সহজ, কিন্তু সেই গুনফল দেখে মূল সংখ্যাদুটো বের করা খুব কঠিন—আমাদের বর্তমান প্রযুক্তিতে কোটি কোটি বছর লেগে যাবে। তাই এটাকে একমুখী বলা যেতে পারে।

অংকে না গিয়ে রং দিয়ে সমস্যাটার সমাধান বোঝানোর চেষ্টা করি। ধরুন আপনি আর সাবেত কথা বলছেন। আপনি বিশাল একটা কন্ট্রাক্ট পেয়েছেন বাংলাদেশের সব গার্মেন্টস রং করার, কারণ আপনার একটা বিশেষ রং আছে যেটা বিল্ডিং-এর তাপমাত্রা কম রাখেব। দবির যদি সেটা জেনে যায়, তাহলে সে ঐ কাজ আরো অল্প টাকায় করে দেবে, এবং আপনি কন্ট্রাক্টটা হারাবেন। তাহলে আপনি কীভাবে দবিরের স্পাইকে এড়িয়ে সাবেতকে রঙটা জানাবেন?
আপনি সাবেতকে বললেন, “চল আমরা হলুদ নিয়ে শুরু করি” এবং সাবেত সেটায় রাজি হলো। দবিরের স্পাই সাথে সাথে সেটা দবিরকে টেক্সট করে দিল।
এবার আপনি হলুদের সাথে আপনার প্রাইভেট (গোপন) রং বেগুনী মেশালেন। তাতে যে রং তৈরি হলো, ধরুন আমরা সেটার নাম দিলাম “ক্লায়েন্ট”
সাবেত হ্লুদের সাথে নিজের প্রাইভেট (গোপন) রং লাল মেশালো। তাতে যে রং তৈরি হলো, ধরুন আমরা সেটার নাম দিলাম “সার্ভার”।

এবার আপনার “ক্লায়েন্ট” রং আপনি সাবেতকে পাঠালেন, আর সাবেত তার “সার্ভার” রং আপনাকে পাঠালো। যেহেতু এই আদানপ্রদান সবার সামনে হচ্ছে, স্পাই সেই রংটা দেখে ফেললো, এবং সাথেসাথে ছবি তুলে সেটাও দবিরকে টেক্সট করে দিল।

এখানে মনে রাখতে হবে যে
ক্লায়েন্ট = হলুদ + বেগুনী (আপনার তৈরি, এখন সাবেতের কাছে আছে)

সার্ভার = হলুদ + লাল। (সাবেতের তৈরি, এখন আপনার কাছে আছে)

সাবেতের কাছে আগে থেকেই নিজের প্রাইভেট লাল রং আছে, আর আপনার কাছে আছে নিজের প্রাইভেট বেগুনি রং

স্পাই হলুদ, ক্লায়েন্ট আর সার্ভার, এই তিনটা রং জানে, কিন্তু একমুখ ফাংশন বলে ক্লায়েন্ট যে হলুদ আর বেগুনীর মিশ্রন, বা সার্ভার যে হলুদ আর লালের মিশ্রন, এটা বের করতে পারবে না।

এবার সাবেত ক্লায়েন্টের সাথে নিজের গোপন লাল রং যোগ করল (ক্লায়েন্ট + লাল =হলুদ + বেগুনী + লাল)

আর আপনি সার্ভারের সাথে আপনার গোপন বেগুনী রং যোগ করলেন (সার্ভার + বেগুনী = হলুদ + লাল + বেগুনী)

তাতে করে আপনার আর সাবেতের কাছে একই রং তৈরি হয়ে গেল, কিন্তু ব্যাটা স্পাই সেটা জানার কোন উপায় খুঁজে পেলো না, কারন দুই পক্ষ কেউ তাদের গোপন রংটা ফাঁস করে নাই। কিন্তু যদি যে কোন একজনের গোপন রং স্পাইটার কাছে থাকতো, তাহলে সে রংটা তৈরি করতে পারতো।

ওয়েবে এইভাবে যে গুপ্তায়ন করা হয়, তাকে আমরা HTTPS দেখে চিনতে পারি। তবে এটার নাম আসলে Transport Layer Secuity (TLS) যেটা শুধু ওয়েবে না, ভাইবার, হোয়াটসঅ্যাপ সহ সব যোগাযোগের অ্যাপেও ব্যবহার করা হয়।

[#গ] এবার মূল পর্ব—ওয়েবে এনক্রিপশন বা গুপ্তায়ন কীভাবে কাজ করে? কে দবিরের ছেলে আর কে সাবেত, কীভাবে বুঝবেন?

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

সার্টিফিকেটে অনেক কিছুই থাকে। তার মধ্যে সবচাইতে পরিষ্কার দেখা যায়, কে এই সার্টিফিকেট দিয়েছে (সিএ-র নাম, Organization), এই সার্টিফিকেট কতদিন চলবে (expiration date), আর কাকে এই সার্টিফিকেট দেয়া হয়েছে (সার্ভারের নাম, common name)। এই ছবিতে ফেইসবুকের সার্টিফিকেটের কিছু তথ্য দেখা যাচ্ছে।

ফেইসবুকের সার্টিফিকেটের কিছু তথ্য - Bohubrihi Blog

আরম্ভের ডিএনএস এর কথা মনে আছে? আপনি facebook.comএ যেতে চাইলেন, কিন্তু আপনাকে কেউ ভুয়া উত্তর দিয়ে অন্য ওয়েবসাইটে নিয়ে গেল। তাদের কাছে কিন্তু ফেইসবুকের সার্টিফিকেট থাকবে না। সাথে সাথে আপনার ব্রাউজার আপনাকে সাবধান করবে, ডিএনএস নাম আর সার্টিফিকেট মিলছে না। তারিখ পার হয়ে গেলেও আপনি একই সাবধানবাণী পাবেন। অর্থাৎ ভুল তথ্য দিয়ে আপনার পাসওয়ার্ড চুরি করা অনেক কঠিন হয়ে গেল চোরদের জন্য। (যদি সার্টিফিকেট আদৌ না থাকে? তাহলে অবশ্য এই সাবধানবাণী পাবেন না। তাই সব সময় বলা হয়, ওয়েব ঠিকানার শুরুতে HTTPS আর তালা-র চিহ্ন না থাকলে কোন গুরুত্বপূর্ণ ওয়েব সাইটে যাবেন না)।

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

ERR_CERT_AUTHORITY_INVALID - Bohubrihi Blog

আর যদি অনলাইন ব্যাংকিং, বা ইকমার্সের মত টাকা দিয়ে কিছু করতে যান? সার্টিফিকেট সেখানেও সহায়তা করে। উপরের রং মেশানোর পদ্ধতিটা মনে করুন। ক্লায়েন্ট, অর্থাৎ আপনার ব্রাউজার, সার্ভারের সাথে ওই রং মেশানোর পদ্ধতি অনুসরন করে শুধুমাত্র এইবার ব্যবহারের জন্য একটা গোপন চাবি তৈরি করে, যেটা দবির হোক বা অ্যামেরিকার ন্যাশনাল সিকিউরিটি এজেন্সিই হোক, কেউ ভেদ করতে পারবে না। (কম্পিউটারের ক্ষমতা বাড়ার সাথে সাথে এই চাবির দৈর্ঘ বাড়াতে হচ্ছে। ১০ বছর আগে ১০২৪ সংখ্যার (digit) চাবি নিরাপদ ছিল, এখন ২০৪৮ সংখ্যার চাইতে ছোট চাবি আর নিরাপদ না। কেউ কেউ বলে থাকে, এমনকি সেটাও নিরাপদ না। কোয়ান্টাম কম্পিউটার বলে এক ধরণের নতুন কম্পিউটার আসছে। যখন সেগুলি পুরোপুরি এসে যাবে, তখন এই এনক্রিপশন পদ্ধতি আর নিরাপদ থাকবে না। কন্সপিরেসি থিয়োরিস্টরা বলে, ন্যাশনাল সিকিউরিটি এজেন্সির কাছে এখনই কার্যকরি কোয়ান্টাম কম্পিউটার আছে!)

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

শেয়ার করুন

1 thought on “HTTPS কী, এবং কীভাবে কাজ করে”

Leave a Comment