Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Application Security

12:30 PM
Matt Little
Matt Little
Connect Directly
E-Mail vvv

Open Source Encryption Must Get Smarter

When it comes to cryptography, there are quite a few myths in the age-old debate about proprietary versus open source application security.

Utter the words "open source" in an organization's tech circles, and you're just as likely to hear an application developer gush as to curse. The term is divisive, a rival sports team debate for the geeky set, but one that usually pushes developers and architects to be creative. When it comes to the debate about open source security development, however, there are more than a few myths and definite room for improvement, especially with respect to encryption.

Open source or proprietary: either/or?
Let's start by quickly spelling out benefits and holes in both proprietary encryption solutions and their open source alternatives. For proprietary, you've got something tested (to some degree) out of the box, nice and tidy. Ah, if only you could get it to work the same way the sales engineers described it… but that's part of the reason you signed an SLA for support. And it's why you'll get alerts of bugs and repeated notices to upgrade as you go along. With buy-in, you're given a handshake deal on data protection, someone for backup or blame, depending on where you sit along the chain of risk.

Users opt for open source encryption because of the persistent thoughts -- true or not -- that bringing in outside crypto is pricy and not as secure, because the source is closed. Rather than promises from an outside company that the software has been vetted, you can see a community of developers and a history of product fixes and flaws out in the open.

Open -- for attack
Battles over poorly crafted or badly executed proprietary solutions will be played out in the courts and press. Open source security issues, however, can linger beneath the surface or be confused with an attack on the community that created them. Recent notable incidents offer insight into ways open source security and crypto can get better.

First off, there was OpenSSL. The Heartbleed flaw compromised hundreds of thousands of sites, opening the door to hackers and frustration for anyone who has a password. Months on, there are bugs popping up on every type of website for various versions of this open security framework.

Closer to a traditional understanding of crypto, we were also saddled this year with ruinous problems in TrueCrypt, the open source security software that shut down "mysteriously" due to "unfixed" protection issues. Since the announced shutdown, TrueCrypt's torch bearers keep up the site as a means of migrating away… to a proprietary solution.

How can open source get smarter?
As someone who's spent time on both the proprietary and open community development sides of things, I can offer five factors to consider when making a decision about open source cryptography.

  • Take open to heart: The developers I work with always joke that the best developers "steal good code." It's much simpler to cut and paste if you can trust the source. It's flawed, however, to assume security code is good just because it's open. As simple as it seems, take your developer team to task on what they're using.
  • Born to die: When a bunch of people chip in to create something, it can be hard to pull the plug. If open source creations or iterations are woven throughout the enterprise software stack, it could be left to linger long after its useful life. (Shellshock, anyone?) Software needs to be kept up to date, especially where security is concerned. Companies force themselves to make decisions about which products to kill.
  • The pen is mightier: Any individuals or organizations that take information security seriously should do their own pen testing on an application before they add it to their arsenal. For enterprise customers, there are a number of providers that can provide product security assessments, including white box and black box testing, architecture design assessments, and even threat modeling.
  • You're not a cryptographer: I talked before about not kidding yourself with security. It comes down to this fact: You probably don't have a cryptographer on staff. Real, solid encryption involves more than cracking open a copy of Applied Cryptography by Bruce Schneier. You can do DIY reports or sales analytics, but when it comes to managing keys and implementing ECC (or not), some degree of expertise is in order. Also, open or closed, most crypto is based on a few, vetted standards.
  • Any way to get smarter. Be realistic about your in-house capabilities, user adoption/aptitude, and, most of all, appetite for risk. That training course or conference session could go a long way in terms of sizing up what you're able to pull off safely.

Reflecting on these issues, you'll be able to make a better determination about crafting a solution, bringing in proprietary protection, and strengthening what you've already invested in. With smarter open source security, we're all contributing toward designing the best ways to guard against today's data protection threats.

Matt is a technologist at heart with more than a decade of experience in the IT industry. In his role as Vice President of Product Development, he oversees planning, development, and lifecycle management for next-generation PKWARE offerings, including Viivo. He also plays a ... View Full Bio
Comment  | 
Print  | 
More Insights
Newest First  |  Oldest First  |  Threaded View
User Rank: Author
12/18/2014 | 8:33:02 AM
Re: Good points - but what about the next generation?

I've followed the Snowden leaks closely. He's certainly done wonders for those outside of the InfoSec community when it comes to general knowledge about the necessity for encryption. As for how Snowden relates to not trusting proprietary encryption code, are you referring to the intentional weakening of RSA's DUAL EC? Something else? I ask because most of the other leaks detail exploiting vulnerabilities surrounding implementation, not actually breaking crypto. Have I missed something?

I do agree that "you have no idea who has been putting trapdoors into your software" but that applies to open source as well. How deeply must we inspect the code? What about the language used? The libraries that shipped with your OS? What about the compilers? The firmware? Hardware?

The rigor required to write good security software is more often found within established companies. They have processes in place that make the variables mentioned above as consistent as possible.  There's also more control over the team and the talent. A high degree of certainty in all of these areas are critical when it comes to building security applications.

At the end of the day, this game is about trust. We're all making decisions about which products to trust. Just because you can look at the code yourself doesn't mean you're capable of understanding it and just because a "security" expert said the code is fine, doesn't mean it is.

The Ada point is relevant. I don't think it's the solution but if anyone is intereted in more information about some of the security shortcomings of popular native languages and how Ada addresses them there's a free e-book you can grab from AdaCore: http://www.adacore.com/uploads_gems/Ada_Safe_and_Secure_Booklet.pdf



User Rank: Apprentice
12/15/2014 | 4:15:12 AM
Good points - but what about the next generation?
These are good and important points to bear in mind.

Importantly, though, we now know, through Snowden, that proprietary code, particularly encryption code, can never be trusted - you have no idea who has been putting trapdoors in and it's highly unlikely the very best people you can hire will be able to find them.

It is sad that open source cryptography has been neglected. What you should demand of your encryption software is:


- It is open source

- It is easy to understand (if not, you'll find it difficult to spot trapdoors)

- The cryptographic method hasn't been approved by a dubious authority

- It doesn't have any strange, aribtrary blocks of numbers in it

- It is reliabe


Naturally, if you're using a proprietary system, like Microsoft Windows, then there's no point in bothering - you are compromised.

The open source community should be providing security software that satisfies these requirements.

To satisfy them all, it should be written in Ada.
User Rank: Moderator
12/8/2014 | 3:38:55 PM
Great Points!
Some real great advice here, especially since I've seen some of the downsides to having folks in-house work with both out of box and open source software.  As stated here, one of the biggest things is to be honest with your security requirements.  If you don't have the in-house expertise to properly vet an application, getting an outside resource is going to be critical.  Just because open source comes with a nice price tag attached, it doesn't mean you don't have to do due diligence.  You need to make sure that you are aware of any limitations both in functionality AND in security and be honest about it.
Manchester United Suffers Cyberattack
Dark Reading Staff 11/23/2020
As 'Anywhere Work' Evolves, Security Will Be Key Challenge
Robert Lemos, Contributing Writer,  11/23/2020
Cloud Security Startup Lightspin Emerges From Stealth
Kelly Sheridan, Staff Editor, Dark Reading,  11/24/2020
Register for Dark Reading Newsletters
White Papers
Cartoon Contest
Write a Caption, Win an Amazon Gift Card! Click Here
Latest Comment: This comment is waiting for review by our moderators.
Current Issue
2021 Top Enterprise IT Trends
We've identified the key trends that are poised to impact the IT landscape in 2021. Find out why they're important and how they will affect you today!
Flash Poll
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
PUBLISHED: 2020-11-28
In Eclipse Jetty version 9.4.0.RC0 to 9.4.34.v20201102, 10.0.0.alpha0 to 10.0.0.beta2, and 11.0.0.alpha0 to 11.0.0.beta2, if GZIP request body inflation is enabled and requests from different clients are multiplexed onto a single connection, and if an attacker can send a request with a body that is ...
PUBLISHED: 2020-11-27
blosc2.c in Blosc C-Blosc2 through 2.0.0.beta.5 has a heap-based buffer overflow when there is a lack of space to write compressed data.
PUBLISHED: 2020-11-27
npm package systeminformation before version 4.30.5 is vulnerable to Prototype Pollution leading to Command Injection. The issue was fixed with a rewrite of shell sanitations to avoid prototyper pollution problems. The issue is fixed in version 4.30.5. If you cannot upgrade, be sure to check or sani...
PUBLISHED: 2020-11-27
In Crafter CMS Crafter Studio 3.0.1 an unauthenticated attacker is able to inject malicious JavaScript code resulting in a stored/blind XSS in the admin panel.
PUBLISHED: 2020-11-27
In Crafter CMS Crafter Studio 3.0.1 an unauthenticated attacker is able to create a site with specially crafted XML that allows the retrieval of OS files out-of-band.