[Cryptography] how reliably do audits spot backdoors?

Benjamin Kreuter brk7bx at virginia.edu
Tue Dec 24 17:12:24 EST 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Tue, 24 Dec 2013 17:42:33 +1000
"James A. Donald" <jamesd at echeque.com> wrote:
 
> I find C quite intuitive, possibly as a result of having done a bit
> of code review.
>
> What you would call counterintuitive, I read as idiomatic, and what
> is undefined, I read as unidiomatic.

So the fact that it is possible for the sum of two positive integers to
be a negative number is idiomatic?  C has many of the features that make
writing reliable (let alone secure) code difficult, and almost none of
the features that make it easy.

> So, the underhanded C examples would have failed code review, not 
> because their terribly sneaky measures would have been detected in
> code review, but for being unidiomatic, obfuscated, uglified, or
> complexified.

Nonsense.  The UCC entries win points for not be obfuscated or
uglified or complicated.  That is the entire point of the contest.
There is a sufficient amount of undefined behavior in C to make such
things possible, which is part of the problem.

> The code review would have come to an end, and the developer ordered
> to do a rewrite, before the trick had been detected.

So what do we do when we are asked to check an already completed
program for back doors?  This conversation started with the common
suggestion that open source software is more secure because we can
check the code for problems.  Rewriting the Linux kernel or OpenSSL is
not typically considered to be something that is on the table.

Now, if it is on the table, then I do not see any reason why it would
be desirable to choose C over a more well-defined language.  If a
complete rewrite is something we can undertake, then even if *none* of
the languages available now fit the bill, why not just create a new
one?  Why not just identify that subset of C that is "good" and write a
compiler for that language, without any undefined behavior?  Why not
create a new language that we can audit more easily if something like
OCaml is "too slow" (or whatever reason people are giving for avoiding
high-level languages these days)?

- -- Ben



- -- 
Benjamin R Kreuter
KK4FJZ

- --

"If large numbers of people are interested in freedom of speech, there
will be freedom of speech, even if the law forbids it; if public
opinion is sluggish, inconvenient minorities will be persecuted, even
if laws exist to protect them." - George Orwell
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iQIcBAEBCgAGBQJSugbMAAoJEP3W2K8t6K+jk4IP/jjw1PmCFweuWp1gMAEXjrpq
sdedfqPaKR6yM2x+osMcyxPFYHWzLsfu8XidwyMCduMX7wqhS+6uYq/zekf9Utsu
kewg4pv1mUs2/D5fz2WifEFgCte4guFObEyxNLwzywipFJiwPCsr+eVjv+ICuDTg
tQrYY3NxnudB+rrhO/IlWeiT+WuaI3Nnx4kgI+EqbIk1dFL9PBjwZPwFdc+K3H47
7eae8xle0Th1+kwQq9/sWqh/X/jigBVDv30XjCuxs9P1dPhptG49Rl+NVWkOr1l7
Cc74N62IWWVxN1lMrO9ccB/YrSRctoX7y67PnYTL+t5+V/4ppkNgxbzq76NpZqLd
8mx2EhsSrPgu/ylbk0uBIzOm520qWo8ujRIP0g5mwXCJv8SJDay2CgrL9WMB/E0F
5FZsw/uetga49rIDQ45uQsIbgJdQ8zmgP3tgdzUzJ+V3pSaRNfimXslkAek/qFlI
0nUussVL1l+/Cjs5mmIzVBDm5hCWNubYmiw0a8mrjE2AecQ6XRCRr/uZu7qpAB9A
h7kNTaUI6ZLga4siq6zdJQdXvLtQoi9+4WHoSujk/Q35E8U00oKbOojXPZn2GXUx
5IS8cmZsNSqZHz1XEzjxEdd3OKyGpMfgra7waFhjqUyujs2bnVtrM+nP6usFQ6k/
9WJOQYOLZkHl2v2vPcbs
=E6ZM
-----END PGP SIGNATURE-----


More information about the cryptography mailing list