HTTPS এবং TLS কীভাবে কাজ করে: হ্যান্ডশেক ব্যাখ্যা
আপনি একটি URL টাইপ করেন, এন্টার চাপেন, এবং একটি প্যাডলক দেখতে পান। কিন্তু আপনার ব্রাউজার এবং সার্ভারের মধ্যে সেই সংযোগটি নিরাপদ করতে আসলে কী ঘটে? অনেক ডেভেলপার HTTPS-কে একটি ব্ল্যাক বক্স হিসেবে দেখেন—যতক্ষণ না কিছু ভেঙে যায়, যেমন একটি সার্টিফিকেট ত্রুটি বা পারফরম্যান্স সমস্যা। এই নিবন্ধটি HTTPS-এর পেছনের প্রোটোকল TLS-এর পর্দা সরিয়ে দেয় এবং হ্যান্ডশেককে সহজ ভাষায় ব্যাখ্যা করে।
HTTPS আসলে কী
HTTPS হলো TLS (Transport Layer Security)-এর উপরে স্তরযুক্ত HTTP। TLS তিনটি গ্যারান্টি প্রদান করে:
- গোপনীয়তা – ডেটা এনক্রিপ্ট করা হয় যাতে আড়িপাতারীরা তা পড়তে না পারে।
- অখণ্ডতা – ট্রানজিটে ডেটা সনাক্তকরণ ছাড়া পরিবর্তন করা যায় না।
- প্রমাণীকরণ – আপনি আসল সার্ভারের সাথে কথা বলছেন, কোনো প্রতারকের সাথে নয়।
TLS ছাড়া, HTTP সবকিছু প্লেইনটেক্সটে পাঠায়: পাসওয়ার্ড, কুকি এবং ফর্ম ডেটা নেটওয়ার্ক পথে যে কেউ দেখতে পারে।
সহজ বাংলায় TLS হ্যান্ডশেক
হ্যান্ডশেক হলো সেই আলোচনা যা কোনো অ্যাপ্লিকেশন ডেটা পাঠানোর আগে ঘটে। এর লক্ষ্য: এনক্রিপশন অ্যালগরিদমে সম্মত হওয়া, সার্ভারের পরিচয় যাচাই করা এবং শেয়ার্ড সিক্রেট কী স্থাপন করা। আধুনিক মান TLS 1.3-এর প্রবাহ এখানে:
- ক্লায়েন্ট হ্যালো – ব্রাউজার সমর্থিত সাইফার স্যুটের একটি তালিকা, একটি র্যান্ডম মান এবং এর কী শেয়ার (কী এক্সচেঞ্জের জন্য) পাঠায়।
- সার্ভার হ্যালো – সার্ভার একটি সাইফার স্যুট বেছে নেয়, নিজের র্যান্ডম মান এবং কী শেয়ার পাঠায় এবং তার সার্টিফিকেট চেইন প্রদান করে।
- সার্টিফিকেট যাচাই – ব্রাউজার বিশ্বস্ত রুট CA-এর বিরুদ্ধে সার্টিফিকেট পরীক্ষা করে, ডোমেইন নাম যাচাই করে এবং মেয়াদোত্তীর্ণতা পরীক্ষা করে।
- কী ডেরিভেশন – উভয় পক্ষ কী এক্সচেঞ্জ (সাধারণত ECDHE) ব্যবহার করে একই শেয়ার্ড সিক্রেট গণনা করে। সেশন কী ডেরাইভ করা হয়।
- সমাপ্ত – উভয় পক্ষ হ্যান্ডশেক ট্রান্সক্রিপ্টের উপর একটি MAC পাঠায় যা নিশ্চিত করে যে কিছু টেম্পার করা হয়নি।
এর পরে, এনক্রিপ্টেড অ্যাপ্লিকেশন ডেটা প্রবাহিত হয়। TLS 1.3-এ, হ্যান্ডশেক এক রাউন্ড ট্রিপ (1-RTT) নেয়, এবং পুনরায় শুরু 0-RTT অর্জন করতে পারে।
TLS 1.2 বনাম TLS 1.3
TLS 1.2-এর জন্য দুই রাউন্ড ট্রিপ প্রয়োজন ছিল এবং দুর্বল অ্যালগরিদম সমর্থন করত। TLS 1.3 পুরানো সাইফার সরিয়ে দিয়েছে, হ্যান্ডশেক সরল করেছে এবং হ্যান্ডশেকের আরও অংশ এনক্রিপ্ট করে। সর্বদা TLS 1.3 পছন্দ করুন; বেশিরভাগ আধুনিক সার্ভার এবং ব্রাউজার এটি সমর্থন করে।
সার্টিফিকেট: বিশ্বাসের অ্যাঙ্কর
একটি সার্টিফিকেট একটি পাবলিক কী-কে একটি ডোমেইন নামের সাথে আবদ্ধ করে এবং একটি সার্টিফিকেট অথরিটি (CA) দ্বারা স্বাক্ষরিত হয়। ব্রাউজারগুলি বিশ্বস্ত রুট CA-এর একটি স্টোর নিয়ে আসে। যাচাইয়ের সময়, ব্রাউজার সার্ভারের সার্টিফিকেট থেকে একটি বিশ্বস্ত রুট পর্যন্ত একটি চেইন তৈরি করে।
সাধারণ সার্টিফিকেট প্রকার:
- DV (ডোমেইন ভ্যালিডেশন) – ডোমেইনের নিয়ন্ত্রণ প্রমাণ করে; দ্রুত এবং বিনামূল্যে (যেমন, Let's Encrypt)।
- OV (অর্গানাইজেশন ভ্যালিডেশন) – যাচাইকৃত কোম্পানির বিবরণ অন্তর্ভুক্ত করে।
- EV (এক্সটেন্ডেড ভ্যালিডেশন) – কঠোর পরিচয় পরীক্ষা; বেশিরভাগ ব্রাউজারে আর সবুজ বার দেখায় না।
সার্টিফিকেটের মেয়াদ শেষ হয়। আউটেজ এড়াতে Certbot-এর মতো ACME ক্লায়েন্টের সাথে নবায়ন স্বয়ংক্রিয় করুন।
কী এক্সচেঞ্জ এবং পারফেক্ট ফরোয়ার্ড সিক্রেসি
আধুনিক TLS এফেমেরাল কী এক্সচেঞ্জ (ECDHE) ব্যবহার করে। প্রতিটি সেশন একটি নতুন কী পেয়ার তৈরি করে, তাই সার্ভারের প্রাইভেট কী পরে compromised হলেও, অতীতের সেশনগুলি ডিক্রিপ্ট করা যায় না। এই বৈশিষ্ট্যটিকে ফরোয়ার্ড সিক্রেসি বলা হয়। স্ট্যাটিক RSA কী এক্সচেঞ্জ এড়িয়ে চলুন, যার এই সুরক্ষা নেই।
সাধারণ HTTPS সমস্যা এবং সেগুলি এড়ানোর উপায়
- মিশ্র কন্টেন্ট – একটি HTTPS পৃষ্ঠায় HTTP সংস্থান লোড করলে ব্রাউজার সতর্কতা ট্রিগার করে। আপেক্ষিক URL ব্যবহার করুন বা HTTPS-এ আপডেট করুন।
- মেয়াদোত্তীর্ণ সার্টিফিকেট – মনিটরিং এবং স্বয়ংক্রিয় নবায়ন সেট আপ করুন।
- দুর্বল সাইফার স্যুট – TLS 1.0/1.1 এবং RC4/3DES নিষ্ক্রিয় করুন। পরীক্ষা করতে SSL Labs-এর মতো একটি টুল ব্যবহার করুন।
- HSTS অনুপস্থিত – HTTPS জোর করতে
Strict-Transport-Securityহেডার যোগ করুন।
TLS সমস্যা ডিবাগিং
যখন একটি হ্যান্ডশেক ব্যর্থ হয়, সংযোগ পরিদর্শন করতে openssl s_client ব্যবহার করুন:
openssl s_client -connect example.com:443 -servername example.com
এটি সার্টিফিকেট চেইন, আলোচিত প্রোটোকল এবং সাইফার দেখায়। ব্রাউজার-নির্দিষ্ট ত্রুটির জন্য, DevTools-এ Security প্যানেল পরীক্ষা করুন।
সচরাচর জিজ্ঞাসিত প্রশ্ন
HTTPS কি TLS-এর সমান?
HTTPS হলো TLS-এর উপর HTTP। TLS হলো ক্রিপ্টোগ্রাফিক প্রোটোকল; HTTPS হলো HTTP অ্যাপ্লিকেশন প্রোটোকলের নিরাপদ সংস্করণ।
আমার কি প্রতিটি সাবডোমেইনের জন্য আলাদা সার্টিফিকেট প্রয়োজন?
অগত্যা নয়। একটি ওয়াইল্ডকার্ড সার্টিফিকেট সমস্ত প্রথম-স্তরের সাবডোমেইন কভার করে, এবং একটি মাল্টি-ডোমেইন (SAN) সার্টিফিকেট একাধিক নাম তালিকাভুক্ত করতে পারে।
TLS 1.3 কীভাবে পারফরম্যান্স উন্নত করে?
TLS 1.3 হ্যান্ডশেককে এক রাউন্ড ট্রিপে (এবং পুনরায় শুরুতে শূন্য) কমিয়ে দেয় এবং সাইফার আলোচনা সরল করে, লেটেন্সি হ্রাস করে।
আপনার নিজের সাইটের নিরাপত্তা পরিদর্শন করতে প্রস্তুত? আপনার লগে সন্দেহজনক TLS ত্রুটি এবং হ্যান্ডশেক ব্যর্থতা সনাক্ত করতে আমাদের Nginx লগ বিশ্লেষক ব্যবহার করুন।