Features/StrongerHashes

From FedoraProject

Jump to: navigation, search

Contents

Support and use hashes stronger than SHA-1

Summary

Support stronger hashes than MD5 and SHA-1 (focusing on SHA-2 in particular, but making it easy to migrate to other hashes in the future), and use them by default where appropriate.

Owner

Current status

Detailed Description

The widely-used MD5 and SHA-1 hashes have known vulnerabilities ([1], [2]). These vulnerabilities do not break the hashes completely, but it is prudent to migrate to stronger hashes (e.g. the SHA-2 family) as soon as possible (see for example the tables in [[3]]).

As many packages as possible will have SHA-2 hash support added, focusing on the most widely used and most security sensitive packages first. If it does not significantly affect interoperability, these hashes will be used by default.

Of particular interest is the RPM file format: The file format now has support for using stronger hashes in package signatures and payload file hashes (see RPM_file_format_changes_to_support_SHA-256), but it is not enabled by default. There are some interoperability issues when RPM packages using more than one hash type are used together (affecting updates of %config files that don't change their contents, and sharing identical files across packages that use different hashes - see [[4]] for specifics). Tools that work with RPMs (e.g. koji) need to support the RPM file format extensions.

Another important area is hashes used in repodata, repodata signatures, package signatures, and release signatures (the signed SHA1SUM file).

Not all uses of hashes are security relevant and need to be converted. For example, these uses can be vulnerable to attacks on hash algorithms:

These uses should be converted to better ensure integrity of important data:

These uses are probably not at risk:

Benefit to Fedora

A system more resistant to attacks on the hashes. This will also make it possible to build an operating system based on Fedora that will be certifiable for government use ([5]).

Drawbacks

(yum upgrade) from Fedora 9 directly to Fedora 11 won't be possible (the necessary rpm backport would be too large). Upgrade from Fedora 9 to 10, then to 11, should work. Alternatively, a repo that provides the Fedora 11 rpm recompiled for F-9 can be provided (unsupported just like using yum to upgrade).

Upgrades from RPM packages that use MD5 to packages that use SHA-2 (e.g. upgrade from F<11 to F11) will move all user-modified %config (not %config(noreplace)) files to .rpmsave.

Scope

For RPM file hashes: RPM, koji, spacewalk.

For repodata/release hashes and signatures: yum, createrepo, pungi.

At least one file copying tool and one backup tool need to support SHA-256: scp and bacula appear to do so.

As many other individual packages that use hashes as possible.

How To Test

User Experience

Dependencies

None

Contingency Plan

Documentation

None yet. Tracking bug #461972 [6].

Release Notes

See Documentation_Beats_Installer#Upgrade_Notes and Documentation_Security_Beat.

Comments and Discussion