Channels ▼
RSS

Security

Parameterized Communication

Source Code Accompanies This Article. Download It Now.


Per teaches computer security at Bodøs Graduate School of Business, Norway, and is completing his Ph.D. at the University of Tromsø. He can be contacted at permyr@gmail.com.


"Security maintainability is the elephant in the living room; people know there's an awful problem but are generally too polite to mention it (especially as we don't really know what to do with the beast)." [1]

—Ross Anderson

Security solutions are built to solve very specific cases, with very specific assumptions, parameters, and environments. Because the real world changes, security solutions gradually get out of sync with their deployment environment [2]. Sometimes the effects are undesirable, such as with key/secret leaks. There are also weird and cryptic side-effects; for example, a distributed system needs a PKI to scale, but PKIs are brittle and centralized, and do not scale [3] or, heavens forbid, you need to modify your naming scheme [4]. How do we keep up with real-world changes as efficiently as possible?

Dig around in any nontrivial security-related application, and you'll find places where it is hard to tell where the application stops and the security solution begins. The "spaghettiness" seems to worsen with the software's age, complexity, number of upgrades/patches, number of developers, and so on. There seems to be an inherent conflict of interests. On one hand, you want to maximize the flexibility of the application, add features, and whatnot; on the other, you want to have the best security available.

In a dynamic environment, this sounds brittle. Of course, there's little wonder why: A complete redesign to ensure harmony between application and security is costly. However, it's sometimes easier to redesign than to fix, which is why we get incompatible upgrades: SSH1 versus SSH2, SSL2 versus TSL, Win95 versus Win2000, and so on. For example, replacing a nontrivial security solution based on shared-key technology with one based on public-key technology is a major undertaking. If you don't think so, try modifying, say, Firefox to use password-based PGP instead of SSL/TSL—it's possible, but insanely difficult. Obol (http://www.pasta.cs.uit.no/~perm/Obol/) is a freely available security protocol programming language that has been built to address this problem.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video