Comments 23
подписаны SHA-1 и подменить их невозможно.
Как раз вот относительно этого назревает маааленькая проблема =).
Если бы было возможно — то проблема бы не назревала, а уже бы вовсю давала последствия.
До того, как будет возможно, по некоторым прикидкам осталось всего несколько лет (где несколько — это 3 для крупных участников или 5 для какого-нибудь университета). Про md5 тоже когда-то так говорили.
Кстати, чтобы подложить закладку — достаточно внести какую-нибудь незаметную ошибку в какую-нибудь проверку, этого вполне может оказаться достаточно.
За эти несколько лет как раз можно успешно перейти на SHA-256 и проблемы опять не будет в ближайшее время.
Ммм. Насколько я знаю, пока этим не занимаются (могу быть неправ). Да и это будет означать пересборку репозиториев (аналогично миграции с svn на git) и перезагрузку их у всех причастных (ну или локальную пересборку), плюс сломанные подписи коммитов. Плюс куча софта, работающего с git, будет вынуждена внести серьёзные изменения и обновиться, чтобы поддерживать новый хеш.
можно сгенерировать какой-нибудь трешь, что-то вроде 'aDSWLIYUDklqaigdrekRWERQW432 [и еще 100 кб данных]' который даст такой же хеш (коллизию), что и строка выше. Это может сработать при подборе пароля (без соли) или при выпуске сертификатов.
Но для вычисления контрольных сумм (для программного кода) ЭТО НЕ РАБОТАЕТ. Нельзя так модифицировать исходный код, чтобы он был одновременно: а) компилируемый, б) содержал закладку, в) дал тот же хеш на выходе,
(зануда мод) хотя теоретически это возможно, но боюсь, что вероятность меньше чем найти атом в нашей галактике
С двоичными файлами конечно же другое дело — всегда можно прицепить в конец свой двоичный блоб на который никто и слова не скажет.
… ограниченным набором символов… не даст гарантии существования такой коллизии.
Кажется, кто-то не понимает суть коллизий.
-/- 10 — LF — используется. В Windows как комбинация CR + LF (перевод строки)
-/- 13 — CR — используется.
-/- 12 — FF — устарел, но порой используют при печати для продолжения печати на новом листе.
-/- 7 — BEEP — устарел.
Вероятно только код 0 может вызвать проблемы, хотя текст в кодировке UTF-8 легко может в себе содержать и этот байт. Но не в этом суть.
Ну, для md5 пару создать заранее давно можно, дело не в случайном треше и не в паролях.
Смотрите: http://www.mscs.dal.ca/~selinger/md5collision/ — этому примеру десять лет, и это пример именно для работоспособной программы, где два бинарника дают один и тот же хеш и делают разные вещи. С исходниками такое тоже возможно сделать, поломав какое-нибудь условие, например.
Вот со sha1 когда-нибудь случится как минимум то же самое, и это когда-нибудь может оказаться уже весьма скоро.
Поэтому надо срочно что-то решать и менять адресацию блобов по sha1 пока не поздно.
Строго говоря, эта фраза полнейший бред. Наверное имелось в виду, что это fingerprint сертификата, которым подписывали бинарники?
Интересно, а почему ему не запретили приближаться ещё и к своей девушке? У неё ведь интернеты наверняка тоже имеются!
Найден программист, взломавший kernel.org в 2011 году