უკან დაბრუნება
GitHub-ის თანადამფუძნებელი სკოტ ჩაკონი: Git 3.0-ის SHA-256-ზე გადასვლა ძვირი შეცდომა იქნება
SiTech AI Team2 წთ. საკითხავი

GitHub-ის თანადამფუძნებელი სკოტ ჩაკონი: Git 3.0-ის SHA-256-ზე გადასვლა ძვირი შეცდომა იქნება

GitHub-ისა და GitButler-ის თანადამფუძნებელი სკოტ ჩაკონი ბლოგპოსტში ამტკიცებს, რომ Git 3.0-ში ნაგულისხმევი ჰეშირების SHA-1-იდან SHA-256-ზე გადაყვანა ეკოსისტემისთვის ძვირი და პრაქტიკულად უსარგებლო ცვლილება იქნება.

GitHub-ისა და GitButler-ის თანადამფუძნებელმა სკოტ ჩაკონმა ბლოგპოსტი გამოაქვეყნა, სადაც ამტკიცებს, რომ Git 3.0-ში ნაგულისხმევი ჰეშირების ალგორითმის SHA-1-იდან SHA-256-ზე შეცვლა ძვირი შეცდომა იქნება; მისი თქმით, მიგრაცია უზარმაზარი ხარჯია, სარგებელი კი მინიმალური.

პოსტი GitButler-ის ბლოგზე გამოქვეყნდა და არგუმენტია, რომ ცვლილების შესახებ თითქმის არავინ იცის.

რატომ გადადის Git 3.0 SHA-256-ზე

Git კონტენტზე დაფუძნებული მონაცემთა ბაზაა: ყოველი ფაილი, ხე და კომიტი შიგთავსის ჰეშით ინახება, კომიტი კი მშობლის ჰეშს შეიცავს და მთელ ისტორიას ერთმანეთთან აკავშირებს. SHA-1 2005 წელს ლინუს ტორვალდსმა აირჩია.

SHA-1 დღეს ნახევრად გატეხილად ითვლება: 2017 წლის SHAttered-მა და 2020 წლის SHA-1 is a Shambles-მა ხელოვნური კოლიზიების შესაძლებლობა აჩვენა, თუმცა რეალური შეტევა არ დაფიქსირებულა. ამიტომაც გეგმავს Git 3.0 ნაგულისხმევი ალგორითმის SHA-256-ით შეცვლას; ცვლილება გამოშვების შეუთავსებელი ცვლილებების სიაშია.

კოლიზიისა და მეორე პრეიმიჯის შეტევების შედარება

არგუმენტები მიგრაციის წინააღმდეგ

ჩაკონის მთავარი არგუმენტია, რომ ნდობა ჰეშს არ ეფუძნება. ის ციტირებს ლინუს ტორვალდსს 2005 წლიდან: „მე ნამდვილად მიმაჩნია, რომ ხალხმა sha1 უსაფრთხოებად არ უნდა მიიჩნიოს; ნამდვილი უსაფრთხოება გავრცელებაშია“. რეალური შეტევები კომპრომეტირებული მეინტეინერებითა და პაკეტების რეპოზიტორიებით ხდება და არა ჰეშის კოლიზიით.

ხარჯები ფართოა: ახალი რეპოზიტორიები ნაგულისხმევად SHA-256-ით შეიქმნება, ძველები SHA-1-ზე დარჩება და ფორმატების შერევა შეუძლებელია; submodule-ები მხოლოდ მშობლის იმავე ფორმატში მუშაობს. კონვერტაცია ყველა ობიექტს გადაწერს და ხელმოწერებს, ძველ ბმულებსა თუ 40-სიმბოლოიან ჰეშებზე მორგებულ ხელსაწყოებს ამტვრევს, ბევრ ბიბლიოთეკას კი სრული მხარდაჭერა არ აქვს.

დამოუკიდებელი ხის ჰეშის ჰედერი ხელმოწერილ Git ობიექტში

ალტერნატივა: ხის დამოუკიდებელი ჰეშის ჰედერები

ეკოსისტემის მიგრაციის ნაცვლად ჩაკონი „ხის დამოუკიდებელი ჰეშის ჰედერებს“ სთავაზობს: ხელმოწერისას ხის შიგთავსი დამოუკიდებლად, მეორე ალგორითმითაც (SHA-256 ან BLAKE3) ჰეშირდება და ხელმოწერილ ობიექტში ჰედერად ემატება, ასე ხელმოწერა ორივე ჰეშს ფარავს. შეტევისთვის ორივე ალგორითმში კოლიზია იქნებოდა საჭირო; ავტორის თქმით, ეს მიდგომა მხოლოდ SHA-256-ზე უფრო უსაფრთხოა.

იდეა ახალი არაა: კოლინ უოლტერსის git-evtag 2015 წლიდან ხელმოწერილ ტეგებს Git-EVTag-v0-SHA512 კონტროლის ჯამს უმატებს. ჩაკონის პროტოტიპზე Chromium-ის 35-გიგაბაიტიანი ხე 2,1 მილიონი ფაილით M5 Mac-ზე 5 წამში დაიჰეშა.

პოსტი გადაწყვეტილების გადახედვისკენ მოწოდებაა; ჩაკონის აზრით, მიგრაცია წლები გაგრძელდება და SHA-256-ის დასუსტების შემთხვევაში ეკოსისტემა ისევ იმავე მდგომარეობაში აღმოჩნდება.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.