প্রথমত, এটি আপনার অ্যাপ্লিকেশনটির সুরক্ষা উন্নত করে না (ধরে নিলে এটি একটি ওয়েব অ্যাপ্লিকেশন)।
এসএসএল (বা আসলে টিএলএস, যা সাধারণত এসএসএল বলা হয়) ব্যবহার করুন, এটি সত্যই ব্যয়বহুল নয় (আপনি তার চারপাশে উপায়গুলি খুঁজে পেতে এবং ন্যূনতম মজুরির সাথে এটির গুণমান, একটি শংসাপত্র কেনার প্রায় সর্বদা জয় করে) মাপুন।
কেন এটি সহজ। টিএলএস একটি সমস্যা সমাধান করে (যখন কিনে দেওয়া শংসাপত্রগুলির সাথে ব্যবহার করা হয়, স্ব স্বাক্ষরিত নয়) যা ক্রিপ্টোগ্রাফিতে বেশ বড়: আমি যে সার্ভারের সাথে কথা বলছি তা কীভাবে জানব যে আমি যে সার্ভারের সাথে কথা বলছি তা মনে করি? টিএলএস শংসাপত্রগুলি বলার একটি উপায়: "আমি, আপনার ব্রাউজার দ্বারা বিশ্বাসযোগ্য শংসাপত্র কর্তৃপক্ষ, শংসাপত্র দেয় যে [url] এ ওয়েবসাইটটিতে একটি প্রাইভেট কী রয়েছে, যার সাথে একটি প্রাইভেট কী রয়েছে (প্রাইভেট কী) কেবল সার্ভার জানে, দেখুন আমি পুরো দস্তাবেজটিতে আমার স্বাক্ষর সই করেছি, যদি কেউ এটি পরিবর্তন করে তবে আপনি দেখতে পারেন "।
টিএলএস ব্যতীত যে কোনও এনক্রিপশন অর্থহীন হয়ে যায়, কারণ আমি যদি কোনও কফিশপটিতে আপনার পাশে বসে থাকি তবে আমি আপনার ল্যাপটপ / স্মার্টফোনটিকে ভাবতে পারি যে আমি সার্ভার এবং এমআইটিএম (ম্যান ইন দ্য মিডল) আপনি। টিএলএস সহ আপনার ল্যাপটপ / স্মার্টফোনটি "UNTRUSTED CONNECTION" চিৎকার করবে, কারণ আপনার সাইটের সাথে মেলে এমন শংসাপত্রের কর্তৃপক্ষের স্বাক্ষরিত শংসাপত্র আমার কাছে নেই matches (এনক্রিপশন বনাম প্রমাণীকরণ)।
দাবি অস্বীকার: ব্যবহারকারীরা এই সতর্কতাগুলির মাধ্যমে ডানদিকে ক্লিক করুন: "অবিশ্বস্ত সংযোগ? কী? আমি কেবল আমার বিড়ালছানাগুলির ছবি চাই! ব্যতিক্রম যুক্ত করুন নিশ্চিত ক্লিক ক্লিক করুন ! বিড়ালছানা!"
তবে, যদি আপনি সত্যিই কোনও শংসাপত্র কিনতে না চান তবে এখনও ক্লায়েন্ট সাইড জাভাস্ক্রিপ্ট হ্যাশিং প্রয়োগ করুন (এবং এর জন্য স্ট্যান্ডফোর্ড লাইব্রেরি (এসজেসিএল) ব্যবহার করুন , নিখর ইমপ্লিমেন্ট ক্রাইপ্টো আপনার নিজের )।
কেন? পাসওয়ার্ড পুনরায় ব্যবহার! আমি সহজেই এইচটিটিপিএস ছাড়াই আপনার সেশন কুকি (যা আমাকে আপনার সার্ভারের কাছে ভান করার অনুমতি দেয়) চুরি করতে পারি (ফায়ারশিপ দেখুন)। তবে আপনি যদি নিজের লগইন পৃষ্ঠায় একটি জাভাস্ক্রিপ্ট যুক্ত করেন যা প্রেরণের আগে আপনার পাসওয়ার্ডটি হ্যাশ করে (SHA256 ব্যবহার করুন বা আরও ভাল, SHA256 ব্যবহার করুন, তাদের আপনার তৈরি করা একটি সার্বজনিক কী প্রেরণ করুন এবং তারপরে পাসওয়ার্ডটি এনক্রিপ্ট করে, আপনি লবণ ব্যবহার করতে পারবেন না এটি দিয়ে) এবং তারপরে হ্যাশ / এনক্রিপ্ট করা পাসওয়ার্ড সার্ভারে প্রেরণ করে। আপনার সার্ভারে হ্যাশকে একটি লবণের সাথে পুনরায় রিশ্যাশ করুন এবং এটি আপনার ডেটাবেজে যা সঞ্চয় করা আছে তার সাথে তুলনা করুন (পাসওয়ার্ডটি এভাবে সংরক্ষণ করুন:
(SHA256(SHA256(password)+salt))
(ডাটাবেসে লবণকে সরলখরচি হিসাবে সংরক্ষণ করুন)। এবং আপনার পাসওয়ার্ডটি এভাবে প্রেরণ করুন:
RSA_With_Public_Key(SHA256(password))
এবং এইভাবে আপনার পাসওয়ার্ড পরীক্ষা করুন:
if SHA256(RSA_With_Private_Key(SHA256(sent_password))+salt_for_username) == stored_pass: login = ok
কারণ, যদি কেউ আপনার ক্লায়েন্টকে স্নিগ্ধ করছে, তারা আপনার ক্লায়েন্ট হিসাবে সাইন ইন করতে সক্ষম হবে (সেশন হাইজ্যাকিং) তবে তারা কখনও সরলখুলি পাসওয়ার্ড দেখতে পাবে না (যতক্ষণ না তারা আপনার জাভাস্ক্রিপ্ট পরিবর্তন করে, তবে, স্টারবাক্স হ্যাকার সম্ভবত কীভাবে জানতে আগ্রহী / আগ্রহী হবে না এতে।) সুতরাং তারা আপনার ওয়েব অ্যাপ্লিকেশনটিতে অ্যাক্সেস অর্জন করবে তবে তাদের ইমেল / ফেসবুক / ইত্যাদিতে নয়। (যার জন্য আপনার ব্যবহারকারীরা সম্ভবত একই পাসওয়ার্ড ব্যবহার করবেন)। (ইমেল ঠিকানাটি হয় তাদের লগইন নাম হবে বা আপনার ওয়েব অ্যাপে তাদের প্রোফাইল / সেটিংসে পাওয়া যাবে)।