25 May 2018

ভুল তথ্যে বিভ্রান্ত হবেন না, HTTPS সম্পর্কে সঠিক তথ্য জানুন



অন্যের সমালোচনা করা বা তাঁর ভুল ধরা কোনও কাজের কথা নয়। প্রয়োজন আত্মসমালোচনা অর্থাৎ নিজের কাজের সমালোচনা করা, 
Photo Courtesy: Pixabay

নিজের কাজে কোথাও ভুল হচ্ছে কি না, তা খতিয়ে দেখা। কিন্তু কখনো কখনো পরিস্থিতি এমন হয়ে ওঠে যে, বৃহত্তর স্বার্থে বাধ্য হয়ে অন্যের কাজের সমালোচনা করতে হয়, বা তাঁর ভুলগুলি ধরিয়ে দিতে হয়।


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


সংবাদপত্রে প্রকাশিত হয়েছে, ‘কোনও HTTPS (HyperText Transfer Protocol Secure) সাইটকেই আর নিরাপদ বলে সার্টিফিকেট দেবে না গুগল। সব সাইটকেই ম্যানুয়ালি ভাবে এনাবেল করে নিতে হবে।’ এই লাইনটার মানে কী? কোনও HTTPS সাইটই কি আর তাহলে নিরাপদ নয়? ম্যানুয়ালি ভাবে সেই সাইটগুলিকে ‘নিরাপদ’ করে নিতে হবে? বিষয়টি কিন্তু তা মোটেই নয়। গুগল ঠিক কী জানিয়েছে, আর HTTPS সাইটের গুরুত্বটা ঠিক কী, তা পাঠকদের সহজ করে বলার চেষ্টা করছি

HTTPS সম্পর্কে বলার আগে প্রথমে জেনে নেওযা যাক Open SSL কাকে বলে। Open SSL হল একটি প্রজেক্টের নাম, যেটি শুরু হয়েছিল ১৯৮৮ সালে। কেন শুরু হয়েছিল প্রজেক্টটি? কারণ গত শতাব্দীর ৯০-এর দশক থেকে বিশ্ব জুড়ে ইন্টারনেটের ব্যবহার বাড়তে শুরু করেছিল, যাকে বলা হয় ইন্টারনেট বুম। সেই সময় গুরুত্বপূর্ণ তথ্য আদানপ্রদানে ইমেলের ব্যবহার যেমন বৃ্দ্ধি পায়, তেমনি ব্যাংক, অনলাইন শপিং স্টোর সহ বিভিন্ন প্রতিষ্ঠান তাদের গ্রাহকদের অনলাইনে আর্থিক লেনদেন, কেনাকাটা সহ বিভিন্ন পরিষেবা দেওয়া শুরু করে। আর্থিক লেনদেন, ব্যক্তিগত তথ্য আদানপ্রদান বাড়ায় ইন্টারনেটে তথ্যের সুরক্ষার বিষয়টিও গুরুত্বপূর্ণ হয়ে ওঠে। ধরুন, আপনি ইমেলে কাউকে গুরুত্বপূর্ণ অফিশিয়াল ডকুমেন্ট পাঠাচ্ছেন, কিংবা নিজের ডেবিট বা ক্রেডিট কার্ড ব্যবহার করে অনলাইনে কেনাকাটা করছেন, কিংবা কোনও বন্ধুর সঙ্গে সোশাল মিডিয়ায় চ্যাট করছেন। সেক্ষেত্রে আপনার কম্পিউটার বা মোবাইল ফোনের ব্রাউজারের সঙ্গে সেই ইমেল সার্ভিস প্রোভাইডার, শপিং স্টোর বা সোশাল মিডিয়ার কোম্পানির সার্ভারের গুরুত্বপূর্ণ তথ্য আদান প্রদান হচ্ছে। এমনটা খুবই সম্ভব যে, আপনার ব্রাউজার এবং সেই কোম্পানির সার্ভারের মধ্যে যখন এই সমস্ত তথ্য আদানপ্রদান হচ্ছে তখন সেই তথ্যগুলিকে মাঝপথে কেউ হ্যাক করে জেনে নেবে

তাহলে উপায়?


যাতে কেউ তথ্য অর্থাৎ ডেটা এভাবে হ্যাক করতে না পারে, সেজন্য ১৯৯৮ সালে চালু হয়েছিল Open SSL ProjectSSL শব্দটির পুরোটা হল Secure Sockets Layerতবে এটি TSL অর্থাৎ Transport Layer Security নামেও পরিচিত। আমরা যখন কোনও ওয়েবসাইট ভিজিট করি, তখন ব্রাউজারের অ্যাড্রেসবারে একেবারে বাঁ দিকে যদি দেখা যায় http (HyperText Transfer Protocol) লেখা রয়েছে এবং তার পাশে সবুজ রংয়ের একটি প্যাডলক (তালা) সাইন রয়েছে, তবে তার অর্থ হল তথ্য সুরক্ষিত ভাবে আদান প্রদানের জন্য ওই ওয়েবসাইট SSL বা TSL প্রযুক্তি ব্যবহার করে।


