লবণগুলি অভিধানের আক্রমণকে 'অসম্ভব' করে তোলে কেন?


85

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

আমি প্রক্রিয়াটি বুঝতে পারি এবং এটি আমার কয়েকটি প্রকল্পে নিজেই প্রয়োগ করি।

s =  random salt
storedPassword = sha1(password + s)

আপনি যে ডাটাবেসটিতে সঞ্চয় করেন:

username | hashed_password | salt

আমি দেখেছি লবণের প্রতিটি প্রয়োগ পাসওয়ার্ডের শেষে বা শুরুতে লবণ যুক্ত করে:

hashed_Password = sha1(s + password )
hashed_Password = sha1(password + s)

থেরফর, হ্যাকারের একটি অভিধান আক্রমণ যার পক্ষে তার লবণের পরিমাণ (হেক্টর) হ'ল উপরের তালিকাভুক্ত সাধারণ সংমিশ্রণে সঞ্চিত লবণের বিপরীতে প্রতিটি কীওয়ার্ড চালানো যেতে পারে।

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

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

আমি কীভাবে একটি হ্যাকার প্রস্তাব দিচ্ছি যে পাসওয়ার্ড এবং হ্যাশগুলির একটি তালিকা সহ একটি ব্যবহারকারী ডেটাবেস হ্যাক করবে তার একটি উদাহরণ দেই:

আমাদের হ্যাকড ডাটাবেস থেকে ডেটা:

RawPassword (not stored)  |  Hashed   |     Salt
--------------------------------------------------------
letmein                       WEFLS...       WEFOJFOFO...

সাধারণ পাসওয়ার্ড অভিধান:

   Common Password
   --------------
   letmein
   12345
   ...

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

for each user in hacked_DB

    salt = users_salt
    hashed_pw = users_hashed_password

    for each common_password

        testhash = sha1(common_password + salt)
        if testhash = hashed_pw then
           //Match!  Users password = common_password
           //Lets visit the webpage and login now.
        end if

    next

next

আমি আশা করি এটি আমার পয়েন্টটি আরও ভালভাবে চিত্রিত করে।

10,000 টি সাধারণ পাসওয়ার্ড এবং 10,000 টি ব্যবহারকারী রেকর্ড দেওয়া, আমাদের যতটা সম্ভব ব্যবহারকারীর পাসওয়ার্ড আবিষ্কার করতে 100,000,000 হ্যাশ গণনা করতে হবে। এটি কয়েক ঘন্টা সময় নিতে পারে, কিন্তু এটি আসলে কোনও সমস্যা নয়।

ক্র্যাকিং থিওরিতে আপডেট

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

এই সাইটটি জিপিইউ ব্যবহার করে প্রতি সেকেন্ডে 2,300,000,000 SHA1 হ্যাশ গণনা করতে সক্ষম হবে বলে দাবি করেছে। (বাস্তব বিশ্বের পরিস্থিতি সম্ভবত ধীর হবে, তবে আপাতত আমরা সেই উদ্ধৃত চিত্রটি ব্যবহার করব)।

((95 ^ 4) / 2300000000) / 2) * 10000 = 177 সেকেন্ড

১০০ মুদ্রণযোগ্য এএসসিআইআই অক্ষরের পূর্ণ পরিসর দেওয়া হয়েছে, সর্বোচ্চ ৪ টি অক্ষরের দৈর্ঘ্য সহ গণনার হার (ভেরিয়েবল) দ্বারা বিভক্ত, ১০ দ্বারা বিভক্ত (পাসওয়ার্ড আবিষ্কারের জন্য গড় সময় ধরে নেওয়া হবে গড়ে 10,000% অনুমানের প্রয়োজন হবে) 10,000 দৈর্ঘ্য <= 4 যেখানে রয়েছে তাদের ব্যবহারকারীর পাসওয়ার্ডগুলি ব্যবহার করতে 177 সেকেন্ড সময় লাগবে

আসুন বাস্তবতার জন্য এটি কিছুটা সামঞ্জস্য করি।

((36 36 ^ 7) / 1000000000) / 2) * 10000 = 2 দিন

একটি পাসওয়ার্ডের দৈর্ঘ্য <= 7, কেবলমাত্র আলফানিউমেরিক অক্ষর সহ, নন কেস সংবেদনশীলতা ধরে নিলে 10,000 ব্যবহারকারী রেকর্ডের সমাধান করতে 4 দিন সময় লাগবে এবং আমি ওভারহেড এবং অ-আদর্শ পরিস্থিতিতে প্রতিফলিত করতে অ্যালগরিদমের গতি অর্ধেক করে রেখেছি।

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

এই কাজটি আরও গণনামূলকভাবে ব্যয়বহুল করার জন্য বার বার এক পাসওয়ার্ড বারবার হ্যাশ করার ক্ষেত্রে দেওয়া হয়েছে:

(((36 ^ 7) / 1 000 000 000) / 2) * 1000 সেকেন্ড = 10.8839117 ঘন্টা

এটি এক ব্যবহারকারীর জন্য উদ্ধৃত চিত্র থেকে অর্ধেকেরও কম গতিতে কার্যকরভাবে সর্বোচ্চ 7 টি আলফা-সংখ্যাযুক্ত অক্ষরের প্রতিনিধিত্ব করে ।

পুনরাবৃত্তভাবে 1000 বার হ্যাশ কার্যকরভাবে একটি কম্বল আক্রমণকে অবরুদ্ধ করে, তবে ব্যবহারকারীর ডেটাগুলিতে লক্ষ্যযুক্ত আক্রমণগুলি এখনও ঝুঁকিপূর্ণ।


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

25
কারণ ক্র্যাকারগুলি স্লাগসের মতো এবং লবণ তাদের ত্বকের শ্লেষ্মা শুকিয়ে ফেলে এবং তাদের হত্যা করে।
টেড

6
@ টেড: আমি বরং স্যালটেড ক্র্যাকার পছন্দ করি। সল্ট স্লাগস, এত বেশি নয়।
হতাশিত

4
@ টম - আপনার উদাহরণের আক্রমণে। যদি সেখানে লবণ না থাকে তবে আক্রমণকারী "প্রতিটি সাধারণ পাসওয়ার্ডের জন্য, পাসওয়ার্ড হ্যাশ করতে পারে this এটি কি এক বা একাধিক ব্যবহারকারীর সাথে মেলে? হ্যাঁ, আমি তাদের পাসওয়ার্ড পেয়েছি" - আক্রমণকারী "সমস্ত সমান্তরালে" পাসওয়ার্ড আক্রমণ করতে সক্ষম , কোনও অতিরিক্ত ব্যয় ছাড়াই।
ড্যামিয়েন_এই_ অবিশ্বাস্য

4
@ টম গ্লেন - আপনার কাছে কেবল অর্ধেক ছবি রয়েছে। লবণ ছাড়াই কোনও আক্রমণকারী আপনার "আপডেট 2" তে প্রদর্শিত পদ্ধতিটি ব্যবহার করবে না। তিনি কেবল একটি টেবিলের মধ্যে সন্ধান করতে চান এবং ও (1) বা ও (লগ এন) সময় (এন পরীক্ষার্থীর পাসওয়ার্ডের সংখ্যা হওয়ায়) এর পাসওয়ার্ড পান। লবণ যা এটিকে প্রতিরোধ করে এবং আপনার প্রদর্শিত ও (এন) পদ্ধতির ব্যবহার করতে তাকে বাধ্য করে। অন্য কৌশল (কী-শক্তিশালীকরণ) আপনার লুপের প্রতিটি প্রয়াসকে পুরো দ্বিতীয় সেকেন্ডে নিয়ে যাওয়ার কারণ হতে পারে যার অর্থ এই পরীক্ষাগুলি সম্পাদন করতে 3 বছর সময় লাগবে ... এবং কেবল 10 কে পাসওয়ার্ড দিয়ে আপনি সম্ভবত শূন্য পাসওয়ার্ড ক্র্যাক করতে পারেন সময়
ইরিকসন

উত্তর:


31

হ্যাঁ, আপনাকে sha1 (নুন | পাসওয়ার্ড) এর জন্য মাত্র 3 দিন প্রয়োজন। এজন্য ভাল পাসওয়ার্ড স্টোরেজ অ্যালগরিদমগুলি 1000-পুনরাবৃত্তির হ্যাশিং ব্যবহার করে: আপনার 8 বছর প্রয়োজন হবে।


4
+1, সবচেয়ে সংক্ষিপ্ত এবং এ পর্যন্ত পয়েন্ট উত্তরের উত্তর, আমি জানতাম না এটি একটি বিকল্প ছিল।
টম গ্লেন

স্পষ্টতই আপনি কখনও আপনার সিস্টেমে একটি হ্যাশ মাপদণ্ড করেননি। আপনি প্রতি সেকেন্ডে অনেক মিলিয়নশান sha1 গণনা করতে পারেন । আক্রমণকারীটির কাছে একটি 1000 রাউন্ড অর্থহীন। এছাড়াও -1 কারণ sha1 একটি ভাঙা হ্যাশ ফাংশন।
রোক

স্পষ্টতই আমি প্রশ্ন থেকে নাম এবং নম্বর ব্যবহার করছি। যদি আপনি কখনও বিষয় এবং স্পষ্টতার মতো বিষয় সম্পর্কে শুনে থাকেন ... ওহ, এটি রুক। কিছু মনে করো না.
অকস্মাৎ জ্বলিয়া ত্তঠা

4
@ রুক, ১,০০০ রাউন্ডের অর্থ হ'ল বর্বর বল প্রয়োগ করতে এটি এক হাজার বার বেশি সময় নেবে আমার কাছে একটি ভাল বৈশিষ্ট্য বলে মনে হচ্ছে।
টম গ্লেন

যদি কোনও আক্রমণকারী কোনও পাসওয়ার্ড অনুমান করতে পারে তবে লগইন করার জন্য এটিই কি একই (বা আমার কাছে কিছু পালিয়ে গেল? লোল)
খালেদ_দেবদেব

62

এটি অভিধান আক্রমণ থামায় না।

হ্যাশগুলি থেকে পাসওয়ার্ডগুলি কী কী তা নির্ধারণ করতে আপনার পাসওয়ার্ড ফাইলটির অনুলিপিটি একটি রেইনবো টেবিল ব্যবহার করা থেকে পরিচালনা করে এমনটি হ'ল এটি ।

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

আপডেট :

আমার এটি আগে উল্লেখ করা উচিত ছিল, তবে কয়েকটি (সর্বাধিক?) পাসওয়ার্ড সিস্টেম প্রতিটি পাসওয়ার্ডের জন্য আলাদা লবণ ব্যবহার করে, সম্ভবত পাসওয়ার্ডের সাথেই সঞ্চিত থাকে। এটি একটি একক রেইনবো টেবিলকে অকেজো করে তোলে। UNIX ক্রিপ্ট গ্রন্থাগারটি এভাবেই কাজ করে এবং আধুনিক ইউনিক্স-এর মতো ওএস নতুন হ্যাশ অ্যালগরিদম সহ এই লাইব্রেরিটি প্রসারিত করেছে।

আমি এই বাস্তবতার জন্য জানি যে জিএনইউ ক্রিপ্টের নতুন সংস্করণগুলিতে SHA-256 এবং SHA-512 এর জন্য সমর্থন যুক্ত করা হয়েছিল।


17
+1 সল্ট হ্যাশগুলির প্রাক-গণিত তালিকাগুলি (রংধনু টেবিলগুলি) কার্যকর হতে বাধা দেয়। আক্রমণকারীকে অবশ্যই আবার শুরু করতে হবে।
ইয়ান বয়ড

4
পিএইচপি-তে, আপনি এমডি 5 বা শ 1 এর চেয়ে ভাল এনক্রিপশনের জন্য এমক্রিপ্ট বা বিক্রিপ্ট লাইব্রেরি ব্যবহার করতে পারেন। আপনি যদি এমডি 5 বা শা 1 এর সাথে আটকে থাকেন তবে আপনাকে 'প্রসারিত' করা উচিত, যেখানে আপনি ডাটাবেজে সঞ্চিত যা কিছু উপস্থিতি পৌঁছানোর আগে 1000 বারের পাসওয়ার্ডটি হ্যাশ করে। এটি এন্ট্রপিকে একই রাখে, তবে হ্যাশ গণনার সময় বাড়িয়ে তোলে।
মালফিস্ট

4
@ টম গ্লেন, আপনি কোন নিবন্ধগুলি পড়ছেন? স্ব-দাবী বিশেষজ্ঞ বা সমকক্ষ কোনও বৈজ্ঞানিক জার্নালে নিবন্ধ পর্যালোচনা করেছেন?
মালফিস্ট

