There are many implementations of Crypto-systems that defeat the very
locks they attempt to erect. It's not that the Crypto-system
algorithm is itself weak, but the way it was implemented. At
the turn of the century a widely used implementation of
Secure Socket Layer, (SSL) by one of the largest software
makers in the business, was designed with a serious oversight,
it sent back error messages in the clear. What this meant was
that if a cracker wanted to pick this lock, all he/she had to do
was to throw carefully tailored strings of jibberish at a site
implemented this way, that is using this software, and
occasionally a recognizable error message would be sent back.
Example if you sent just exactly the right jibberish, you might get back
jiBberiSh-JibbErish file not found:
this tells you the last part of the jibberish you sent, when decoded
by the other side was some command that requested something be done
with a file, and it also tells you that the middle of the
jibberish you sent, when decoded by the other side was decoded as
jiBberiSh-JibbErish and judging how long it took to return the answer, you
might even be able to guess the operating system on the other end was
attempting to run jiBberiSh-JibbErish as an executable
program. After a mere million tries, you
have a fifty percent likelihood of breaking the password, based
solely on error message dialog. A security reseacher in
AT&T discovered the issue and reported it to the company that implemented
the SSL in question. The company first tried to deny the error
messages were sent back in the clear, when the AT&T researcher
presented demonstration code to break the key, the implementing company
tried to claim that it was a special case, and no body would use
it that way. It was more or less at this point that the
demonstration code was leaked to the public, along with the whole sordid
story, and then they had to fix it. Folks in the business call
this Cryptographic Snake Oil.
A more subtle form is where Cryptography is implemented correctly, but
weaknesses in the underlying operating system allow attackers to install
things like Keyloggers, which wait for a system call to the
SSL DLL to act as a trigger to transmit the last
5000 keystrokes to some E-mail address on the internet, completely
undoing any security offered by even a correctly implemented
Cryptosystem. It's still Cryptographic Snake Oil,
their still offering for sale something that looks good, but won't provide one
whit of protection from a determined foe.
What can be done... One thing one can do is to use code issued
under either the BSD, or GPL license where ever possible, this protects you
via the Thousand eyes effect
Many Linux distros today think nothing of
tainting the Kernel there are three levels or degrees to which
you can do this, to some introducing even the smallest amount of encumbered
code, that isn't strictly GPL pure, is tantamount to being a little
bit pregnant, either you are proprietary, or you're GPL, no consideration is
given for any thing in between.