Baron_Saturday's writeup in this node, suggesting one could simply replace /dev/random with /dev/zero, while technically totally true, is missing a very important point.

Nobody can delete /dev/random, or make a new device node, except for the root user. If someone who is already root on your machine is attempting to compromise your crypto, they are probably not going to do it by messing with your RNG (if they're smart, anyway). What they will do is recompile your application to dump plaintext, secret keys, and other interesting values into /tmp. Or they will modify it at run time, using a debugger (hey, they're root. They can do that kind of thing). Or they will just read your process' memory directly, through /proc.

A quote from Baron_Saturday's writeup: "You can't trust the random number generator on any system you don't control." Very true. You also can't trust the CPU, the memory, the programs you are executing, the shared libraries those programs are linked with, anything at all; in short, if you don't have exclusive control of the system (and you never have a guarantee that you do have exclusive control of the system, especially on Unix), nothing is safe. Either you have to a) trust people, or b) go live in a cave somewhere.

This is just how Unix security works. If you don't trust the root user on the system, then you can't trust the system at all. If this is a problem for you, instead consider a capability-secure system like CapROS or L4Ka.