<div dir="ltr">Hello Peter,<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 13, 2014 at 9:03 AM, Peter Gutmann <span dir="ltr"><<a href="mailto:pgut001@cs.auckland.ac.nz" target="_blank">pgut001@cs.auckland.ac.nz</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">As a number of recent research papers (and published vulnerabilties) have<br>
highlighted, quite a lot of implementations of security protocols and<br>
mechanisms don't really detect problems with everything from invalid<br>
signatures through to the crypto verifying but whatever it is that's verified<br>
being for the wrong web site.<br>
<br>
One way of checking that your implementation doesn't have (some of) these<br>
problems is through testing via fault injection, creating some failure like<br>
the presence of corrupted data leading to an invalid signature and then making<br>
sure that it's detected.  Problem is, what sort of faults do you inject?  The<br>
reductio ad absurdum approach is that you need to test every bit of every byte<br>
of any protocol, but what we're looking for here is high-level implementation<br>
flaws in which crypto mechanisms aren't applied properly (and we're assuming<br>
that something like a MAC failure will occur whether we corrupt bit 1 of byte<br>
1 or bit 8 of byte n).  So, what sort of faults need to be injected to test<br>
for typical flaws?  What I've been using is:<br>
<br>
  SSH and SSL/TLS:<br>
<br>
    Wrong certificate/key<br>
    Handshake message corruption<br>
    Payload data corruption<br>
    Bad signature - wrong hash value<br>
    Bad signature - data corrupted<br>
<br>
  S/MIME and PGP:<br>
<br>
    Wrong certificate/key<br>
    Bad signature - wrong hash value<br>
    Bad signature - data corrupted<br>
    Bad signature - signed attributes corrupted<br>
<br>
Can anyone think of anything else that needs to be checked?  I'm looking for<br>
faults that check for specific failures, not something like "check every X.509<br>
extension in every certificate in an SSL server's cert chain".<br>
<br><br></blockquote><div>What check is to catch the Apple "gotofail" bug? </div><div> </div></div></div></div>