পাসওয়ার্ড লবণ কীভাবে একটি রংধনু টেবিল আক্রমণ বিরুদ্ধে সহায়তা করে?


220

পাসওয়ার্ডে লবণের উদ্দেশ্য বুঝতে আমার কিছুটা সমস্যা হচ্ছে। এটি আমার বোঝার যে প্রাথমিক ব্যবহারটি একটি রেইনবো টেবিল আক্রমণকে বাধাগ্রস্ত করা। তবে, আমি এটি প্রয়োগ করার জন্য যে পদ্ধতিগুলি দেখেছি তা সত্যিই সমস্যাটিকে আরও শক্ত করে তোলে বলে মনে হয় না।

আমি অনেক টিউটোরিয়াল দেখেছি যে লবণটি নিম্নলিখিত হিসাবে ব্যবহার করা উচিত:

$hash =  md5($salt.$password)

যুক্তিটি হ'ল এখন হ্যাশটি মূল পাসওয়ার্ডটিতে নয়, তবে পাসওয়ার্ড এবং লবণের সংমিশ্রণ। কিন্তু বলতে $salt=fooএবং $password=barএবং $hash=3858f62230ac3c915f300c664312c63f। এখন একটি রেইনবো টেবিলযুক্ত কেউ হ্যাশটিকে বিপরীত করতে পারে এবং "ফুবার" ইনপুটটি নিয়ে আসতে পারে। তারপরে তারা পাসওয়ার্ডের সমস্ত সংমিশ্রণ চেষ্টা করতে পারে (চ, ফো, ফু, ... ওবার, ওবর, বার, আর, আর)। পাসওয়ার্ড পেতে আরও কয়েক মিলি সেকেন্ড লাগতে পারে তবে অন্য কিছু নয়।

আমি যে অন্যান্য ব্যবহার দেখেছি তা আমার লিনাক্স সিস্টেমে। / ইত্যাদি / ছায়ায় হ্যাশ পাসওয়ার্ডগুলি আসলে লবণের সাথে সঞ্চিত থাকে । উদাহরণস্বরূপ, "foo বিন্যাস" এবং "বার" এর পাসওয়ার্ডের কোনো লবণ এই হ্যাশ হবে: $1$foo$te5SBM.7C25fFDu6bIRbX1। যদি কোনও হ্যাকার কোনওভাবে এই ফাইলটিতে হাত পেতে সক্ষম হয় তবে আমি দেখতে পাচ্ছি না যে লবণের কী উদ্দেশ্য রয়েছে, যেহেতু বিপরীত হ্যাশটিতে te5SBM.7C25fFDu6bIRbX"ফু" রয়েছে বলে জানা যায়।

এই বিষয়ে যে কেউ আলোকপাত করতে পারে তার জন্য ধন্যবাদ।

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




এছাড়াও, এখানে আপডেট করা হয়েছে - এমডি 5 হ্যাশিংয়ের ব্যবহার আর সেরা অনুশীলন নয়। stackoverflow.com/questions/12724935/salt-and-passwords
StuartLC

সম্পাদনার জন্য ধন্যবাদ। আমার একই সন্দেহ ছিল যা এখন স্পষ্ট হয়েছে। সুতরাং 'লবণের' বিন্দুটি হ'ল রেইনবো টেবিলের পক্ষে প্রথম স্থানে ভেজাল (সল্টেড) পাসওয়ার্ডের হ্যাশ থাকা খুব সম্ভব নয়। : ডি
বৈভব 3'16

উত্তর:


237

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

একটি সর্বজনীন লবণ দুটি কাজ করে: একটি বৃহত পাসওয়ার্ডের তালিকাকে ক্র্যাক করা আরও সময়োপযোগী করে এবং একটি রংধনু টেবিলটি ব্যবহারের জন্য এটি অক্ষম করে তোলে।

