public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] manifest-hashes changing to 'BLAKE2B SHA512' on 2017-11-21
@ 2017-11-15 16:28 Michał Górny
  2017-11-15 17:47 ` R0b0t1
                   ` (3 more replies)
  0 siblings, 4 replies; 76+ messages in thread
From: Michał Górny @ 2017-11-15 16:28 UTC (permalink / raw
  To: gentoo-dev-announce; +Cc: gentoo-dev

Hi, everyone.

The Council has approved the manifest-hashes switch on 2017-11-12
meeting [1]. The transition will occur to the initial plan, with small
changes. The updated plan is included at the end of this mail.

According to this plan, BLAKE2B will be enabled on 2017-11-21. This
means that starting at this time, all new and updated DIST entries will
use BLAKE2B+SHA512. Old DIST entries will still use the current hash set
until updated.

The developers are required to upgrade to a package manager supporting
this hash. That is:

a. Portage 2.3.5 when using py3.6+,

b. Portage 2.3.13 + pyblake2 installed manually,

c. Portage 2.3.13-r1 that includes the pyblake2 dep.

Modern (and old) Portage will refuse to update Manifests if it does not
support the necessary hashes. However, Portage versions between 2.3.5
and 2.3.13 inclusively will create Manifests missing BLAKE2B hash rather
than failing when no hash provider is present. Those Manifests will be
rejected by the git hook.

Users will not be affected noticeably as the SHA512 hash continues being
used for compatibility.


That said, I'd like to request developers not to start proactively
converting all old Manifest entries to the new set immediately,
and instead give some time for things to settle down.



The updated plan
================

Already done:

- revbumped Portage with pyblake2 dep and started stabilizing it,

- added git update hook to reject invalid Manifest entries.

2017-11-21 (T+7d):

- manifest-hashes = BLAKE2B SHA512

2018-02-14 (T+3m):

- manifest-required-hashes = BLAKE2B

2018-05-14 (T+6m):

- last rite fetch-restricted packages that do not use BLAKE2B.

The final removal of SHA512 will be decided by the Council separately.


-- 
Best regards,
Michał Górny



^ permalink raw reply	[flat|nested] 76+ messages in thread
* [gentoo-dev] Manifest2 hashes, take n+1-th
@ 2017-10-19 19:08 Michał Górny
  2017-10-19 21:00 ` Michał Górny
                   ` (6 more replies)
  0 siblings, 7 replies; 76+ messages in thread
From: Michał Górny @ 2017-10-19 19:08 UTC (permalink / raw
  To: gentoo-dev

Hi, everyone.

The previous discussion on Manifest2 hashes pretty much died away
pending fixes to Portage. Since Portage was fixed a while ago, and we
can now safely switch, I'd like to reboot the discussion before
submitting the item for the next Council meeting.

Considering all arguments made so far, I'd like to propose changing:

  manifest-hashes = SHA256 SHA512 WHIRLPOOL

to:

  manifest-hashes = SHA512 SHA3_512

In other words, removing SHA256 and WHIRLPOOL, and adding SHA3_512.


Rationale
---------

1. The main argument for using multiple hashes is to prevent the (very
unlikely) possibility that if a weakness is discovered in one of
the hashes, the other would still hold. This is given by using two
algorithms; more than two do not increase security significantly, while
they do increase performance cost.

2. For the above to hold, the hashes should be diverse. SHA256
and SHA512 are the same algorithm, so a weakness discovered in either
would probably apply to both -- keeping both does not make sense at all.
Furthermore, both SHA2 and WHIRLPOOL use the same construct (MD), so
a weakness in the construct would apply to both.

3. Keeping one of the three old hashes is necessary for compatibility
reasons. Furthermore, the current versions of Portage consider SHA512
obligatory, so we can't remove it without redesigning Portage first
(though I think this applies only to developer installs, i.e. those
creating Manifests).

4. The new hashes that are stronger and commonly available are
SHA3/Keccak (using sponges) and BLAKE2 (HAIFA). Both are diverse from
our current algorithms, so either is a good candidate. The choice of
Keccak is purely arbitrary (because it's the winner?).

All the above considered, I think it's most reasonable to use two hashes
with diverse constructs. SHA512 needs to be one of them, for
compatibility reasons. The other could be either SHA3_512 or BLAKE2B,
as a strong, future-proof hash. SHA3 is probably a better choice because
it's going to have more support as the official recommendation.

-- 
Best regards,
Michał Górny



^ permalink raw reply	[flat|nested] 76+ messages in thread

end of thread, other threads:[~2017-11-21 18:21 UTC | newest]

Thread overview: 76+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-15 16:28 [gentoo-dev] manifest-hashes changing to 'BLAKE2B SHA512' on 2017-11-21 Michał Górny
2017-11-15 17:47 ` R0b0t1
2017-11-15 19:21   ` NP-Hardass
2017-11-15 20:21     ` William L. Thomson Jr.
2017-11-15 21:15       ` Rich Freeman
2017-11-15 22:10         ` William L. Thomson Jr.
     [not found]         ` <20171115171011.07ffd30a@wlt.obsidian-studios.com>
2017-11-15 22:19           ` William L. Thomson Jr.
2017-11-15 20:14   ` William L. Thomson Jr.
2017-11-15 19:25 ` Nils Freydank
2017-11-15 22:56 ` Michał Górny
2017-11-21 18:21 ` Michał Górny
  -- strict thread matches above, loose matches on Subject: below --
2017-10-19 19:08 [gentoo-dev] Manifest2 hashes, take n+1-th Michał Górny
2017-10-19 21:00 ` Michał Górny
2017-10-19 22:20   ` Francesco Riosa
2017-10-20 23:38     ` Michał Górny
2017-10-21  1:21       ` R0b0t1
2017-10-19 22:32 ` Hanno Böck
2017-10-19 22:49   ` Gordon Pettey
2017-10-20  9:10     ` Dirkjan Ochtman
2017-10-20  9:23       ` Ulrich Mueller
2017-10-20  9:31         ` Dirkjan Ochtman
2017-10-20 12:55         ` Hanno Böck
2017-10-20 13:04       ` Kristian Fiskerstrand
2017-10-20 13:32         ` Rich Freeman
2017-10-21  1:23         ` R0b0t1
2017-10-20 22:42     ` Anton Molyboha
2017-10-20 23:03       ` Gordon Pettey
2017-10-20 23:39       ` Michał Górny
2017-10-21  2:56         ` [gentoo-dev] " Duncan
2017-10-20 13:05   ` [gentoo-dev] " Michael Orlitzky
2017-10-20 13:26     ` Kristian Fiskerstrand
2017-10-20 15:42 ` Paweł Hajdan, Jr.
2017-10-20 16:15   ` Michał Górny
2017-10-21  8:01     ` Paweł Hajdan, Jr.
2017-10-21  8:20       ` Michał Górny
2017-10-20 22:21 ` R0b0t1
2017-10-21 16:26   ` Robin H. Johnson
2017-10-21 17:12     ` R0b0t1
2017-10-21 17:37       ` R0b0t1
2017-10-21 17:50       ` Hanno Böck
2017-10-21 20:11         ` [gentoo-dev] " Duncan
2017-11-08 18:57           ` R0b0t1
2017-11-08 20:01             ` Jonas Stein
2017-11-08 23:45               ` [gentoo-dev] " R0b0t1
2017-11-15 21:02             ` [gentoo-dev] Manifest2 hashes: validation of single hash per MANIFESTx_REQUIRED_HASH Robin H. Johnson
2017-11-21  3:00               ` R0b0t1
2017-11-21  3:15                 ` R0b0t1
2017-11-21  4:19                   ` Matt Turner
2017-11-21  4:28                     ` R0b0t1
2017-11-08 19:01         ` [gentoo-dev] Manifest2 hashes, take n+1-th R0b0t1
2017-10-23  8:16   ` [gentoo-dev] Manifest2 hashes, take n+1-th: 3 hashes for the tie-breaker case Robin H. Johnson
2017-10-23 11:33     ` Michał Górny
2017-10-23 21:00       ` Robin H. Johnson
2017-10-24  4:04         ` Michał Górny
2017-10-24  4:11           ` Michał Górny
2017-10-24  8:21             ` Paweł Hajdan, Jr.
2017-10-24 12:01               ` Rich Freeman
2017-10-24 11:56             ` Chí-Thanh Christopher Nguyễn
2017-10-24 13:25               ` Michał Górny
2017-10-24 21:33                 ` Allan Wegan
2017-10-25  2:40                   ` [gentoo-dev] Manifest2 hashes, take n+1-th: one hash to decide them all Robin H. Johnson
2017-10-25 12:32                     ` Hanno Böck
2017-10-25 17:43                       ` Paweł Hajdan, Jr.
2017-10-28  4:54                     ` R0b0t1
2017-11-13  2:22             ` [gentoo-dev] Manifest2 hashes, take n+1-th: 3 hashes for the tie-breaker case Joshua Kinard
2017-11-13  3:48               ` Gordon Pettey
2017-11-13  4:28                 ` Joshua Kinard
2017-11-13  7:37               ` Michał Górny
2017-10-21  2:01 ` [gentoo-dev] Manifest2 hashes, take n+1-th Jason A. Donenfeld
2017-10-21  7:09   ` Michał Górny
2017-10-21  2:08 ` Chí-Thanh Christopher Nguyễn
2017-10-21  7:09   ` Michał Górny
2017-11-06 16:58 ` Michał Górny
2017-11-06 19:13   ` Robin H. Johnson
2017-11-06 19:25     ` Mike Gilbert
2017-11-06 19:36     ` Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox