The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Коллизии в сокращённых идентификаторах коммитов в ядре Linux"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от opennews (??), 31-Дек-24, 12:08 
Кейс Кук (Kees Cook), бывший главный системный администратор kernel.org и лидер Ubuntu Security Team, продемонстрировал возможность создания коммита, сокращённый идентификатор которого совпадает с коммитом, ранее добавленным в ядро Linux. Эксперимент проведён в качестве подтверждения целесообразности перехода на 16-символьные сокращённые идентификаторы коммитов в ядре Linux, ранее обсуждавшегося в списке рассылки разработчиков ядра, но не одобренного Линусом Торвальдсом...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=62495

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  –4 +/
Сообщение от Аноним (1), 31-Дек-24, 12:08 
А как этим можно злоупотребить? Я пример понял но вот реальный обход нет. Да и Торвальдс и так все сам читает.
Ответить | Правка | Наверх | Cообщить модератору

47. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +2 +/
Сообщение от Аноним (-), 31-Дек-24, 18:30 
> А как этим можно злоупотребить? Я пример понял но вот реальный обход нет.
> Да и Торвальдс и так все сам читает.

Это сложно ибо при этом патч должен осмыленно выглядеть и проч, не вызывая подозрений. Но те кто удумал сократить хеши до 48 бит - все же нарываются. Простите, но высокосекурный DES с 56 битов вынесли полным перебором еще во времена царя гороха. А некоторые до сих пор не доперли что так делать не надо.

Ответить | Правка | Наверх | Cообщить модератору

57. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от bonifatium (?), 31-Дек-24, 19:54 
короткий хэш - это просто обрезанный до n символов полный хэш (для человеков и ui). сами хэши остаются как были
Ответить | Правка | Наверх | Cообщить модератору

62. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +2 +/
Сообщение от Аноним (62), 31-Дек-24, 23:33 
> короткий хэш - это просто обрезанный до n символов полный хэш
> (для человеков и ui). сами хэши остаются как были

Если удалось на...ть человека, показав ему короткий хэш такой же как заявлено - он его и втянет, нисколько не сомневаясь что все как надо. А то что там хвост не совпадал... кто ж его знал, если попросили - вот это?!

Ответить | Правка | Наверх | Cообщить модератору

10. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (10), 31-Дек-24, 13:17 
> но до отправки патча было выявлено утилитой checkpatch.

Выглядит как майнинг коллизий.

Ответить | Правка | Наверх | Cообщить модератору

11. Скрыто модератором  –6 +/
Сообщение от Аноним (11), 31-Дек-24, 13:19 
Ответить | Правка | Наверх | Cообщить модератору

13. Скрыто модератором  –4 +/
Сообщение от Илья (??), 31-Дек-24, 13:20 
Ответить | Правка | Наверх | Cообщить модератору

16. Скрыто модератором  –2 +/
Сообщение от Аноним (16), 31-Дек-24, 13:38 
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

12. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  –4 +/
Сообщение от Илья (??), 31-Дек-24, 13:19 
Есть люди, которые никогда не поймут отличие гуида от хеша, и которые на серьёзных щах будут утверждать что нужно просто использовать хорошую хеш функцию

Это не лечится

Ответить | Правка | Наверх | Cообщить модератору

52. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +1 +/
Сообщение от Аноним (52), 31-Дек-24, 19:03 
Ненужно ударяться в преждевременную оптимизацию.
Ответить | Правка | Наверх | Cообщить модератору

72. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +2 +/
Сообщение от Илья (??), 01-Янв-25, 09:09 
> Ненужно ударяться в преждевременную оптимизацию.

Глупый, что-ли? Коллизии выстреливают года через два, это именно то место, которое нужно предварительно правильно делать

Ответить | Правка | Наверх | Cообщить модератору

15. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +7 +/
Сообщение от lizard (??), 31-Дек-24, 13:35 
Пользуйтесь SVN: 1,2,... 100000 цифирьки увеличиваются и никогда никаких коллизий.
Ответить | Правка | Наверх | Cообщить модератору

17. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +1 +/
Сообщение от Аноним (16), 31-Дек-24, 13:40 
Проблема в подмене смысла этих цифр с буквами. Глупость - она такая: хоть алфавит смени, но не помогает.
Ответить | Правка | Наверх | Cообщить модератору

48. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +1 +/
Сообщение от Аноним (-), 31-Дек-24, 18:32 
> Пользуйтесь SVN: 1,2,... 100000 цифирьки увеличиваются и никогда никаких коллизий.

Ога, сломал 1 сервак - и выгрузил всей толпе неведомые фекальи. А без сервака этот антик вообще неоперабелен, и уж точно такой подарок проверками по локальным репам замечен не будет.

Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

78. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Dmitry (??), 01-Янв-25, 21:49 
Svn централизованная система и поэтому это в принципе возможно
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

25. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  –2 +/
Сообщение от ijuij (?), 31-Дек-24, 14:06 
Я уважаю Кейса Кука больше, чем Линуса, НО в этой ситуации я согласен с Линусом. 🤷‍♂️💬

Ответить | Правка | Наверх | Cообщить модератору

49. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 31-Дек-24, 18:34 
> Я уважаю Кейса Кука больше, чем Линуса, НО в этой ситуации я согласен с Линусом. 🤷‍♂️💬

Да это не киса куку предложил хрень с base36, как по мне - так стоит просто оперировать полными хешами. По хорошему - перйдя на SHA256.

Ответить | Правка | Наверх | Cообщить модератору

28. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +1 +/
Сообщение от Аноним (28), 31-Дек-24, 14:54 
К полному хешу можно еще unix-timestamp добавить для надежности.
Ответить | Правка | Наверх | Cообщить модератору

35. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  –2 +/
Сообщение от bonifatium (?), 31-Дек-24, 16:11 
что бы что? проблема в коллизии первых 12 символов, а не в полном хэше
Ответить | Правка | Наверх | Cообщить модератору

67. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Neon (??), 01-Янв-25, 02:46 
А на фига использовать только первые 12 символов ?! Какой умник это придумал ?
Ответить | Правка | Наверх | Cообщить модератору

74. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 01-Янв-25, 09:21 
Потому-что 12 символов это коротко.
Ответить | Правка | Наверх | Cообщить модератору

32. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  –3 +/
Сообщение от Аноним (32), 31-Дек-24, 15:07 
Не понимаю местных комментаторов, которым коллизии непочем. Коллизии - это страшно, нужно предотвращать, удлинять. ShA-1 в целом тоже уже устаревшая хэш-функция, но понимаю, что на sha2 менять мб затруднительно
Ответить | Правка | Наверх | Cообщить модератору

38. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +3 +/
Сообщение от Аноним (11), 31-Дек-24, 16:36 
Проснитесь уже, для индентификации коммита используется 160 битный хэш, и количество коллизий там минимальное, в случае возникновения коллизии легко можно скипнуть коммит, и сделать его снова, это событие довольно редко. Речь в статье идет не про сам хэш, а про транкейт hex строки из 160 битного хэша, до короткого хэша вида f293418d и этот хэш нигде не хранится в метаданных, это не более чем строка поиска. Поэтому попытки комментаторов сделать из мухи слона выглядят довольно безграмотно. Короткий хэш используется обычно в связки git log --oneline, а дальше например git show короткий_хэш. Короткий хэш лишь облегчается поиск хэша, занимает меньше места, служит для удобства, и не является какой-либо реальной ссылкой. Тот же гитхаб к примеру показывает текст ссылки на комминт как короткий хэш, а сама ссылка уже ведет на полноценный - длинный 160 битный хэш. Если кто-то использует не корректно короткий хэш и привязывает к нему какие-то данные, это его проблемы, и не корректное использование короткого хэша. Кроме как для сокращения выводы на экране и поиска он нигде не должен быть использован.
Ответить | Правка | Наверх | Cообщить модератору

50. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +1 +/
Сообщение от Аноним (-), 31-Дек-24, 18:38 
> Проснитесь уже, для индентификации коммита используется 160 битный хэш,
> и количество коллизий там минимальное,

Для SHA-1 все же известны криптографические атаки. Конечно на слом 160 битов - да еще с теми constraints - ресурсов надо многократно больше. Но совсем не столько сколько ожидалось. А вот SHA256... там, видите ли, генерация "нужного" хеша основа майнинга. Если б кто-то сумел в предсказуемые хеши, уже миллиардером был бы. Потому что pow сводится к подгону SHA256 до нужного числа нолей в начале. Если удалось - ЗБС, вы намайнили блок, профит ваш! Правда, есть перестроить сложность если вы будете блоки слишком бытсро фигачить - но не сразу - и к тому же профит все же уйдет от остальных майнеров к более успешному шустряку.

Ответить | Правка | Наверх | Cообщить модератору

59. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (59), 31-Дек-24, 20:18 
> можно скипнуть коммит, и сделать его снова

Можно поподробнее? С точки зрения использования гита из командной строки это как будет выглядеть?

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

65. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +1 +/
Сообщение от Аноним (11), 31-Дек-24, 23:50 
Не благодарите:
git add blblba
git commit -S
-- ошибка при создании коммита
git commit -S

Хэш формируется командой git commit или git merge.

Ответить | Правка | Наверх | Cообщить модератору

73. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 01-Янв-25, 09:21 
Короткие идентификаторы используются для быстрого поиска, а не для коммитов. Попробуй потоньше.
Ответить | Правка | Наверх | Cообщить модератору

77. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (59), 01-Янв-25, 20:36 
Ненене, мой вопрос к анониму выше касался именно (гипотетической) ситуации с полным идентификатором коммита. Спасибо ему за ответ.
Ответить | Правка | Наверх | Cообщить модератору

76. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (59), 01-Янв-25, 20:34 
Всё же поблагодарю. Спасибо за информацию!

Никогда с таким не сталкивался на практике (по понятным причинам), и было интересно, как с таким бороться в случае чего.

Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

34. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +4 +/
Сообщение от bonifatium (?), 31-Дек-24, 16:08 
правда в том, что наглядность и удобность 12- и 16-ти символьных short hash'ей одинаковая. Они одинаково длинные для запоминания и необходимости копирования, а для билд/чек скриптов это все без разницы.
Ответить | Правка | Наверх | Cообщить модератору

79. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (79), 02-Янв-25, 07:38 
Во-во. Мы вот в нашей компании сыздавна использовали полные id коммитов где только можно (в почте, JIRA и тп). Какая разница что копировать по двойному клику-то?
Ответить | Правка | Наверх | Cообщить модератору

36. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (36), 31-Дек-24, 16:22 
Сокращение строковых значений и их последующее восстановление и сравнение - это глупость. Адреса криптокошельков, номера расчетных счетов - тоже строковые значения.
Ответить | Правка | Наверх | Cообщить модератору

39. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 31-Дек-24, 16:37 
Коллизии настролько редки, что решили оставить всё как есть а не усложнять.
Ответить | Правка | Наверх | Cообщить модератору

37. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (37), 31-Дек-24, 16:32 
т.е. они просто берут первые 12 символов от хеша?
Гениально!
"Оставайтесь, у нас. Будете гениальным механиком планеты!" (с)

Ответить | Правка | Наверх | Cообщить модератору

40. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 31-Дек-24, 16:38 
А что туту такого. На то и короткие.
Ответить | Правка | Наверх | Cообщить модератору

42. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (11), 31-Дек-24, 16:40 
Да, потому что это не реальная ссылка, а лишь удобный метод сокращения вывода на экране! Он даже не является реальной ссылкой на какой-то коммит, а лишь являет более удобной подстрокой, для текстового поиска, отсюда мы можем иметь сколько угодно много таких одинаковых подстрок.
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

58. Скрыто модератором  +/
Сообщение от Аноним (37), 31-Дек-24, 20:10 
Ответить | Правка | Наверх | Cообщить модератору

75. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Rus_Trololo (ok), 01-Янв-25, 12:20 
>Возникновение коллизий, при которых несколько разных изменений оказываются связаны с одним сокращённым идентификатором, могут привести к нарушению работы инструментов для анализа и проверки изменений, учитывающих содержимое тегов "Fixes".
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

68. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Neon (??), 01-Янв-25, 02:47 
Да, талантливые ребята. Прямо как те, кто заложили  год кодировал двумя символами. Заранее заложенная мина замедленного действия.
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

43. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  –1 +/
Сообщение от Чуть более чем полностью анонимный аноним (?), 31-Дек-24, 17:26 
"640 КБ на самом деле хватит всем"
Ответить | Правка | Наверх | Cообщить модератору

61. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 31-Дек-24, 22:10 
Эта та самая, знаменитая цитата Билла Гейтса?
Ответить | Правка | Наверх | Cообщить модератору

69. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Neon (??), 01-Янв-25, 02:48 
Два символа для хранения года в данных. Гениальная экономия))). Чтобы потом пострадать
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

46. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 31-Дек-24, 18:28 
> Сокращённые идентификаторы коммитов формируются через оставление
> первых 12 символов от хэша SHA-1 (48 бит из 160 бит)

Ну спасибо капитан очевидность, заколлайдить 48 битов - это вообще как дважды два. И вот тут я не понимаю тех кто хочет сократить хэш, они давно нарываются.

Ответить | Правка | Наверх | Cообщить модератору

53. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (53), 31-Дек-24, 19:07 
Это хэш коммитов ЯДРА. Нафига ты коммитишь каждые 2 символа?
Ответить | Правка | Наверх | Cообщить модератору

63. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 31-Дек-24, 23:48 
> Это хэш коммитов ЯДРА. Нафига ты коммитишь каждые 2 символа?

Вон там гражданин показал - что задавшись целью можно подогнать такой же "на вид" (сокрашенный хеш) комит - с другим содержимым. А вот это уже не айс. Ибо открывает почву для злоупотреблений. Конечно там еще пуллы по иерархии и все же это читают - но лучше пусть двуногие И машины обеспечивают 2 контура проверок, чем чисто на одних глазах выезжать.

Ответить | Правка | Наверх | Cообщить модератору

51. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (52), 31-Дек-24, 19:01 
Если бы Линус не разгонял этих горе новаторов не было бы сейчас никакого ядра. Сначала они пропихнут длинную коммитов, а потом зонд.
Ответить | Правка | Наверх | Cообщить модератору

54. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (53), 31-Дек-24, 19:13 
Самое странное, зачем делать уязвимости в ядре, когда полно приложух работающих с привилегиями ядра, и за которыми особо не смотрят. Наверняка специально отвлекают внимание на ядро, чтобы и дальше никто не смотрел.
Ответить | Правка | Наверх | Cообщить модератору

64. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 31-Дек-24, 23:49 
> Самое странное, зачем делать уязвимости в ядре, когда полно приложух работающих с
> привилегиями ядра

Это как? Мне уже интересно, право. Примеры такой приложухи? :)

Ответить | Правка | Наверх | Cообщить модератору

56. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (56), 31-Дек-24, 19:36 
git уже давно умеет не только sha1, а вообще давно нужно перейти на sha3-512
Ответить | Правка | Наверх | Cообщить модератору

60. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (60), 31-Дек-24, 20:46 
Он на GitHub слать не умеет так. Да и GitHub принимать не умеет так.
Ответить | Правка | Наверх | Cообщить модератору

66. "Коллизии в сокращённых идентификаторах коммитов в ядре Linux"  +/
Сообщение от Аноним (-), 31-Дек-24, 23:50 
> Он на GitHub слать не умеет так. Да и GitHub принимать не умеет так.

Да и хрен с ним с гитхабом. Майкрософт его уже и так почти доломал, а с их маркетинговым булшитом - скоро доломает окончательно.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру