ব্যবহারকারীর পাসওয়ার্ড লবণের জন্য সর্বোত্তম দৈর্ঘ্য কত? [বন্ধ]


128

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


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

2
যারা জানেন না তাদের জন্য লবণ কী: <a href=" en.wikedia.org/wiki/Salt_(cryptography)"> লবণের (ক্রিপ্টোগ্রাফি) </a> উইকিপিডিয়ায়
ডেভিড কোয়েল

1
অথবা ল্যাশের দৈর্ঘ্যের হ্যাশ আউটপুটের দৈর্ঘ্যের জন্য সর্বোত্তম অনুপাত যদি থাকে? HMAC-SHA-256 এর জন্য 8-বাইট লবণ যথেষ্ট হতে পারে, তবে HMAC-SHA-512 এর পক্ষে নাও থাকতে পারে।
ক্রাইং কিং

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

-1 স্বীকার করা প্রশ্নটির উত্তর দেয় না (এমনকি চেষ্টাও করে)।
ব্যবহারকারী 359996

উত্তর:


70

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

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

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

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


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

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

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

3
দ্রুত দ্রষ্টব্য: লবণ হিসাবে ব্যবহারকারীর নাম ব্যবহার করা হলে, ব্যবহারকারীর নাম পরিবর্তন হলে এটি একটি সমস্যা হতে পারে an ব্যবহারিকভাবে (গ্রাহকের নকশার নথিতে যা বলা হয় তা সত্ত্বেও) আমি দেখতে পেয়েছি যে ব্যবহারকারীরা প্রায়শই ব্যবহারকারীর নাম পরিবর্তন করতে চান।
সাইলেন্ট স্টিল

5
@ নাটেক-কে, আপনি যে সাইট প্রতি লবণের কথা বলছেন তাকে মরিচ বলা হয়।
পেসারিয়ার

35

পাসওয়ার্ডগুলি হ্যাশিংয়ের জন্য বর্তমানে গৃহীত মানগুলি প্রতিটি পাসওয়ার্ডের জন্য একটি নতুন 16 টি অক্ষরের দীর্ঘ লবণ তৈরি করে এবং পাসওয়ার্ড হ্যাশ দিয়ে লবণ সংরক্ষণ করে।

অবশ্যই সত্যিকারের এলোমেলো লবণের জন্য সঠিক ক্রিপ্টোগ্রাফিক যত্ন নেওয়া উচিত।


6
চরিত্রটি কিছুটা অসুস্থ সংজ্ঞায়িত। আপনার বাইট বলা উচিত ।
কোডসইনচওস

10
@CodesInChaos আমি তোমাদের গড় বিশ্বাস অক্টেট ;-)
user2864740

1
ওহে! দেখে মনে হচ্ছে উইকিপিডিয়া নিবন্ধটি পরিবর্তিত হয়েছে - সম্ভবত আপনি এন.ইউইকিপিডিয়া.আর / উইকি / পিবিকেডিএফ 2 বা অন্য কিছু উল্লেখ করতে পারেন?
বরিস ট্রুখভ


24

সম্পাদনা করুন: আমার নীচের উত্তরটি জিজ্ঞাসিত প্রশ্নের উত্তর দেয়, তবে "আসল" উত্তরটি হ'ল: কেবলমাত্র ব্র্যাক্রিপ্ট , স্ক্রিপ্ট বা আরগোন 2 ব্যবহার করুন । আপনি যদি এই জাতীয় প্রশ্ন জিজ্ঞাসা করেন তবে আপনি প্রায় খুব কম স্তরে সরঞ্জামগুলি ব্যবহার করছেন।

সত্যিই, ল্যাশটি হ্যাশ পাসওয়ার্ডের মতো একই লম্বা দৈর্ঘ্যের না হওয়ার কোনও কারণ নেই ens আপনি যদি SHA-256 ব্যবহার করে থাকেন তবে আপনার কাছে 256-বিট হ্যাশ রয়েছে। 256-বিট লবণ ব্যবহার না করার কোনও কারণ নেই।

256 টিরও বেশি বিট গাণিতিকভাবে আপনাকে সুরক্ষার কোনও উন্নতি করতে পারে না। তবে একটি ছোট লবণের সাথে সর্বদা এমন পরিস্থিতি শেষ হতে পারে যেখানে একটি রেইনবো টেবিলটি আপনার লবণের দৈর্ঘ্য অবধি ধারণ করে - বিশেষত স্বল্পতর লবণের সাহায্যে।


10
এটি এত বড় চুক্তি নয়; ব্যবহারকারী সবেমাত্র একটি মিলিসেকেন্ড হ্যাশ এবং একটি অর্ধ সেকেন্ড হ্যাশ মধ্যে পার্থক্য লক্ষ্য করবে, প্লাস পাসওয়ার্ড হ্যাশিং প্রকৃত বাহিনী আক্রমণ কমিয়ে দিতে আরও বেশি সময় নেওয়া উচিত - যদিও ১৫ মিনিটের জন্য লক আউট থাকা সাধারণত তিনটি স্ট্রাইকই ভাল। আপনি কি এটি করতে সিপিইউ চক্রটিকে "নষ্ট" করছেন? হ্যা যাইহোক. সিপিইউ যেহেতু বেশিরভাগ ওয়েবসাইটের চেয়ে বেশি অলস সময় ব্যয় করে, তাতে কী আসে যায়? আপনি যদি পারফরম্যান্স সম্পর্কিত সমস্যাগুলি নিয়ে চলেছেন তবে স্কেল আউট করুন।
র্যান্ডলফো

14
সল্ট রেইনবো টেবিলের বিরুদ্ধে রক্ষা করে। 256-বিট হ্যাশ সহ একটি 512-বিট লবণের ফলে কেবল চূড়ান্ত পাসওয়ার্ডে 256 বিট এনট্রপি দেওয়া হবে।
স্টিফেন টাউসেট

8
স্লো হ্যাশিং একটি বৈশিষ্ট্য, বাগ নয় not
outis

7
আপনার যদি 3-বিট হ্যাশ থাকে তবে আপনার 9999-বিট লবণটি কেবলমাত্র ইন্ট্রপির 3 টি বিট পর্যন্ত হ্যাশ করবে। একটি রেইনবো টেবিলটিতে প্রতিটি পাসওয়ার্ডের জন্য কেবল তিনটি লবণ সন্ধান করতে হবে যার ফলস্বরূপ ভিন্ন আউটপুট তৈরি হয় যা ধ্রুবক গুণক গুণক এবং এভাবে বিগ-ও থেকে বাদ দেওয়া হয়।
স্টিফেন টাউসেট

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

7

উইকিপিডিয়া :

লিনাক্স, বিএসডি ইউনিক্স এবং সোলারিসে ব্যবহৃত SHA2-crypt এবং bcrypt পদ্ধতিতে 128 বিটের লবণ থাকে। এই বৃহত্তর লবণের মানগুলি অদূর ভবিষ্যতের জন্য এই ব্যবস্থাগুলির বিরুদ্ধে প্রায় কোনও দৈর্ঘ্যের পাসওয়ার্ডকে অপরিবর্তনীয় করে তোলে।

128-বিট (16-বাইট) লবণ যথেষ্ট হবে। আপনি এটি 128 / 4 = 32হেক্সাডেসিমাল ডিজিটের ক্রম হিসাবে উপস্থাপন করতে পারেন ।


আমার কাছে মনে হয় যে অন্যান্য সুরক্ষিত সিস্টেমগুলি কী ব্যবহার করে তার একটি উদাহরণ সেরা-অনুশীলন কী তা একটি দুর্দান্ত উদাহরণ।
সিজেবার্থ

1
@ mklement0 ধন্যবাদ, আমি উত্তর আপডেট করেছি।
আন্দ্রি নেমচেঙ্কো

2

একটি উত্তর হতে পারে আপনি যে হ্যাশ ব্যবহার করতে যাচ্ছেন সেটির সুরক্ষার শর্তে যে পরিমাণ মান ব্যবহার করা হয় তার পরিমাণের হিসাবে লবণের আকার হিসাবে ব্যবহার করা যেতে পারে।

উদাহরণস্বরূপ, আপনি যদি SHA-512 ব্যবহার করতে যাচ্ছেন তবে SHA-512 দ্বারা সরবরাহিত সুরক্ষা 256 বিট হওয়ায় 256 বিট লবণ ব্যবহার করুন।

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