My understanding of the problem:

(Bear with me. I'm trying not to ramble too much here.)

For catching simple data errors in the download, there is no problem,
of course. The "attacker" is random chance, so downloading the SHA256
file and comparing the checksums should be sufficient. 

The probability of an error in the image download being matched by an
error in the checksum file download is pretty close to zero.

However, if we consider the possibility that the image has been
deliberately modified, we must also consider the possibility that the
checksum file has also been deliberately modified. In this case the
probability that the modified image matches the modified checksums is
close to one.

Therefore, for man-in-the-middle attacks, we are presented with a
logical vicious cycle, a problem of whether we trust the chicken first
or the egg, or rather, whether we trust the image first, which contains
the cryptographic key and the verification tool for testing the
checksums, or the checksums themselves first, which can be tested with
the sha256sum tool from some other source.

Out-of-band information is the way to break the vicious cycle, thus the CDs are 
worth the price.

Now, for the general attack, we can assume that it would be hard enough for a 
single government, or even several in collusion, to dynamically maintain 
man-in-the-middle modifications and prevent the developers from noticing at the 
same time as preventing the receiver from noticing. If checksums don't match, 
enough people will ask questions, and the attacker's hand is tipped.

For focused attacks, we can posit the interception of a few sets of CDs and DNS 
poisoning of a few individuals' internet connection. There seems to be very 
little to do to avoid this.

I downloaded the install CD55.iso and the checksums from a nearby mirror. I 
also downloaded the checksums from the central server and several other mirrors 
(somewhere in the US, Africa, South America, Europe, IIRC). And I compared the 
checksum files with each other, and they matched. So the mirrors agree, and I 
can assume I'm fairly safe from rogue mirrors.

If I were the target of a focused attack (low probability, but must be 
considered), the attackers might be filtering my stream and mechanically 
replacing every query against a known mirror with their altered mirror, with 
its altered images and checksums. And they would have to be able to intercept 
my physical CDs, as well. 

That's possible, but it's a lot of work for the attackers. And if they attack 
too many individuals, as I note above, the chance of their hand being tipped 
rises high enough to be a significant extra cost to them. Thus, this kind of 
attack has to be limited to a one-shot, carefully coordinated attack, too 
expensive to use for small game.

So I can download the checksums on separate days, to make it harder for them to 
maintain the attack successfully, and wait to actually install the system until 
I've got checksums from several different mirrors, several different times. 
Downloading multiple copies of the checksums at different times reduces my 
exposure to man-in-the-middle attacks. Not perfect, but better than nothing.

One suggestion/request, to make it even harder for the man-in-the-middle attack 
to be successfully employed, could the current checksums be posted in the 
announcement of the new version? 

When those announcements get echoed by magazines or by other bloggers, they 
could produce copies of the checksums that are going to be much harder for an 
attacker to catch in its filters. (Might require asking the magazines and 
bloggers to echo the checksums with the announcements.)

-- 
Joel Rees <joel.r...@gmail.com>

Reply via email to