প্রথমটি বোঝার জন্য, একক পাসওয়ার্ড ফাইলটি কল্পনা করুন যাতে কয়েকশ ব্যবহারকারীর নাম এবং পাসওয়ার্ড রয়েছে। লবণ ছাড়াই আমি "এমডি 5 (চেষ্টা [0])" গণনা করতে পারি এবং তারপরে সেই হ্যাশটি কোথাও প্রদর্শিত হয় কিনা তা দেখতে ফাইলটি স্ক্যান করে দেখতে পারি। যদি লবণের উপস্থিতি থাকে তবে আমাকে "এমডি 5 (লবণ [ক] প্রয়াস [0])" গণনা করতে হবে, এন্ট্রি এ এর ​​সাথে তুলনা করতে হবে, তারপরে "এমডি 5 (নুন [বি]। প্রচেষ্টা [0])", এন্ট্রি বিয়ের সাথে তুলনা করুন , ইত্যাদি। এখন আমার nযত বেশি কাজ করতে হবে তার অনেকগুণ আছে, যেখানে nফাইলের মধ্যে থাকা ব্যবহারকারীর নাম এবং পাসওয়ার্ডের সংখ্যা রয়েছে।

দ্বিতীয়টি বুঝতে, আপনাকে বুঝতে হবে একটি রংধনু টেবিলটি কী। একটি রেইনবো টেবিলটি সাধারণভাবে ব্যবহৃত পাসওয়ার্ডগুলির জন্য প্রাক-গণিত হ্যাশগুলির একটি বৃহত তালিকা। লবণ ছাড়াই আবার পাসওয়ার্ড ফাইল কল্পনা করুন। আমাকে যা করতে হবে তা হ'ল ফাইলটির প্রতিটি লাইন পেরিয়ে যাওয়া, হ্যাশ পাসওয়ার্ডটি টেনে আনতে এবং এটিকে রংধনু টেবিলে সন্ধান করা। আমাকে কোনও একক হ্যাশ গণনা করতে হবে না। যদি চেহারাটি হ্যাশ ফাংশনের চেয়ে যথেষ্ট দ্রুত হয় (এটি সম্ভবত এটি হয়) তবে এটি ফাইলটি ক্র্যাক করার পক্ষে যথেষ্ট গতি বাড়িয়ে তুলবে।

তবে যদি পাসওয়ার্ডের ফাইলটি নোনতা দেওয়া হয়, তবে রংধনু টেবিলটিতে "নুন। পাসওয়ার্ড" থাকতে হবে pre লবণ যদি পর্যাপ্ত পরিমাণে এলোমেলো হয় তবে এটি খুব সম্ভবত। আমার সম্ভবত আমার ব্যবহৃত-ব্যবহৃত, প্রাক-হ্যাশ পাসওয়ার্ডগুলির (রেইনবো টেবিল) তালিকায় "হ্যালো" এবং "ফুবার" এবং "কিওয়ার্টি" এর মতো জিনিস থাকবে তবে আমার কাছে "জেএক্স 95 এসডিজেহেলো" বা এমন কিছু থাকবে না "LPgB0sdgxfoobar" বা "dZVUABJtqwerty" প্রাক-গণিত। এটি রামধনু টেবিলটিকে নিষেধাত্মকভাবে বড় করে তুলবে।

সুতরাং, লবণ আক্রমণকারীকে ফিরিয়ে এক-প্রতি-সারি-প্রতি-প্রচেষ্টায় কমিয়ে দেয়, যা যথেষ্ট দীর্ঘ, পর্যাপ্ত এলোমেলো পাসওয়ার্ডের সাথে মিলিত হয়ে গেলে (সাধারণভাবে বলা হয়) আপত্তিজনক নয়।


15
আমি নিশ্চিত নই যে আমি আমার উত্তরে যা বলেছিলাম তা বোঝাতে যে তারা ছিল?
রস

2
ইরিকসন, আমি মনে করি সম্পাদনাটি বিভ্রান্তিকর হয়েছিল - আমি মনে করি না যে বেশিরভাগ লোক রেইনবো টেবিল আক্রমণকে এক ধরণের অভিধানের আক্রমণ বলে মনে করে। আমার উত্তরটিতে কিছু বিভ্রান্তিকর বলে মনে করেন এমন নির্দিষ্ট কিছু আছে কিনা তা আমাকে জানিয়ে দিন এবং আমি এটি সংশোধন করার চেষ্টা করব।
রস

আমার ইচ্ছা যদি আরও কিছু দেওয়া যায় তবে একটি উঁচুতে! বিশেষ করে প্রথম অনুচ্ছেদের জন্য। এটি একটি যোগ করে সমস্ত আইএমএইচও
সিজার

5
আমি জানি এটি পুরানো তবে আপনার রংধনু টেবিলের বর্ণনাটি ভুল। পরিবর্তে আপনি হ্যাশ টেবিলগুলি বর্ণনা করছেন। একটি রেইনবো টেবিলের জন্য সিকিউরিটি.স্ট্যাকেক্সচেঞ্জ / প্রশ্ন / .com/37 / / দেখুন । একটি হ্যাশ টেবিলটিতে হ্যাশগুলিতে পাসওয়ার্ডগুলির 1 থেকে 1 ম্যাপিং থাকে (যেমন আপনি বর্ণনা করেছেন), তবে রংধনু টেবিলগুলিতে হ্রাস করা ফাংশন প্রয়োজন যা একটি হ্যাশকে সরলখন্ডিতে ফিরে রূপান্তরিত করে, তারপরে কয়েক হাজার বার পুনরায় রিশেশ করা যায়, কেবল প্রাথমিক ব্লেটেক্সট এবং চূড়ান্ত হ্যাশ সংরক্ষণ করে। অনুসন্ধান হ্যাশ টেবিলের তুলনায় গণনার তুলনায় দীর্ঘ, তবে হ্যাশ প্রতি অনেক প্লেটেক্সটকে 'ক্যাপচার' করে।
মার্ক ফিশার

1
এই উত্তরটি এই সত্যটি মিস করে যে লবণ ব্যবহার না করা (নির্দিষ্ট ব্যবহারকারীর জন্য একটি পাসওয়ার্ড হ্যাশ তৈরির জন্য আবদ্ধ) নকল পাসওয়ার্ডগুলিও প্রকাশ করে এমনকি একাধিক টেবিলের মধ্যেও এই পাসওয়ার্ডগুলি সংরক্ষণ করে। খুব ন্যূনতম সময়ে আপনি কোনও ব্যক্তির দ্বারা পুনরায় ব্যবহৃত পাসওয়ার্ড সনাক্ত করতে সক্ষম হবেন তবে এর চেয়েও খারাপ আপনি আলাদা আলাদা ডেটাবেজে বিভিন্ন ব্যক্তির দ্বারা ব্যবহৃত পাসওয়ার্ডও সনাক্ত করতে পারবেন।
মার্টেন বোদেউয়েস

119

অন্যান্য উত্তরগুলি বিষয়টির বিষয়ে আপনার ভুল বোঝাবুঝির সমাধান করেছে বলে মনে হয় না, তাই এখানে যায়:

লবণের দুটি ভিন্ন ব্যবহার

আমি অনেক টিউটোরিয়াল দেখেছি যে লবণটি নিম্নলিখিত হিসাবে ব্যবহার করা উচিত:

$hash = md5($salt.$password)

[...]

আমি যে অন্যান্য ব্যবহার দেখেছি তা আমার লিনাক্স সিস্টেমে। / ইত্যাদি / ছায়ায় হ্যাশ পাসওয়ার্ডগুলি আসলে লবণের সাথে সঞ্চিত থাকে।

আপনাকে সর্বদা পাসওয়ার্ডের সাথে লবণ সংরক্ষণ করতে হবে, কারণ ব্যবহারকারী আপনার পাসওয়ার্ডের ডাটাবেসের বিরুদ্ধে যা লিখেছেন তা যাচাই করতে আপনাকে লবণের সাথে ইনপুটটি একত্রিত করতে হবে, এটি হ্যাশ করতে হবে এবং এটি স্টোরেজ হ্যাশের সাথে তুলনা করতে হবে।

হ্যাশ এর সুরক্ষা

এখন একটি রেইনবো টেবিলযুক্ত কেউ হ্যাশটিকে বিপরীত করতে পারে এবং "ফুবার" ইনপুটটি নিয়ে আসতে পারে।

[...]

যেহেতু te5SBM.7C25fFDu6bIRbX এর বিপরীত হ্যাশ "foo" ধারণ করে পরিচিত।

