আপনি কোথায় আপনার লবণের স্ট্রিং সংরক্ষণ করবেন?


250

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

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

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

এটির জন্য কি কোনও প্রস্তাবিত সমাধান রয়েছে?


9
যদি এমন কোনও জায়গা থাকে যেখানে আপনি আক্রমণকারী পেতে না পারে এমন লবণ সংরক্ষণ করতে পারেন তবে আপনার কেবল পাসওয়ার্ডগুলি সেখানে সংরক্ষণ করতে হবে। তবে কেন প্রতিটি পাসওয়ার্ডের জন্য আলাদা লবণ ব্যবহার করবেন না?
jrockway

8
তিনি প্রতিটি পাসওয়ার্ড, জারকওয়ের জন্য আলাদা লবণ ব্যবহার করছেন।
অ্যাম্বার

9
আপনার লবণ কত বড়? আপনার লবণের পরিমাণ যথেষ্ট পরিমাণে (32 বিট?) হওয়া উচিত যা কার্যত কোনও সম্ভাবনা নেই যে এর জন্য একটি রংধনু টেবিল পূর্বরূপযুক্ত হয়েছে।
এম ডুডলি

@ এমডিডুডলে আজকাল আমি লবণ হিসাবে 64৪-বিট পূর্ণসংখ্যা ব্যবহার করার অভ্যাস করেছি, তবে তাদের আর দীর্ঘ করতে পারি না এমন কোনও কারণ নেই।
ফ্রেডো

10
PWDTK এর লেখক এখানে Sourceforge.net/projects/pwdtknet , সত্যি বলতে আমি চিন্তা করব না এবং আমি পাসওয়ার্ডের মতো একই ডিবিতে লবণ সংরক্ষণ করব। আপনার সবসময় ধরে নেওয়া উচিত যে কোনওভাবে আক্রমণকারীর কাছে লবণ পরিচিত তাই আপনার ফোকাসটি একটি লার্জ ক্রাইপ্টো-রেডম লবণ ব্যবহার করা এবং পর্যাপ্ত কী স্ট্রেচিং (পিবিকেডিএফ 2 তে পুনরাবৃত্তি) সম্পাদন করা উচিত যাতে একটি পরিচিত লবণের জন্য একটি করে রেইনবো টেবিল তৈরি করাও অসম্ভব। সতর্কতার সাথে আপনি অন্য কোথাও লবণের দ্বারা যা অর্জন করার চেষ্টা করছেন তা হ'ল "সুরক্ষা দ্বারা সুরক্ষা" এবং সাধারণত আপনি যখন অন্য সার্ভারের মতো জিনিসগুলির দিকে তাকান তখন কোনও লাভ হয় না pot
thashiznets

উত্তর:


259

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

প্রতি ব্যবহারকারী হিসাবে যতক্ষণ না তারা পৃথক ফাইলে লবণের সঞ্চার করার কোনও সত্যিকারের বিন্দু নেই - লবণের বিন্দুটি কেবল এটি তৈরি করা হয় যাতে একটি রেইনবো টেবিল ডিবিতে প্রতিটি পাসওয়ার্ড ভাঙতে না পারে।


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

ভাল পোস্ট, আমি একই জিনিস ভাবছিলাম। আমি কখনই ব্যবহারকারীর প্রতি লবণের কথা ভাবি নি আমি ভেবেছিলাম যে একটি ব্যবহারকারীর জন্য একটি লবণ কাজ করবে। অ্যাপ সার্ভার দ্বারা লোড হওয়া এক্সএমএল ফাইল হিসাবে সঞ্চিত লবণের কী হবে? অথবা কোনওভাবে কোনও সার্লেটে হার্ডকোড করা আছে?
জিগজাত

9
@ জিগজাত - আপনার যদি প্রতিটি ব্যবহারকারীর জন্য আলাদা লবণ না থাকে তবে সল্টিং অর্থহীন। লবণের বিষয়টি হ'ল হ্যাশগুলিকে প্রতিটি ব্যবহারকারীর পাসওয়ার্ডের জন্য পৃথক কাজ করা; যদি লবণের পরিমাণ সবার জন্য একই হয় তবে সে ক্ষেত্রে তা নয়।
অ্যাম্বার

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

অ্যাম্বার, আমি বিশ্বাস করি টমরিটার সঠিক is আলাদাভাবে লবণ সংরক্ষণের অর্থ হ'ল আক্রমণকারীকে কোনও সহজ অভিধান আক্রমণ এবং বনাম একটি আক্রমণাত্মক আক্রমণ ব্যবহার করার জন্য বাধ্য করার মধ্যে পার্থক্য। যদি আপনি লবণ জানেন, আপনি কেবল মিল অভিধানে আক্রমণ চালানোর সময় এটি সংযোজন করতে পারেন। যদি আপনি আপনার লবণের 100% প্রতিরক্ষা করতে পারেন তবে আপনি কেবল একই লবণ ব্যবহার করতে পারেন এবং আক্রমণকারীদের সমস্ত কিছুতে জোর করে চাপিয়ে দিতে পারেন (এমনকি তাদের ব্যবহারকারীদের জন্য যারা "পাসওয়ার্ড" তাদের পাসওয়ার্ড হিসাবে ব্যবহার করেন)। তবে আপনি কি আপনার লবণের প্রতিরক্ষা করতে পারেন .... সম্ভবত না। সুতরাং হ্যাশের পাশে এটি সঞ্চয় করে এবং শক্তিশালী পাসওয়ার্ড নিয়ম প্রয়োগ করে ব্যর্থতার পয়েন্টগুলি হ্রাস করতে পারে।
Ultratrunks

