এইচটিটিপির মতো প্লেইনটেক্সট প্রোটোকলগুলি ছিনতাইকারী আক্রমণের জন্য দুর্বল হতে পারে যেখানে একজন আক্রমণকারী প্রেরিত সামগ্রী পড়তে সক্ষম হয়। সৌভাগ্যবশত, ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) ট্র্যাফিক এনক্রিপ্ট করতে পারে এবং আক্রমণকারীদের পক্ষে ক্যাপচার করা হলে এই ডেটা ব্যবহার করা উল্লেখযোগ্যভাবে কঠিন করে তোলে।
যাইহোক, আক্রমণকারীদের পক্ষে এনক্রিপ্ট করা সংযোগগুলিকে প্লেইনটেক্সট HTTP ব্যবহার করার জন্য জোর করে TLS কে আটকানো সম্ভব। এই সমস্যা সমাধানের জন্য, HTTP কঠোর পরিবহন নিরাপত্তা (HSTS) প্রতিক্রিয়া শিরোনাম চালু করা হয়েছিল যা ব্যবহারকারীর ব্রাউজারকে শুধুমাত্র TLS ব্যবহার করে একটি ওয়েবসাইট পরিদর্শন করতে বাধ্য করে এবং প্লেইনটেক্সট HTTP (একটি নির্দিষ্ট সময়ের জন্য) ফিরে না আসে।
কিভাবে বাতিঘর অডিট ব্যর্থ হয়
অডিট HSTS হেডারের সাথে নিম্নলিখিত সমস্যাগুলিকে পতাকাঙ্কিত করবে:
- কোন HSTS শিরোনাম সব পাওয়া না থাকলে.
- যদি প্রস্তাবিত নির্দেশাবলীর একটি অনুপস্থিত থাকে (
max-age
,includedSubDomains
,preload
) -
max-age
নির্দেশের সময়কাল যদি এক বছরের কম হয় (31536000 সেকেন্ড)। - হেডার পার্স করার সময় যদি একটি সিনট্যাক্স ত্রুটি থাকে, যেমন একটি অজানা নির্দেশ।
একটি শক্তিশালী HSTS নীতি কনফিগার করুন
সর্বোত্তম HSTS হেডার কনফিগারেশন নিম্নরূপ দেখায়:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
-
max-age
নির্দেশিকা নির্দিষ্ট করে যে ব্যবহারকারীর ব্রাউজার শুধুমাত্র TLS (সেকেন্ডে) ব্যবহার করে একটি ওয়েবসাইট পরিদর্শন করতে বাধ্য হয়। সেই সময়ের পরে, ওয়েবসাইট দ্বারা প্রদত্ত কোনো HSTS শিরোনাম না থাকলে (অথবা HTTP থেকে HTTPS-এ অস্থায়ী পুনঃনির্দেশগুলি চালু থাকলে) প্লেইন HTTP ব্যবহার করে আবার সাইটে পৌঁছানো সম্ভব হবে। -
includeSubDomains
নির্দেশিকা সেট করা হলে পৃষ্ঠার URL-এর যেকোনো সাবডোমেনে শিরোনামটি প্রাথমিকভাবে পাঠানো হবে। উদাহরণ স্বরূপ, google.com-এর দ্বারা পাঠানো একটি HSTS শিরোনাম থাকা যাতেincludeSubDomains
নির্দেশিকা রয়েছে তাও mail.google.com-এ HSTS শিরোনাম প্রয়োগ করবে৷ -
preload
নির্দেশিকা সেট করা এবং এইচএসটিএস প্রিলোড পরিষেবাতে ডোমেন জমা দেওয়া ডোমেনটিকে ব্রাউজার বাইনারিগুলিতে কম্পাইল করবে যা প্রিলোড করা এইচএসটিএস তালিকা ব্যবহার করে (শুধু Google Chrome নয়)।
HSTS হেডার রোল আউট করার সময় কিছু ঝুঁকি আছে। যে কোনো বৈশিষ্ট্যের জন্য একটি এনক্রিপ্ট করা HTTP সংযোগের প্রয়োজন max-age
নির্দেশে নির্ধারিত সময়ের জন্য কার্যকরভাবে ভাঙা হবে। preload
নির্দেশিকা প্রয়োগ করা হলে সম্ভাব্য আরও দীর্ঘ।
রোলআউটের সাথে যুক্ত ঝুঁকি কমাতে, একটি পর্যায়ের পদ্ধতির সুপারিশ করা হয়:
একটি ছোট
max-age
দিয়ে শুরু করে এবং শুধুমাত্রincludeSubDomains
অন্তর্ভুক্ত করুন (preload
নয়):max-age=3600; includeSubDomains
কিছু কুলডাউন পিরিয়ডের পরে (যেমন, এক সপ্তাহ) কোনো রিপোর্ট করা সমস্যা ছাড়াই,
max-age
বাড়ান, উদাহরণস্বরূপ:max-age=604800; includeSubDomains
যদি এই প্রাথমিক পর্যায়টি একটি বর্ধিত সময়ের জন্য সফল হয় (যেমন, তিন মাস), ওয়েবসাইট এবং এর সাবডোমেনগুলিকে HSTS প্রিলোড তালিকায় যুক্ত করা উচিত এবং
preload
নির্দেশিকা যোগ করা উচিত।max-age=63072000; includeSubDomains; preload