প্রথমত, কয়েকটি পদ গুরুত্বপূর্ণ যা গুরুত্বপূর্ণ:
হ্যাশিং - একটি স্ট্রিং নেওয়ার এবং এমন অক্ষরের ক্রম উত্পাদন করার কাজ যা মূল স্ট্রিংটিতে ফিরে যেতে পারে না।
প্রতিসম এনক্রিপশন - একটি স্ট্রিং গ্রহণ এবং কিছু অক্ষর আছে যা একটি অনুক্রম উত্পাদক আইন - (সাধারণত শুধু 'এনক্রিপশন' হিসেবে উল্লেখ করা হয়েছে) করতে পারেন একই এনক্রিপশন কী এটি এনক্রিপ্ট ব্যবহারের মাধ্যমে মূল স্ট্রিং ডিক্রিপ্ট করা হবে।
রেইনবো টেবিল - একটি অনুসন্ধানের টেবিল যা একটি নির্দিষ্ট হ্যাশিং অ্যালগরিদমে হ্যাশ করা অক্ষরের সমস্ত প্রকারের ধারণ করে।
লবণ - এটি পরিচিত হওয়ার আগে মূল স্ট্রিংয়ের সাথে পরিচিত একটি র্যান্ডম স্ট্রিং যুক্ত হয় app
.NET ফ্রেমওয়ার্কের জন্য, Bcrypt এখনও একটি যাচাইকৃত রেফারেন্স বাস্তবায়ন করে না। এটি গুরুত্বপূর্ণ কারণ কোনও বিদ্যমান বাস্তবায়নে গুরুতর ত্রুটি রয়েছে কিনা তা জানার উপায় নেই। আপনি নেট নেট এর জন্য বিসিক্রিপ্টের একটি বাস্তবায়ন পেতে পারেন । এটি কোনও ভাল বা খারাপ বাস্তবায়ন কিনা তা বলার জন্য ক্রিপ্টোগ্রাফি সম্পর্কে আমি পর্যাপ্ত পরিমাণে জানি না। ক্রিপ্টোগ্রাফি একটি খুব গভীর ক্ষেত্র। আপনার নিজস্ব এনক্রিপশন অ্যালগরিদম তৈরি করার চেষ্টা করবেন না । সিরিয়াসলি।
আপনি যদি নিজের পাসওয়ার্ড সুরক্ষা (দীর্ঘশ্বাস) বাস্তবায়ন করতে চলেছেন তবে আপনাকে বেশ কয়েকটি জিনিস করতে হবে:
- তুলনামূলকভাবে সুরক্ষিত হ্যাশ অ্যালগরিদম ব্যবহার করুন ।
- প্রতিটি পাসওয়ার্ড হ্যাশ হওয়ার আগে লবণ দিন।
- প্রতিটি পাসওয়ার্ডের জন্য একটি অনন্য এবং দীর্ঘ লবণ ব্যবহার করুন এবং পাসওয়ার্ডের সাথে লবণ সংরক্ষণ করুন।
- শক্ত পাসওয়ার্ড প্রয়োজন ।
দুর্ভাগ্যক্রমে, আপনি যদি এই সমস্ত কিছু করেও থাকেন, তবে একটি নির্ধারিত হ্যাকার এখনও পাসওয়ার্ডগুলি খুঁজে বের করতে পারত, তবে তাকে কেবল একটি দীর্ঘ সময় লাগবে। যে আপনার প্রধান শত্রু আছে: টাইম ।
Bcrypt অ্যালগরিদম কাজ করে কারণ এটা লাগে পাঁচ আদেশ মাত্রার আর হ্যাশ করার MD5 চেয়ে একটি পাসওয়ার্ড ; (এবং এখনও এইএস বা SHA-512 এর চেয়ে অনেক বেশি দীর্ঘ)। এটি হ্যাকারকে আপনার পাসওয়ার্ডগুলি অনুসন্ধান করার জন্য একটি রেইনবো টেবিল তৈরি করতে আরও অনেক বেশি সময় ব্যয় করতে বাধ্য করে, এতে আপনার পাসওয়ার্ড হ্যাক হওয়ার ঝুঁকিতে পড়ার সম্ভাবনা অনেক কম।
যদি আপনি নিজের পাসওয়ার্ডগুলি সল্ট এবং হ্যাশ করে থাকেন এবং প্রতিটি লবণ আলাদা হয় তবে কোনও সম্ভাব্য হ্যাকারকে লবণের প্রতিটি পরিবর্তনের জন্য একটি রংধনু টেবিল তৈরি করতে হবে , কেবল একটি সল্ট + হ্যাশ পাসওয়ার্ডের জন্য একটি রংধনু টেবিল রাখতে হবে। তার মানে আপনার যদি 1 মিলিয়ন ব্যবহারকারী থাকে তবে একজন হ্যাকারকে 1 মিলিয়ন রংধনু টেবিল তৈরি করতে হবে। আপনি যদি প্রতিটি ব্যবহারকারীর জন্য একই লবণ ব্যবহার করেন তবে হ্যাকারকে আপনার সিস্টেমটি সফলভাবে হ্যাক করতে কেবল 1 টি রংধনু টেবিল তৈরি করতে হবে।
আপনি যদি নিজের পাসওয়ার্ডগুলিকে সল্ট না করে থাকেন তবে সমস্ত আক্রমণকারীকে হ'ল সেখানে উপস্থিত প্রতিটি প্রয়োগের জন্য একটি বিদ্যমান রেইনবো টেবিলটি টেনে আনতে হবে (এইএস, এসএএএ -512, এমডি 5) এবং কেবল হ্যাশের সাথে মেলে কিনা তা দেখুন। এই ইতিমধ্যে সম্পন্ন করা হয়েছে , একটি আক্রমণকারী এই রেনবো টেবিল নিজেদের নিরূপণ করার দরকার নেই ।
এমনকি এই সমস্ত কিছু সহ, আপনি ভাল সুরক্ষা অনুশীলন ব্যবহার করতে হবে । যদি তারা আপনার সাইটে অন্য আক্রমণকারী ভেক্টর (এক্সএসএস, এসকিউএল ইনজেকশন, সিএসআরএফ, ইত্যাদি। ) সফলভাবে ব্যবহার করতে পারে তবে ভাল পাসওয়ার্ড সুরক্ষার বিষয়টি বিবেচনা করে না। এটি বিতর্কিত বক্তব্যের মতো শোনাচ্ছে তবে এটিকে নিয়ে ভাবেন: যদি আমি কোনও এসকিউএল ইনজেকশন আক্রমণের মাধ্যমে আপনার সমস্ত ব্যবহারকারীর তথ্য পেতে পারি বা এক্সএসএসের মাধ্যমে আপনার ব্যবহারকারীরা তাদের কুকিজ আমাকে দিতে পারি তবে আপনার পাসওয়ার্ডটি কতটা ভাল তা বিবেচ্য নয় doesn't সুরক্ষা হয় ।
অন্যান্য উৎস:
- জেফ আতউড:। নেট এনক্রিপশন সরলীকৃত (হ্যাশিংয়ের ওভারভিউয়ের জন্য দুর্দান্ত)
- জেফ অ্যাটউড: আমি আপনার হিসাবে সবেমাত্র লগ ইন করেছি
- জেফ অ্যাটউড: আপনি সম্ভবত পাসওয়ার্ডগুলি ভুলভাবে সংরক্ষণ করছেন
- জেফ আতউড : স্পিড হ্যাশিং
দ্রষ্টব্য: দয়া করে অন্যান্য ভাল সংস্থার প্রস্তাব দিন। আমি অবশ্যই কয়েক ডজন লেখকের এক ডজন নিবন্ধ পড়েছি, তবে জেফের মতো এই বিষয়টিতে খুব কম লেখেন। আপনি নিবন্ধগুলি যেমন খুঁজে পান তেমন সম্পাদনা করুন।