২০১২ সাল থেকে আমার পূর্ববর্তী উত্তরটি যুক্ত করার জন্য , এখন রয়েছে (ফেব্রুয়ারী 2017, পাঁচ বছর পরে) বিপর্যস্ত.ওর সাথে প্রকৃত SHA-1 সংঘর্ষের একটি উদাহরণ , যেখানে আপনি দুটি সংঘর্ষ পিডিএফ ফাইল নকল করতে পারেন: এটি একটি SHA- প্রথম পিডিএফ ফাইলে 1 ডিজিটাল স্বাক্ষর যা দ্বিতীয় পিডিএফ ফাইলটিতে বৈধ স্বাক্ষর হিসাবেও আপত্তিজনক হতে পারে।
এছাড়াও " বছরের পর বছর মৃত্যুর দ্বারে, বহুল ব্যবহৃত SHA1 ফাংশনটি এখন মারা গেছে " এবং এই চিত্রণটিও দেখুন ।
ফেব্রুয়ারির 26 তারিখ আপডেট করুন: লিনাস একটি Google+ পোস্টে নিম্নলিখিত বিষয়গুলি নিশ্চিত করেছেন :
(1) প্রথম বন্ধ - আকাশ পড়ছে না। সুরক্ষা স্বাক্ষর করার মতো জিনিসের জন্য ক্রিপ্টোগ্রাফিক হ্যাশ ব্যবহার করা এবং গিটের মতো বিষয়বস্তু-ঠিকানাযোগ্য সিস্টেমের জন্য একটি "সামগ্রী সনাক্তকারী" তৈরি করার জন্য একটি ব্যবহার করার মধ্যে একটি বড় পার্থক্য রয়েছে।
(২) দ্বিতীয়ত, এই বিশেষ SHA1 আক্রমণটির প্রকৃতির অর্থ হ'ল এটির বিরুদ্ধে প্রশমন করা খুব সহজ এবং ইতিমধ্যে দু'দিক প্যাচগুলি এই প্রশমনের জন্য পোস্ট করা হয়েছে।
(3) এবং অবশেষে, আসলে অন্য কিছু হ্যাশগুলিতে যুক্তিসঙ্গতভাবে সরল রূপান্তর রয়েছে যা বিশ্বকে ভাঙবে না - এমনকি পুরাতন গিট সংগ্রহস্থলগুলি it
এই রূপান্তরটি সম্পর্কে, Q1 2018 গিট 2.16 দেখুন হ্যাশ অ্যালগরিদমের প্রতিনিধিত্বকারী একটি কাঠামো যুক্ত করে। সেই রূপান্তরটির বাস্তবায়ন শুরু হয়েছে।
গিট 2.19 (Q3 2018) শুরু করে , গিট SHA-256 কে নিউহ্যাশ হিসাবে বেছে নিয়েছে এবং কোডে এটি সংহত করার প্রক্রিয়াতে রয়েছে (যার অর্থ SHA1 এখনও ডিফল্ট (Q2 2019, গিট 2.21) তবে SHA2 এর উত্তরসূরি হবে)
আসল উত্তর (25 ফেব্রুয়ারী) তবে:
- এটি একটি ব্লব জাল করতে দেয়, তবে গাছের এসএইএ -1 এখনও পরিবর্তিত হতে পারে যেহেতু নকল ব্লবের আকারটি মূলটির মতো নাও হতে পারে: দেখুন " গিট হ্যাশ কীভাবে গণনা করা হয় "; একটি ব্লব SHA1 সামগ্রী এবং আকারের উপর ভিত্তি করে গণনা করা হয় । যদিও
এটি কিছু সমস্যাgit-svn
আছে । বা বরং এখানে svn হিসাবে, নিজেই দেখা যাচ্ছে ।
- যেমনটি আমি আমার মূল উত্তরে উল্লেখ করেছি , এই জাতীয় প্রয়াসের ব্যয়টি এখনও আপাতদৃষ্টিতে নিষিদ্ধ (6,500 সিপিইউ বছর এবং 100 জিপিইউ বছর) " ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলির লাইফটাইমস " এ ভ্যালারি অনিতা অররাও দেখুন ।
- যেমন আগে মন্তব্য করা হয়েছিল, এটি সুরক্ষা বা বিশ্বাস সম্পর্কিত নয়, তবে ডেটা অখণ্ডতা (ডি-সদৃশ এবং ত্রুটি সনাক্তকরণ) যা সহজেই একটি দ্বারা সনাক্ত করা যায়
git fsck
, লিনাস টরভাল্ডস আজ উল্লেখ করেছেন। git fsck
এর পরে লুকিয়ে থাকা অস্বচ্ছ ডেটা সহ একটি প্রতিশ্রুতিবদ্ধ বার্তা সম্পর্কে সতর্ক করবে NUL
(যদিও NUL
সর্বদা একটি প্রতারণামূলক ফাইলে উপস্থিত থাকে না )।
প্রত্যেকে চালু হয় না transfer.fsck
, তবে গিটহাব করেন: কোনও ত্রুটিযুক্ত ত্রুটিযুক্ত বস্তু বা ভাঙা লিঙ্কের ক্ষেত্রে কোনও ধাক্কা বাতিল করা হবে। যদিও ... এটির একটি কারণ রয়েছে যা এটি ডিফল্টরূপে সক্রিয় হয় না ।
- একটি পিডিএফ ফাইলে স্বেচ্ছাসেবী বাইনারি ডেটা থাকতে পারে যা আপনি জাল সোর্স কোডের বিপরীতে একটি সংঘর্ষকারী SHA-1 তৈরি করতে পরিবর্তন করতে পারেন।
একই মাথা কমিট হ্যাশ এবং বিভিন্ন সামগ্রী সহ দুটি গিট সংগ্রহস্থল তৈরির আসল সমস্যা। এবং তারপরেও আক্রমণটি বিশৃঙ্খলাবদ্ধ থেকে যায় ।
- লিনাস যোগ করেছেন :
এসসিএমের পুরো বিষয়টি হ'ল এটি কোনও এক সময়ের ঘটনা সম্পর্কে নয়, ধারাবাহিক ইতিহাস সম্পর্কে। এর মূল কথাটিও হ'ল সফল আক্রমণটির জন্য সময়ের সাথে সাথে কাজ করা দরকার এবং এটি সনাক্তযোগ্য নয়।
আপনি যদি একবার এসসিএমকে বোকা বানাতে পারেন, আপনার কোডটি sertোকান এবং পরের সপ্তাহে এটি সনাক্ত হয়ে যায়, আপনি আসলে কার্যকর কোনও কাজ করেন নি। তুমি কেবল নিজেকে জ্বালিয়ে দিয়েছ।
জোয়ি হেস ঐ পিডিএফ চেষ্টা করে একটি গীত রেপো এবং তিনি দেখেন :
এতে একই SHA এবং আকার সহ দুটি ফাইল অন্তর্ভুক্ত রয়েছে, যা গিটটি যেভাবে শিরোনামটিকে সামগ্রীতে প্রেরণ করে তা বিভিন্ন ব্লবকে ধন্যবাদ জানায়।
joey@darkstar:~/tmp/supercollider>sha1sum bad.pdf good.pdf
d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a bad.pdf
d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a good.pdf
joey@darkstar:~/tmp/supercollider>git ls-tree HEAD
100644 blob ca44e9913faf08d625346205e228e2265dd12b65 bad.pdf
100644 blob 5f90b67523865ad5b1391cb4a1c010d541c816c1 good.pdf
এই সংঘর্ষকারী ফাইলগুলিতে অভিন্ন তথ্য সংযোজন করা অন্যান্য সংঘর্ষগুলি উত্পন্ন করে, প্রিপেন্ডিং ডেটা দেয় না।
সুতরাং আক্রমণটির প্রধান ভেক্টর (প্রতিশ্রুতি জাল করে) হ'ল :
- একটি নিয়মিত কমিট অবজেক্ট তৈরি করুন;
- পুরো কমিট অবজেক্ট + NUL বেছে নেওয়া উপসর্গ হিসাবে ব্যবহার করুন এবং
- সংঘর্ষকারী ভাল / খারাপ বস্তু উত্পন্ন করতে অভিন্ন-উপসর্গের সংঘর্ষ আক্রমণ ব্যবহার করুন।
- ... এবং এটি অকেজো কারণ ভাল এবং খারাপ প্রতিশ্রুতিবদ্ধ বস্তুগুলি এখনও একই গাছের দিকে নির্দেশ করে!
এছাড়াও, আপনি ইতিমধ্যে প্রতিটি ফাইলের সাথে থাকা SHA-1 এর সাথে ক্রিপটানালেটিসের সংঘর্ষের আক্রমণগুলি সনাক্ত করতে পারেন cr-marcstevens/sha1collisiondetection
গিটে নিজেই অনুরূপ চেক যুক্ত করার জন্য কিছু গণনা ব্যয় হবে ।
হ্যাশ পরিবর্তন করার বিষয়ে, লিনাক্স মন্তব্য করেছে :
হ্যাশের আকার এবং হ্যাশ অ্যালগরিদমের পছন্দ স্বাধীন সমস্যা।
আপনি সম্ভবত যা করতে চান তা হ'ল 256-বিট হ্যাশে স্যুইচ করুন, এটি অভ্যন্তরীণভাবে এবং নেটিভ গিট ডাটাবেসে ব্যবহার করুন এবং তারপরে ডিফল্টরূপে কেবল
হ্যাশটিকে 40-অক্ষরের হেক্স স্ট্রিং হিসাবে দেখান (এ জাতীয় ধরণের কীভাবে আমরা ইতিমধ্যে সংক্ষিপ্ত বিবরণ দিই অনেক পরিস্থিতিতে)।
কিছু বিশেষ --full-hash
আর্গুমেন্ট (বা " --abbrev=64
" বা যাই হোক না কেন - পূর্বনির্ধারিতটি যা আমরা সংক্ষিপ্তসার হিসাবে সংক্ষিপ্ত করি) গিটের চারপাশের সরঞ্জামগুলি এমনকি পরিবর্তনটি দেখতে পায় না ।
তবুও, একটি রূপান্তর পরিকল্পনা (এসএইএ 1 থেকে অন্য হ্যাশ ফাংশনে) এখনও জটিল হতে পারে তবে সক্রিয়ভাবে অধ্যয়ন করা হয়েছে।
একটি convert-to-object_id
প্রচারণা হয় প্রগতিতে :
20 শে মার্চ আপডেট করুন: গিটহাব একটি সম্ভাব্য আক্রমণ এবং এর সুরক্ষা সম্পর্কে বিস্তারিত জানায় :
SHA-1 নামগুলি বিভিন্ন প্রক্রিয়াটির মাধ্যমে বিশ্বাস অর্পণ করা যায়। উদাহরণস্বরূপ, গিট আপনাকে ক্রিপ্টোগ্রাফিকভাবে একটি কমিট বা ট্যাগ সাইন করতে দেয়। এটি করার ফলে কেবল প্রতিশ্রুতিবদ্ধ বা ট্যাগ অবজেক্টটিই স্বাক্ষর করে, যা তাদের SHA-1 নাম ব্যবহার করে প্রকৃত ফাইল ডেটা সম্বলিত অন্যান্য বস্তুগুলিকে নির্দেশ করে। এই অবজেক্টগুলির মধ্যে একটি সংঘর্ষ এমন একটি স্বাক্ষর তৈরি করতে পারে যা বৈধ বলে মনে হয়, তবে যা স্বাক্ষরকারীর ইচ্ছার চেয়ে আলাদা ডেটাতে নির্দেশ করে। এই ধরনের আক্রমণে স্বাক্ষরকারী কেবলমাত্র অর্ধেক সংঘর্ষ দেখেন এবং শিকারটি অন্য অর্ধেকটি দেখেন।
সুরক্ষা:
সাম্প্রতিক আক্রমণটি SHA-1 অ্যালগরিদমের দুর্বলতাগুলি কাজে লাগাতে বিশেষ কৌশলগুলি ব্যবহার করে যা খুব কম সময়ে সংঘর্ষের সন্ধান করে। এই কৌশলগুলি বাইটগুলিতে একটি প্যাটার্ন রেখে দেয় যা কোনও সংঘর্ষের জুটির অর্ধেকের মধ্যে SHA-1 গণনা করার সময় সনাক্ত করা যায়।
গিটহাব ডট কম এখন প্রতিটি এসএএএএ -১ এটি গণনা করে এটি সনাক্ত করে এবং যদি বস্তুটি একটি সংঘটিত জোড়ের অর্ধেক প্রমাণ থাকে তবে তার প্রমাণ পাওয়া গেলে অপারেশনটি বাতিল করে দেয়। এটি আক্রমণকারীদের গিটহাব ব্যবহার করে কোনও প্রকল্পকে তাদের "নিরপরাধ" অর্ধেক সংঘর্ষের স্বীকার করার জন্য, পাশাপাশি তাদের দূষিত অর্ধেকের হোস্টিং থেকে বাধা দেওয়ার প্রতিরোধ করতে বাধা দেয়।
মার্ক স্টিভেন্সsha1collisiondetection
দ্বারা " " দেখুন
আবার, Q1 2018 গিট 2.16 হ্যাশ অ্যালগরিদমকে উপস্থাপন করে এমন একটি কাঠামো যুক্ত করে, একটি নতুন হ্যাশে স্থানান্তরিতকরণের কাজ শুরু হয়েছে।
উপরে উল্লিখিত হিসাবে, নতুন সমর্থিত হ্যাশ SHA-256 হবে ।