<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>40635</bug_id>
          
          <creation_ts>2021-08-02 16:55:19 +0300</creation_ts>
          <short_desc>Move from md5 to strong hash for apt</short_desc>
          <delta_ts>2023-06-22 14:11:42 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>apt</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>40561</blocked>
    
    <blocked>46625</blocked>
    
    <blocked>40646</blocked>
    
    <blocked>40647</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Chikunov">vt</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>aen</cc>
    
    <cc>alexey.tourbin</cc>
    
    <cc>boyarsh</cc>
    
    <cc>danil</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>201154</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2021-08-02 16:55:19 +0300</bug_when>
    <thetext>Необходима поддержка актуальных хешей в apt.
Это хеши, используемые в файлах base/release и pkglist.*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201179</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2021-08-03 13:29:04 +0300</bug_when>
    <thetext>А кому и зачем именно необходима?
Насколько понимаю, md5 там не как криптографический стойкий, а &quot;на всякий&quot;.
Потому как важное сверху подписано.
Нет?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201180</commentid>
    <comment_count>2</comment_count>
    <who name="">alexey.tourbin</who>
    <bug_when>2021-08-03 13:53:07 +0300</bug_when>
    <thetext>Mike, if you want the top-level signature in the release file to cover the whole repo reliably, the references must be cryptographically strong.  E.g. the release file references pkglist.  If the reference is cryptographically strong, you don&apos;t need a separate GPG signature for pkglist.  The validity of the original signature in the release file gets &quot;transferred&quot; to pkglist.  But if the reference in the release file is MD5, you can modify pkglist in a way that preserves its MD5.  The situation can be described as &quot;strong signature transferred via weak reference&quot;.  After you&apos;ve followed such a reference, you no longer have the guarantee provided by the signature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201183</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2021-08-03 14:47:14 +0300</bug_when>
    <thetext>Лёш, спасибо за разъяснение (хотя лучше бы человеческим языком).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201196</commentid>
    <comment_count>4</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2021-08-04 00:50:39 +0300</bug_when>
    <thetext>Не знаю какие тут нужны подробности.

