Dr. Dobb's 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.


Channels ▼
RSS

Security

Safety AND Security


Robert is cofounder, president, and CEO of AdaCore and a Professor Emeritus of Computer Science at the Courant Institute of New York University. He can be contacted at www.adacore.com.


In the world today, we are relying more and more on the safety and security of software systems. When we get into a recently made car, the braking and control systems depend on complex software. When we enter the polling booth, we increasingly encounter machines that depend on software for recording our votes correctly.

The traditional view of safety-critical software is that it is concerned with avoiding logic bugs that could cause loss of life, whereas security concerns are about preventing unauthorized access and tampering.

But are these two concerns really different? I participated in the design of Ada 95, one of the only programming languages that specifically targets safety and security concerns [there is an annex of the Standard with the title "Safety and Security"]. We talked to experts and were struck by the fact that there seemed to be two different communities that did not talk to one another very much but had very similar technical concerns. Originally, we thought perhaps we would have separate annexes for safety and security in the Ada Standard, but we really couldn't see a clear technical distinction.

In the modern world, I would argue that it is wrong—and perhaps even dangerous—to separate these concerns. In a post-9/11 world, it's hard to imagine any safety-critical system where one can feel free to ignore the possibility of malicious intrusion. On an episode of "Alias," we see the CIA super hacker flying for the first time and nervous, hacking into the flight system at takeoff to ensure the pilot has completed the checklist properly. Entertaining or worrisome? Let's hope that this is indeed just fiction, but I think we can't rely on hope these days. Was the avionics system on this plane specifically designed with intrusion detection and avoidance in mind? I would guess not.

What about the other way around? There are lots of security-critical systems that don't seem to be directly linked to possible death or injury. But a lot hides behind the word "directly." You would have to be completely oblivious to the political developments of the last few years to disagree with the obvious link between elections, democracy, and life-and-death issues. In our heavily interlinked economy, software failures can cause serious collateral damage—a telephone system fails, preventing a 911 call? An error in an accounting system causes pensions to be wiped out? A failure in software evaluating a drug trial allows dangerous drugs on the market? You can easily add many items to this list.

It's time we merged the experience and skills of the two communities, as well as merging standards and procedures. We also need to recognize that safety and security are major concerns in much of what we do in the software field. We need to change the way we educate students. Very often students come out of school knowing very well how to fiddle around on the Web, but have no idea how one goes about writing large-scale, totally reliable software. We also need to examine our tools and environments. It would be a good start if languages other than Ada decided to concentrate on these issues (or if more people used Ada!). A search for safety or security in most language Standards yields a depressing blank.


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.