হ্যাশটিকে বিপরীত করা সম্ভব নয় (তাত্ত্বিকভাবে, কমপক্ষে)। "ফু" এর হ্যাশ এবং "সল্টফু" এর হ্যাশের কোনও মিল নেই। কোনও ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের ইনপুটটিতে এক বিট পরিবর্তন করাও আউটপুটটিকে পুরোপুরি পরিবর্তন করতে হবে।

এর অর্থ আপনি সাধারণ পাসওয়ার্ড সহ একটি রংধনু টেবিল তৈরি করতে পারবেন না এবং পরে কিছুটা লবণ দিয়ে এটি "আপডেট" করুন। আপনাকে প্রথম থেকেই লবণটি গ্রহণ করতে হবে।

আপনার প্রথম স্থানে কেন রেইনবো টেবিলের প্রয়োজন তার পুরো কারণ এটি। আপনি হ্যাশ থেকে পাসওয়ার্ড পেতে না পারার কারণে, আপনি সম্ভবত ব্যবহার করা সমস্ত পাসওয়ার্ডের সমস্ত হ্যাশগুলিকে সংক্ষেপণ করুন এবং তারপরে আপনার হ্যাশগুলি তাদের হ্যাশের সাথে তুলনা করুন।

লবণের গুণাগুণ

তবে বলুন $salt=foo

"ফু" নুনের চূড়ান্ত পছন্দ হবে। সাধারণত আপনি ASCII এ এনকোডযুক্ত একটি এলোমেলো মান ব্যবহার করবেন।

এছাড়াও, প্রতিটি পাসওয়ার্ডের নিজস্ব লবণ থাকে, এটি সিস্টেমের অন্যান্য লবণের চেয়ে পৃথক (আশা)। এর মানে হল, আক্রমণকারী আশাবাদ ব্যক্ত করেন যে থাকার স্বতন্ত্রভাবে পরিবর্তে প্রতিটি পাসওয়ার্ড আক্রমণ করার যে এক হ্যাশ তার ডাটাবেসের মধ্যে মান এক সাথে মেলে।

আক্রমণ

যদি কোনও হ্যাকার কোনওভাবে এই ফাইলটিতে হাত পেতে সক্ষম হয় তবে আমি দেখতে পাচ্ছি না যে লবণের উদ্দেশ্য কী করে,

একটি রেইনবো টেবিল আক্রমণ সর্বদা প্রয়োজন /etc/passwd(বা যাই হোক না কেন পাসওয়ার্ড ডাটাবেস ব্যবহার করা হয়), না হলে আপনি কীভাবে রংধনু টেবিলে থাকা হ্যাশগুলিকে আসল পাসওয়ার্ডের হ্যাশগুলির সাথে তুলনা করবেন?

উদ্দেশ্য হিসাবে: আসুন বলি যে আক্রমণকারী সাধারণত ব্যবহৃত 100,000 ইংরেজি শব্দ এবং সাধারণ পাসওয়ার্ডের জন্য "গোপনীয়তা" মনে করেন) জন্য একটি রংধনু টেবিল তৈরি করতে চায়। লবণ ছাড়াই তাকে 100,000 হ্যাশ বন্ধ করতে হবে। এমনকি চিরাচরিত ইউনিক্স লবণের সাথে 2 টি অক্ষর রয়েছে (প্রতিটি [a–zA–Z0–9./]64৪ টির মধ্যে একটি পছন্দ :) তাকে 4,096,000,000 হ্যাশ গণনা করতে হবে এবং সংরক্ষণ করতে হবে ... বেশ উন্নতি।


2
সত্যিই দুর্দান্ত উত্তর। এটি আমাকে এত বেশি ভাল জিনিস বুঝতে সাহায্য করেছে। +1
ডাব্লুএমসি

যদি কোনও হ্যাকারের লবণের অ্যাক্সেস থাকে এবং এটি হ্যাশিং ফাংশনে কীভাবে ব্যবহৃত হয়, তবে তারা কি কেবল তা ব্যবহার করতে পারত না যে লবণযুক্ত হ্যাশগুলির একটি টেবিল তৈরি করতে এবং সেই হ্যাশগুলিকে রংধনু টেবিলের সাথে তুলনা করতে?
জনি