Главное -- сейчас apt во всех местах, где он проверяет хеш, просто сравнивает строки, а придётся, видимо, разумным образом сравнивать наборы хешей, которые окажутся доступны на той или иной ситуации.  После решения этой задачи добавление новых хешей (если вдруг такое понадобится) скорее всего станет не такой уж сложной задачей.
Понадобится поддержка новых хешей в apt-repo-tools, а он в качестве реализации md5 исользует библиотеку libapt, думаю, что будет проще всего так делать и дальше, т.е. этот интерфейс в libapt понадобится раньше всего.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201198</commentid>
    <comment_count>5</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2021-08-04 01:28:36 +0300</bug_when>
    <thetext>(Ответ для Gleb F-Malinovskiy на комментарий #4)
&gt; Не знаю какие тут нужны подробности.
&gt; 
&gt; Главное -- сейчас apt во всех местах, где он проверяет хеш, просто
&gt; сравнивает строки, а придётся, видимо, разумным образом сравнивать наборы
&gt; хешей, которые окажутся доступны на той или иной ситуации.  После решения
&gt; этой задачи добавление новых хешей (если вдруг такое понадобится) скорее
&gt; всего станет не такой уж сложной задачей.
&gt; Понадобится поддержка новых хешей в apt-repo-tools, а он в качестве
&gt; реализации md5 исользует библиотеку libapt, думаю, что будет проще всего так
&gt; делать и дальше, т.е. этот интерфейс в libapt понадобится раньше всего.


Какие задачи (конкретно) надо решить строго до релиза p10?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203345</commentid>
    <comment_count>6</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-09-29 15:18:52 +0300</bug_when>
    <thetext>А зачем Severity так задрали ?

На мой взляд не соответствует policy.
https://www.altlinux.org/Bug_Severity_Policy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203406</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-09-30 19:56:57 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #6)
&gt; А зачем Severity так задрали ?

Важно не то, какой тут severity, а то, что это является необходимым условием для выпуска релизов на p10.  По этой причиние оно блокирует #40561.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203407</commentid>
    <comment_count>8</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-09-30 20:16:56 +0300</bug_when>
    <thetext>тогда предлагаю выровнять в соответствии с policy.

Блокер для #40651 - это про другое.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204148</commentid>
    <comment_count>9</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-10-26 15:55:42 +0300</bug_when>
    <thetext>Добавлю, что md5 ещё используется в новой структуре базы данных для packages.altlinux.org для ускорения загрузки пакетов в базу (мы читаем хеши md5 из индексов apt и пишем их в базу).

Нам тоже понадобится внести изменения, и хотелось бы заранее понимать какие.

И что будет с совместимостью со старыми индексами.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204158</commentid>
    <comment_count>10</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-10-26 20:29:53 +0300</bug_when>
    <thetext>а чем плоха наравне с  уже существующим нестойким md5 проверка криптографически-стойкой подписи gpg у пакета ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205032</commentid>
    <comment_count>11</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-11-18 21:30:21 +0300</bug_when>
    <thetext>Кто забыл закрыть баг?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205033</commentid>
    <comment_count>12</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-11-18 21:36:53 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #10)
&gt; а чем плоха наравне с  уже существующим нестойким md5 проверка
&gt; криптографически-стойкой подписи gpg у пакета ?

Ответ на этот вопрос был сформулирован в этой же баге, см. comment #2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205044</commentid>
    <comment_count>13</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-11-19 08:18:47 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #12)
&gt; (In reply to Anton Farygin from comment #10)
&gt; &gt; а чем плоха наравне с  уже существующим нестойким md5 проверка
&gt; &gt; криптографически-стойкой подписи gpg у пакета ?
&gt; 
&gt; Ответ на этот вопрос был сформулирован в этой же баге, см. comment #2.

Нет, это было про pkglist&apos;ы и с ними как раз всё понятно Я же говорю про gpg подпись пакета (header + payload), которая тоже вполне себе хеш, криптографически стойкий.

Впрочем, сейчас это обсуждать уже бесмысленно - везде где надо добавлен blake2b и скоро у нас будет возможность вот тут:
https://beta.packages.altlinux.org/ru/sisyphus/srpms/kernel-image-drm-tip/rpms/17137739051416841711
Вместо md5 показать blake2b для всех пакетов из архива.

А вот если бы вы помимо blake2b добавили в хеши какой-то packageID, который можно было бы легко подсчитать из rpmdb установленной системы - это было бы очень полезно. SHA1HEADER для этого не подходит, т.к. он не покрывает gpg подпись пакета и payload. А blake2b естественно не считается из rpmheader.

Но это уже другой FR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205112</commentid>
    <comment_count>14</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2021-11-19 18:31:29 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #13)
&gt; Я же говорю про gpg подпись пакета (header + payload), которая тоже вполне себе хеш, криптографически стойкий.

Это было исправлено для Сизифа 23 августа 2021, пакеты, подписанные до этого момента, остались DSA/SHA1, после RSA/SHA512.

&gt; А вот если бы вы помимо blake2b добавили в хеши какой-то packageID, который
&gt; можно было бы легко подсчитать из rpmdb установленной системы - это было бы

s/подсчитать/прочитать/ ?

&gt; очень полезно. SHA1HEADER для этого не подходит, т.к. он не покрывает gpg
&gt; подпись пакета и payload. А blake2b естественно не считается из rpmheader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228221</commentid>
    <comment_count>15</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2023-06-22 14:11:42 +0300</bug_when>
    <thetext>(In reply to Dmitry V. Levin from comment #11)
&gt; Кто забыл закрыть баг?

Похоже на то.

* Fri Oct 29 2021 Ivan Zakharyaschev &lt;imz@altlinux.org&gt; 0.5.15lorg2-alt73
[...]
- Added blake2b hash support (thx glebfm@).
[...]</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>