SSL প্রযুক্তির কাজটা কী?


এই প্রযুক্তি দুটি গুরুত্বপূর্ণ কাজ করে।


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

SSL প্রযুক্তির দ্বিতীয় কাজটি হল তথ্য এনক্রিপ্ট করা। অর্থাৎ ধরুন আপনি ফ্লিপকার্ট বা অ্যামাজন সাইটে গিয়ে অনলাইনে কিছু কিনলেন এবং সেজন্য নিজের ডেবিট বা ক্রেডিট কার্ড নম্বর ইনপুট করলেন। ধরা যাক সেই নম্বরটি 1234567890এবার সেই নম্বরটি আপনার মোবাইল ফোন বা কম্পিউটার থেকে ফ্লিপকার্টের সার্ভারে পাঠানোর আগে SSL প্রযুক্তি একটি বিশেষ সফটওয়্যারের সাহায্যে (এই সফটওয়্যারকে বলা হয় ‘Key’ অর্থাৎ চাবি) এনক্রিপ্ট করবে। এনক্রিপ্ট করার অর্থ হল কোনও একটি তথ্যকে এমনভাবে পরিবর্তন করা যাতে সেটি বোঝা না যায়। ধরা যাক এনক্রিপ্ট করার পর সেই নম্বরটি হবে 765B790AI@05982$#সুতরাং আপনার কম্পিউটার বা মোবাইল ফোন থেকে ফ্লিপকার্টের সার্ভারে পৌঁছানোর আগে কেউ যদি সেই নম্বরটি হ্যাক করে, তবু সে আপনার ডেবিট বা ক্রেডিট কার্ডের আসল নম্বরটা জানতে পারবে না। সার্ভারের কাছেও একটি বিশেষ ‘কি’ অর্থাৎ চাবি থাকবে যার সাহায্যে সে 765B790AI@05982$# নম্বরটিকে ডিক্রিপ্ট করে আসল নম্বরটি (যেটি হল 1234567890) জানতে পারবেন। ডিক্রিপ্ট করার অর্থ হল এনক্রিপ্ট করা তথ্য অর্থাৎ পরিবর্তিত তথ্যকে তার আগের অবস্থায় অর্থাৎ মূল তথ্যে ফিরিয়ে আনা।

কীভাবে কাজ করে SSL প্রযুক্তি?


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

যেমন ধরুন ফেসবুক ওয়েবসাইট। ফেসবুক ওয়েবসাইট SSL প্রযুক্তি ব্যবহার করে। এই প্রযুক্তি ব্যবহার করার জন্য ফেসবুককে ডিজিটাল সার্টিফিকেট কিনতে হয়েছে।

কোথা থেকে কেনা যায় এই সার্টিফিকেট? বিশ্বে বেশ কিছু কোম্পানি রয়েছে যারা এই সার্টিফিকেট বিক্রি করে। যেমন, GoDaddy, GeoTrust, VeriSigh, DigiCert ইত্যাদি। ফেসবুক সার্টিফিকেট কিনেছে DigiCert  কোম্পানির কাছ থেকে।

সার্টিফিকেট কেনার নিয়ম কী?



ধরা যাক, আপনি একটি ওয়েবসাইট তৈরি করেছেন এবং তাতে SSL প্রযুক্তি ব্যবহার করতে চান। ধরা যাক, GoDaddy কোম্পানির কাছ থেকে আপনি সার্টিফিকেট কিনবেন। সেক্ষেত্রে প্রথমে আপনাকে তথ্য বা ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করার জন্য দুটি আলাদা সফটওয়্যার বা Key তৈরি করতে হবে। একটি হল পাবলিক কি, এবং অন্যটি হল 
Photo Courtesy: Pixabay