5
@ জনিতে কোনও "লবণ" নেই। পুরো বিষয়টি হ'ল প্রতিটি পাসওয়ার্ড প্রবেশের জন্য লবণ আলাদা।

86

লবণ দিয়ে ধারণাটি একটি সাধারণ চরিত্র-ভিত্তিক পাসওয়ার্ডের চেয়ে ব্রুট-ফোর্সের সাথে অনুমান করা আরও শক্ত করে তোলা। রেইনবো টেবিলগুলি প্রায়শই একটি বিশেষ চরিত্রের কথা মাথায় রেখে তৈরি করা হয় এবং সবসময় সমস্ত সম্ভাব্য সংমিশ্রণগুলি (যদিও তারা তা পারে) অন্তর্ভুক্ত করে না।

সুতরাং একটি ভাল লবণের মান এলোমেলো 128-বিট বা দীর্ঘতর পূর্ণসংখ্যার হবে। এ কারণেই রামধনু-টেবিলের আক্রমণ ব্যর্থ হয়। প্রতিটি সঞ্চিত পাসওয়ার্ডের জন্য আলাদা আলাদা লবণের মান ব্যবহার করে আপনি এটিও নিশ্চিত করে থাকেন যে একটি নির্দিষ্ট লবণের মূল্যের জন্য নির্মিত একটি রেইনবো টেবিল (আপনি যদি একক লবণের সাথে জনপ্রিয় সিস্টেম হিসাবে ব্যবহার করতে পারেন) আপনাকে সমস্ত অ্যাক্সেস দেয় না একবারে পাসওয়ার্ড


1
+1: লবণ এলোমেলো সংখ্যা জেনারেটর দ্বারা নির্মিত কিছু এলোমেলো স্ট্রিংয়ের হেক্স ডাইজেস্টের একটি অংশ হতে পারে। প্রতিটি বিট এলোমেলো।
এস .লট

5
"রেইনবো টেবিলগুলি অভিধানের আক্রমণের একটি রূপ যা সঞ্চয় স্থানের সঞ্চয় করতে কিছু গতি দেয়" " - এর প্রকৃত বিপরীতে, একটি সম্ভাব্য রেনবো টেবিলটি সমস্ত সম্ভাব্য মান পুনরায় হ্যাশ করার জন্য সঞ্চয় করতে জিবি নিতে পারে।
এভিডি

2
সম্মত - @ এরিকসন, আমি মনে করি যে আপনার সম্পাদনাটি এখানে ভুল। একটি রেইনবো টেবিলের জন্য প্রচুর পরিমাণে স্টোরেজ প্রয়োজন, তবে হ্যাশের পিছনে বার্তাটি পেতে এটি দ্রুত করে তোলে।
কার্ল সেলেবর্গ

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

... আক্রমণ, কিন্তু অভিধানের আক্রমণগুলির জন্য আপনার রেইনবো টেবিলের দরকার নেই।
রাসমাস ফ্যাবার

35

তবুও আরও একটি দুর্দান্ত প্রশ্ন, অনেকগুলি খুব চিন্তাশীল উত্তর সহ - এসওকে +1!

একটি ছোট কথা যা আমি স্পষ্টভাবে উল্লেখ করি নি তা হ'ল, প্রতিটি পাসওয়ার্ডে এলোমেলো লবণ যুক্ত করে আপনি কার্যত গ্যারান্টি দিচ্ছেন যে একই পাসওয়ার্ডটি বেছে নেওয়ার জন্য ঘটেছে এমন দুটি ব্যবহারকারী বিভিন্ন হ্যাশ তৈরি করবে।

এটা জরুরী কেন?

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

পাসওয়ার্ডগুলি সল্ট করে তা নিশ্চিত করে যে 500 টি অ্যাকাউন্টের প্রত্যেকটিরই একটি স্বতন্ত্র (নুন + পাসওয়ার্ড) রয়েছে, যার প্রতিটিটির জন্য আলাদা একটি হ্যাশ তৈরি হয় এবং এর ফলে একটি অ্যাকাউন্টে লঙ্ঘন হ্রাস হয়। এবং আসুন আশা করি, সমস্ত সম্ভাবনার বিপরীতে, যে কোনও ব্যবহারকারী ইমেল বার্তায় একটি সরলখর পাসওয়ার্ড লেখার মতো যথেষ্ট দক্ষ, তার পরবর্তী ওএসের জন্য অননুমোদিত API এ অ্যাক্সেস নেই।