7
এবং এটি আপনার গড় জো বিকাশকারীরা কীভাবে "সুরক্ষিত" সিস্টেম লিখতে পারে সেই ব্লগগুলি / সহায়তা পোস্টগুলি তৈরি করে। সুরক্ষা এমন কিছু নয় যা আপনি পক্ষে নিতে পারেন, এর জন্য বিস্তৃত জ্ঞান প্রয়োজন। এটা কি অন্যায়? সম্ভবত। এটি নিরাপদ? একটি ডিগ্রি। নিরাপত্তা বিশেষজ্ঞরা রয়েছে এমন কারণগুলি রয়েছে। তবে আবার, সমস্ত কিছুই ফোর্ট নক্সের মতো সুরক্ষিত হতে হবে না। এখানে সেরা নীতি হ'ল experts বিশেষজ্ঞদের দ্বারা ডিজাইন করা একটি প্রাক-বিল্ট সিস্টেম ব্যবহার করা এবং আপনার প্রয়োজনীয়তা মেটাতে এটি পরিবর্তন করা।
ম্যালফিস্ট

4
@ মিশেল: লম্বা লবণের সাথে, আপনাকে রামধনু টেবিলটিতে প্রদর্শিত হওয়ার জন্য সমস্ত সম্ভাব্য লবণের মানকে সংক্ষেপণ করতে হবে। মুল বক্তব্যটি হ'ল আপনি সমস্ত পাসওয়ার্ডের জন্য একই লবণ রাখেন না, আপনি প্রতিটি পাসওয়ার্ডের জন্য এলোমেলোভাবে চয়ন করেন এবং স্টোরেজ হ্যাশ-লবণযুক্ত পাসওয়ার্ডের পাশের ডাটাবেসে সংরক্ষণ করেন। সুতরাং, হ্যাকারকে প্রতিটি সম্ভাব্য বড়-মূল্যবান লবণের জন্য রংধনু টেবিলের প্রবেশের প্রয়োজন হবে, যার ফলে টেবিলটি খুব বড় আকারের হয়ে উঠবে, যা মূল বিষয়।
কলিন ডিক্লু

31

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

এটি প্রাক-গণিত অভিধান আক্রমণ থেকে আলাদা যেমন রেনবো টেবিলের সাথে জড়িত আক্রমণগুলি যেখানে লবণটি গোপনীয় কিনা তা বিবেচনা করে না।

উদাহরণ: একটি 64-বিট লবণ (অর্থাত্ 8 বাইট) দিয়ে আপনার অভিধানটি আক্রমণে আপনার 2 64 অতিরিক্ত পাসওয়ার্ড সংমিশ্রণ পরীক্ষা করতে হবে । 200,000 শব্দযুক্ত একটি অভিধানের সাহায্যে আপনাকে করতে হবে

200,000 * 2 64 = 3.69 * 10 24

সবচেয়ে খারাপ ক্ষেত্রে পরীক্ষা - 200,000 টেস্টের পরিবর্তে লবণ ছাড়া।

লবণের ব্যবহারের অতিরিক্ত সুবিধা হ'ল আক্রমণকারী তার অভিধান থেকে পাসওয়ার্ডের হ্যাশগুলি প্রাক-গণনা করতে পারবেন না। এটি কেবল খুব বেশি সময় এবং / অথবা স্থান নিতে পারে।

হালনাগাদ

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

আপডেট 2

সাধারণভাবে আপনার পাসওয়ার্ডের হ্যাশগুলি সুরক্ষিত করার বিষয়ে একটি ভাল পঠন (মূল প্রশ্নের বাইরেও কিন্তু আকর্ষণীয়):

রেইনবো টেবিলগুলি যথেষ্ট: নিরাপদ পাসওয়ার্ড স্কিমগুলি সম্পর্কে আপনার কী জানতে হবে

প্রবন্ধের সম্পুরক: ব্যবহার সঙ্গে নির্মিত হ্যাশ লবণাক্ত bcrypt (পটকা মাছ উপর ভিত্তি করে) বা Eksblowfish আপনি ধীর হ্যাশ করতে একটি কনফিগারযোগ্য সেটআপ সময় ব্যবহার করতে পারবেন।


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

4
-1 আমার কাছ থেকে: গোপন রাখা পুরোপুরি লবণের বিষয় নয়। যে কোনও উপায়ে পাসওয়ার্ড চেক করার জন্য আপনার এগুলি অ্যাক্সেসযোগ্য দরকার, সুতরাং তাদের গোপন রাখার যে কোনও প্রচেষ্টা প্রকৃতপক্ষে সফল হওয়ার চেয়ে যুক্ত জটিলতার মাধ্যমে সিস্টেমটিকে আরও দুর্বল করে তুলতে পারে।
মাইকেল বর্গওয়ার্ট

4
@ 0xA3: আবার: আক্রমণকারীর অজানা হওয়া কোনও লবণের বিষয় নয় । আপনার মেশিনটিকে কোনও উপায়ে এটি অ্যাক্সেস করা দরকার, সুতরাং কোনও আক্রমণকারী যিনি মেশিনে প্রবেশ করেন সেটিও এটি পেতে পারে। আক্রমণকারী লবণ জানেন না এমন যে কোনও দৃশ্য হ'ল একটি লাল রঙের হারিং।
মাইকেল বর্গওয়ার্ট

4
আমি মনে করি এটি উল্লেখ করার মতো যে লিঙ্কযুক্ত নিবন্ধটি রংধনু সারণীদের ভুল বর্ণনা করেছে। তিনি যা বর্ণনা করেছেন তা একটি সাধারণ অভিধান সংযুক্তি। রেইনবো টেবিলগুলি সত্যই বেশ আলাদা (এবং কিছুটা জটিল)। রেনবো টেবিলগুলি কীভাবে সত্যিই এখানে কাজ করে সে সম্পর্কে একটি চমত্কার শালীন ব্যাখ্যা রয়েছে : kestas.kuliukas.com/RainbowTables
জেরি কফিন

4
-1 "অবশ্যই নুনটি গোপন রাখা দরকার" জন্য for যদি কোনও আক্রমণকারী আপনার পাসওয়ার্ড হ্যাশগুলিতে অ্যাক্সেস করে থাকে তবে তার সাথে আপনার লবণের পরিমাণও থাকবে - আপনার যা প্রয়োজন ব্যবহারকারী হিসাবে প্রতি সল্ট, "লুকানো" লবণের অস্পষ্টতার দ্বারা সুরক্ষা নয়।
স্নেমার্চ

17

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

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

সেরা সল্টগুলি এলোমেলোভাবে কোনও ক্রিপ্টোগ্রাফিক র্যান্ডম নম্বর জেনারেটর থেকে বেছে নেওয়া হয়। আট বাইট একটি ব্যবহারিক আকার এবং 16 বাইটের বেশি কোনও উদ্দেশ্য করে না।


"আক্রমণকারীর কাজকে আরও বিরক্তিকর করা" এর চেয়ে সল্ট আরও অনেক কিছু করে। এটি আক্রমণের সম্পূর্ণ শ্রেণি-প্রাক্পিউটিউটেড অভিধানের ব্যবহারকে সরিয়ে দেয়।

সম্পূর্ণরূপে পাসওয়ার্ডগুলি সুরক্ষিত করার জন্য আর একটি উপাদান প্রয়োজনীয়, এবং এটি হ'ল "কী-শক্তিশালীকরণ"। SHA-1 এর এক রাউন্ড যথেষ্ট ভাল নয়: একটি নিরাপদ পাসওয়ার্ড হ্যাশিং অ্যালগরিদম গণনাগতভাবে খুব ধীর হওয়া উচিত ।

অনেকে PBKDF2, একটি কী শিক্ষাদীক্ষা ফাংশন ব্যবহার ফিড হ্যাশ ফাংশন ফিরে যে ফলাফল হাজার হাজার সময়ের। "বিসিক্রিপ্ট" অ্যালগরিদম একই, একটি পুনরাবৃত্তি কী ডেরিভিশন যা ধীর using

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


মন্তব্য

নীচে আমি প্রশ্নের উপর মন্তব্য করা আছে।


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

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

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

কী-শক্তিশালীকরণ হ'ল পি কে সি এস # 5 থেকে স্ট্যান্ডার্ড কী ডেরিওয়েশন অ্যালগরিদমস পিবি কেডিএফ 1 এবং পিবি কেডিএফ 2 এর একটি অংশ যা দুর্দান্ত পাসওয়ার্ড অবলম্বন অ্যালগরিদমগুলি তৈরি করে ("উত্পন্ন কী" হ্যাশ ")।

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


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

একটি সু-নকশিত পাসওয়ার্ড স্কিমের সাহায্যে এই লোকটির পক্ষে কোনও পাসওয়ার্ড পুনরুদ্ধার করা অসম্ভব হবে ।


4
আমি মনে করি যে "অভিধান আক্রমণ" দ্বারা টম জ্ঞাত দুর্বল পাসওয়ার্ডগুলি চেষ্টা করে (অর্থাত্ কোনও মানুষের ভাষার অভিধানের বাইরে), হ্যাশ-প্লেইন টেক্সট সারণি নয়, এটিও আমি প্রথম যখন "অভিধান" পড়ি তখন ভেবেছিলাম এই প্রসঙ্গে।
মাইকেল বর্গওয়ার্ট

@ মিশেল বার্গওয়ার্ট: আমি সম্মত, @ জিক্সন প্রাক-গণিত অভিধান আক্রমণকে বোঝায়।
ডার্ক ভোলমার 15

4
সল্ট প্রাক-গণিত অভিধান আক্রমণ থামায়। কী-শক্তিশালীকরণ অভিধান আক্রমণগুলি থামিয়ে দেয়। নিরাপদ পাসওয়ার্ড প্রমাণীকরণের জন্য উভয়ই একসাথে ব্যবহার করতে হবে।
ইরিকসন

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

7

সল্টিংয়ের বিষয়টি হ'ল আক্রমণকারীর প্রচেষ্টার মোড়কে রোধ করা।

কোনও লবণ ছাড়াই, প্রাক্পম্পিউটেড হ্যাশ-পাসওয়ার্ড এন্ট্রিগুলির একটি একক টেবিল (উদাহরণস্বরূপ, সমস্ত বর্ণমালা 5 অক্ষরের স্ট্রিংয়ের MD5, অনলাইনে সন্ধান করা সহজ) বিশ্বের প্রতিটি ডাটাবেসের প্রতিটি ব্যবহারকারীর জন্য ব্যবহার করা যেতে পারে।

সাইট-নির্দিষ্ট লবণের সাহায্যে আক্রমণকারীকে টেবিলটি নিজেই গণনা করতে হয় এবং তারপরে এটি সাইটের সকল ব্যবহারকারীর কাছে ব্যবহার করতে পারে।

প্রতি ব্যবহারকারী নুনের সাহায্যে আক্রমণকারীকে প্রতিটি ব্যবহারকারীর জন্য পৃথকভাবে এই প্রচেষ্টা ব্যয় করতে হবে।

অবশ্যই, এটি কোনও অভিধান থেকে সরাসরি দুর্বল পাসওয়ার্ডগুলিকে সুরক্ষিত করতে খুব বেশি কিছু করে না, তবে এটি এই orশ্বর্যকরণের বিরুদ্ধে যুক্তিসঙ্গত দৃ .় পাসওয়ার্ডগুলিকে সুরক্ষা দেয়।


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

6

এছাড়াও - আরও একটি দুর্বল বিন্দু - একটি ব্যবহারকারী নির্দিষ্ট লবণ ব্যবহার করে একই পাসওয়ার্ড সহ দুটি ব্যবহারকারী সনাক্ত করতে বাধা দেয় - তাদের হ্যাশগুলি মিলবে match এজন্য অনেক সময় হ্যাশ হ্যাশ হয় (লবণের + ব্যবহারকারীর নাম + পাসওয়ার্ড)

আপনি চেষ্টা করে এবং হ্যাশ গোপন রাখলে আক্রমণকারীও হ্যাশগুলি যাচাই করতে পারে না।

সম্পাদনা- উপরের মন্তব্যে সবেমাত্র মূল পয়েন্টটি লক্ষ্য করা গেছে।


4
প্রতি ব্যবহারকারী নুন নির্দিষ্ট করতে আপনার সম্পাদনা করা উচিত; সাইট-প্রশস্ত লবণের সাহায্যে সাইটগুলি আপনাকে অভিন্ন পাসওয়ার্ড সনাক্ত করতে দেয়।
10.33 এ স্নেমার্চ

@ স্নেমার্চ - হ্যাঁ- এই গুরুত্বপূর্ণ পার্থক্যের জন্য আপনাকে অনেক ধন্যবাদ!
ডোমিনিক ওয়েবার

5

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

সুতরাং আসুন আমরা এই SHA1 এর সাথে কাজ করে এই অ্যালগো দিয়ে আবিষ্কৃত সাম্প্রতিক শোষণগুলির সুবিধা নিয়ে বলি এবং বলি যে আমাদের একটি কম্পিউটার চলছে 1,000,000 হ্যাশ / সেকেন্ডে, একটি সংঘর্ষ খুঁজে পেতে 5.3 মিলিয়ন মিলিয়ন বছর সময় লাগবে তাই হ্যাঁ পিএইচপি 300 সেকেন্ডে কাজ করতে পারে, বড় উওফ, আসলে কিছু যায় আসে না। আমরা লবণের কারণ হ'ল যদি কেউ সমস্ত সাধারণ অভিধানের বাক্যাংশ তৈরি করতে বিরত থাকে তবে (2 ^ 160 জন, 2007 এর যুগের শোষণগুলিতে স্বাগতম)।

সুতরাং আমি পরীক্ষার এবং প্রশাসকের উদ্দেশ্যে ব্যবহার করি এমন 2 জন ব্যবহারকারী সহ এখানে একটি আসল ডাটাবেস।

RegistrationTime        UserName        UserPass    
1280185359.365591       briang      a50b63e927b3aebfc20cd783e0fc5321b0e5e8b5
1281546174.065087       test        5872548f2abfef8cb729cac14bc979462798d023

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

আমি পাগল নই, আমি কেবল জানি এটি নিরাপদ। মজার স্বার্থে, পরীক্ষার পাসওয়ার্ডটি testsha1(sha1(1281546174.065087 + test) + test) = 5872548f2abfef8cb729cac14bc979462798d023

আপনাকে কেবলমাত্র এই ব্যবহারকারীর 27662aee8eee1cb5ab4917b09bdba31d091ab732জন্য একটি সম্পূর্ণ রেইনবো টেবিল তৈরি করতে হবে । এর অর্থ আমি আমার পাসওয়ার্ডগুলিকে সমস্ত একক রেইনবো টেবিলের সাথে আপস না করার অনুমতি দিতে পারি, হ্যাকারকে পরীক্ষার জন্য 27662aee8eee1cb5ab4917b09bdba31d091ab732, এবং আবার f3f7735311217529f2e020468004a2aa5b3e7f3e7b3de7 জন্য একটি সম্পূর্ণ রেইনবো টেবিল তৈরি করা দরকার। সমস্ত হ্যাশগুলির জন্য 5.3 মিলিয়ন মিলিয়ন বছর ফিরে দেখুন। মাত্র 2 ^ 80 হ্যাশগুলি সংরক্ষণ করার আকারের কথা চিন্তা করুন (এটি ভাল 20 ইওটাবাইটের বেশি ), এটি ঘটছে না।

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


আমি বুঝতে পারি একটি রংধনু টেবিল কী, তবে আপনি আমার প্রশ্নের বিন্দুটি অনুপস্থিত। আপনি যদি আমাকে আপনার সল্টিং অ্যালগরিদম, একটি হ্যাশ পাসওয়ার্ড এবং লবণ সরবরাহ করেন তবে হ্যাঁ আমি সম্ভবত আপনাকে বলতে পারি যে আপনার পাসওয়ার্ডটি কয়েক মিনিটের মধ্যে কী ছিল।
টম গ্লেন

তোমার মুখে তোমার টাকা ঢালো?
ছদ্মবেশে

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

4
সম্ভবত কয়েক সেকেন্ড, golubev.com/hashgpu.htm দেখুন যা "2300M / s SHA1 hashes প্রতি সেকেন্ড" হিসাবে উদ্ধৃত হিসাবে গণনা করতে GPU ব্যবহার করে। 1-6 অক্ষর থেকে শুরু করে 95 টি ASCII অক্ষরের পুরো পরিসীমা সহ আমরা এটি <6 মিনিটের মধ্যে ক্র্যাক করতে পারি। আমাদের যদি কেবল ছোট অক্ষরযুক্ত অক্ষর থাকে তবে দৈর্ঘ্যে <25 মিনিট পর্যন্ত 8 টি অক্ষর থাকে। 10,000 ব্যবহারকারীর রেকর্ডের একটি ডাটাবেস সহ, আমরা <200 সেকেন্ডে (((95 ^ 4) / 2300000000) / 2) * 10000) মধ্যে 4 টি চর পুরো ASCII পাসওয়ার্ডগুলি খুঁজে পেতে পারি। (উদ্ধৃত হওয়া থেকে বেশি ওভারহেড এবং উদ্ধৃত জিপিইউ গতি সম্ভবত আদর্শ পরিস্থিতি)।
টম গ্লেন

হ্যাঁ, সল্টিং আপনাকে সেই পাসওয়ার্ডটিকে জোর করাতে বাধা দেয় না। ((10 ^ 5) * (94 ^ 10)) = 10 10 24 উত্পন্ন করা আপনার পক্ষে শক্ত করে তোলে যদি ব্যবহারকারীরা 10-বর্ণের পাসওয়ার্ডের সাথে থাকে তবে হ্যাশ ছাড়াই 10 without 19 এর চেয়ে অনেক শক্ত much আবার, এটি একটি পাসওয়ার্ড ভাঙ্গা শক্ত করে তোলা নয়, প্রাক-প্রক্রিয়াজাত রেইনবো টেবিলের সাহায্যে সমস্ত পাসওয়ার্ড ভাঙা অপ্রয়োজনীয় করে তোলা। (এবং এখানে আমার গণিত পরীক্ষা করুন, তবে আমি প্রত্যেকের পাসওয়ার্ডের জন্য 10 ^ 25/2300000000/60/60/24/365/1000 = 137 869 ~ মিলিনিয়া বিশ্বাস করি)। যদি আমরা আরও শক্তিশালী পাসওয়ার্ড চাই তবে আমরা সেগুলিতে নুন না দিই, আমরা ডিফি-হেলম্যান কী এক্সচেঞ্জের মতো জিনিস ব্যবহার করি।
ছদ্মবেশে

3

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

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


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

2

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


2

কেবল সল্টিংয়ের মাধ্যমে হ্যাশ আক্রমণ (ব্রুটফোর্স বা অভিধান) রোধ করে না, এটি কেবল এটিকে আরও শক্ত করে তোলে; আক্রমণকারীকে হয় সল্টিং অ্যালগরিদম (যা সঠিকভাবে প্রয়োগ করা হলে আরও পুনরাবৃত্তি ব্যবহার করা হবে) বা অ্যালগোতে ব্রুটফোর্ডের সন্ধান করা দরকার, যা খুব সহজ না হলেও প্রায় অসম্ভব। সল্টিং প্রায়শই সম্পূর্ণভাবে রেইনবো টেবিলের অনুসন্ধানের বিকল্পটি বাতিল করে দেয় ...


1

লবণ রেইনবো টেবিল তৈরি করে আক্রমণকে আরও জটিল করে তোলে কারণ এটি একটি একক পাসওয়ার্ডের হ্যাশটিকে ক্র্যাক করা আরও শক্ত করে তোলে। কল্পনা করুন যে আপনার কাছে মাত্র 1 সংখ্যার ভৌতিক পাসওয়ার্ড রয়েছে। একটি রেইনবো টেবিল আক্রমণ সাথে সাথে এটিকে ক্র্যাক করবে crack

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

সুতরাং ধরে নিন আপনার লবণ সুরক্ষিত এবং এলোমেলো কিছু, বলুন ()% ISLDGHASKLU ( % #% #), হ্যাকারের রংধনু টেবিলটিতে 1 * ()% ISLDGHASKLU (*% #% #) এর জন্য প্রবেশের প্রয়োজন হবে। এখন একটি রংধনু টেবিল ব্যবহার করছে এমনকি এই সাধারণ পাসওয়ার্ডটি এখন ব্যবহারিক নয় is


দয়া করে আপডেট # 2 দেখুন, আপনার কেবল কাঁচা পাসওয়ার্ড থাকতে হবে এবং প্রতিটি ব্যবহারকারীর রেকর্ডের জন্য লবণের বিপরীতে সমস্ত হ্যাশ গণনা করতে হবে।
টম গ্লেন

4
শিওর টম, আমি সম্মত, তবে মুল বক্তব্যটি হ্যাকারকে প্রতিটি পাসওয়ার্ডের জন্য একবার লবণ ব্যবহার করা হলে সেই কুৎসিত সময় গ্রহণকারী প্রক্রিয়া করতে হবে । সুতরাং, লবণের ফলে একটি রংধনু টেবিলটি শক্ত ব্যবহার করা যায়।
কোরি হাউস

4
@ টম গ্লেন: সলটেড রেনবো টেবিল তৈরি করা কেবলমাত্র তখনই সম্ভব যদি সাইট-প্রশস্ত লবণের ব্যবহার করা হয়; প্রতি ব্যবহারকারীর সল্টিং রেনবো টেবিলের আক্রমণগুলিকে বেশ বেহুদা করে।
স্নেমার্চ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.