প্রাইভেট কি। প্রাইভেট কি আপনার নিজের কাছে থাকবে, সেটি কারও সঙ্গে শেয়ার করবেন না অর্থাৎ কাউকে জানাবেন না, আর পাবলিক কি আপনি অন্যদের সঙ্গে শেয়ার করবেন। এবার সার্টিফিকেট কেনার জন্য আপনাকে GoDaddy কোম্পানিকে পাঠাতে হবে CSR (Certificate Signing Request File) এবং পাবলিক কি। CSR ফাইলে আপনাকে জানাতে ওয়েবসাইটের ডোমেইন নেম, ওয়েবসাইটটি মালিক যিনি তাঁর নাম, ওয়েবসাইটের সিরিয়াল নাম্বার ইত্যাদি প্রয়োজনীয় তথ্য। CSR ফাইলের সেই সমস্ত তথ্য এবং পাবলিক কি চেক করে GoDaddy কোম্পানি আপনার ওয়েবসাইটকে ডিজিটাল সার্টিফিকেট ইশ্যু করবে। এই সার্টিফিকেটে GoDaddy কোম্পানির ডিজিটাল সিগনেচারও থাকবে, যার সাহায্যে বোঝা যাবে সার্টিফিকেটটি নকল, না আসল। অর্থাৎ সেটি GoDaddy কোম্পানি থেকেই ইশ্যু করা হয়েছে কি না।

ওয়েবসাইটের যেমন পাবলিক ও প্রাইভেট কি রয়েছে, তেমনি যে কোম্পানিগুলি সার্টিফিকেট ইশ্যু করে, তাদেরও নিজস্ব পাবলিক ও প্রাইভেট কি থাকে। কোনও কোম্পানি যখন কোনও ওয়েবসাইটকে ডিজিটাল সার্টিফিকেট ইশ্যু করে, তখন সেই সার্টিফিকেটে তারা যে সিগনেচারটি করে সেটিকে সেই কোম্পানি তাদের প্রাইভেট কি দিয়ে এনক্রিপ্ট করে দেয়। এবার সেই সিগনেচারটি পড়া যাবে একমাত্র সেই কোম্পানির পাবলিক কি দিয়ে। অর্থাৎ কেউ যদি GoDaddy কোম্পানির জাল সার্টিফিকেট তৈরি করে, তবে সেই সার্টিফিকেটে যে এনক্রিপটেড সিগনেচারটি রয়েছে, সেটি কিন্তু GoDaddy কোম্পানির পাবলিক কি দিয়ে পড়া যাবে না। আর যখনই সেটা পড়া যাবে না, তখনই বোঝা যাবে যে, সেই সার্টিফিকেটটি জাল।

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

এবার জেনে নিন কীভাবে ডিজিটাল সার্টিফিকেট ও পাবলিক এবং প্রাইভেট কি-র সাহায্যে আপনার কম্পিউটার বা মোবাইল ফোনের ব্রাউজারের সঙ্গে কোনও ওয়েবসাইট কানেক্টেড হয়।



ধরা যাক, আপনি ফেসবুক ওয়েবসাইট ভিজিট করলেন। সেক্ষেত্রে ফেসবুক সার্ভার প্রথমে আপনার ব্রাউজারকে তাদের পাবলিক কি এবং DigiCert কোম্পানির ইশ্যু করা সার্টিফিকেটের একটি কপি পাঠাবে। বিশ্বের যে সমস্ত কোম্পানি ডিজিটাল সার্টিফিকেট ইশ্যু করে তাদের প্রত্যেকের পাবলিক কি প্রতিটি ব্রাউজারের ভেতর ইনস্টল করা থাকে।
This photo is the property of Teknowbits.blogspot.com

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


ব্রাউজার যদি দেখে যে, সার্টিফিকেটটি অরিজিনাল, তখন সে নিজে একটি কি তৈরি করবে। এই কি হল সেশন কি, এর সাহায্যে ব্রাউজার ডেটা এনক্রিপ্ট ও ডিক্রিপ্ট করবে। ধরা যাক আপনি ফেসবুকে কারও সঙ্গে চ্যাট করছেন। আপনি সেই ব্যক্তিকে লিখলেন, ‘we’ll meet tomorrow.’ব্রাউজারের সেশন কি সেই ডেটাকে এনক্রিপ্ট করবে।
This photo is the property of Teknowbits.blogspot.com

ধরা যাক এনক্রিপশনের পর সেই বাক্যটি হল ‘ksoceem6731&$%#loj245!@’এবার ব্রাউজার সেই এনক্রিপটেড বাক্যটি এবং তার সেশন কি - এই দুটি ডেটাকে ফেসবুক থেকে পাঠানো পাবলিক কি দিয়ে আরও একবার এনক্রিপ্ট করবে। ধরা যাক দ্বিতীয়বার এনক্রিপশনের পর ডেটার নতুন রূপটি হল এমন ksek98378%kk32তারপর সেই এনক্রিপ্টেড ডেটাকে (ksek98378%kk32) ব্রাউজার ফেসবুক সার্ভারে পাঠিয়ে দেবে। 
This photo is the property of Teknowbits.blogspot.com

এবার ফেসবুক প্রাইভেট কি দিয়ে সেই এনক্রিপ্টেড ডেটা (ksek98378%kk32)-কে ডিক্রিপ্ট করবে। 


