হ্যাশিং এবং এনক্রিপশন? একটি হ্যাশ মান কি, হ্যাশ এনক্রিপশন কি, এবং হ্যাশ ডিক্রিপশন কি?

হ্যাশিং বনাম এনক্রিপশন

একটি সাধারণ ভুল ধারণা রয়েছে যে হ্যাশিং এবং এনক্রিপশন একই জিনিস । তারা নয় । হ্যাশ অপরিবর্তনীয় । উদাহরণ হিসাবে নিম্নলিখিত উদাহরণটি নিন:

$ echo -n Password123 | md5sum
42f749ade7f9e195bf475f37a44cafcb -

আমরা "Password123" স্ট্রিংটি পাস করি MD5 অ্যালগরিদম (algo), যা গাণিতিক ক্রিয়াকলাপ সম্পাদন করে এবং উত্পন্ন হেক্সাডেসিমাল এনকোডেড হ্যাশ প্রদান করে । একই হ্যাশ আউটপুট মান পাওয়ার একমাত্র উপায় হল algo কাঁচা ইনপুট করা । দ্বন্দ্ব আছে, তবে আমরা পরে আলোচনা করতে পারি ।

বেশিরভাগ হ্যাশিং অ্যালগরিদম হেক্সাডেসিমাল এনকোডেড নির্দিষ্ট দৈর্ঘ্যের বাইনারি স্ট্রিং আউটপুট করে । অন্যরা, এই উদাহরণের মতো, আউটপুট হিসাবে base64-এনকোডেড স্ট্রিং ব্যবহার করে । দয়া করে মনে রাখবেন যে দৈর্ঘ্য সবসময় একই:

{SHA} uNF8eZRJ8jmr8WTjyocRJPVpe7w=
{SHA}lqdu/Zr6o2dgIER8Up1/7lcUtgw=
{SHA}qYUOwLMlDEuukA5HCT4LR1kQzco=
{SHA}MXZBCpyWJ7TTs1w2kgGJslwNwTg=
{SHA}2sAPLaUh9Mz0bI+XxKEg7qyABe8=

TL; ড.

এনক্রিপশন রিভার্সিবল, হ্যাশ নয়


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

foobar             | U2FsdGVkX19G+KtytNHdj6yH2AVvX26pEmtunS/PRnU= 
foobarfoobar       | U2FsdGVkX18sPpIvN6nVh68lOUCcb3gR2fKbCCnBxog= 
foobarfoobarfoobar | U2FsdGVkX1/EOnUt57TCW4Rh0EdNnWX+lDatuQv2xEXXeAeowW0XG/EXJUe9aSUz 

$ বিড়াল এনক্রিপ্টেড_পাসওয়ার্ড 
U2FsdGVkX19G KtytNHdj6yH2AVvX26pEmtunS/PRnU= 
U2FsdGVkX18sPpIvN6nVh68lOUCcb3gR2fKbCCnBxog= 
U2FsdGVkX1/EOnUt57TCW4Rh0EdNnWX lDatuQv2xEXXeAeowW0XG/EXJUe9aSUz 

$ for i in `cat encrypted_passwords`;  do echo $i | openssl enc -base64 -d -aes-256-cbc -পাস পাস:asdf;  প্রতিধ্বনি; সম্পন্ন 
ফুবার 
ফুবারফুবার 
foobarfoobarfoobar 

এখন আপনি ভাবতে পারেন: আপনি সম্ভবত সঠিক । যাইহোক, মূল উপাদানগুলি অবশ্যই সিস্টেমের জন্য অ্যাক্সেসযোগ্য হতে হবে যার অর্থ মূলত একটি প্লেইন টেক্সট মাস্টার পাসওয়ার্ড কোথাও অবস্থিত - তা RSA কী বা পাসওয়ার্ড বা ফাইলে, ডাটাবেসে এমবেড করা, একটি অ্যাপ্লিকেশনে হার্ড-কোডেড বা মেমরিতে কোথাও অবস্থানের পাসওয়ার্ড । pfft, কেউ তাদের ব্যবহারকারীদের' পাসওয়ার্ড

এনক্রিপ্ট করার জন্য কী হিসাবে asdf ব্যবহার করবে না MD5 এর জন্য একই স্ট্রিং ব্যবহার করুন:

foobar             | 3858f62230ac3c915f300c664312c63f 
foobarfoobar       | 59faa421729e846dd800dce59943bfc0 
foobarfoobarfoobar | 1352aadab322d1a033c27964be0965db

হ্যাশ পাসওয়ার্ড নিখুঁত হতে অনেক দূরে, আসলে এটি কিছুটা খারাপ, তবে এটি এনক্রিপশনের চেয়ে খারাপ কারণ এটি যা অর্জন করার চেষ্টা করে । ব্যবহারকারীরা পরম ন্যূনতম প্রয়োজনীয়তা নির্বাচন করে না এবং একাধিক সাইটে এটি ব্যবহার করতে পারে । অনেক "হ্যাক" আসলে শংসাপত্র পুনঃব্যবহার আক্রমণ ছাড়া আর কিছুই নয় । যদি প্রাথমিক আপস এনক্রিপশন ব্যবহার করা হয়, তাহলে আক্রমণকারীকে একমাত্র প্রচেষ্টা করতে হবে যা সমস্ত পাসওয়ার্ড ডিক্রিপ্ট করে এমন কী খুঁজে বের করা । হ্যাশ করার জন্য, তাদের অন্তত তাদের ক্র্যাক করার জন্য প্রচেষ্টা করতে হবে । আধুনিক অ্যালগরিদম যেমন sha512crypt, bcrypt, scrypt বা argon2 এর সাথে ব্যবহার করা হলে, হ্যাশ হ্যাক করতে অনেক প্রচেষ্টার প্রয়োজন হতে পারে ।



marinated

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

ওয়েবসাইটগুলি কখনও কখনও এটিকে এলোমেলো করে এবং সমস্ত ব্যবহারকারীদের জন্য সার্বজনীন লবণ ব্যবহার করে; এটি উদ্দেশ্যের বিরুদ্ধে ।

নিম্নলিখিত লবণযুক্ত SHA1 হ্যাশ মান:


b353977827f67a4ae0318f3a9447fae1c13d9d90:b8d18ca 
|___________________________________________| 
                  হ্যাশ                  |  লবণ 
                                        | 
                                    বিভাজক

এই হ্যাশের প্লেইন টেক্সট হল "পাসওয়ার্ড"। এর লবণ মান "b8d18ca" এবং SHA1 ($salt.$pass) এর API ব্যবহার করে । এর মানে হল যে অ্যালগরিদম পাসওয়ার্ডের প্লেইন টেক্সট পায়, লবণ তৈরি করে এবং প্লেইন টেক্সটের সামনে যোগ করে । যখন একটি ওয়েবসাইট বা অ্যাপ্লিকেশন আপনার পাসওয়ার্ড যাচাই করার চেষ্টা করে, ভবিষ্যতে, এটি আপনার প্লেইনটেক্সট পাসওয়ার্ডকে ইনপুট হিসাবে নেবে, সংরক্ষিত হ্যাশে লবণের মান পড়বে, এটি আপনার পছন্দের পাসওয়ার্ডের সামনে যুক্ত করবে এবং ফলস্বরূপ হ্যাশকে সংরক্ষিত হ্যাশের সাথে তুলনা করবে । মান । ক্র্যাকিং যদি আপনি না জানেন যে এর একটি অংশ লবণ, হ্যাশ নিম্নলিখিত প্লেইন টেক্সট তৈরি করবে:

b8d18capassword

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

আমাদের GTX 980 cracks SHA1($salt.$pass) at 3576.8 MH/s or 3.5 বিলিয়ন প্রার্থী প্রতি সেকেন্ড 
আমাদের  হ্যাশলিস্ট   রয়েছে   1000   অনন্য   লবণ 

3,500,000,000 / 1000 = 3,500,000 প্রার্থী প্রতি সেকেন্ড

এটি তিন ক্রম ধীর, 99.9% ক্ষতি । স্ট্যাটিক লবণ ব্যবহার করার সময় এটি দেখতে এরকম:

আমাদের GTX 980 ফাটল SHA1($salt.$pass) এ 3576.8 MH/s অথবা 3.5 বিলিয়ন প্রার্থী প্রতি সেকেন্ড 
আমাদের  হ্যাশলিস্ট   রয়েছে  1  অনন্য  লবণ 
               
3,500,000,000 / 1 = 3,500,000,000 প্রার্থী প্রতি সেকেন্ড

যদি এটি কোন মানে না হয়, তাহলে পড়তে থাকুন, আমাদের পরে সুন্দর চার্ট থাকবে...


পুনরাবৃত্তি

কেবল "এই প্লেইনটেক্সট হ্যাশ করুন" এর তুলনায় আরেকটি সাধারণ উন্নতি হল "এই প্লেইনটেক্সট হ্যাশ করুন, তারপর সেই ফলাফলটি হ্যাশ করুন, তারপর সেই ফলাফলটি হ্যাশ করুন" হাজার হাজার বার পুনরাবৃত্তি হয় । এইভাবে, একটি একক প্রার্থী পাসওয়ার্ড চেষ্টা করার সময় পাসওয়ার্ড ক্র্যাকারকে হাজার হাজার বার করতে হবে । এটিকে পুনরাবৃত্তি, লুপ বা পরিবর্তনশীল খরচ বলা হয় । কিছু পাসওয়ার্ড হ্যাশিং অ্যালগরিদম হার্ড-কোডেড পুনরাবৃত্তি রাউন্ড ব্যবহার করে; অন্যান্য গিট. এটি হ্যাশের একটি অংশে কনফিগারযোগ্য করে তোলে । উদাহরণস্বরূপ, md5crypt() লবণ সহ MD5 ব্যবহার করে এবং ঠিক 1000 বার লুপ করে । sha512crypt() একটি লবণ সহ sha512 ব্যবহার করে এবং কনফিগারযোগ্য সংখ্যার জন্য লুপ করে (ডিফল্ট 5,000)।

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


ক্র্যাকিং গতির উপর হ্যাশ টাইপের প্রভাব

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

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

আচ্ছা, এটি কাজ করবে না! সবচেয়ে শক্তিশালী হ্যাশ টাইপ অনেক ধীর, কিন্তু দ্রুত টাইপ শুধু কিছুই না হওয়া পর্যন্ত চূর্ণ করা হয়. আসুন লগারিদমিক এক্স-অক্ষ সময় ব্যবহার করে একই ডেটা স্কেল আবার চেষ্টা করি । যখন বারগুলি বাম থেকে ডানে চলে যায়, তখন তারা 10 দ্বারা শক্তি বৃদ্ধি করবে:

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



হ্যাশ টাইপ চিহ্নিত করুন

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

এখানে এবং এখানে এই কাজের জন্য কিছু চমৎকার সম্পদ প্রদান করা হয়েছে, যা উভয়ই দেখায় যে সাধারণ হ্যাশগুলি কেমন দেখায় ।

কালী লিনাক্সে "হ্যাশ-আইডেন্টিফায়ার" প্যাকেজ (এখানে পাওয়া যায়) পাওয়া যায় যা অজানা ধরনের হ্যাশ সনাক্ত করতে সহায়তা করে ।



সংঘর্ষ

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

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

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


পূর্ববর্তী নিবন্ধ:Hashcat পাসওয়ার্ড ক্র্যাকিং হার্ডওয়্যার
পরবর্তী নিবন্ধ:Hashcat কি? পাসওয়ার্ড ক্র্যাকিং প্রথম পদক্ষেপ [মৌলিক ভূমিকা]

সর্বশেষ নিবন্ধ

জনপ্রিয় ট্যাগ

পিন করা নিবন্ধ

  • Word/Excel/Pdf/PPT/RAR/zip/7z在线密码破解
  • offfice、PDF、压缩文件、WPS、在线密码恢复
  • hashcatonline.com在线密码破解版权所有2010-2025