<div dir="ltr">Moving the conversation here...<div class="gmail_extra"><br></div><div class="gmail_extra">On Tue, Nov 18, 2014 at 5:44 PM, Max Krohn <span dir="ltr"><<a href="mailto:themax@gmail.com" target="_blank" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=themax@gmail.com&cc=&bcc=&su=&body=','_blank');return false;">themax@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I don’t follow how Keybase proofs are particularly susceptible to SHA-1 2nd preimage attacks. Let’s say Bob has key k1 and has posted a proof on Github. Let’s say Mallory generates her own k2 such that SHA1(k1) = SHA1(k2), and compromises the Keybase server to reply with k2 whenever someone asks for Bob’s key. This still isn’t good enough. Someone who gets k2 will still download Bob’s signature posted on Github. He’ll check that SHA1(k2) = SHA1(k1), but the posted signature will fail to verify with k2.</blockquote><div><br></div><div>The specific attack that can be used here is called the dual-share key-share attack, and it can be used to derive an RSA keypair such that the signature will verify, even though we don't know the original private key. If we can produce a key like that, a second preimage attack against the hash function can be leveraged to produce and include the public fingerprint of an attacker-controlled key. There was a pretty extensive thread discussing this on various crypto mailing lists earlier (google "Keybase Attack")</div><div><br></div><div>The fundamental design flaw in the entire Keybase proof scheme is that it's depending on security properties of a signature under an unknown key, when the security of any cryptosystem typically rests in the key(s).</div><div><br></div><div>I am sure you can find one-off mitigations for attacks of this nature as they arise, but I feel like what you are trying to do is conceptually flawed.</div><div><br></div><div>You should publish the public key fingerprints along with the proof. The proof alone is not sufficient.</div><div><br></div>-- <br><div class="gmail_signature">Tony Arcieri<br></div>
</div></div>