পৃথক পাসওয়ার্ড বেছে নেওয়া এমন দুটি ব্যবহারকারীর ক্ষেত্রে একই এবং সম্ভবত ডিবিতে তাদের একই হ্যাশ পাসওয়ার্ড সংরক্ষণ করা সম্ভব। (অকেজো ... আমি জানি)
পিঁপড়া

15

আমি সল্ট প্রয়োগের জন্য একটি ভাল পদ্ধতির সন্ধান করছিলাম এবং নমুনা কোড সহ এই দুর্দান্ত নিবন্ধটি পেয়েছি:

http://crackstation.net/hashing-security.htm

লেখক ব্যবহারকারী হিসাবে এলোমেলো সল্ট ব্যবহার করে পুনরুদ্ধার করে, যাতে একটি লবণের অ্যাক্সেস পাওয়া ক্র্যাশ করা সহজ হ্যাশগুলির পুরো তালিকাটিকে রেন্ডার করে না।

একটি পাসওয়ার্ড সঞ্চয় করতে:

  • একটি সিএসপিআরএনজি ব্যবহার করে একটি দীর্ঘ এলোমেলো লবণ তৈরি করুন।
  • পাসওয়ার্ডে লবণ প্রস্তুত করুন এবং SHA256 এর মতো একটি স্ট্যান্ডার্ড ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন দিয়ে হ্যাশ করুন।
  • ব্যবহারকারীর ডাটাবেস রেকর্ডে লবণ এবং হ্যাশ উভয়ই সংরক্ষণ করুন।

একটি পাসওয়ার্ড যাচাই করতে:

  • ব্যবহারকারীর লবণ এবং হ্যাশ ডাটাবেস থেকে পুনরুদ্ধার করুন।
  • প্রদত্ত পাসওয়ার্ডে লবণ প্রস্তুত করুন এবং এটি একই হ্যাশ ফাংশনটি ব্যবহার করে হ্যাশ করুন।
  • প্রদত্ত পাসওয়ার্ডের হ্যাশটি ডাটাবেস থেকে হ্যাশের সাথে তুলনা করুন। যদি তারা মেলে, পাসওয়ার্ডটি সঠিক। অন্যথায়, পাসওয়ার্ডটি ভুল।

3
হ্যাশকেট একক পিসি ব্যবহার করে প্রতি সেকেন্ডে প্রায় 17 বিলিয়ন লবণাক্ত SHA256 হ্যাশ চেষ্টা করতে পারে। লিঙ্কযুক্ত নিবন্ধটির লেখক "পাসওয়ার্ড ক্র্যাকিং শক্ত করে তোলে: স্লো হ্যাশ ফাংশনগুলি" শিরোনামে এ সম্পর্কে কথা বলেন। আইএমএইচও সার্ভারে অতিরিক্ত সিপিইউ চক্রের তুলনায় স্ক্রিপ্ট, বিসিআরপিট এবং পিবিকেডিএফ 2 হ'ল ভাল পছন্দ এবং মূল্য। আরগন 2 বর্তমানে শিল্পের রাজ্য, তবে অন্যদের মতো যুদ্ধ-পরীক্ষিত নয়।
কেগ্রিফস 6:48

12

লবণের কারণে একটি রেইনবো-টেবিল আক্রমণ ব্যর্থ হওয়ার কারণটি হ'ল এন-বিট লবণের জন্য রংধনু টেবিলটি লবণ ছাড়াই টেবিলের আকারের চেয়ে 2 times n গুণ বেশি হতে হবে।

আপনার 'ফু' লবণের হিসাবে ব্যবহারের উদাহরণটি রংধনু-টেবিলটিকে 16 মিলিয়ন গুন বড় করতে পারে।

কার্লের 128-বিট লবণের উদাহরণ দেওয়া, এটি টেবিলটিকে 2 ^ 128 গুণ বড় করে তোলে - এখন এটি বড় - বা অন্য কোনও উপায়ে বলা যায়, কারও কাছে বহনযোগ্য স্টোরেজ কতদিন আগে?


