05/07/2023
Title : All About SSL/TLS (Secure Sockets Layer/ Transport layer Security) - Part 1
এটি একটি ক্রিপ্টোগ্রাফিক প্রটোকল
★(ক্রিপ্টোগ্রাফী হলো একটা প্রসেস যার মাধ্যমে ডাটা কে সিকিউর রাখা হয় যাতে আনঅথোরাইজড ভাবে কেউ ডাটা টি দেখতে, পরিবর্তন করতে বা সরাতে না পারে সে জন্য। এখন এই ডাটা কে সিকিউর করার জন্য যত কিছু করা হয় সব কিছুই মোটা দাগে বলা যায় ক্রিপ্টোগ্রাফীক প্রসেস)
যা ডাটা কমিউনিকেশন এর জন্য ব্যবহার হয়।
একটা প্রশ্ন তো আসতেই পারে এই SSL/TLS আসে কই থেকে কে দেয়। ২ ভাবে হয়। একটি ইন্টারন্যাশনাল অথরেটি আছে যাদের বলা হয় CA (Certificate Authority) তারা সার্টিফিকেট দেয় তবে টাকা দিয়ে কিনতে হয় এটা তাদের সার্টিফিকেট গুলো অথোরাইজড হওয়ার কারনে সব ওয়েব সাইট এবং সিস্টেমে নিশ্চিন্তে ব্যবহার করা যায়, এবং ২য় হলো সেল্ফ জেনারেটেড সার্টিফিকেট তবে এটা সব সাইট গ্রহন করে না।বার বার ওয়ার্নিং মেসেজ আসতে থাকে।
ডাটা সব সময় ফ্লো হতে থাকে কখনে ক্লায়েন্ট থেকে সার্ভারের উদ্দেশ্যে বা কখনো সার্ভার থেকে ক্লায়েন্টের দিকে।(ডাটা স্টোর এর কথা আলাদা)
ডাটা আদান-প্রদান এর এই সময় তেই SSL/TLS এর দরকার পড়ে ডাটা কে সঠিক ভাবে গন্তব্যে পৌছে দেয়ার জন্য। যদি বাস্তব জীবনের উদাহরন নেই তবে, আমরা বিভিন্ন সময় অনলাইন থেকে কেনাকাটা করি আমাদের পন্য আমাদের ঘরের দরজা পর্যন্ত চলে আসে বা ডেলিভারি পয়েন্ট থেকে সংগ্রহ করি। আমার পন্য টা দেশের যেকোন একটা লোকেশন থেকে ডেলিভারি কোম্পানি নিয়ে এসেছে, তারা নিয়ে আসার জন্য যে গাড়ি বা ট্রাক ব্যবহার করছে সেটা কে ধরতে পারি SSL/TLS সেই গাড়ির বাহিরে মোটা স্টিলের দেয়াল থাকে পিছনে ভাড়ী দরজা থাকে এবং সেখানে তালা ঝুলে যাতে কোন পন্য চুরি বা পড়ে না যায়, এগুলো হলো ভিতরে পন্য কে সিকিউর রাখার একটা ব্যবস্থা। এই ব্যবস্থা টা কে ক্রিপ্টোগ্রাফীক প্রসেস ও বলতে পারি। এই উদাহরন টা দিয়ে ই চেষ্টা করবো বাকি জিনিস গুলো ব্যাখা করতে। তো তাহলে ঘটনা টাকে সাইবার সিকিউরিটি ইলিমেন্ট গুলোর সাথে মিলিয়ে দেখি (ইলমেন্ট ওব সাইবার সিকিউরিটি নিয়ে পোস্ট করা আছে না জানলে পড়ে নিন। লিংক: https://m.facebook.com/story.php?story_fbid=224240243837603&id=100087548853583&mibextid=ZbWKwL ) এই সব ব্যবস্থা নেয়ার ফলে কি কি হয়েছে
১. আমার পন্যের কনফিডেনশিয়ালিটি ঠিক আছে, আমি ছাড়া কেউ পন্য খুলো দেখে নি।
২. আমার পন্যের ইন্ট্রিটিগ্রিটি ঠিক আছে, স্টিলের মোটা দেয়াল এবং দরজার কারনে কেউ আমার পন্য টি বদলে বা নষ্ট করে দিতে পারে নি।
৩. আমি আমার পন্য টি পেয়েছি কারন পন্যের বক্সের গায়ে আমার নাম ঠিকানা আছে
৪. পন্য সংগ্রহের সময় ডেলিভারি কোম্পানির ডকুমেন্টে সিগনেচার করে নিশ্চিত করতে পাড়ছে যে, এই পন্যটি তার মালিক নিয়ে যাচ্ছে এবং কোন পক্ষই এটা অস্বীকার করতে পারবে না সে পন্য দেয় নি বা নেয় নি।
৫. পন্য সঠিক সময়ে পেয়ে যাওয়া।
SSL/TLS ছাড়াও আরো অনেক অনেক ফেক্টর সংযুক্ত আছে উপরের ৫ টি ইলিমেন্ট কে সেটিসফাইড করা জন্য তবে SSL/TLS মুখ্য ভুমিকা পালন করে ডাটা/পন্য যখন পরিবহন হচ্ছে এক লোকেশান থেকে অন্য লোকেশানের উদ্দেশ্যে তখন।
আচ্ছা একটু জানার চেষ্টা করি SSL/TLS কিভাবে কাজ করে?
★ Handshake
★ Key Exchange and Encryption
★ Secure Data Transfer
♦Handshake: এটা খুবই মজার এবং গুরুত্বপূর্ন বিষয়। হেন্ডশেক টা দিয়ে ই কানেকশানের শুরু। আমার অভিঙ্গতা থেকে দেখেছি WiFi হ্যাকিং নিয়ে জনগনের ইন্টারেস্ট সবসময় তুঙ্গে থাকে এটা চিরসবুজ। WiFi হ্যাকিং এর একটা মেথড আছে ডি-অথ ব্যবহার করে "হেন্ডশেক" ক্যাপচার করা তারপর হ্যান্ডশেক কে ডিক্রিপ্ট করে পাসওয়ার্ড বের করা, ওকে এবার আত্নার অন্তস্থঃতল হতে উওর দিবেন তখন কি জানতেন,
🤔 এই হেন্ডশেকের নাম কি?
🤔হেন্ডশেক কিভাবে কাজ করে?
🤔কেন হেন্ডশেক থেকে ই পাসওয়ার্ড বের করবো?
Note: উওর না দিলে বাসায় RaB 😎 পাঠিয়ে দিবো।
দেখি এবার হেন্ডশেক কিভাবে কাজ করে।এখানে একটা লক্ষ্যনিয় বিষয় হলো হেন্ডশেক কয়েক রকমের আছে তবে TCP/IP এবং SSL/TLS এর হেন্ডশেক কাছাকাছি হওয়ায় ২ টো কেই শেয়ার করবো যত টুকু সহজে করা সম্ভব হয় আর কি। এটার জন্য আগে একটা জিনিস বুঝি, আমি বা আপনি এই যে মোবাইল/ল্যাপটপ/পিসির সামনে বসে যে পোস্ট টা পড়ছি আমরা হলাম ক্লায়েন্ট এবং এই পোস্টা টা যেখানে থেকে পড়ছে মানে ফোসবুক এপ বা ওয়েব সেটা হলো সার্ভার। এই পোস্ট টা পড়ার জন্য ও কিন্তু আপনাকে হেন্ডশেক করে আসা লাগছে।
ওকে, হেন্ডশেকে হয় কি।
স্টেপ ১: => ক্লায়েন্ট থেকে সার্ভারে একটা গুতো মারা হয় মেসেজের মাধ্যমে, এমন যে "আরে মিয়া কি খবর?" এটা কে Syn (Synchronize) প্যাকেট বলা হয়। সব হেন্ডশেকের শুরু এটা দিয়ে ই হয়।
✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️
[২য় স্টেপে TCP/IP কানেকশনের হেন্ডশেকে যা ঘটে বলছি]👉 তখন সার্ভার এই মেসেজে গুতো উপভোগ করে ক্লায়েন্ট কে উল্টা জিঙ্গাস করে "কি খবর ভাইজান চালাবেন"[এটা শুধু মাএ রুপক অর্থে ব্যবহার করা বাক্য টির জায়গায় আসলে সার্ভার (Syn-Ack) প্যাকেট পাঠায়।
তবে এই প্যাকেট ও আবার ভিন্ন হয় বিভিন্ন হেন্ডশেকের জন্য । TCP/IP কানেকশান এর সময় সার্ভার তার জবাবে Syn-ACK (Acknowledged) প্যাকেট পাঠায় ক্লায়েন্ট এর উদ্দেশ্যে।
এই (Synchronize-Acknowledged) প্যাকেটের ভিতরে থাকে
১. সিকোয়েন্স নাম্বার
২. একনলেজ্ড নাম্বার
৩. উইনডো সাইজ
৪. TCP কন্ট্রোল ফ্লাগ
এই সব গুলো জিনিস wireshark এর মাধ্যমে সুন্দর করে গুছিয়ে দেখা যায়।
✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️✴️
স্টেপ ২: => কিন্তু SSL/TLS এর ক্ষেএে এই স্টেপ টি ভিন্ন হয়। এই স্টেপে সার্ভারে যে ক্লায়েন্টের মেসেজের রিপ্লাই দেয় সেটা কে ৩ টা ভাগে ভাগ করে উওর টা দিতে হবে।
১. সার্ভার তার রিটার্ন জবাবে ক্লায়েন্ট কে জিঙ্গাস করে "আপনার SSL/TLS এর ভার্শন কত?"। সার্ভার এবং ক্লায়েন্ট ২ জনে একই প্রোটোকল এবং সেই সময়ের সর্বোচ্চ ভার্শন বা যদি বলি লেটেস্ট ভার্শন ব্যবহার করছে কিনা সেটাই যাচাই করে সার্ভার এবং এরপর.......
২. এবার সার্ভার, ক্লায়েন্ট এবং সার্ভারের মধ্যকার কানেকশন সিকিউর করার কাজ শুরু করবে। যারা জানেন তো জানেন যে ক্রীপ্টোগ্রাফী দরকার পড়ে এই এনক্রিপশান করার জন্য। এনক্রীপশান জিনিস টা সহজ করে বলি => একটা বিশেষ প্রক্রিয়ায় ডাটা কে লক করা, উদাহরনস্বরুপ: ধরেন আপনি আপনার ডিভাইস থেকে কোথাও লগইনের জন্য করার জন্য ইমেইল আর পাসওয়ার্ড দিচ্ছেন এখানে যদি এনক্রিপশান বসাই তাহলে আপনার ইমেইল এবং পাসওয়ার্ড যেটাকে এককথায় বলা যায় লগইন ক্রীডেনশিয়াল, এটা কে একটা বাক্সে ভড়ে তালা মেরে তারপর পাঠানো এবার কেউ চুরি করলে তালা মারা বক্স টা পাবে এই তালা কেমনি কি ভাঙ্গবে কত টা ডিপেন্ডেবল এটা পোস্ট মূলত এটা নিয়ে ই (ক্রীপ্টোগ্রাফী সম্পর্কে আলাদা করে লিখবো এখন সহজে বুঝি) ক্রীপ্টোগ্রাফীক একটা এলগোরিদম ব্যবহার করে এই কানেশান এবং কানেকশানে আদান-প্রদান হওয়া ডাটা গুলোর ইন্ট্রিগ্রিটি(ইন্টিগ্রিটি নিয়ে পোস্ট করা আছে এই শব্দটা না জানলে বা বুঝলে এই পুরো পোস্ট টাই মাটি, লিংক:https://m.facebook.com/story.php?story_fbid=224240243837603&id=100087548853583&mibextid=ZbWKwL ) নিশ্চিত করার এই প্রক্রিয়া কে বলা হয় সাইফার সুইট (Cipher Suit)। ক্রীপ্টোগ্রাফীতে টেক্সট ২ রকমের (১) প্লেন টেক্সট (২) সাইফার টেক্সট। প্লেন টা তো বুঝেন ই, আর সাইফার টা হলো, প্লোন টেক্সট টা কে ক্রীপ্টোগ্রাফীর একটা এ্যালগরিদম দ্বারা এনক্রিপট করা হয়েছে যাতে এই ডাটা টা কোন ভাবে লিক হয়ে গেলে বা বেড়িয়ে গেলেও ভিতরে প্লেন টেক্সটের ডাটা যেন বেড়িয়ে না যায়। কথার কথা ধরেন এই SSL/TLS এর এনক্রিপশান নাই, আপনি একটা সাইটে বা এপে লগইন করবেন পাসওয়ার্ড আপনার মেশিন থেকে এন্টার করবেন ওদেকি এটা যে রাস্তা দিয়ে যাবে সেখানে একজন বসে আছে সে সেটা দেখে ফল্লো বা পরিবর্তন করে দিল তখন ব্যাপার টা ভালো হবে? মোটেও ভালো হবে না তখন ডাটার ইন্ট্রীগিটি নষ্ট হবে। এটা শুধু কথা নয় যে সব সাইটে SSL/TLS নাই মানে http প্রোটোকলের সাইট বা এপ সেগুলো তে কিন্তু ডাটা এমন প্লেন ভাবে পাস হয় তখন যে কেউ চাইলেই সেই ডাটা দেখতে বা পরিবর্তন করতে পারে। তো সাইফার সুইট এর মধ্যে শুধু যে এনক্রীপশান হয় এমন না ক্রীপ্টোগ্রাফীর হার্ট 'চাবি (Key)'। এবার যে শব্দ টা বলবো এটার আলাদাই একটা দুনিয়া আছে "পাব্লিক কি ক্রিপ্টো সিস্টেম" (Public Key crypto system) এই যে 'চাবির' কথা বল্লাম এটা পাব্লিক কি ক্রিপ্টোসিস্টেমে চলে। এখানে ২ টো চাবি থাকে সেগুলো কোথায় কিভাবে থাকবে এবং মেসেজ অথরনটিকেশান কোড সেসব ও এই সাইফার সুইট মেন্টেইন করে থাকে (Symmetric/Asymmetric এবং Public Key crypto system নিয়ে আলাদা করে পোস্ট করবো ইনশাআল্লাহ)
৩. সার্ভারের এই রিটার্ন মেসেজে আরো কিছু প্যারামিটার থাকে যেমন: সেশান আইডি,কমপ্রেশন মেথড, কি কি এক্সটেশন সাপোর্ট করবে সেগুলো, সার্ভার সার্টিফিকেটের ইনফো থাকে।
স্টেপ ৩: => আগেই বলেছি এটা পাবলিক কি ক্রিপ্টো সিস্টেমে চলে এবং এখানে ২ টো চাবি থাকে একটা পাবলিক চাব (Public Key) আরেক টা প্রাইভেট চাবি(Privet Key)। এখানে সিস্টেম টা হলো ডাটা কে যদি পাবলিক চাবি টা দ্বারা লক করে পাঠানো হয় তবে ওই নির্দিষ্ট প্রাইভেট চাবি টা ছাড়া খুলা যাবে না। যেহেতু আলাদা চাবি দিয়ে লক এবং আলাদা চাবি দিয়ে আনলক তাই এই লকিং সিস্টেম মানে এনক্রীপশান সিস্টেম খুবই ভরসার এবং কার্যকর। কিন্তু চবি যদি সঠিক ভাবে ক্লায়েন্টের কাছে পৌছানো না যায় তাহলে সমস্যক হয়ে যাবে। এখানে এটা বিষয় ক্লায়েন্ট কে দেয়া হয় পাবলিক চাবি আর প্রাইভেট চাবি জমা থাকে পরের প্রসেস এর জন্য। এই স্টেপে পাবলিক চাবি টা সার্টিফিট এর সাথে ক্লায়েন্টের মেশিনে পাঠানো হয় সেখানে ২ টি কাজ হয় ১ম সার্টিফিকেট টি ভেরিফাই করা হয় এটি CA অথোরেটির কাছ থেকে নেয়া কিনা এবং ২য় সার্টিফিকেট টা সেট আপ হয় পাবলিক চাবি সহ এবং এর পর তৈরি হবে সিকিউর সেশান কি(চাবি) এটাও পাব্লিক কি(চাবি) ক্রিপ্টো সিস্টেমে চলে, এই পর্যায়ে আবারো ২ টা চাবি জেনারেট হবে এবং সেশানের এই কি গুলো দিয়ে ই যে কোন ডাটা কে এনক্রিপ্ট করে পাঠানো হয়। Pre-Master Secret এর মাধ্যমে কি ভাবে কিভাবে ক্লায়েন্ট এবং সার্ভার সেশান কি(চাবি) জেনারেট করে তা পড়ের স্টেপে আছে।
কিন্তু কথা হলে প্রাইভেট চাবি জমা কই থাকে?উপরে বলেছিলাম ২ ভাবে সার্টিফেকট নেয়া যায় যদি CA এর কাছ থেকে নেয়া হয় তবে তারা প্রাইভেট চাবি সার্ভার বা তার মালিক কে দিবে না। আর যদি স্লেফ সাইনড সার্টিফিট হয় তবে ২ টো চাবি ই সার্ভারের মালিকের কাছে থাকবে তখন ক্লাইন্ট থেকে সার্ভারে ডিরেক্ট কানেকশন হবে সেখানে অনলক হবে ডাটা যদি না সার্ভারের মালিকের আলাদা চাবির সার্ভার থাকে।
স্টেপ ৪: =>
এখানে ক্লায়েন্ট সিস্টেম থেকে রেন্ডমলি কিছু ডাটা জেনারেট হয় সেটা কে বলা হয় Pre-Master Secret এবার ওই ডাটা টা কে পাবলিক চাবি দিয়ে লক করে সার্ভারে পঠিয়ে দেখে প্রাইভেট চাবি দিয়ে আনলক/ডিক্রিপ্ট করেতে পারছে কি না। এর মাধ্যমে ক্লায়েন্ট সার্ভার কে একটা নিশ্চয়তা দেয় যে চাবি সঠিক ভাবে আসছে এবং ডাটা ও সঠিক ভাবে এনক্রিপ্ট এবং ডিক্রিপ্ট হচ্ছে।
স্টেপ 5: => এই স্টেপে সেশান জেনারেট হয় তবে এটা জেনারেট হতে নির্ভর করে আগের স্টেপের Pre-master Secret ডাটা টা যেটা রেন্ডম ভ্যালু দিয়ে তৈরি হয়। এই ডাটা টা কে সেশান জেনারেটের বেইস বা ফাউন্ডেশন ধরা হয়।
ব্যাস এর পর চাবি গুলো কে ব্যবহার করে ডাটা এনক্রিপট/লক এবং আনলক/ডিক্রিপ্ট হয়, যার মাধ্যমে ডাটার কনফিডেন্সিয়ালিটি এবং ইন্ট্রিগিটি নিশ্চিত হয়। এই সিস্টোমের মাধ্যমে ক্লায়েন্ট এবং সার্ভারে ডাটা সিকিউর ভাবে আদান-প্রদান হয়।
ধন্যবাদ ❤️
⛔⛔⛔⛔⛔⛔⛔⛔⛔⛔⛔⛔⛔⛔⛔
Tag: