গিট কেন একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন ব্যবহার করে?


139

গিট কেন দ্রুত নন-ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের পরিবর্তে SHA-1 , একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন ব্যবহার করে?

সম্পর্কিত প্রশ্ন:

ওভারফ্লো প্রশ্ন স্ট্যাক কেন গিট সংস্করণ নম্বর হিসাবে SHA-1 ব্যবহার করে? কেন গিট শৃঙ্খলার জন্য অনুক্রমিক সংখ্যার বিপরীতে SHA-1 ব্যবহার করে তা জিজ্ঞাসা করে।


ব্যক্তিগতভাবে আমি মনে করি যে এমনকি SHA-2 এর উপর ভাঙা SHA-1 ব্যবহার অকাল অপ্টিমাইজেশন ছিল।
কোডসইনচাওস

7
@ কোডসইনচাওস: এবং এ ছাড়াও কোডটিতে কোনও নির্দিষ্ট অ্যালগরিদম বেক করা ডিআই নীতির একটি ভয়াবহ লঙ্ঘন ছিল। কোথাও একটি এক্সএমএল কনফিগারেশন ফাইলে থাকা উচিত ;-)
স্টিভ জেসপ

গিট 2.16 (Q1 2018) সহ ডিসেম্বর 2017 আপডেট করুন: বিকল্প এসএইচএ সমর্থন করার প্রচেষ্টা চলছে: দেখুন " গিট আরও আধুনিক এসএইচএ কেন ব্যবহার করে না? "।
ভোনসি

কোন হয় ভাল 160-বিট বা উচ্চতর অ ক্রিপ্টো হ্যাশ। বেশিরভাগটি 32-বিট, 64-বিট বা 128-বিট ফাংশনগুলিকে অত্যন্ত অনুকূল করে তোলে। 128-বিট ঠিক আছে, তবে আমি অনুভব করি যে গিটের মতো একটি বড় প্রকল্পের জন্য 128-বিটটি কিছুটা কম। যদি একটি দ্রুত, উচ্চ-মানের 224/256-বিট হ্যাশ বের হয়ে আসে তবে এটি সম্ভবত আদর্শ।
Bryc

উত্তর:


197

TLDR;


2007 সালে যখন তিনি গিটকে গুগলে উপস্থাপন করেছিলেন তখন আপনি লিনাস টরভাল্ডস নিজে থেকেই এটি পরীক্ষা করতে পারেন :
(জোর আমার)

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

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

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

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


গিট 2.16 (Q1 2018) সহ ডিসেম্বর 2017 আপডেট করুন: বিকল্প এসএইচএ সমর্থন করার জন্য এই প্রচেষ্টা চলছে: দেখুন " গিট আরও আধুনিক এসএইচএ কেন ব্যবহার করে না? "।


আমি উল্লেখ করেছি " কীভাবে কোনও ব্লাটে SHA-1 সংঘর্ষকে পরিচালনা করবে? " যে আপনি একটি নির্দিষ্ট SHA1 উপসর্গ (এখনও একটি অত্যন্ত ব্যয়সাধ্য প্রচেষ্টা) সহ একটি অঙ্গীকারটি ইঞ্জিনিয়ার করতে পারেন । কিন্তু বিন্দু দেহাবশেষ এরিক বেসিনে "উল্লেখ করেছে : ক্রিপটোগ্র্যাফিক হ্যাশ গীত (" সংস্করণ কন্ট্রোল উদাহরণ দ্বারা (2011) বই :

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

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

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


গিতে হ্যাশ পরিবর্তন করার বিষয়ে আলোচনা নতুন নয়:

(লিনাস টরভাল্ডস)

মজিলা কোডের বাকী কিছুই নেই , তবে ওহে, আমি এটি থেকে শুরু করেছি। প্রি-স্পেসে আমার সম্ভবত পিপিসি এসএম কোড থেকে শুরু করা উচিত ছিল যা ইতিমধ্যে অবরুদ্ধভাবে ব্লক করেছিল - তবে এটি "20/20 hindsight" ধরণের জিনিস।

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

এবং আসল অপ্টিমাইজেশন লাভ কীভাবে পরিমাপ করা যায় সে সম্পর্কে আপনার যত্নবান হওয়া দরকার

(লিনাস টরভাল্ডস)

আমি আপনাকে অনেকটা গ্যারান্টি দিতে পারি যে এটি কেবল জিনিসের উন্নতি করে কারণ এটি সিসিপি তৈরি করে ক্রেপ কোড তৈরি করে, যা পি 4 সমস্যাগুলির মধ্যে কিছু লুকায়।

(জন টেপসেল - johnflux)

SHA-1 থেকে নতুন অ্যালগরিদমে গিট আপগ্রেড করার জন্য ইঞ্জিনিয়ারিংয়ের ব্যয় অনেক বেশি । কীভাবে এটি ভালভাবে করা যায় আমি নিশ্চিত নই।

সবার আগে আমাদের সম্ভবত গিটের একটি সংস্করণ স্থাপন করা দরকার (আসুন এই কথোপকথনের জন্য এটি সংস্করণ 2 বলুন) যা সেই স্থানটি পড়তে বা ব্যবহার না করে এমনকি একটি নতুন হ্যাশ মান স্লট করতে দেয় - এটি কেবল ব্যবহার করে SHA-1 হ্যাশ মান যা অন্য স্লটে রয়েছে।

এইভাবে একবার আমরা শেষ পর্যন্ত গিটের আরও নতুন সংস্করণ স্থাপন করি, আসুন এটিকে সংস্করণ 3 বলুন, যা SHA-1 হ্যাশগুলি ছাড়াও SHA-3 হ্যাশগুলি উত্পাদন করে, গিট সংস্করণ 2 ব্যবহার করা লোকেরা আন্তঃচালনা চালিয়ে যেতে সক্ষম হবে।
(যদিও এই আলোচনা অনুযায়ী, তারা ঝুঁকির মধ্যে পড়তে পারে এবং যারা কেবল তাদের SHA-1-শুধুমাত্র প্যাচগুলিতে নির্ভর করে তারা সংবেদনশীল হতে পারে be)

সংক্ষেপে, যে কোনও হ্যাশে স্যুইচ করা সহজ নয়।


ফেব্রুয়ারী 2017 আপডেট করুন: হ্যাঁ, সংঘর্ষকারী SHA1: ছিন্নভিন্ন.ইও গণনা করা তাত্ত্বিকভাবে সম্ভব

জিআইটি কীভাবে প্রভাবিত হয়?

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

কিন্তু:

এই আক্রমণটির জন্য 9,223,372,036,854,775,808 SHA1 গণনা প্রয়োজন। এটি একক-সিপিইউ কম্পিউটারের 6,500 বছর এবং একক-জিপিইউ কম্পিউটারের 110 বছর হিসাবে সমতুল্য প্রক্রিয়াকরণ শক্তি গ্রহণ করেছে।

সুতরাং আসুন এখনও আতঙ্কিত না।
" গিট কীভাবে কোনও ব্লাবের সাথে SHA-1 সংঘর্ষের হাতল ধরবে? " এ আরও দেখুন।


8
দেখে মনে হচ্ছে এক্সএক্স্যাশের মতো উচ্চমানের নন-ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলির সাম্প্রতিক ফসলটি কিছুটা দেরিতে বেরিয়ে এসেছিল - ডান গিটের পরে।
প্রেক্সিওলিটিক

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

"আমরা জানি হ্যাশটি ভালভাবে বিতরণ করা হয়েছে এবং নির্দিষ্ট বিতরণ সংক্রান্ত সমস্যা নিয়ে আমাদের চিন্তা করার দরকার নেই" - কেন এটি স্ক্যামের জন্য একটি সমস্যা?

@ উত্সাহিত সংঘর্ষের হারটি এমন কোনও এসসিএমের পক্ষে উপযুক্ত উপযুক্ত হওয়ার জন্য যথেষ্ট কম যেখানে ডেটা সাধারণত এলোমেলো নয় তবে পরীক্ষা ফাইল হয়।
ভনসি

1
আসলে, ক্রিপ্টোগ্রাফিক হ্যাশ ব্যবহারের জন্য একটি সুরক্ষার কারণ রয়েছে। যখন কোনও লেখক (লিনাস বলুন) একটি প্রকাশ কাটাতে চায় (লিনাক্স বলে) লোকেরা ডাউনলোড করা উত্স কোডটি জানতে চায় যে লেখক প্রকাশের সাথে অন্তর্ভুক্ত করার কী ইচ্ছা করেছিল matches এই লক্ষ্যে মুক্তির শেষ প্রতিশ্রুতিবদ্ধ হ্যাশ ট্যাগ করা এবং ট্যাগ সই করা হয়। যদি ট্যাগটিতে শেষ হওয়া কমিট হ্যাশ চেইনটি ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত না হয় তবে লেখকের উদ্দেশ্য ছাড়া উত্সটি ধাক্কা দেওয়া যেতে পারে।
ক্রিস্টোফার কিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.