8
এমনকি যদি আপনি কিছু সঞ্চয় করার জন্য একটি একক ইলেকট্রন ব্যবহার করেন তবে যে কেউ সেই ক্ষমতা সহ পোর্টেবল স্টোরেজ তৈরি করার আগে যথেষ্ট সময় হয়ে যাবে ... যদি না আপনি গ্যালাক্সি বহনযোগ্য সোলার সিস্টেমটিকে সরিয়ে নিয়ে যান system
এরিকসন

10

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

এই জাতীয় আক্রমণগুলি সেই ক্ষেত্রে অকার্যকর যেখানে পাসওয়ার্ডগুলিতে আরও অনেকগুলি অক্ষর থাকে এবং সাধারণ শব্দ ভিত্তিক ফর্ম্যাটগুলির সাথে খাপ খায় না। শুরু করার জন্য শক্তিশালী পাসওয়ার্ড সহ কোনও ব্যবহারকারী এই আক্রমণের স্টাইলের পক্ষে ঝুঁকিপূর্ণ হবেন না। দুর্ভাগ্যক্রমে, অনেক লোক ভাল পাসওয়ার্ড বাছাই করে না। তবে একটি আপস আছে, আপনি এতে ব্যবহারকারীর পাসওয়ার্ড এলোমেলো জাঙ্ক যোগ করে উন্নত করতে পারেন। সুতরাং এখন "শিকারী 2" এর পরিবর্তে তাদের পাসওয়ার্ড কার্যকরভাবে "শিকারী 2908! Fld2R75 {R7 /; 508PEzoz ^ U430" হয়ে উঠতে পারে, এটি একটি আরও শক্তিশালী পাসওয়ার্ড। তবে, আপনাকে এখন এই অতিরিক্ত পাসওয়ার্ড উপাদান সংরক্ষণ করতে হবে এটি শক্তিশালী সংমিশ্রিত পাসওয়ার্ডের কার্যকারিতা হ্রাস করে। দেখা যাচ্ছে যে এখন পর্যন্ত প্রতিটি পাসওয়ার্ড এমনকি দুর্বল এমনকি এই জাতীয় স্কিমের নেট সুবিধা রয়েছে, একই প্রি-কম্পিউটেড হ্যাশ / রেইনবো টেবিলের পক্ষে আর অরক্ষিত নয়। পরিবর্তে, প্রতিটি পাসওয়ার্ড হ্যাশ এন্ট্রি কেবল একটি অনন্য হ্যাশ টেবিলের জন্যই দুর্বল।

বলুন আপনার কাছে এমন একটি সাইট রয়েছে যার পাসওয়ার্ডের শক্তির দুর্বলতা রয়েছে। আপনি যদি আপনার সমস্ত হ্যাশগুলিতে কোনও পাসওয়ার্ড লবণ ব্যবহার না করেন তবে প্রাক-গণিত হ্যাশ টেবিলগুলির জন্য ঝুঁকিপূর্ণ হয়ে থাকেন, আপনার হ্যাশগুলিতে অ্যাক্সেস থাকা কারও কাছে এইভাবে আপনার ব্যবহারকারীর একটি বৃহত শতাংশের জন্য পাসওয়ার্ড অ্যাক্সেস থাকতে পারে (তবে অনেকগুলি ব্যবহারযোগ্য দুর্বল পাসওয়ার্ড, যা এটি হবে যথেষ্ট শতাংশ)। আপনি যদি একটি ধ্রুবক পাসওয়ার্ড লবণ ব্যবহার করেন তবে প্রাক-গণনা করা হ্যাশ টেবিলগুলি আর মূল্যবান নয়, সুতরাং কাউকে সেই লবণের জন্য একটি কাস্টম হ্যাশ টেবিল গণনা করার জন্য সময় ব্যয় করতে হবে, তারা ক্রমবর্ধমানভাবে এটি করতে পারে, আরও বড় অনুমানের আওতা দেয় এমন কম্পিউটিং টেবিলগুলি could সমস্যা স্থান। সবচেয়ে দুর্বল পাসওয়ার্ডগুলি (উদাহরণস্বরূপ সাধারণ শব্দ ভিত্তিক পাসওয়ার্ড, খুব সংক্ষিপ্ত বর্ণানুক্রমিক পাসওয়ার্ড) কয়েক ঘন্টা বা দিনে ফাটানো হবে, কয়েক সপ্তাহ বা মাসের পরে কম দুর্বল পাসওয়ার্ড ক্র্যাক হয়ে যাবে। সময় হিসাবে একজন আক্রমণকারী আপনার ব্যবহারকারীদের বর্ধমান শতাংশের জন্য পাসওয়ার্ডগুলিতে অ্যাক্সেস অর্জন করবে। আপনি যদি প্রতিটি পাসওয়ার্ডের জন্য একটি অনন্য লবণ ব্যবহার করেন তবে সেই দুর্বল পাসওয়ার্ডগুলির প্রত্যেকটিতে অ্যাক্সেস পেতে কয়েক দিন বা মাস লাগবে।

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

এটি হ'ল পরিস্থিতিটি যথাযথভাবে।


3

সল্ট করার একটি উদ্দেশ্য হ'ল প্রাক্পম্পিউটেড হ্যাশ টেবিলগুলিকে পরাস্ত করা। কারও কাছে যদি কয়েক মিলিয়ন প্রাক-গণিত হ্যাশগুলির একটি তালিকা থাকে তবে তারা হ্যাশ এবং লবণ জানেন যদিও তারা তাদের টেবিলটিতে in 1 $ foo $ te5SBM.7C25fFDu6bIRbX1 সন্ধান করতে সক্ষম হবেন না। তাদের এখনও জোর করে চাপিয়ে দিতে হবে।

কার্ল এস যেমন উল্লেখ করেছেন তেমনি আরেকটি উদ্দেশ্য হ্যাশগুলির একটি তালিকা আরও ব্যয়বহুল করে জোর করে করা। (এগুলি সমস্ত আলাদা লবণ দিন)

এই দুটি উদ্দেশ্যই লবণগুলি সর্বজনীন হলেও এখনও সম্পন্ন হয়।


1

যতদূর আমি জানি, লবণের উদ্দেশ্য অভিধানকে আরও শক্ত করার জন্য।

এটি একটি পরিচিত সত্য যে অনেক লোক আপাতদৃষ্টিতে এলোমেলো স্ট্রিংয়ের পরিবর্তে পাসওয়ার্ডের জন্য সাধারণ শব্দ ব্যবহার করবে।

সুতরাং, কোনও হ্যাকার কেবল নিষ্ঠুর বল প্রয়োগের পরিবর্তে এটি নিজের সুবিধার্থে এটি ব্যবহার করতে পারে। তিনি আআ, আব, আ্যাক এর মতো পাসওয়ার্ড সন্ধান করবেন না ... বরং এর পরিবর্তে শব্দ এবং সাধারণ পাসওয়ার্ডগুলি ব্যবহার করবেন (যেমন রিংয়ের নামগুলির মালিক!;))

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

আশা করি এইটি কাজ করবে!


-2

আমি ধরে নিই যে আপনি পিএইচপি --- এমডি 5 () ফাংশন এবং ced পূর্ববর্তী ভেরিয়েবল --- ব্যবহার করছেন তবে আপনি এই নিবন্ধটি শ্যাডো পাসওয়ার্ডটি দেখতে চেষ্টা করতে পারেন বিশেষত 11 তম অনুচ্ছেদে ।

এছাড়াও, আপনি বার্তা ডাইজেস্ট অ্যালগরিদমগুলি ব্যবহার করে ভয় পান, আপনি বাস্তব সিফার অ্যালগরিদমগুলি চেষ্টা করতে পারেন, যেমন এমক্রিপ্ট মডিউল দ্বারা সরবরাহ করা , বা আরও শক্তিশালী বার্তা ডাইজেস্ট অ্যালগরিদমগুলি যেমন ম্যাশ মডিউল সরবরাহ করে (sha1, sha256, এবং অন্যান্য).

আমি মনে করি যে শক্তিশালী বার্তা হজম অ্যালগরিদম একটি আবশ্যক। এটি জানা যায় যে MD5 এবং SHA1 এর সংঘর্ষের সমস্যা রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.