This photo is property of Teknowbits.blogspot.com
ডিক্রিপ্ট করার পর ফেসবুক সার্ভার পাবে ব্রাউজারের সেশন কি এবং ksoceem6731&$%#loj245!@। এবার ফেসবুক ব্রাউজারের পাঠানো সেশন কি দিয়ে ksoceem6731&$%#loj245!@ - কে ডিক্রিপ্ট করে পাবে ‘we’ll meet tomorrow’  এই বাক্যটি।

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

তথ্য আদানপ্রদানে নিরাপত্তা বাড়াতে কয়েক বছর আগে SSL প্রযুক্তিকে আরও উন্নত করা হয়েছে। এখন তাই http-র বদলে নতুন ভার্সন হল https এসেছে। ইতিমধ্যে অনেক ওয়েবসাইট পুরানো http প্রযুক্তি ছেড়ে দিয়ে নতুন https প্রযুক্তি ব্যবহার শুরু করেছে। যেমন, আপনারা যদি আমার ব্লগসাইট teknowbits.blogspot.com সাইট ভিজিট করেন, তবে দেখবেন যে, ব্রাউজারের অ্যাড্রেসবারে https এবং তার পাশে সবুজ রংয়ের প্যাডলক সাইন রয়েছে। গুগল সিদ্ধান্ত নিয়েছে, এখন থেকে তারা শুধু যে ওয়েবসাইটগুলি বিপজ্জনক (অর্থাৎ যেগুলি https প্রযুক্তি ব্যবহার করে না) শুধুমাত্র সেগুলি সম্পর্কে ইন্টারনেট ব্যবহারকারীদের সচেতন করবে। গুগলের ক্রোম ব্রাউজারের ৬৯ তম ভার্সনটি আগামী সেপ্টেম্বরে লঞ্চ হবে।
Photo Courtesy: Pixabay

ওই ভার্সনে ক্রোম ব্রাউজার https সাইটগুলির ক্ষেত্রে প্যাডলক সাইন শো করবে ঠিকই, কিন্তু সেটি আর এখনকার মতো সবুজ রংয়ে থাকবে না। এছাড়া প্যাডলক সাইনের পাশে ‘secure’ কথাটিও থাকবে না কিন্তু তার মানে এমনটা নয় যে, ওই সাইটগুলি নিরাপদ নয়। বরং উল্টোটাই, অর্থাৎ ওই সাইটগুলি নিরাপদ, তাই গুগল সেগুলিকে আলাদা করে আর ‘secure’ বলে ইন্ডিকেট করবে না। পরবর্তীতে https সাইটগুলির ক্ষেত্রে গুগল প্যাডলক সাইনটিও তুলে নেবে।

কিন্তু যে সাইটগুলি https প্রযুক্তি ব্যবহার করবে না, তাদের ক্ষেত্রে ব্রাউজারের অ্যাড্রেসবারে বাঁ দিকে ‘not secure’ ইন্ডিকেটর থাকবে। এবং কেউ যদি ওই ধরনের সাইটে কোনও ডেটা ইনপুট করতে চায়, ধরা যাক অনলাইন ফর্ম ফিল আপ, চ্যাটিং বা অনলাইনে কেনাকাটা, তবে ক্রোম ব্রাউজার (৭০তম ভার্সন) লাল রংয়ে ‘not secure’ ওয়ার্নিং শো করবে। 

পোস্টটি পড়ে ভালো লাগলে কমেন্ট করুন, শেয়ার করুন

8 comments:

  1. Please tell us.....how can I make digital signature easily?

    ReplyDelete
  2. If you want to use digital signature for soft copies of your documents, you need to buy it. In India there are a number of companies that sell digital signatures and e-sign is one of them. Here's the link https://www.esign.in
    Thank you.

    ReplyDelete
  3. Thank you sir for your kind information...

    ReplyDelete
  4. Thank you Sir how can help , me knowledge

    ReplyDelete
  5. দারুন স্যার দারুন। আমি সেটাই ভাবছিলাম, ঐ "প্রকাশিত" খবরটা পড়ে সেটির যৌক্তিকতা নিয়ে একটু সন্দেহ লেগেছিলো। কারণ, "প্রকাশিত" খবরটা অনুযায়ী তাহলে তো website এর মাধ্যমে আমাদের পাঠানো data'র risk এখন নিজেরই। তার জন্যে Google search engine বা chrome browser কোনো দায়িত্ব নিতে পারবে না।

    আপনার খবরটা পড়ে সত্যিই খুব ভালো লাগছে। আপনি খুব ভালো থাকবেন স্যার। ধন্যবাদ।

    ReplyDelete
    Replies
    1. ধন্যবাদ, এভাবেই পাশে থাকুন।

      Delete

জনপ্রিয় পোস্ট