The NSA's Linux security project was so good it almost made up for that whole Echelon thing. Then politics entered the picture.
The most secure software in the world doesn't improve security if nobody runs it, or if it's incompatible with what the vast majority of people run.
It's not surprising that it couldn't last, however, and a recent CNET
What prompted this decision? Not abuse of their code by script kiddies, nor the ungrateful trolling of the hordes, but lobbying by the U.S. software industry against the government giving away something that could compete with products sold commercially. Microsoft in particular allegedly conducted intense lobbying to block further open-source development by the NSA, according to CNET.
We already knew that security is less a technical problem than a human problem. If true, Microsoft's alleged NSA coup demonstrates that it's a political one as well.
Anything which encourages the use or development of proprietary systems that are difficult to certify for even the most basic levels of security creates additional risk to computer systems; reducing government support for security development for any widely-available and widely-used operating system creates additional risk; and suppressing the development of a competitor's secure software on the basis of market concerns creates a security risk for your customers as well as your competitor's customers.
None of which is to say that Microsoft is doing anything wrong. They're a business, and they are doing what they need to do to win in the marketplace. What's wrong is the rest of the industry allowing them to get away with it.
So what can be done about it? I believe that developing code that runs securely is a good first step, as News.com columnist Declan McCullagh suggests in a recent opinion piece. However, it's hardly a complete solution.
No, what we need to do now is something we haven't been very good at. We have to start playing politics.
The most secure software in the world doesn't improve security if nobody runs it, or if it's incompatible with what the vast majority of people run. Standard is better than better. VINES networks might be more secure than TCP/IP but it does little to secure the Internet as a whole. MD5 password hashing was always more secure than old Unix crypt password hashes, but until vendors started shipping the code, and integrating it via Pluggable Authentication Modules, it made little difference.
Politics is an essential element in the success of any given technology. The quality matters some, as do other factors, but the people and organizations with a knack for the for political are the ones who get to the finish line first.
I'm using the term "politics" broadly here: it includes standards-setting, personal relationships between major personalities, and marketing.
We've seen politics at work in our own community. Quite a number of people feel that Linux is technically inferior to FreeBSD, OpenBSD, or even NetBSD. That makes Linux's success in the marketplace the quintessential triumph of politics: Linux succeeded by being in the right place at the right time, having a unified front in public (if not behind-the-scenes), having a recognizable name and logo, and a number of popular, well-liked people to provide a public face for the effort.
The security community, and the open-source security community in particular, can use that as a roadmap to ensuring that secure open-source solutions aren't buried by proprietary competitors.
There's no harm in writing your Senator or the President; it might help to submit comments to the FTC. But it takes a lot of money and a lot of power to influence the NSA. We should focus our main efforts, instead, on battles that we can win. These are the battles within standards organizations and within our workplaces. Convince the W3C to reject
If we don't want to lose future market share, if we don't want Microsoft to dictate its terms to the security community, if we don't want to be stuck with whatever they choose to offer the marketplace, we have to play politics. The only alternative is to let Microsoft dominate the marketplace and dictate future standards. I can't imagine how that would improve the security of our systems.