It’s a common conception within the cyber security community that in the security arms race, cryptography always wins. However, this position – while consistent with the state of the art of the technology – perhaps ignores some of the logistics and human aspects of securing real systems.
It is true that cryptography is a mature field. Hash functions, pseudo-random number generators, symmetric and asymmetric encryption functions are all quite well known. Using appropriate key sizes, and taking into account the ongoing development of processor technology, among other factors, an experienced cryptographer can design a crypto-system apparently secure against any given adversary.
However, the extent of technical perfection is only one piece of the puzzle. It doesn’t matter how tough a door or secure a lock if the key is hanging on a peg next to it. In fact, when the technical systems are so sophisticated, the human and organisational components become more vulnerable. Indeed – it is the mark of an excellent crypto-system when so-called “rubber hose cryptanalysis” is the most effective possible attack. However, when humans are the weakest link in the security chain, we learn just how weak a link that is. The prevalence of phishing attacks, and the successful security breaches (like that of twitter in April of 2009) based on such techniques just go to show how ineffective security machines humans are. Indeed, some researchers have suggested[PDF Link] that the economics of security practise necessarily make users the easiest targets.
However, everyday users aren’t the only human and logistical vulnerabilities in security systems. Mozilla recently approved [link, link] the addition of the China Internet Network Information Center (CNNIC) as a trusted certificate authority (CA) in the popular Firefox browser. This means that Firefox will accept all SSL certificates signed by the CNNIC. However, the CNNIC is often alleged to be a major actor in Chinese state-sponsored spying. As a CA, it could certainly use nefarious key-signing practises to execute man-in-the-middle (MiM) attacks against Firefox users. Such attacks could allow for anything from spying on a user’s email accounts, to stealing their credit card info. On the other hand, the CNNIC is also the CA responsible for signing the certificates of many legitimate Chinese websites.
These events highlight two potential difficulties with the processes which surround the use of strong cryptography. In this case, individuals at the highest levels of trust authorised the trusting of this new certificate. Choices by these individuals affect the security environments of huge numbers of users. However, the correct choice for them isn’t clear; should they expose some users to a potential MiM attack of one kind, or expose others to the possibility of an attack because they can’t verify the SSL certificate of the site to which they’re connecting? The deeper problem is that the public-key infrastructure system simply wasn’t designed to deal with this kind of situation. Even if the core crypto-system (HTTPS) were totally secure (which it isn’t: link, link), the outside systems designed to make it useful (the PKI model) fail to take account of certain real-world threat models, which make them imperfectly-equipped to deal with this situation.
This is not to say that such security systems are necessarily doomed to failure, nor that all systems design is flawed. However, the playing field is slightly more evenly balanced than a purely technical assessment might imply.