Re: Separating Firefox crypto code into removable parts

2015-03-08 Thread Ryan Sleevi
On Sat, March 7, 2015 12:20 pm, kim.da...@safe-mail.net wrote:
  Looking for comments about feasibility of breaking-up Firefox
  TLS/SSL-handling code into easily-removable sections.

  I want to fully separate NSS code from code that handles:

  1) MD5 signature handling

  2) SHA1 signature handling

  3) RSA key exchange

  4) CBC mode

  5) RC4 ciphers

  6) SSLv3

  7) TLSv1.0, TLSv1.1

  8) SEED, IDEA, 3DES, Camellia cyphers

  9) Secondary/Fallback handshake

  10) Insecure TLS version feedback

  and likely others.

  The intention is to phase out and eventually remove support for all of the
  above.

  Disabling those technologies in browser options is insufficient.
  FREAK-like attacks will exploit holes in the disabling mechanism to
  reenable them. Alternatively, malware, misguided forks, or clueless users
  will change those settings for the worse.

  Removing code from the source code is the only secure way. This also helps
  code maintainability, review, and certifiability.

  To facilitate easier code removal, the code needs to be properly separated
  first - and that is the goal of this project.

Hi Kim,

Unfortunately, I believe you start from a flawed premise, and thus the
rest sort of falls apart.

That is, while removing the code may help long term, separating the code
out does not help maintainability or readability - and in fact, can
greatly hinder them.

Plenty of implementations that have striven to fully separate out their
TLS 1.0, TLS 1.1, and TLS 1.2 stacks have thus fallen victim to bugs. For
example, I can think of one prominent implementor that failed to fix BEAST
because they only fixed one of their implementations, and left the others
vulnerable.

TLS version fallback, for example, is not implemented in NSS.

MD5/SHA1 signature handling is already separated, but you still need it in
some contexts, but not others. Even more so CBC - whose use in NSS extends
far beyond SSL and has many independent applications that would need
independent timelines for deprecation.

In short, I think the plan of separating out that code to be
well-intentioned, but misguided. It's also something that, as a mature
software project with many consumers, will require care and caution rather
than wholesale deleting. And since I've been accused in the past
(amusingly so) of trying to keep backdoors in, no, this is about the
tension of a responsible and open software development practice and
balancing the needs for security.

I also don't think there's the same urgency to delete the code. The
argument you give - that malware will enable it - is unfortunately an
unsolvable problem. I refer you to
https://technet.microsoft.com/en-us/library/hh278941.aspx to understand
why this is inherently so.

The other arguments are equally problematic. Misguided forks (there have
been none yet) and clueless users (whom, if we accept as a threat model,
can do anything and everything hostile to security, including running
malware) are similarly specious.

Rather than focus on removing the code, perhaps it's better to think about
how best to phase things out - with attention being paid to the attendant
issues.

For example, NSS is enabling TLS 1.2 by default (
https://bugzilla.mozilla.org/show_bug.cgi?id=1083900 ) and disabling SSL 3
by default ( https://bugzilla.mozilla.org/show_bug.cgi?id=1140029 ), but
both of these are huge steps with *real* interop issues for applications
using NSS. We can't just ignore those and say Too bad, so sad -
including for the most obvious reason, in that applications would just
switch to TLS libraries that understood and appreciated interop concerns.

-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto


Re: Example of revoked SSL Sites

2015-03-08 Thread Dirkjan Ochtman
On Fri, Mar 6, 2015 at 8:32 PM, cneberg christopher.neberg...@gmail.com wrote:
 Does anyone know of any good test SSL websites which have been revoked where 
 I can determine revocation 1) by OCSP and 2) by CRL's?   I'd like to be able 
 to test revocation features in a browser.

You could look at Qualys' SSL Labs thingy; they must have breakage of
all the required varieties in there somehow...

Cheers,

Dirkjan
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto