<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>

<style>img {
max-width: 100%; height: auto;
}
body {
font-size: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";'>
<div class="content">

<p style="color: #777777;">
<a href="https://gitlab.com/ametzler">Andreas Metzler</a>
<a href="https://gitlab.com/gnutls/gnutls/-/issues/1407#note_1145518090">commented</a>:
</p>
<div class="md" style="color: #303030; word-wrap: break-word;">
<p dir="auto" style="color: #303030; margin: 0 0 16px;" align="initial">We had a little but of discussion in Debian about this on <a href="https://bugs.debian.org/1010955" rel="nofollow noreferrer noopener" target="_blank" style="margin-top: 0;">https://bugs.debian.org/1010955</a> since our (Debian's)  tooling is not up to this yet, we currently check whether <em>all</em> signatures are trusted instead of <em>any</em>. I think Daniel Kahn Gillmor summed up nicely why this is wrong:</p>
<blockquote dir="auto" style="font-size: inherit; color: #525252; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1.5rem; box-shadow: inset 4px 0 0 0 #dbdbdb; border-top-width: 0; border-bottom-width: 0; border-right-width: 0; margin: 0.5rem 0;" align="initial">
<p style="color: inherit; line-height: 1.5; margin: 0 0 16px;">[...] Requiring every discovered signature to be valid is a mistake.  For example, it means that projects that start publishing an OpenPGP v5 signature (when rfc4880bis is finally released) alongside their OpenPGP v4 signatures will fail to be validated.
[...]
If anything, the correct move here is to have uscan be satisfied as long as it finds <em style="margin-top: 0;">any</em> valid signature from any key in the keyring located in debian/upstream/signing-key.asc.</p>
<p style="color: inherit; line-height: 1.5; margin: 0 0 16px;">Here's another way of looking at it: consider a malicious network adversary capable of interposing themselves and tampering with either the tarball or the signature -- it is trivial (and unavoidable) that the adversary can make a good signature fail; just fiddle some bits in the signature or the tarball.  What we critically want to avoid is for them to be able to make a bad signature appear good.</p>
<p style="color: inherit; line-height: 1.5; margin: 0 0 16px;">But note that if we believe every supplied signature must be good when a multiple signature is supplied, and one signature is from an unknown party, then a network attacker can simply <em style="margin-top: 0;">remove</em> the unknown signature, and the remaining signatures will all pass, converting a "bad" multi-sig into a "good" single-sig.  The threat model for this approach is clearly muddled!</p>
<p style="color: inherit; line-height: 1.5; margin: 0;">By permitting a single signature from any signer to validate, we are not increasing the capabilities of the attacker at all.  we're simply making the system more robust, and enabling upstream developers to smoothly migrate to new keys by signing with both keys for a period of time.</p>
</blockquote>
<p dir="auto" style="color: #303030; margin: 0 0 16px;" align="initial">Extrapolating from this I also think that GnuTLS should continue to have a limited set of <em style="margin-top: 0;">trusted</em> signers (= the published keyring) with every release being signed with one of these. There might be a bigger set of people preparing releases who might also sign, but they should not be added to trusted keyring just to fullfill a wrong technical requirement (every signature trusted).</p>
<p dir="auto" style="color: #303030; margin: 0;" align="initial">cu Andreas</p>
</div>


</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #666;">

<br>
Reply to this email directly or <a href="https://gitlab.com/gnutls/gnutls/-/issues/1407#note_1145518090">view it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.com">gitlab.com</a>. <a href="https://gitlab.com/-/sent_notifications/18216eecbc1795fc4f95cfc59c78203a/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.com/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.com/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Issue","url":"https://gitlab.com/gnutls/gnutls/-/issues/1407#note_1145518090"}}</script>


</p>
</div>
</body>
</html>