একাধিকবার পাসওয়ার্ড হ্যাশ করা কি আরও সুরক্ষিত?


43

আমি কয়েকবার পড়েছি যে পাসওয়ার্ডগুলি সংরক্ষণ করার সময়, স্ট্রিংগুলিকে 'ডাবল হ্যাশ' করা ভাল অনুশীলন (যেমন, এমডি 5 এর সাথে শ 1, উভয় লবণের সাথে, অবশ্যই) obvious

আমার অনুমান প্রথম প্রশ্নটি, "এটি কি আসলেই সঠিক?" যদি তা না হয় তবে দয়া করে এই প্রশ্নটির বাকি অংশটি খারিজ করুন :)

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

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

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

হতে পারে একটি উদাহরণ আমার ramplings ব্যাখ্যা করবে? 'হ্যাশ_ফানশন_এ' নিন যা 'এ' এবং 'বি' হ্যাশ '1' দেবে এবং 'সি' এবং 'ডি' হ্যাশ '2' দেবে। পাসওয়ার্ড সংরক্ষণ করতে এই ফাংশনটি ব্যবহার করে, পাসওয়ার্ডটি 'এ' হলেও, আমি পাসওয়ার্ড 'বি' ব্যবহার করতে পারি।

'Hash_function_b' নিন যা '1' এবং '2' কে হ্যাশ '3' দেবে। যদি আমি এটি 'hash_function_a' এর পরে 'গৌণ হ্যাশ' হিসাবে ব্যবহার করি তবে পাসওয়ার্ডটি 'a' হলেও আমি 'বি', 'সি' বা 'ডি' ব্যবহার করতে পারি।

সর্বোপরি, আমি পেয়েছি যে লবণের ব্যবহার করা উচিত, তবে তারা সত্যিই এই সত্যটি পরিবর্তন করে না যে প্রতিবার আমরা 'এক্স' ইনপুটগুলিকে 'এক্স এর চেয়ে কম' আউটপুটগুলিতে ম্যাপ করছি। ভাবি না।

কেউ দয়া করে আমাকে ব্যাখ্যা করতে পারেন যে আমি এখানে কী অনুপস্থিত তা কি?

ধন্যবাদ!

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


2
@ এস.লোট: আমি আসলে দেখতে পাচ্ছি না যে এটি প্রকৃত প্রশ্নের কীভাবে জবাব দেয়, যদিও ... এটি যা বলেছে তা হয় "এটি নিজেরাই করবেন না, এই জিনিসটি ব্যবহার করুন" বা "সময় নেওয়া ভাল!"! .. যার উত্তর দুটিই "এটি আসলে আরও সুরক্ষিত"। আবার, যদি না আমি কিছু মিস করছি।
নারিসিসাস

@ মেটালমিকেস্টার: হ্যাঁ, এটি গতকালের নিবন্ধ ছিল: thedailywtf.com/Articles/
হতাশ

এটি আইটি সুরক্ষার জন্য বিষয়বস্তু নয়, তবে এটি ক্রিপ্টোগ্রাফির জন্য ভাল ম্যাচের মতো দেখাচ্ছে। আসলে এটি এখানে এই প্রশ্নের সাথে অত্যন্ত মিল দেখায় ।

আমি এমন একটি সংস্থার কথা জানি যা অবিরাম ব্যবহার করতে চেয়েছিল MD5(password)। আমরা বলেছি এটি সুরক্ষিত নয়, সুতরাং তারা MD5(MD5(password))পরিবর্তে ব্যবহারের পরামর্শ দিয়েছিল ...
কনফিগারকারী

গৃহীত উত্তর সঠিক উত্তর নয়!
মার্কাস

উত্তর:


27

এটি সিকিউরিটি.স্ট্যাকেক্সচেঞ্জের উপর আরও উপযুক্ত তবে ...

সমস্যা

hash1(hash2(hash3(...hashn(pass+salt)+salt)+salt)...)+salt)

এটি কেবল চেইনের দুর্বলতম হ্যাশ ফাংশনের মতোই শক্তিশালী। উদাহরণস্বরূপ, যদি হ্যাশ (অন্তর্নিহিত হ্যাশ) একটি সংঘর্ষ দেয়, পুরো হ্যাশ চেইন একটি সংঘর্ষ দেবে ( চেইনে অন্যান্য হ্যাশগুলি নির্বিশেষে )।

একটি শক্তিশালী চেইন হবে

hash1(hash2(hash3(...hashn(pass + salt) + pass + salt) + pass + salt)...) + pass + salt)

এখানে আমরা প্রাথমিক সংঘর্ষের সমস্যা এড়াচ্ছি এবং আমরা মূলত চূড়ান্ত হ্যাশের পাসওয়ার্ডের উপর নির্ভর করে একটি লবণ তৈরি করি।

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


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

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

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

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

4
@ নারকিসাস: খুব সংক্ষিপ্ত উত্তরে: হ্যাঁ, এটি আরও সুরক্ষিত নয়। হ্যাঁ, সম্ভবত এটি আরও কম সুরক্ষিত।
উলিভিরাজর

54

বিভিন্ন হ্যাশিং অ্যালগরিদম ব্যবহার করা একটি খারাপ ধারণা - এটি এন্ট্রপি বাড়ানোর পরিবর্তে হ্রাস করবে।

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

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


2
এটা সঠিক উত্তর!
মার্কাস

@মার্কাস: আমি যে আলোচনাটি পড়েছি সে অনুসারে এটি কেবল যুক্ত হয়েছে "এবং ভাল লবণের" কারণে যা গ্রহণযোগ্য উত্তর দ্বারা সম্বোধন করা হয়েছে, তাই না? কেন এটি সঠিক এবং গ্রহণযোগ্য উত্তর নয়?
নার্সিসাস

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

@ নারিসিসাস এখানে মূল কীটি এনট্রপি। একই পদ্ধতি ব্যবহার করে বহুবার হ্যাশ করার বিপরীতে বহুবার বিভিন্ন পদ্ধতি ব্যবহার করে হ্যাশ করার মধ্যে পার্থক্য রয়েছে।
সাকিস্ক

3

আপনার নিজের পাসওয়ার্ড হ্যাশিং স্কিমটি লেখার চেষ্টা করবেন না যদি না আপনি ক্রিপ্টোগ্রাফি এবং / অথবা সুরক্ষা প্রকৌশল সংক্রান্ত কোনও কোর্স নিতে আগ্রহী হন।

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

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


1
https://crackstation.net/hashing-security.htm লিঙ্কটি ফায়ারওয়াল দ্বারা অবরুদ্ধ করা হয়েছে
gnat

1
@gnat কোনও কারণে, অবরুদ্ধ ইউআরএল সম্পর্কিত আপনার মন্তব্য আমি মিস করেছি। আমি এটি উইকিপিডিয়ায় একটি লিঙ্ক দিয়ে প্রতিস্থাপন করেছি।
এরওয়ান লেগ্রান্ড

2

সাধারণভাবে, আপনার একাধিক হ্যাশিং অ্যালগরিদম ব্যবহার করার দরকার নেই।

আপনার যা করা দরকার তা হ'ল:

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

একাধিক ইন্টিরিশন ব্যবহার করুন: কেবল 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 সেকেন্ড দেরি না করে) টেবিলগুলি তৈরি করতে পারে।


2
ওহো! দুঃখিত, আমার মন্তব্য (সময়সীমার প্যারামিটারের মাধ্যমে ইচ্ছাকৃতভাবে হ্যাশকে ধীর করে দেওয়ার বিষয়ে) গুরুত্ব সহকারে নেওয়া উচিত ছিল না ... আমি মনে করি আমি ইদানীং দিলবার্ট খুব বেশি পড়ছি।
হতাশ

2
sha (sha (sha (।।))) শে এর চেয়ে বেশি সুরক্ষিত নয়। যদি শ ফাংশনের এনট্রপি সর্বাধিক না হয় তবে এটি আসলে কম সুরক্ষিত।
ডেডালনিক্স

1
@ ডেডালনিক্স: এটি উল্লেখ করা গুরুত্বপূর্ণ যে এটি মূল পাসওয়ার্ডটি পুনরুদ্ধার করা সহজ করে না, তবে এটি একটি সংঘর্ষের পাসওয়ার্ড তৈরি করা সহজ করে তোলে যা প্রয়োজনীয় all
ব্রায়ান বোয়েচার

1
@ ডেডালনিক্স, আমি ডেল গ্রিবলের কণ্ঠে সেই মন্তব্যটি পড়েছি ।
জিগি

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

-1

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


4
আচ্ছা এটি এতটা বদলায় না। «একাধিক হ্যাশ» fucntion এক হিসাবে দেখা যেতে পারে এবং এর মতো দেখা যায়।
ডেডালনিক্স

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

-1

এটি আরও সুরক্ষিত নয়। তবে একই ফাংশনটির সাথে আপনার একাধিকবার হ্যাশের উপর ভিত্তি করে সনাক্তকরণের একটি প্রোটোকল রয়েছে।

এটি সেই পথে যায়। কম্পিউটারে এ সঞ্চিত মান হ্যাশ ^ n (পাস) A এ। বি কে সত্যায়ন করতে বলুন এবং বি কে পূর্ণসংখ্যা এন। বি গণনা হ্যাশ ^ (n-1) (পাস) করে এবং এটিকে আবার প্রেরণ করে

একটি চেক যা হ্যাশ (হ্যাশ ^ (এন -১) (পাস)) == হ্যাশ ^ n (পাস)। যদি এটি সত্য হয় তবে প্রমাণীকরণটি সম্পন্ন হয়। তবে তারপরে, একটি স্টোর হ্যাশ ^ (n-1) (পাস) এবং পরবর্তী প্রমাণীকরণ, এন এর পরিবর্তে বি এন -1 দেবে।

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

একটি অনুরোধের প্রমাণীকরণ এবং অখণ্ডতা নিশ্চিত করার জন্য একাধিক হ্যাশের অন্য ব্যবহার হ'ল হাতিয়ার HMAC। এইচএমএসি সম্পর্কে আরও তথ্যের জন্য http://en.wikedia.org/wiki/HMAC দেখুন

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

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