Users hence need some assurance that the software they are running is trustworthy. Traditionally, the ways users are assured of software integrity by some combination of a trusted source and a trusted user community. Trusted sources tend to be either commercial software houses (which are presumed not to deliberately kink their software) or freeware/shareware authors, who provide either source code or checksums of their binaries. A trusted user community serves to keep either source of software (commercial or free) in check, by damaging either the reputation of the author (hence causing users to be reluctant to use later software from the same souce) or the reputation of particular products (by pointing out bugs or corrupted distribution points).
These mechanisms have their faults. Trusting the producer has led to distributions being shipped with viruses in them. It also allows producers to embed features (or bugs) into releases whose effects are not known to the users, but potentially problematical. (For example, consider the the multiple egregious privacy violations in various popular web browsers, including onBody mailto's, inability to disable JavaScript in some cases, unadvertised and impossible-to-disable use of email-addresses and referrer information, magic cookies, and all the rest). Trusting the community leads to a problem of finding all relevant information about the product---has the product been thoroughly evaluated? What have people said about it? If I were to try to evaluate some part of the product that has not been examined before, where should I look first.
The Yenta code-vetting system attempts to solve some of the problems, by combining these features:
Lenny Foner Last modified: Fri Mar 19 22:04:49 EST 1999