[117105] in Cypherpunks

home help back first fref pref prev next nref lref last post

Re: PGP source and binaries comparisons, and vain and degrading

daemon@ATHENA.MIT.EDU (Petro)
Thu Aug 26 14:26:28 1999

Mime-Version: 1.0
Message-Id: <v04205507b3eb2d3e355a@[216.112.5.39]>
In-Reply-To: <v04210100b3ea7d462001@[204.1.2.2]>
Date: Thu, 26 Aug 1999 10:57:20 -0700
To: cypherpunks@cyberpass.net
From: Petro <petro@suba.com>
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
Reply-To: Petro <petro@suba.com>

>>	His point, you Boob, is that any one of the constraints he 
>>mentions can change the binary enough to be different.
>>
>>	Smart compilers can optimize code for a specific processor 
>>(3/4/5/686), as well there are a host of different optimizations 
>>one can ask of the compiler, and a bunch of link time stuff as 
>>well--if the libraries you are linking to are slightly 
>>different--caused by the same things in compiling them--and you are 
>>statically linking the binaries, you will get different results.
>>
>>	There is also a difference between compilers, and versions of 
>>compilers--gcc 2.7.2, 2.8.1, egcs 1.1.2 and gcc 2.95 will all 
>>output different object code GIVEN EXACTLY THE SAME INPUT.
>>
>>	This makes verifying the binaries a SERIOUSLY non-trivial 
>>task, and makes comparing them utterly useless without going thru 
>>them byte by byte, and then you STILL may miss a clever compromise.
>>
>>
>>	For fucks sake man, at least have a CLUE before you put your 
>>foot in your mouth.
>
>No, verifying the binaries is NOT a SERIOUSLY non-trivial task. Yes, 
>there are a lot of compiler switches that allow you to produce 
>significantly varying versions but it is quite easy (at least with 
>Metrowerks) to set the switch for the freeware version and verify 
>the binary modulo the two slight byte ranges


	IF, and ONLY IF you have access to the same compiler on the 
same platform.

>You also have some interesting example source code for your platform and the
>platform independent crypto source code to study. I would certainly highly
>recommend the activity to any students. In the past there was a motto that
>cypherpunks write code. I hope they are at least willing to attempt to verify
>code without objecting preemptively that it is a hopeless task.

	I--like many others--have a life to pay for. Comparing the 
binaries is going to be easy--that just takes a diff. Tracking down 
any differences and what they do is the hard part. I don't have time, 
and IMO it's unnecessary. If your threat model includes the kind of 
people who compromise the application at that level, and you are 
using a pre-built binary, you deserve everything you get.

	I am using the pre-built binary on my Mac, but I wouldn't 
even consider doing something that needed Black Bag level protection 
on this machine the way it is today.
 

	And I didn't say "hopeless", it can be done by people who 
know that kind of thing. I said "Non-trivial" in response to JFA (as 
opposed to JYA) saying:


>All is needed is that _some_ trustworthy people do it and obtain the proper
>results.  The vast majority of PGP users don't only not own any compiler, they
>don't even know what it is!  So, they rely on the integrity of others. In that
>case, the integrity of Cypherpunks and the grass-root crypto 
>community. Just as
>most Cypherpunks rely on the integrity of some others for knowledge. 
>Otherwise, >everybody would have to learn medicine and rocket 
>science and everything for
>himself!
>I really do LOVE out-of-context and genuinely going-out-of-their-way-to-be-
>supremely-nitpicking-asshole replies like that!

	"Non-trivial" as in difficult, As in time consuming. As in 
just grab the fucking source and cc it yourself. If you are on a Mac, 
get a copy of CodeWarrior and spend an hour learning how to compile 
something. It's not that tough--even on a Mac.
--
Interfaces matter.  You need mathematical bones; engineering muscle;
but you won't replicate without beautiful skin. Bits, transistors, 
wires, code, gummint velveeta is free.  Will is expensive. Gutenburg. 
Smith.  Ford.  Moore.  Postel. Steam engines were neat.  Steam 
engines pulling trains were amazing. Computers were neat.  Computers 
networked were amazing. Warning grunts are useful. The ability of a 
charistmatic speaker to fuck with your head is disastrous.--Blank 
Frank(anonymously)


home help back first fref pref prev next nref lref last post