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>