35

আমি এটিকে কিছুটা আলাদাভাবে সরবরাহ করব।

আমি সর্বদা নুনযুক্ত পাসওয়ার্ড হ্যাশের সাথে লবণ মিশ্রিত করি।

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

এই পদ্ধতির জন্য আমার যুক্তি:

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

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

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

এই উপসংহার ..

1) আপনার প্রমাণীকরণ অ্যাপ্লিকেশনটি সঠিক আকারে ব্যবহার করে এমন ডেটা কখনই সঞ্চয় করবেন না।

2) যদি সম্ভব হয় তবে অতিরিক্ত সুরক্ষার জন্য আপনার প্রমাণীকরণের যুক্তি গোপন রাখুন।

আরও একধাপ এগিয়ে যান ..

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

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

উদাহরণস্বরূপ, আপনি 512 বাইটের এলোমেলো লবণ উত্পাদন করেন। আপনি আপনার পাসওয়ার্ডে লবণ যুক্ত করুন এবং আপনার লবণাক্ত পাসওয়ার্ডের SHA-512 হ্যাশ পাবেন। এছাড়াও আপনি একটি এলোমেলো পূর্ণসংখ্যার 200 তৈরি করেন then তারপরে আপনি লবণের প্রথম 200 বাইট সংরক্ষণ করুন, তারপরে লবণাক্ত-পাসওয়ার্ড হ্যাশ এবং তারপরে লবণের অবশিষ্ট অংশ।

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

এই পদ্ধতির সুবিধা:

বর্ধিত সুরক্ষা - এমনকি আপনার প্রমাণীকরণের যুক্তিটি জানা থাকলেও সংকলনের সময় সঠিক যুক্তি অজানা। সঠিক যুক্তির জ্ঞান থাকা সত্ত্বেও, নিষ্ঠুর-আক্রমণ আক্রমণ করা কার্যত অসম্ভব। দৈর্ঘ্যের লবণের পরিমাণ আরও বাড়বে সুরক্ষা।

এই পদ্ধতির ধারণা:

যেহেতু সঠিক যুক্তিটি রান-টাইমে অনুমান করা হয়, তাই এই পদ্ধতিটি খুব সিপিইউ-নিবিড়। লবণের দৈর্ঘ্য যত বেশি হবে, এই পদ্ধতির তত বেশি সিপিইউ নিবিড় হয়ে উঠবে।

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

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


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

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

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

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

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

23

প্রায়শই, তারা হ্যাশগুলিতে চাপ দেওয়া হয় এবং একই ক্ষেত্রে সংরক্ষণ করা হয়।

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

আপনার যদি আরও সুরক্ষিত স্টোরেজ অবস্থান থাকে তবে কেবল হ্যাশগুলি সেখানে সংরক্ষণ করার অর্থ হবে।


4
তবে যদি সমস্ত হ্যাশ পাসওয়ার্ডগুলি তাদের মিলে যাওয়া লবণ সহ ফাঁস হয়ে যায় তবে কী হবে? এটা কি ঠিক অনিরাপদ নয়?
মিগাছাই

10
@ এমঘাওই তবে আপনি যদি "পাসওয়ার্ড" জানতে চান তবে আপনাকে এখনও প্রতিটি লবণের জন্য একটি রেইনবো টেবিল তৈরি করতে হবে, যদি না কিছু সল্ট একই রকম হয়।
ফ্র্যাঙ্কলিন

4

উইলিয়াম পেনবার্থির এএসপি.নেট এমভিসি 4 ওয়েব অ্যাপ্লিকেশন বইয়ের বিকাশের উপর ভিত্তি করে:

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

যদি অ্যাপ্লিকেশনটি যদিও উভয় ডাটাবেসে প্রমাণীকরণ করতে পারে তবে আক্রমণকারী যদি অ্যাপ্লিকেশন কোডটি আপস করে থাকে তবে এটি মূলত একই নয় যে এটি একটি ডাটাবেস ছিল?
জন আর্নেস্ট

0

একটি লবণের মূল উদ্দেশ্য হ'ল সমস্ত রংধনু টেবিলকে অকেজো করে দেওয়া এবং সেগুলির একটি নতুন সেট তৈরি করা প্রয়োজন। একটি রেইনবো টেবিল তৈরি করতে স্ট্রিংটি অনুমান করতে যতক্ষণ সময় লাগে। উদাহরণস্বরূপ "পাসওয়ার্ড" এর SHA-256 হ্যাশ 5e88 4898 da28 0471 51d0 e56f 8dc6 2927 7360 3d0d 6aab bdd6 2a11 ef72 1d15 42d8। "লগপ্যাসওয়ার্ড" এর মতো একটি লবণ যুক্ত হওয়ার পরে হ্যাশ করা নতুন স্ট্রিংটি হ'ল "পাসওয়ার্ডপ্যাসওয়ার্ড" যা হিমস্রাবের প্রভাবের কারণে নাটকীয়ভাবে আউটপুট পরিবর্তন করে 457b f8b5 37f1 802e f9c8 2e46 b8d3 f8b5 721b 7cbb d485 f0bb e523 bfbe 73e6 58d6

সাধারণত লবণটি পাসওয়ার্ডের মতো একই ডাটাবেসে সঞ্চিত থাকে, কারণ যদি একটি ডাটাবেস হ্যাক হয় তবে সম্ভবত অন্যটিও হবে।

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