সাধারণভাবে, আপনার একাধিক হ্যাশিং অ্যালগরিদম ব্যবহার করার দরকার নেই।
আপনার যা করা দরকার তা হ'ল:
লবণ ব্যবহার করুন: লবণ আপনার পাসওয়ার্ডটিকে আরও সুরক্ষিত করার জন্য ব্যবহার করা হয় না , এটি রংধনু টেবিল আক্রমণ থেকে দূরে থাকতে ব্যবহৃত হয়। এই পদ্ধতিতে, আপনার সিস্টেমে যে পাসওয়ার্ডগুলি সংরক্ষণ করা হয়েছে সেগুলির জন্য হ্যাশটিকে পূর্বের চেষ্টা করার জন্য কারও কাছে কঠোর পরিশ্রম হবে।
একাধিক ইন্টিরিশন ব্যবহার করুন: কেবল SHA (পাসওয়ার্ড + লবণ) না করে SHA (SHA (SHA (SHA (SHA (SHA (... SHA (পাসওয়ার্ড + লবন))))) করুন। বা, অন্যভাবে উপস্থাপন করতে:
hash = sha(password + salt)
for i=1 , i=5000, i++ {
hash = sha(hash + salt);
}
এবং, অবশেষে, একটি ভাল হ্যাশিং ফাংশন চয়ন করুন। SHA, MD5, ইত্যাদি খুব ভাল না কারণ তারা খুব দ্রুত । যেহেতু আপনি সুরক্ষার জন্য হ্যাশ ব্যবহার করতে চান, আপনি আরও ধীরে ধীরে ধীরে ধীরে ব্যবহার করতে চাইবেন d কটাক্ষপাত Bcrypt , PBKDF2 বা Scrypt উদাহরণস্বরূপ,।
সম্পাদনা করুন : পর্যবেক্ষণের পরে, আসুন কিছু পয়েন্টগুলি দেখার চেষ্টা করুন (দুঃখিত, শেষের জন্য দীর্ঘ ব্যাখ্যা, কারণ এটি অন্যদের অনুরূপ উত্তর অনুসন্ধানে সহায়তা করতে পারে):
যদি আপনার সিস্টেমটি সুরক্ষিত থাকে তবে যেহেতু কেউ কখনও সঞ্চিত পাসওয়ার্ড অ্যাক্সেস করতে পারে না, আপনার হ্যাশ লাগবে না। পাসওয়ার্ডটি গোপন থাকত, কেউ তা পেত না।
তবে কেউ নিশ্চয়তা দিতে পারে না যে পাসওয়ার্ড সহ ডাটাবেস চুরি হয়ে যাবে। ডাটাবেস চুরি করুন, সমস্ত পাসওয়ার্ড পেয়েছেন। ঠিক আছে, আপনার সিস্টেম এবং আপনার সংস্থা এর সমস্ত পরিণতি ভোগ করবে। সুতরাং, আমরা এই পাসওয়ার্ড ফাঁস এড়ানোর চেষ্টা করতে পারি।
বিজ্ঞপ্তি যে আমরা এই পয়েন্টে অনলাইন আক্রমণ সম্পর্কে উদ্বিগ্ন নই। একটি অনলাইন আক্রমণে সবচেয়ে ভাল সমাধানটি হ'ল খারাপ পাসওয়ার্ডগুলির পরে ধীর হওয়া, কিছু চেষ্টা করার পরে অ্যাকাউন্টটি লক করা ইত্যাদি that এর জন্য আপনি কীভাবে আপনার পাসওয়ার্ডটি এনক্রিপ্ট, হ্যাশ, সঞ্চয়, ইত্যাদি করে তা বিবেচনা করে না। অনলাইন আক্রমণ পাসওয়ার্ড ইনপুটগুলি ধীর করার বিষয়টি ।
সুতরাং, don't let them take my plain passwords
সমস্যা ফিরে । উত্তরটি সহজ: এগুলি সরল পাঠ্য হিসাবে সংরক্ষণ করবেন না। ঠিক আছে বুঝেছি.
কীভাবে এড়ানো যায়?
পাসওয়ার্ডটি এনক্রিপ্ট করুন (?) তবে, যেমনটি আপনি জানেন, আপনি যদি এটি এনক্রিপ্ট করেন তবে সঠিক কী থাকলে আপনি এটি ডিক্রিপ্ট করতে পারেন। এবং আপনি কীটি "কোথায় আড়াল করবেন" সমস্যাটি শেষ করবেন। হুম, কোনও ভাল নেই, যেহেতু তারা আপনাকে ডাটাবেস পেয়েছে, তারা আপনার কীটি পেতে পারে। ঠিক আছে, এটি ব্যবহার করা যাক না।
সুতরাং, অন্য পদ্ধতির: আসুন পাসওয়ার্ডটিকে অন্য কোনও কিছুতে রূপান্তর করতে পারি যা বিপরীত হতে পারে এবং এটি সঞ্চয় করা যায় না। সরবরাহিত পাসওয়ার্ডটি সঠিক কিনা তা যাচাই করতে আমরা আবার একই প্রক্রিয়াটি করি এবং পরীক্ষা করে দেখি দুটি ট্রান্সফর্মৃত মান মিলছে কিনা। যদি তারা মেলে = ভাল পাসওয়ার্ড সরবরাহ করা হয়েছিল।
ঠিক আছে, এতক্ষণ ভাল। পাসওয়ার্ডে কিছু MD5 হ্যাশ ব্যবহার করা যাক। তবে ... কারও কাছে যদি আমাদের পাসওয়ার্ডের হ্যাশ মান থাকে তবে তার কাছে প্রতিটি সম্ভাব্য পাসওয়ার্ডের (ব্রুট ফোর্স) MD5 হ্যাশ গণনা করার জন্য প্রচুর কম্পিউটার ক্ষমতা থাকতে পারে, তাই তিনি মূল পাসওয়ার্ডটি সন্ধান করতে পারেন। বা, সবচেয়ে খারাপতম, তিনি সমস্ত বৈশিষ্ট্য সংমিশ্রণ থেকে সমস্ত MD5 সঞ্চয় করতে পারেন এবং সহজেই পাসওয়ার্ডটি সন্ধান করতে পারেন। সুতরাং, আরও শক্তিশালী করার জন্য, হ্যাশ (হ্যাশ (হ্যাশ (হ্যাশ ())) কাজটি প্রচুর করুন, কারণ এতে আরও বেশি সময় লাগবে।
তবে এটিরও সংক্রামিত হতে পারে, এই জাতীয় সুরক্ষাটির বিরুদ্ধে গতি বাড়ানোর জন্য রংধনু টেবিলটি তৈরি করা হয়েছিল।
সুতরাং, এর উপর কিছু লবণ ব্যবহার করা যাক। এইভাবে, প্রতিটি মিথস্ক্রিয়াতে, লবণ আবার ব্যবহার করা হয়। আপনার পাসওয়ার্ডগুলিতে আক্রমণ করার চেষ্টা করে এমন একজনকে প্রতিবার লবণ যুক্ত হওয়ার বিষয়টি বিবেচনা করে রংধনু সারণী তৈরি করতে হবে। এবং যখন তিনি সেই রংধনু টেবিলটি তৈরি করেন, যেহেতু এটি একটি নুন দিয়ে তৈরি হয়েছিল, তাকে অন্য লবণের সাথে আবারও গণনা করতে হবে, সুতরাং তাকে প্রতিটি পাসওয়ার্ডের জন্য কিছুটা সময় ব্যয় করতে হবে (= প্রতিটি লবণ)। লবণ পাসওয়ার্ডে "আরও জটিলতা" যুক্ত করবে না, এটি আক্রমণকারীটিকে কেবল রংধনু টেবিল তৈরি করতে looseিলে সময় দেবে, আপনি যদি প্রতিটি পাসওয়ার্ডের জন্য একটি লবণ ব্যবহার করেন তবে একটি লবণ থেকে টেবিল অন্য পাসওয়ার্ডে অকেজো।
এবং একাধিক হ্যাশ ব্যবহার করা এখানে সহায়তা করবে? না a কোনও নির্দিষ্ট রেইনবো আক্রমণ আক্রমণকারী ব্যক্তি যেকোন উপায়ে এটি এক বা একাধিক হ্যাশ ব্যবহার করে তা তৈরি করতে সক্ষম হবে।
এবং একাধিক হ্যাশ ব্যবহার আপনাকে একটি সমস্যার দিকে নিয়ে যেতে পারে: এটি আপনার ব্যবহার করা দুর্বলতম হ্যাশের মতোই নিরাপদ। যদি কেউ একটি হ্যাশ অ্যালগরিদমে সংঘর্ষের সন্ধান করে তবে এটি পাসওয়ার্ড ভাঙার জন্য পুনরাবৃত্তি প্রক্রিয়ার যে কোনও বিন্দুতে, হ্যাশটি ব্যবহার করা হবে। সুতরাং, আপনি আরও বেশি হ্যাশ অ্যালগরিদম ব্যবহার করে কিছুই অর্জন করতে পারেন না, কেবলমাত্র একটি ভাল আলগো নির্বাচন করা ভাল। এবং এটি ব্যবহার করুন। আপনি যদি শুনে থাকেন যে এটি ভেঙে গেছে, আপনি কীভাবে এটি প্রয়োগ করবেন তা ভাবুন।
এবং কেন বিসিক্রিপ বা এর মতো কিছু ব্যবহার করুন (আপনি বলছেন আপনি এটি ব্যবহার করেছেন): কারণ আক্রমণকারীকে টেবিলগুলি তৈরি করতে আরও বেশি সময় ব্যয় করতে হবে। এজন্য এমডি 5 + ওয়েট (3 সেকেন্ড) ব্যবহার করা সাহায্য করে না: আক্রমণটি যাইহোক, অফলাইনে থাকবে, সুতরাং আক্রমণকারী (3 সেকেন্ড দেরি না করে) টেবিলগুলি তৈরি করতে পারে।