Re: [TLS] TLS grammar checker?
Bill Frantz <frantz@pwpconsult.com> Wed, 19 June 2013 02:03 UTC
Return-Path: <frantz@pwpconsult.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B44721F9952 for <tls@ietfa.amsl.com>; Tue, 18 Jun 2013 19:03:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.036
X-Spam-Level:
X-Spam-Status: No, score=-2.036 tagged_above=-999 required=5 tests=[AWL=-0.188, BAYES_00=-2.599, SARE_OBFU_ALL=0.751]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GSez-WVpjfDP for <tls@ietfa.amsl.com>; Tue, 18 Jun 2013 19:03:11 -0700 (PDT)
Received: from elasmtp-masked.atl.sa.earthlink.net (elasmtp-masked.atl.sa.earthlink.net [209.86.89.68]) by ietfa.amsl.com (Postfix) with ESMTP id 2397521F99A7 for <tls@ietf.org>; Tue, 18 Jun 2013 19:03:08 -0700 (PDT)
Received: from [173.75.83.226] (helo=Williams-MacBook-Pro.local) by elasmtp-masked.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <frantz@pwpconsult.com>) id 1Up7jl-00065Y-1R; Tue, 18 Jun 2013 22:03:05 -0400
Date: Tue, 18 Jun 2013 19:03:04 -0700
From: Bill Frantz <frantz@pwpconsult.com>
To: "Blumenthal, Uri - 0558 - MITLL" <uri@ll.mit.edu>, "'nico@cryptonector.com'" <nico@cryptonector.com>
X-Priority: 3
In-Reply-To: <201306190022.r5J0Md8g010534@mail136c38.carrierzone.com>
Message-ID: <r422Ps-1075i-AD2FFBCB16994C0CA5FC8D7A8497A375@Williams-MacBook-Pro.local>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Mailsmith 2.3.1 (422)
X-ELNK-Trace: 3a5e54fa03f1b3e21aa676d7e74259b7b3291a7d08dfec79f8c45de55d1262dd57a8a62f306048e1350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 173.75.83.226
Cc: "'tls@ietf.org'" <tls@ietf.org>
Subject: Re: [TLS] TLS grammar checker?
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Jun 2013 02:03:21 -0000
On 6/18/13 at 5:22 PM, uri@ll.mit.edu (Blumenthal, Uri - 0558 - MITLL) wrote: >For the software I was talking about - it is finish now, not >the start. It's been deployed on multiple platforms since 1995 >(testing the code included procedure currently called "fuzzing" >:). And survived unscathed for several years that I tracked it. >Decommissioned by now, I suspect, undefeated as far as I know. I'm glad to hear this. It is nice to know that there are a few things out there that actually work. >So while I admire the skepticism expressed below, it probably >could find a better application. ;). Not all the computer >security is born equal. :) I fear that we should be designing for something closer to the average programmer than for the superior programmer. If I could make it idiot proof, I would, but as the saying goes, they keep making better idiots. On 6/18/13 at 5:16 PM, nico@cryptonector.com (Nico Williams) wrote: >Automatic tooling is a better start. I.e., ASN.1, XDR, IDL, ... compilers. > >Ad-hoc syntaxes don't lend themselves to automatic tooling, so they >tend to result in lots of error-prone hand-coding. I think this is a good direction. A proof of correctness might help since compilers have been known to generate bad code. >What are you arguing for? (Mind you, this really isn't the right >place... that goes for me too) What I am arguing for in all security is simplicity. "As simple as possible, but no simpler." Complex formats, procedures, dependencies, etc. all make it harder to understand what security is provided and easier to make mistakes in both reasoning and coding. A long time ago a team from the National Computer Security Center (NCSC) came to study KeyKOS, an operating system I was working on. We had a fairly simple system which showed potential for being evaluated at the B2 level. Someone asked, "What about the microcode in the processor and the disk controllers?" The answer was basically, "We ignore that." We are so dependent on so many levels of software and hardware. Reducing those dependencies as much as possible, unless we can show that additional dependencies make things better, seems like a good idea. >Formats or syntaxes? Let's be clear. I not sure what difference you have in mind? >>While I'm bashing ASN.1, formats that allow infinite length data items are >>asking for buffer overruns. > >Like JSON? Parsers/decoders need to impose some reasonable limits. >But this is not where the buffer overflows come from. The buffer >overflows I think you're thinking of mostly resulted from redundancy >in TLV encodings. I thought there were a few cases of getting the length from the ASN.1, doing a malloc and ignoring the failure return and then bad things happened(tm). This problem is somewhat like the pervasive problem in the early C programming books. They showed how simple string processing could be, but left buffer length checking as an exercise for the reader. In any case, practical parsers need to have some limits on length. For example, consider RSA keys. 4K keys are the long-normal high security keys these days. If each integer is encoded with a 16 bit length field followed by the integer we would have plenty of room for growth without causing memory problems on most platforms. On the other hand, a 512K RSA integer might be a nifty denial of service attack on a server. So we still have to check for something reasonable. --------------------------------------------------------------------------- Bill Frantz |"Web security is like medicine - trying to do good for 408-356-8506 |an evolved body of kludges" - Mark Miller www.pwpconsult.com |
- Re: [TLS] TLS grammar checker? Peter Gutmann
- [TLS] TLS grammar checker? Paul Hoffman
- Re: [TLS] TLS grammar checker? Paul Hoffman
- Re: [TLS] TLS grammar checker? Eric Rescorla
- Re: [TLS] TLS grammar checker? Salz, Rich
- Re: [TLS] TLS grammar checker? Paul Hoffman
- Re: [TLS] TLS grammar checker? Nico Williams
- Re: [TLS] TLS grammar checker? Bill Frantz
- Re: [TLS] TLS grammar checker? Nico Williams
- Re: [TLS] TLS grammar checker? Blumenthal, Uri - 0558 - MITLL
- Re: [TLS] TLS grammar checker? Bill Frantz
- Re: [TLS] TLS grammar checker? Nico Williams
- Re: [TLS] TLS grammar checker? Blumenthal, Uri - 0558 - MITLL
- Re: [TLS] TLS grammar checker? Bill Frantz
- Re: [TLS] TLS grammar checker? Salz, Rich
- Re: [TLS] TLS grammar checker? Peter Gutmann
- Re: [TLS] TLS grammar checker? Hannes Tschofenig
- Re: [TLS] TLS grammar checker? Paul Hoffman
- Re: [TLS] TLS grammar checker? Salz, Rich
- Re: [TLS] TLS grammar checker? Martin Rex
- Re: [TLS] TLS grammar checker? Salz, Rich
- Re: [TLS] TLS grammar checker? Blumenthal, Uri - 0558 - MITLL
- Re: [TLS] TLS grammar checker? Salz, Rich
- Re: [TLS] TLS grammar checker? Nikos Mavrogiannopoulos
- Re: [TLS] TLS grammar checker? Salz, Rich
- Re: [TLS] TLS grammar checker? Martin Rex
- Re: [TLS] TLS grammar checker? Kemp, David P.
- Re: [TLS] TLS grammar checker? Martin Rex
- Re: [TLS] TLS grammar checker? Nico Williams
- Re: [TLS] TLS grammar checker? Kemp, David P.
- Re: [TLS] TLS grammar checker? Martin Rex
- Re: [TLS] TLS grammar checker? Carl Wallace
- Re: [TLS] TLS grammar checker? Martin Rex
- Re: [TLS] TLS grammar checker? Peter Gutmann
- Re: [TLS] TLS grammar checker? Nico Williams
- Re: [TLS] TLS grammar checker? Peter Gutmann
- Re: [TLS] TLS grammar checker? Martin Rex
- Re: [TLS] TLS grammar checker? Nico Williams
- Re: [TLS] TLS grammar checker? Kemp, David P.