<?xml version="1.0"?>
<!-- name="generator" content="blosxom/2.0" -->

<rss version="2.0">
  <channel>
    <title>David A. Wheeler's Blog   </title>
    <link>http://www.dwheeler.com/blog</link>
    <description>David A. Wheeler's weblog.</description>
    <language>en</language>

  <item>
    <title>Securing Open Source Software (OSS)</title>
    <link>http://www.dwheeler.com/blog/2008/05/06#securing-oss-2008</link>
    <pubDate>Tue, 06 May 2008 21:17 GMT</pubDate>
    <!-- date: 2008-05-06 -->
    <description>
&lt;p&gt;
I've just posted my
&lt;a href=&quot;http://www.dwheeler.com/essays/securing-oss.pdf&quot;&gt;
presentation titled &quot;Securing Open Source Software (OSS or FLOSS)&lt;/a&gt;,
which is to be presented at the
&lt;a href=&quot;http://www.bowheadevents.com/swaforum2008/index.cfm&quot;&gt;
8th Semi-Annual Software Assurance Forum, May 6-8, 2008,
Sheraton Premiere, Tyson's Corner in Vienna, Virginia.&lt;/a&gt;
In it, I discuss how to improve the security of an OSS component
by modifying its environment, as
well as securing the OSS component itself (by selecting a secure
component, building a secure component from scratch, or
modifying an existing component).
I include a number of examples; they're necessarily incomplete, but
I hope it will help people who are developing or deploying systems.
(Here is &lt;a href=&quot;http://www.dwheeler.com/essays/securing-oss.odp&quot;&gt;
&quot;Securing Open Source Software (OSS or FLOSS)&quot; in OpenDocument format&lt;/a&gt;.)
Enjoy!
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Twisted Mind of the Security Pro</title>
    <link>http://www.dwheeler.com/blog/2008/03/21#twisted-mind</link>
    <pubDate>Fri, 21 Mar 2008 10:08 GMT</pubDate>
    <!-- date: 2008-03-21 -->
    <description>
&lt;p&gt;
&lt;a href=&quot;http://www.wired.com/politics/security/commentary/securitymatters/2008/03/securitymatters_0320&quot;&gt;Bruce Schneier's
&quot;Inside the Twisted Mind of the Security Professional&quot;&lt;/a&gt;
is highly-recommended reading - he explains the different kind of thinking
required to be good at making things secure.
Security pros are able to see the bigger picture, and in particular, they are
able to see things from from an attacker's perspective.
&lt;/p&gt;
&lt;p&gt;
For example,
&quot;SmartWater is a liquid with a unique identifier linked to a particular
owner. 'The idea is for me to paint this stuff on my valuables as proof
of ownership,' I wrote when I first learned about the idea. 'I think
a better idea would be for me to paint it on your valuables, and then
call the police.'&quot;
Similarly, on opening up an ant farm, his friend was surprised that the
manufacturer would send you ants by mail; Bruce thought it was interesting that
&quot;these people will send a tube of live ants to anyone you tell them to.&quot;
&lt;/p&gt;
&lt;p&gt;
Being able to think like an attacker is so important that in my
&lt;a href=&quot;http://www.dwheeler.com/secure-programs/&quot;&gt;
book on writing secure programs&lt;/a&gt;,
I gave it its own heading:
&lt;a href=&quot;http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/paranoia.html&quot;&gt;paranoia is a virtue&lt;/a&gt;.
It's still true.
My thanks to Bruce Schneier for expressing this need so eloquently.
&lt;/p&gt;
&lt;p&gt;
We would live in a better world if &lt;i&gt;all&lt;/i&gt; of us could see the world
as attackers do - or at least make the effort to try.
In particular, we'd stop doing many foolish things in the name of
&quot;security&quot;, and instead do things that actually secured our world.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Software Assurance 2007</title>
    <link>http://www.dwheeler.com/blog/2007/10/04#assurance-2007</link>
    <pubDate>Thu, 04 Oct 2007 13:22 GMT</pubDate>
    <!-- date: 2007-10-04 -->
    <description>
&lt;p&gt;
Lots of interesting things are happening
with the various efforts to eliminate or counter software vulnerabilities.
The &lt;a href=&quot;http://iac.dtic.mil/iatac/download/security.pdf&quot;&gt;
Software Security Assurance (SwA) State-of-the-Art Report (SOAR)&lt;/a&gt;
tries to list what's going on, especially in things related to the
U.S. government.
As with any such document, it's incomplete, and it's only a snapshot
(things keep changing!).
But if you haven't been following this world, and want to know
&quot;what's going on&quot;, it's the best place I know of to start.
Of course, you can also look at sites such as the
&lt;a href=&quot;https://buildsecurityin.us-cert.gov/&quot;&gt;
U.S. DHS / CERT &quot;build security in&quot; site&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
The &lt;a href=&quot;http://nvd.nist.gov/&quot;&gt;U.S. National Vulnerability Database&lt;/a&gt;
tracks specific vulnerabilities in specific products; they identify each
vulnerability using the unique id defined by &lt;a href=&quot;http://cve.mitre.org/&quot;&gt;
Common Vulnerabilities and Exposures (CVE)&lt;/a&gt;.
But if the world is going to prevent these kinds of
vulnerabilities from happening in the future, we need to categorize them
in a way that everyone agrees what the categories are.
Informally, there are lots of ways to categorize them, but their meanings
differ between people.
That's a real problem when comparing tools; different tools find different
problems, but without agreed-on terminology, it's hard to even describe
their differences.
MITRE is currently developing a way to categorize all vulnerabilities in
a way that everyone can agree on, called
&lt;a href=&quot;http://cwe.mitre.org/&quot;&gt;Common Weakness Enumeration (CWE)&lt;/a&gt;.
The U.S. National Vulnerability Database and MITRE have worked out a
&lt;a href=&quot;http://nvd.nist.gov/cwe.cfm&quot;&gt;set of CWEs that they will use to
categorize vulnerabilities&lt;/a&gt;.
The CWE is still being developed, but at least some common terminology
is getting worked out.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Audio for &quot;Open Standards and Security&quot; online</title>
    <link>http://www.dwheeler.com/blog/2007/03/20#open-standards-security-audio</link>
    <pubDate>Tue, 20 Mar 2007 18:28 GMT</pubDate>
    <!-- date: 2007-03-20 -->
    <description>
&lt;p&gt;
Last year in Boston I gave a presentation titled
&quot;Open Standards and Security&quot;&lt;/a&gt;, explaining why
open standards are needed for security;
here is
&lt;a href=&quot;http://www.dwheeler.com/essays/open-standards-security.pdf&quot;&gt;
&quot;Open Standards and Security&quot; as a PDF&lt;/a&gt;.
You can also get it in
&lt;a href=&quot;http://www.dwheeler.com/essays/open-standards-security.odp&quot;&gt;OpenDocument format&lt;/a&gt;
(for the OpenDocument version, make sure you
&lt;a href=&quot;http://www.dwheeler.com/#corefonts&quot;&gt;have the fonts you need&lt;/a&gt;).
I
&lt;a href=&quot;http://www.dwheeler.com/blog/2006/04/12#open-standards-open-source&quot;&gt;
had earlier posted a blog entry about it&lt;/a&gt;, and
&lt;a href=&quot;http://business.newsforge.com/business/06/04/05/2046210.shtml&quot;&gt;
Newsforge had some very nice things to say about my talk.&lt;/a&gt;
I used several stories in my talk, which the reporter called &quot;parables&quot;.
I didn't use that word, but I wish I had, because that's exactly
what those stories were.
&lt;/p&gt;
&lt;p&gt;
Many people never got to hear it, so I've finally made
an audio version of it and posted it here in several formats:
&lt;a href=&quot;http://www.dwheeler.com/multimedia/open-standards-security.ogg&quot;&gt;[OGG (Vorbis)]&lt;/a&gt;,
&lt;a href=&quot;http://www.dwheeler.com/multimedia/open-standards-security.mp3&quot;&gt;[MP3]&lt;/a&gt;, and
&lt;a href=&quot;http://www.dwheeler.com/multimedia/open-standards-security.flac&quot;&gt;[FLAC]&lt;/a&gt;.
Download and enjoy!
You should be able to understand the talk just from listening to the
audio, but if you listen to the audio while reading the slides, all the
better!
&lt;/p&gt;
&lt;p&gt;
Of course, having to post multiple audio formats shows how immature the
audio standards area is.
While ISO has a standard (MP3),
&lt;a href=&quot;http://www.dwheeler.com/essays/opendocument-open.html&quot;&gt;
MP3 is not an open standard because it's patent-encumbered&lt;/a&gt;.
I recommend using the Ogg Vorbis format instead - it's the smallest file, and
it has very good quality.
Ogg Vorbis produces smaller files with better
sound than MP3, so the only real reason to use MP3s is because your equipment
can't handle anything else.
The FLAC format is lossless, and is useful for recoding later
(it's much smaller than a WAV or AIFF while still being lossless).
&lt;/p&gt;
&lt;p&gt;
The solution to this nonsense is not to have &lt;i&gt;no&lt;/i&gt; standards.
The solution is to either (1) get countries to stop permitting software patents
(the best solution), or at least (2) get standards organizations to stop
publishing closed standards like MP3 for software.
I think the tide has already started turning for option 2.
After all,
when MP3 was created, many still thought that patents in IT standards
were okay, and relatively few understood the problems that patents could cause.
Fundamentally, of course, this made no sense; the whole point of a patent is to
create temporary monopolies, while the whole point of an open standard is
to enable competition (the opposite of monopolies).
People have tried to make compromises that don't really work, such
as having so-called RAND policies.
But I think these are clear failures; all royalty-bearing patents
discriminate (for example, they prevent open source and
no-cost implementations).
The point of patents is to prevent competition, and thus they have
no place in software standards.
Now that software patents have been shown to be
a &quot;Wild West&quot; where anyone can be sued for billions,
the need for unencumbered standards should be quite clear.
The W3C has already changed its policies to make it very hard to publish
patent-encumbered standards, and the IETF has already thrown out several
proposals specifically because they were encumbered by patents.
&lt;/p&gt;
&lt;p&gt;
One of the people at my talk made the claim that, &quot;today, every successful
open standard is implemented by FLOSS.&quot; That should be easy to disprove -- all
I need is a counter-example. Except that counter-examples seem to be hard to
find; I can't find even one, and even if I eventually find one, this
difficulty suggests that there's something deeper going on.
So as a result of thinking about this mystery, I wrote a new essay, titled
&lt;a href=&quot;http://www.dwheeler.com/essays/open-standards-open-source.html&quot;&gt;
Open Standards, Open Source&lt;/a&gt;.
It discusses how open standards aid free-libre /
open source software (FLOSS) projects, how FLOSS aids open standards, and then
examines this mystery. It appears that it is true -- today, essentially every
successful open standard really is implemented by FLOSS. I consider why that
is, and what it means if this is predictive. In particular, this observation
suggests that an open standard without a FLOSS implementation is probably too
risky for users to require, and that developers of open standards should
encourage the development of at least one FLOSS implementation. 
The point of the &quot;Open Standards and Security&quot; talk was on open standards, not
on FLOSS, but there's much to be learned from their
inter-relationships.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Internet Explorer 7: Still a security problem, keep using Firefox</title>
    <link>http://www.dwheeler.com/blog/2007/02/05#ie-2007-bad</link>
    <pubDate>Mon, 05 Feb 2007 18:38 GMT</pubDate>
    <!-- date: 2007-02-05 -->
    <description>
&lt;p&gt;
Microsoft's Internet Explorer (IE) is a major security problem.
&lt;a href=&quot;http://blog.washingtonpost.com/securityfix/2007/01/internet_explorer_unsafe_for_2.html&quot;&gt;
The Washington Post found some horrific statistics&lt;/a&gt; that justify
this claim pretty well:
&quot;For a total 284 days in 2006 (or more than nine months out of the year), exploit code for known, unpatched critical flaws in pre-IE7 versions of the browser was publicly available on the Internet. Likewise, there were at least 98 days last year in which no software fixes from Microsoft were available to fix IE flaws that criminals were actively using to steal personal and financial data from users... In contrast, Internet Explorer's closest competitor in terms of market share -- Mozilla's Firefox browser -- experienced a single period lasting just nine days last year in which exploit code for a serious security hole was posted online before Mozilla shipped a patch to remedy the problem.&quot;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Let's sum that up: in 2006, IE was unsafe 78% (284/365) of the time - 27%
(98/365) had known criminal use - compared to Firefox's 2% (9/365).
This is an improvement for IE; in 2004, it was unsafe 98% of the time,
and 54% of the time there was known active exploitation of them.
But Firefox is improving too; in 2004 it was unsafe 15% of the time (with
0% known exploitation), and half of that time only affected Macintosh users.
(&lt;a href=&quot;http://www.dwheeler.com/blog/2005/08/06/#ie-horrific&quot;&gt;I blogged
on these Internet Explorer / Firefox security statistics in 2005&lt;/a&gt;.)
You really want to be using the safer product, and now we have two
different years with the same result.
But none of these studies considered IE version 7... so has it all changed?
&lt;/p&gt;
&lt;p&gt;
IE version 7 is finally out, and I'd like to think it's better than IE 6.
Indeed, I suspect IE 7 &lt;i&gt;is&lt;/i&gt; better than its predecessor;
Microsoft did try to improve IE security, and IE 6's security
was so bad that it was hard to get worse.
But IE is not the only browser available, and
early signs suggest that IE is still far behind Firefox.
&lt;/p&gt;
&lt;p&gt;
In particular,
there are already signs that Microsoft still isn't addressing vulnerabilities
aggressively the way that the Mozilla/Firefox team have been doing for years.
Why? Because recent &quot;Full disclosure&quot; and Bugtraq postings give room for worry.
&lt;a href=&quot;http://seclists.org/fulldisclosure/2007/Feb/0081.html&quot;&gt;
Michal Zalewski's &quot;Web 2.0 backdoors made easy with MSIE &amp;amp; XMLHttpRequest&quot;
(3 Feb 2007)&lt;/a&gt; noted that the XMLHttpRequest object (used by many
so-called &quot;web 2.0&quot; applications) allows
&quot;client-side web scripts to send nearly arbitrary HTTP requests, and then
freely analyze and manipulate the returned response, including HTTP
headers.  This gives an unprecedented level of control over your browser to the
author of a visited site. For this reason, to prevent various types of
abuse, XMLHttpRequest is restricted to interacting only with the site from
where the script originated, based on protocol, port, and host name
observed.  Unfortunately, due to a programming error,
Microsoft's Msxml2.XMLHTTP ActiveX object that MSIE
relies on allows you to bypass this restriction
with the use of - BEHOLD - a highly sophisticated newline-and-tab
technology.&quot;
(This last bit about being &quot;highly sophisticated&quot; is quite sarcastic;
security problems with control characters like newline and tab are
as old as computer security problems.)
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://seclists.org/bugtraq/2007/Feb/0026.html&quot;&gt;One poster found&lt;/a&gt;
a previous May 2006 article about this problem:
&lt;a href=&quot;http://www.securityfocus.com/archive/1/434931&quot;&gt;
&quot;IE + some popular forward proxy servers = XSS, defacement (browser cache poisoning)&quot;&lt;/a&gt;.
Indeed,
&lt;a href=&quot;http://seclists.org/bugtraq/2007/Feb/0045.html&quot;&gt;
the basic information goes back to
September 2005&lt;/a&gt;.
(There are hints in January 2003, but to be fair few noticed its implications
at the time.)
&lt;/p&gt;
&lt;p&gt;
Now it turns out that this kind of error is easy to make; even the
Mozilla/Firefox people made this kind of error.
In particular,
this basic problem (differing in some details) was
&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=297078#c12&quot;&gt;
identified and fixed in Mozilla in 2005 as bug 297078&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The problem in this case
isn't that the Microsoft people made an error, and the
Mozilla/Firefox people didn't.
Certainly, there's
&lt;a href=&quot;http://www.dwheeler.com/oss_fs_why.html#security&quot;&gt;evidence&lt;/a&gt;
that Mozilla's policy of releasing the source
code for people to review, combined with worldwide development/review and
a &quot;bug bounty&quot; to encourage additional review, really
does produce good results.
But in this case, both Microsoft and Mozilla made the error; what's
different is what happened next.
Mozilla fixed it in 2005, the same year the issues had become clear,
yet Microsoft still hasn't fixed it in 2007.
(And no, this particular defect isn't included in the Washington Post
study above; it sure wouldn't improve IE's statistics if they had.)
&lt;/p&gt;
&lt;p&gt;
If a supplier won't quickly fix known security problems, that's a really big
warning sign.
&lt;a href=&quot;http://blog.washingtonpost.com/securityfix/2006/02/2005_patch_times_for_firefox_a.html&quot;&gt;
The Washington Post earlier found that Microsoft took far longer to
fix a vulnerability than Mozilla&lt;/a&gt;, and this latest report is consistent
with that sad news.
I do not understand why Microsoft hasn't addressed this; hopefully this
will turn out to be a false alarm (that seems unlikely) or they
will fix it soon.
&lt;/p&gt;
&lt;p&gt;
The only way to really see which browser is more secure is examine its
vulnerability pattern over time into the future - for example,
does it have more vulnerabilities over time (of a certain criticality), and
how fast are reported vulnerabilities repaired?
But note a key issue:
unless you throw away the entire program and start over from scratch, it's
difficult to turn an insecure program into a secure one.
Thus, while past performance is no guarantee of future results, it's
a good way to bet.
It appears that Microsoft still hasn't fixed all the problems in IE 7 that were
publicly known at least two years earlier (in some of the most
widely publicized vulnerability discussion groups!).
If that's true, it's a &lt;i&gt;really&lt;/i&gt; bad sign... how can they have removed
most vulnerabilities not publicly known, if they haven't even addressed the
ones already publicly known?
&lt;/p&gt;
&lt;p&gt;
I continue recommending that users switch to Firefox and &lt;i&gt;not&lt;/i&gt; use IE
for security reasons.
And I highly recommend that web developers ensure that their systems conform
to web standards so that users can choose and switch their browsers.
These are only my personal opinions, but I think you can see why I
think it makes sense.
Even ignoring this particular issue, IE has a terrible track record.
I'm glad that Microsoft is starting to take security seriously (they are
at least saying the right things), and I'd delight
in a race between suppliers to see who can produce the most secure software.
But these recent reports reinforce the supposition that
IE is still too dangerous to use safely.
There's nothing &quot;user friendly&quot; about a program that is easily subverted.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Flawfinder version 1.27 released!</title>
    <link>http://www.dwheeler.com/blog/2007/01/16#flawfinder-1.27</link>
    <pubDate>Tue, 16 Jan 2007 23:41 GMT</pubDate>
    <!-- date: 2007-01-16 -->
    <description>
&lt;p&gt;
I've released yet another new version of
&lt;a href=&quot;http://www.dwheeler.com/flawfinder&quot;&gt;flawfinder&lt;/a&gt; - now
it's version 1.27.
Flawfinder is a simple program that examines C/C++ source code and
reports on likely security flaws in the program, ranked by risk level.
&lt;/p&gt;
&lt;p&gt;
The big functional addition is that flawfinder can now
examine &lt;i&gt;just the changes&lt;/i&gt; in a program.
If you're modifying a big program, it can be overwhelming to view all
of the warnings flawfinder can produce... but if you can look at only the
ones relevant to the change &lt;i&gt;you&lt;/i&gt; are making, it can be easier to handle.
My thanks to Sebastien Tandel - he suggested the feature, I replied
in a brief email describing how I thought it could be done, and
&lt;i&gt;in the same day&lt;/i&gt; he replied with code to implement it.
Wow, that's truly amazing.  His original patch only worked with Subversion;
I modified it so that it also works with GNU diff.
For this to work, you use the new &quot;--patch&quot; option and give flawfinder
a patch file (in unified diff format) that describes the changes... and
flawfinder will only report on the potential vulnerabilities on the
changed lines (or the lines immediately above and below them).
&lt;/p&gt;
&lt;p&gt;
An administrative change is that
&lt;a href=&quot;https://sourceforge.net/projects/flawfinder/&quot;&gt;
flawfinder is now hosted on SourceForge.net&lt;/a&gt;, with a mailing list
and a Subversion repository for code changes.
This should make it easier for people to discuss the program,
submit changes, and generally keep track of things.
And it also deals nicely with the &quot;what happens if he's hit by a bus&quot;
problem.
&lt;/p&gt;
&lt;p&gt;
You can view the
&lt;a href=&quot;http://www.dwheeler.com/flawfinder/ChangeLog&quot;&gt;Flawfinder
ChangeLog&lt;/a&gt; for the details on the other changes.
It deals more gracefully with unreadable files and when there are zero
lines of code.
Also, it now skips by default any directories beginning with &quot;.&quot;;
this makes it work nicely with many SCM systems
(use &quot;--followdotdir&quot; if you WANT it to enter such directories).
My thanks to Steve Kemp, cmorgan, and others.
&lt;/p&gt;

&lt;p&gt;
For more info, or a copy,
just go to my
&lt;a href=&quot;http://www.dwheeler.com/flawfinder&quot;&gt;original flawfinder home page&lt;/a&gt;
or the new
&lt;a href=&quot;https://sourceforge.net/projects/flawfinder/&quot;&gt;
flawfinder page on SourceForge.net&lt;/a&gt;.
Enjoy!
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>DRM Nonsense, HD DVD, AACS, and BackupHDDVD - why &quot;content protection&quot; doesn't</title>
    <link>http://www.dwheeler.com/blog/2007/01/07#drm-nonsense-hddvd</link>
    <pubDate>Sun, 07 Jan 2007 23:58 GMT</pubDate>
    <!-- date: 2007-01-07 -->
    <description>
&lt;p&gt;
Hollywood wants to prevent piracy - and that is understandable.
But in their zeal it sometimes appears that some who create movies or music
don't care what privacy, security, legal rights,
or laws of physics they try to violate.
And that is a real problem.
DRM proponents want to release digital information to people,
yet make it impossible to copy them.
Yet the whole point of digital processing is to enable perfect copies.
&lt;a href=&quot;http://www.defectivebydesign.org/&quot;&gt;DRM (Digital Rights Management or
Digital Restrictions Management) is truly &quot;&lt;i&gt;defective
by design&lt;/i&gt;&quot;&lt;/a&gt;.
As others have said, DRM is an attempt to change water so it's not wet.
&lt;/p&gt;

&lt;p&gt;
The recent reports about HD DVD are showing the folly of DRM in general.
HD DVD encrypts a movie, and then encrypts that movie key
many different times on the DVD as well - once for each player.
The theory here is that the movie industry could then revoke a player
key by simply not including that key on future DVDs.
I think the first time they try to actually do this, they'll see the
folly of it -- it would mean that millions of customers would suddenly
no longer have access to future movies through a device they purchased
that they expected to work with them.
Can anyone say &quot;class action lawsuit&quot;?  I knew you could!
&lt;/p&gt;

&lt;p&gt;
But it turns out that this idea has a fatal flaw technically, as shown by
&lt;a href=&quot;http://forum.doom9.org/showthread.php?t=119871&quot;&gt;
BackupHDDVD&lt;/a&gt;
(you can
see the &lt;a href=&quot;http://zavlakas.googlepages.com/BackupHDDVD.zip&quot;&gt;code&lt;/a&gt;,
&lt;a href=&quot;http://www.playfuls.com/news_05648_HD_DVDs_AACS_Protection_Bypassed_In_Only_8_Days.html&quot;&gt;comments&lt;/a&gt;,
&lt;a href=&quot;http://www.nytimes.com/2007/01/01/technology/01hack.html?ei=5088&amp;amp;en=38ddb2918d77f8a4&amp;amp;ex=1325307600&amp;amp;partner=rssnyt&amp;amp;emc=rss&amp;amp;pagewanted=print&quot;&gt;NY Times article&lt;/a&gt;, and
&lt;a href=&quot;http://hardware.slashdot.org/article.pl?sid=06/12/28/0259244&quot;&gt;
Slashdot discussion&lt;/a&gt;).
The code itself is no big deal - it just implements the decryption protocol,
which is publicly known anyway.
But the interesting trick is that the released software
requires the master decryption key for that specific movie,
and the implementor is claiming that he has
found a way to get this key from a player.
To be fair, he hasn't proven he can get such keys by actually sharing
any real keys, but let's presume that he is telling the truth; his
described method for getting them is very plausible.
Yet the implementor is &lt;i&gt;not&lt;/i&gt; revealing the player that he got this from
or the exact details of how he got them.
&lt;/p&gt;

&lt;p&gt;
That's more clever than it first appears.
The creators of the DRM scheme assumed that
anyone who broke a player would reveal the player's private key.
But because BackupHDDVD's creator
doesn't reveal that key, he never reveals the player
he's broken into.  Since the DRM scheme masters
don't know which player was broken into, their revocation scheme won't work.
Many other revocation schemes for media use the same basic approach,
and so they would fall the same way.
&lt;/p&gt;

&lt;p&gt;
Some Blu-ray folks are claiming that this shows their scheme works better,
because they can include additional crypto stuff on the media.
But this shows that they don't understand the nature of the problem;
it's not hard to implement the crypto interpreter, and since you wouldn't
know which player to revoke, you would give all the crypto interpreter
information away too.  They'd just need to send around the decrypted
decryptor... which would be trivially acquired.
Once again, DRM is doing nothing to stop piracy, but it's certainly
interfering in legitimate use.
Sorry, but water stays wet.
&lt;/p&gt;

&lt;p&gt;
I do not approve of piracy.
I don't approve of murder, either, yet I approve of
the sale of steak knives and cleaning supplies... and would
oppose trying to halt their sales.
Certainly the &lt;a href=&quot;http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.txt&quot;&gt;costs to consumers of DRM measures&lt;/a&gt; are considerable,
yet they are actively against the interests of customers.. and they
even fail to do the one thing they are supposed to do.
DRM proponents are often laughingly referred to as the
MAFIAA (Music And Film Industry Association of America), in part because
their actions towards their own customers seem actively hostile.
DRM seems to be primarily about preventing people from using in legitimate
ways the products they've already purchased, and has nothing to do
with actually preventing illegal activities.
Why can't I transfer that music or movie I bought to a new
device I just bought?  Or to an old CD so I can play it
on older equipment?  Why can't I watch what I bought using
GNU/Linux or BSD systems?
Why can't I use a $3000 display's full resolution at all times
for movies I have legitimately bought?
Measures this extreme that create monopolies and inhibit legal activities
are not a good thing, and are worse than the piracy that DRM measures
are trying to prevent.
&lt;/p&gt;

&lt;p&gt;
What's worse, the anti-consumer impacts of DRM don't even inhibit piracy.
The big piracy operations will
just continue to make direct copies of the bits using specialized
equipment, and DRM cannot affect that at all.
Individuals can make recordings of the displays
or sounds... again, DRM can't really counteract that (there are anti-sync
measures for video, but they are easily foiled).
So DRM will fail against individuals, and against large-scale piracy, period.
Since DRM tries to prevent many legitimate uses, it also encourages
law-abiding citizens to break them... and so far they've all fallen,
given that additional incentive.
The fact that DRM is not even successful at doing what it's supposed to
do is just icing on the cake. Even if DRM worked, it is still
worse than the problems it is trying to stop.
&lt;/p&gt;

&lt;p&gt;
DRM is the disease, not the cure.
It's time for content industries to take advantage of technology, instead of
trying to halt the use of technology.
Instead of DRM, they should sell non-DRMed content using standards that
&lt;i&gt;everyone&lt;/i&gt; can implement... and then they can sell their
content to a very large unified market.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Direct Recording Electronic (DRE) Voting: Why Your Vote Doesn't Matter</title>
    <link>http://www.dwheeler.com/blog/2006/10/14#voting-subverted</link>
    <pubDate>Sat, 14 Oct 2006 23:51 GMT</pubDate>
    <!-- date: 2006-10-14 -->
    <description>
&lt;p&gt;
Direct Recording Electronic (DRE) voting machines have been installed
in many locations across the United States.
In a DRE machine, votes are only recorded electronically --
there's no paper that voters check.
DREs can be rigged to forge any election, fairly easily, so
DREs are completely inappropriate for use in any serious election.
In fact, I suspect that vote-rigging has &lt;i&gt;already&lt;/i&gt; occurred with DREs,
and there is &lt;i&gt;no way to prove otherwise&lt;/i&gt;.
&lt;/p&gt;
&lt;p&gt;
In September 2006,
&lt;a href=&quot;http://itpolicy.princeton.edu/voting/&quot;&gt;
Feldman, Halderman, and Felten posted
&quot;Security Analysis of the Diebold AccuVote-TS Voting Machine&quot;&lt;/a&gt;,
showing how trivial it was to completely control a common DRE voting machine.
It turned to be trivial to write programs to do vote-stealing.
The manufacturer's reply didn't really address the issue at all.
&lt;a
href=&quot;http://www.wijvertrouwenstemcomputersniet.nl/images/9/91/Es3b-en.pdf&quot;&gt;
A report on the Nedap/Groenendaal ES3B voting computer&lt;/a&gt; found that
anyone given brief access to a different voting machine can gain
complete and virtually undetectable control over
election results - and how radio emanations from
an unmodified ES3B can tell who voted what from
several meters away.
&lt;/p&gt;
&lt;p&gt;
On the Secure Coding mailing list (SC-L), Jeremy Epstein noted that
election officials' responses was &quot;amusing and scary&quot;;
when shown that DREs could be trivially subverted, instead of forbidding
the use of DREs, they ignored the problem and
asked why the researchers didn't attack real systems.
That's a foolish question - anyone who &lt;i&gt;really&lt;/i&gt; wanted to control
an election would just do it and &lt;i&gt;not&lt;/i&gt; tell anyone.
The manufacturer of that system claims that all the problems reported
by the researchers have been 'fixed'.
I'm willing to believe that some &lt;i&gt;elections&lt;/i&gt; were fixed, but
if there's no voter-verifiable paper trail, the machines are not
appropriate for real elections.
Since they lack a voter-verifiable paper trail,
&lt;i&gt;no DRE can be trusted&lt;/i&gt;. Period.
&lt;/p&gt;
&lt;p&gt;
I used to do magic tricks, and all magic tricks work the same way - misdirect
the viewer, so that what they think they see is not the same as reality.
Many magic tricks depend on rigged props, where what you see is NOT the
whole story. DREs are the ultimate illusion - the naive
&lt;i&gt;think&lt;/i&gt; they know what's happening, but in fact they have no
way to know what's really going on. There's no way to even &lt;i&gt;see&lt;/i&gt; the
trap door under the box, as it were... DREs are a great prop for the
illusion. Printing &quot;zero&quot; totals and other stuff looks just like
a magic show to me - it has lots of pizazz, and it distracts the
viewer from the fact that they have &lt;i&gt;no&lt;/i&gt; idea what's really going on.
&lt;/p&gt;
&lt;p&gt;
I'm of the opinion that elections using DREs have
&lt;i&gt;already&lt;/i&gt; been manipulated.
No, I can't prove that an election &lt;i&gt;has&lt;/i&gt; been manipulated, and I certainly
can't point to a specific manufacturer or election. And I sincerely
hope that no elections have been manipulated. But there's a &lt;i&gt;lot&lt;/i&gt; of money
riding on big elections, and a small fraction of that would be enough
to tempt someone to do it. And many people &lt;i&gt;strongly&lt;/i&gt; believe in their
cause/party, and might manipulate an election on the grounds that it's
for the &quot;greater good&quot; - it need not be about money at all.
&lt;/p&gt;
&lt;p&gt;
It's crazy to assume that absolutely no one's subverted a DRE
in an election, when it's so easy
and the systems are &lt;i&gt;known&lt;/i&gt; to be weak. The whole problem
is that DRE designs make it essentially impossible to detect
massive fraud, almost impossible to find the perpetrator even if
you detected it, and allow a single person to control an entire election
(so there's little risk of a &quot;squeeler&quot; as there is with other
techiques to subvert elections).
And if an unethical person knows they won't be caught,
it &lt;i&gt;increases&lt;/i&gt; the probability of them doing it.
Anyone who thinks that all candidates and parties are too honest to
do this needs to discover the newspaper and history books. Ballot-stuffing
is at least as ancient as ancient Greece, and as modern as Right Now.
&lt;/p&gt;
&lt;p&gt;
These voting systems and their surrounding processes
would not meet the criteria for an electronic one-armed bandit
in Las Vegas. Yet there's more at stake.
Many people have motives for subverting elections - DREs provide
the method and opportunity.
The state commissions cannot provide any justifiable evidence
that votes are protected from compromise if they use DREs.
And that is their job.
&lt;/p&gt;
&lt;p&gt;
For more information about the problems with DREs, see
&lt;a href=&quot;http://www.verifiedvoting.org/article.php?id=5018&quot;&gt;
Frequently Asked Questions about DRE Voting Systems&lt;/a&gt;.
Another interesting article is
&lt;a href=&quot;http://www.schneier.com/blog/archives/2004/11/the_problem_wit.html&quot;&gt;
Bruce Schneier's &quot;The Problem with Electronic Voting Machines&quot;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
There's a solution, and that's verified voting - see the
&lt;a href=&quot;http://www.verifiedvoting.org/&quot;&gt;verified voting site&lt;/a&gt;.
The Verified Voting Foundation advocates
the use of voter-verified paper ballots (VVPBs) for all elections
(so voters can inspect individual permanent records of their ballots
before they are cast and so meaningful recounts may be conducted),
insists that electronic voting equipment and software be open
to public scrutiny, and that random, surprise recounts
be conducted on a regular basis to audit election equipment.
I would add at least three things:
(1) there must be separate voting stations and ballot readers,
where the ballot reader totals are the only official votes
(this prevents a collusion by the voting station), and
(2) there should a standard paper ballot format; this makes it possible
to have independent recounts using equipment from different manufacturers, as
well as making it possible to mix-and-match vendor equipment
(lowering costs for everyone);
(3) there should a standard electronic formats for
defining elections and producing results, again to make it
possible to dramatically reduce costs by enabling mixing and
matching of equipment.
I also think having 100% of the source code of these systems publicly
available for inspection is important - the public must depend on these
systems, so the public should be able to know what they are depending on.
&lt;a href=&quot;http://www.openvotingconsortium.org/&quot;&gt;The Open Voting Consortium&lt;/a&gt;
(OVC) is a non-profit organization dedicated to the development, maintenance,
and delivery of open voting systems for use in public elections.
OVC is developing a reference version of free voting software
to run on very inexpensive PC hardware, which produces
voter-verifiable paper ballots.
&lt;/p&gt;

&lt;p&gt;
I hope that election officials will see the light, and quickly
replace DREs with voting systems that could actually be trusted.
If not, I think we're headed for election disputes that will make the
year 2000 disputes look like like a picnic.
If election officials don't get rid of DREs, sooner or later we will
have an election where one candidate wins even though all the polls
will say he/she lost... and then the courts will find out that
they're untrustworthy and do not permit any kind of real audit or recount.
&lt;/p&gt;

&lt;p&gt;
DREs are unfit for use in any elections that matter. They should
be decommissioned with prejudice, and frankly,
I'd like to see laws requiring vendors to take them back and give
their purchasers a refund, or add voter-verified paper systems
acceptable to the customer at no charge.
(As I noted earlier, the paper needs to meet some standard too,
so that you can use counting
machines from different manufacturers to prevent collusion.)
At no time was this DRE technology appropriate
for use in voting, and the companies selling them would have known better
had they done any examination of their real requirements.
The voters were given a lemon, and they should have the right to get
their money back.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Two new presentations: &quot;Open Source Software and Software Assurance&quot; and &quot;Open Standards and Security&quot;</title>
    <link>http://www.dwheeler.com/blog/2006/03/30#open-standards-security</link>
    <pubDate>Thu, 30 Mar 2006 19:28 GMT</pubDate>
    <!-- date: 2006-03-30 -->
    <description>
&lt;p&gt;
I've put two presentations on my website you might find of interest.
&lt;/p&gt;
&lt;p&gt;
The first one is
&lt;a href=&quot;http://www.dwheeler.com/essays/oss_software_assurance.pdf&quot;&gt;
Open Source Software and Software Assurance&lt;/a&gt;.
Here I talk about Free-Libre / Open Source Software (FLOSS) and its
relationship to software assurance and security.
It has lots of actual statistics, and a discussion on review.
I also deal with the chestnut &quot;can't just anyone insert malicious code
into OSS?&quot; -- many questioners don't realize that attackers can change
proprietary software too (attackers generally don't worry
about legal niceties); the issue is the user's supply chain.
I gave this presentation at FOSE 2006 in Washington, DC, and I've
given variations of this presentation many times before.
&lt;/p&gt;
&lt;p&gt;
The second presentation is
&lt;a href=&quot;http://www.dwheeler.com/essays/open-standards-security.pdf&quot;&gt;
&quot;Open Standards and Security&quot;&lt;/a&gt;.
Here I focus on the role of open standards in security, which turns out
to be fundamental.
&lt;/p&gt;
&lt;p&gt;
I'll be giving the &quot;Open Standards and Security&quot; presentation at the
&lt;a href=&quot;http://www.linuxworldexpo.com/live/12/events/12BOS06A/conference/tracksessions//QMONYA04PWRU&quot;&gt;
&quot;LinuxWorld Government Day: Implementing Open Standards&quot; track&lt;/a&gt;,
April 4, 2006, in Boston, Massachusetts.
I'll speak at 12:45, so come hear the presentation... you'll miss much
if you only read the slides.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Unsigned characters: The cheapest secure programming measure?</title>
    <link>http://www.dwheeler.com/blog/2006/03/28#unsigned-char</link>
    <pubDate>Tue, 28 Mar 2006 21:39 GMT</pubDate>
    <!-- date: 2006-03-28 -->
    <description>
&lt;p&gt;
Practically every computer language has &quot;gotchas&quot; -- constructs or combinations
of constructs that software developers are likely to use incorrectly.
Sadly, the C and C++ languages have an
unusually large number of gotchas, and many of these gotchas tend to
lead directly to dangerous security vulnerabilities.
This forest of dangerous gotchas tends to make developing
secure software in C or C++ more difficult than it needs to be.
Still, C and C++ are two of the most widely-used languages in the world;
there are many reasons people still choose them for new development, and
there's a lot of pre-existing code in those languages that is not going to be
rewritten any time soon.
So if you're a software developer,
it's still a very good idea to learn how to develop secure
software in C or C++... because you'll probably need to do it.
&lt;/p&gt;
&lt;p&gt;
Which brings me to the &quot;-funsigned-char&quot; compiler option of gcc,
one of the cheapest
secure programming available to developers using C or C++
(similar options are available for many other C and C++ compilers).
If you're writing secure programs in C or C++, you should use
the &quot;-funsigned-char&quot; option of gcc (and its equivalent in other
compilers) to help you write secure software.
What is it, and what's it for?
Funny you should ask... here's an answer!
&lt;/p&gt;
&lt;p&gt;
Let's start with the technical basics.
The C programming language includes the &quot;char&quot; type, which is
usually used to store an 8-bit character.
Many internationalized programs encode text using UTF-8, so a user-visible
character be stored in a sequence of &quot;char&quot; values.
but even in internationalized programs
text is often stored in a &quot;char&quot; type.
&lt;!-- Let's skip wide char, WCHAR... it's complicated and out of scope. --&gt;
&lt;/p&gt;
&lt;p&gt;
The C standard specifically says that char CAN be signed OR unsigned.
(Don't believe me? Go look at
ISO/IEC 9899:1999, section 6.2.5, paragraph 15, second sentence.
So there.)
On many platforms (such as typical Linux distributions),
the char type is signed.
The problem is that software developers often &lt;i&gt;incorrectly&lt;/i&gt; think
that the char type is unsigned, or don't understand the ramifications
of signed characters.
This misunderstanding is becoming &lt;i&gt;more&lt;/i&gt; common over time, because
many other C-like languages (like Java and C#) define their &quot;char&quot; type
to be essentially unsigned or in a way that it wouldn't matter.
What's worse,
this misunderstanding can lead directly to security vulnerabilities.
&lt;/p&gt;
&lt;p&gt;
All sorts of &quot;weird&quot; things can happen on systems with signed characters.
For example, the character 0xFF will match as being &quot;equal&quot; to the integer -1,
due to C/C++'s widening rules.
And this can create security flaws in a hurry, because -1 is a common
&quot;sentinel&quot; value that many developers presume &quot;can't happen&quot; in a char.
A well-known security flaw in Sendmail was caused by exactly this problem
(see &lt;a href=&quot;http://www.kb.cert.org/vuls/id/897604&quot;&gt;US-CERT #897604&lt;/a&gt; and
&lt;a href=&quot;http://www.securityfocus.com/archive/1/316773/2003-03-28/2003-04-03/0&quot;&gt;
this posting by Michal Zalewski&lt;/a&gt;
for more information).
&lt;/p&gt;

&lt;p&gt;
Now, you could solve this by always using the
unambiguous type &quot;unsigned char&quot; if that's what you intended,
and strictly speaking that's what you should do.
However, it's very painful to change existing code to do this.
And since many pre-existing
libraries expect &quot;pointer to char&quot;, you can end up with
tons of useless warning messages when you do that.
&lt;/p&gt;

&lt;p&gt;
So what's a &lt;i&gt;simple&lt;/i&gt; solution here?
A simple answer is to force the compiler to &lt;i&gt;always&lt;/i&gt;
make &quot;char&quot; an UNSIGNED char.
A portable program should work when a char is unsigned,
so this shouldn't require any changes to that code.
Since programmers often make the assumption, let's
make their assumption correct.
In the widely-popular gcc compiler, this is done with the &quot;-funsigned-char&quot;
option; many other C and C++ compilers have similar options.
What's neat is that you don't have to modify a line of source code;
you can just slip this option into your build system
(e.g., add this option to your makefile).
This is typically very trivial to do; typically you can just modify (or
set) the CFLAGS variable to add this option, and then recompile.
&lt;/p&gt;

&lt;p&gt;
I also have more controversial advice.
Here it is: If you develop C or C++ compilers, or you're a distributor
who distributes a C/C++ compiler... &lt;i&gt;make char unsigned by default
on all platforms&lt;/i&gt;.
And if you're a customer, demand that from your vendor.
This is just like similar efforts going on in operating system sales
to users;
today operating system vendors are changing their systems so that they
are &quot;secure by default&quot;.
At one time many vendors' operating systems were delivered with all
sorts of &quot;convenient&quot; options that made them easy to attack... but
getting subverted all the time turned out to be rather inconvenient to users.
In the same way, development tools' defaults should try to prevent
defects, or create an environment where defects are less likely.
Signed characters are basically a vulnerability waiting to happen,
portable programs shouldn't depend on a particular choice, and non-portable
software can turn on the &quot;less secure&quot; option when necessary.
I doubt this advice will be taken, but I can suggest it!
&lt;/p&gt;

&lt;p&gt;
Turning this option on does not save the universe; most vulnerabilities
will &lt;i&gt;not&lt;/i&gt; be caught by turning on this little option.
In fact, by itself this is a &lt;i&gt;very&lt;/i&gt; weak measure, simply because
by itself this doesn't counter most vulnerabilities.
You need to know much more to write secure software;
to learn more, &lt;a href=&quot;http://www.dwheeler.com/secure-programs&quot;&gt;see
my free book on writing secure programs for Linux and Unix&lt;/a&gt;.
But stick with me;
I think this is a small example of a much larger concept, which
I'll call &lt;i&gt;no sharp edges&lt;/i&gt;.
Chain saws are powerful -- and dangerous -- but no one puts
scissor blades next to the chain saw's handle.
We try to make sure that &quot;obvious&quot; ways of using tools are not
dangerous, even if the tool itself can do dangerous things.
Yet the &quot;obvious&quot; ways to use many languages turn out to lead directly
to security vulnerabilities, and that needs to change.
You can't prevent all misuse -- a chain saw can be always be misused --
but you can at least make languages easy to use correctly
and likely to do only what was intended (and nothing else).
&lt;/p&gt;
&lt;p&gt;
We need to design languages, and select tools and tool options, to
reduce the likelihood of a developer error becoming a security vulnerability.
By combining
compiler warning flags (like -Wall), defaults that are likely to avoid
dangerous mistakes (like -funsigned-char),
NoExec stacks, and many other approaches, we can
greatly reduce the likelihood of a mistake
turning into a security vulnerability.
The most important security measure you can take in developing secure
software is to &lt;i&gt;be paranoid&lt;/i&gt; -- and I still recommend paranoia.
Still, it's hard to be perfect all the time.
Currently, a vast proportion of security vulnerabilities come from relatively
trivial implementation errors, ones that are easy to miss.
By combining a large number of approaches, each of which counter
a specific common mistake,
we can get rid of a vast number of today's vulnerabilities.
And getting rid of a vast number of today's vulnerabilities is
a very good idea.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Countering Trusting Trust through Diverse Double-Compiling, ACSAC 2005</title>
    <link>http://www.dwheeler.com/blog/2005/12/12#trusting-trust</link>
    <pubDate>Mon, 12 Dec 2005 14:25 GMT</pubDate>
    <!-- date: 2005-12-12 -->
    <description>
&lt;p&gt;
Something new: I have a section about
my work to counter the &quot;Trusting Trust&quot; computer security attack.
The &quot;Trusting Trust&quot; attack is a very old and
incredibly nasty attack in computer security.
Karger and Schell published information about this attack in 1974,
and Ken Thompson (of Unix fame) made it much more widely known in 1984
in his Turing award speech &quot;Reflections on Trusting Trust.&quot;
Ken Thompson even &lt;i&gt;demonstrated&lt;/i&gt; it; he gained complete control over
another system, and that system's owners never detected the subversion.
Up to now it's been presumed that the &quot;Trusting Trust&quot; attack
is the essential uncounterable attack.
&lt;/p&gt;
&lt;p&gt;
What exactly &lt;i&gt;is&lt;/i&gt; the trusting trust attack?
Basically, if an attacker can get a Trojan Horse into the binary
of a compiler, at any time, you're essentially doomed.
The subverted compiler can subvert itself, indefinitely into the future,
as well as anything else it compiles.
&lt;/p&gt;
&lt;p&gt;
I've worried about this attack for a long time, essentially since Thompson
made his report.
If there's a &lt;i&gt;known&lt;/i&gt; attack that cannot be effectively countered, even
in theory, should we really be using computers at all?
My hope is that my work in this areas aids the computer security field
writ large.
&lt;/p&gt;
&lt;p&gt;
The reason I note this in my blog is that I've finally formally
published my paper that describes a technique for countering this attack.
The paper is
&lt;a href=&quot;http://www.acsa-admin.org/2005/abstracts/47.html&quot;&gt;
Countering Trusting Trust through Diverse Double-Compiling&lt;/a&gt; (DDC),
and it was published by ACSAC 2005.
&lt;a href=&quot;http://www.dwheeler.com/trusting-trust&quot;&gt;Here's a local copy,
along with more info and material.&lt;/a&gt;
Here's the abstract of that paper:
&lt;/p&gt;
&lt;p&gt;
&lt;blockquote&gt;
&lt;i&gt;
An Air Force evaluation of Multics, and Ken Thompson's famous Turing
award lecture &quot;Reflections on Trusting Trust,&quot; showed that compilers
can be subverted to insert malicious Trojan horses into critical software,
including themselves.  If this attack goes undetected, even complete
analysis of a system's source code will not find the malicious code
that is running, and methods for detecting this particular attack
are not widely known.  This paper describes a practical technique,
termed diverse double-compiling (DDC), that detects this attack and
some compiler defects as well.  Simply recompile the source code twice:
once with a second (trusted) compiler, and again using the result of
the first compilation. If the result is bit-for-bit identical with
the untrusted binary, then the source code accurately represents the
binary. This technique has been mentioned informally, but its issues and
ramifications have not been identified or discussed in a peer-reviewed
work, nor has a public demonstration been made. This paper describes the
technique, justifies it, describes how to overcome practical challenges,
and demonstrates it.
&lt;/i&gt;
&lt;/blockquote&gt;
&lt;/p&gt;

&lt;p&gt;
I just got back from the ACSAC 2005 computer security conference.
Several interesting papers there, on a variety of topics.
&lt;/p&gt;

&lt;p&gt;
An aside: At ACSAC 2005, Aleks Kissinger (from the University of Tulsa) also
presented work that he and I had done on micro-tainting.
This was the presentation
&quot;Fine-Grained Taint Analysis using Regular Expressions,&quot; which was part
of the
&lt;a href=&quot;http://www.acsa-admin.org/2005/wip.html&quot;&gt;Works in Progress&lt;/a&gt;.
Basically, we noted that instead of assigning &quot;taint&quot; to a whole value, such as a string, you could
assign taint on subcomponents, such as each character.
Then you could assign rules that identified the input paths and
what could come in --
typically zero or more tainted characters -- and rules on output paths.
We concentrated on defining regular expressions for what is legal,
though any other expression for patterns such as BNFs would be fine too.
We noted that you could then check statically or dynamically.
For the static case, when you work backwards, if the check &quot;fails&quot; you can
even trivially derive the input patterns that cause security failures
(and from that information it should be easy to figure out how to fix it).
Aleks has recently made some good progress by transforming the regular
expressions into DFAs.
There was another ACSAC presentation on doing taint analysis with Java,
but this was the traditional &quot;whole variable&quot; approach that is used in
many languages, but through which many vulnerabilities slip by.
We hope this micro-tainting approach will lead to improved tools for detecting
security vulnerabilities in software, &lt;i&gt;before&lt;/i&gt; that software is
delivered to end-users.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>Internet Explorer: So insecure, it's only safe 7 days a year?!?</title>
    <link>http://www.dwheeler.com/blog/2005/08/06#ie-horrific</link>
    <pubDate>Sat, 06 Aug 2005 10:25 GMT</pubDate>
    <!-- date: 2005-08-06 -->
    <description>
&lt;p&gt;
I recently learned some amazing -- unbelievable -- shocking data.
It turns out that there were only 7 days in 2004 that you could
have somewhat safely used Internet Explorer (it was October 12-17),
even assuming that attackers only used publicly-known attacks, and
that you were only worried about the worst kind of attacks.
What does that mean?
Let me set the stage first... and I'll conclude what to do at the end.
&lt;/p&gt;
&lt;p&gt;
In my article
&lt;a href=&quot;http://www.dwheeler.com/essays/securing-windows.html&quot;&gt;
how to secure Microsoft Windows (for home and small business users)&lt;/a&gt;,
I give advice for people who want to keep using Windows
but have some security.
One piece of advice: stop using some of the most
vulnerable programs, such as Internet Explorer (IE) and Outlook, and instead
more secure alternatives (such as the freely-available
&lt;a href=&quot;http://www.mozilla.org/products/firefox/&quot;&gt;Firefox&lt;/a&gt; and
&lt;a href=&quot;http://www.mozilla.org/products/thunderbird/&quot;&gt;Thunderbird&lt;/a&gt;).
It should be self-evident that replacing insecure programs with more
secure programs will make you more secure!
But let me deal with two complaints: (1) why should &lt;i&gt;I&lt;/i&gt; change, and
(2) is Internet Explorer (IE) really so much worse?
&lt;/p&gt;
&lt;p&gt;
First - why should you change to using more secure software?
Because if you're not willing to select a more secure program,
then &lt;i&gt;you&lt;/i&gt; are part of the problem -- &lt;i&gt;you&lt;/i&gt; are
causing everyone to have insecure programs, as well as causing your
own misfortune.
Why?  Because vendors will not make secure products unless
customers prefer them.
&quot;The marketplace&quot; decides what's successful, and &lt;i&gt;you&lt;/i&gt; are part of it.
I'm tired of hearing &quot;my machine is full of spyware&quot;;
if you chose to use a product that is &lt;i&gt;known&lt;/i&gt; to have that problem,
then you need accept the consequences of your choices.
You can't claim ignorance at this point,
the news has been circling for a long time.
Sure, the attackers should be convicted.
But since there are prowlers in the alleyway,
&lt;i&gt;please&lt;/i&gt; don't invite them into your house,
and then act surprised when they take the silverware.
Yes, you can't spend all your time on securing things, and you need to
have useful (not just secure) products, but it's easy to replace these
programs with perfectly good alternatives.
&lt;/p&gt;

&lt;p&gt;
And second -- IE really is worse.
This isn't just a random opinion, and it's not Microsoft-bashing.
There is lots of evidence that, in particular,
Internet Explorer has become a malware delivery system.
See, for example, &lt;a href=&quot;http://nanobox.chipx86.com/ie_is_dangerous.php&quot;&gt;
David Hammond's comments on Internet Explorer&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
But I'm blown away by one particular study I just learned about, which shows
the problem is even more serious than I thought.
&lt;a href=&quot;http://bcheck.scanit.be/bcheck/page.php?name=STATS2004&quot;&gt;
Scanit's Browser Security Test group &quot;A Year of Bugs&quot;&lt;/a&gt; analyzed
the vulnerability reports in 2004 for three popular browsers:
Microsoft's Internet Explorer,
Mozilla-based browsers (including Firefox and Netscape), and Opera.
Since not all vulnerabilities are equal, they only considered the
especially dangerous &quot;remote code execution&quot; vulnerabilities, i.e.,
defects that allow a &quot;malicious web page or e-mail message to
execute arbitrary code or OS commands on the viewer's computer.&quot;
They then compared the time from the &quot;public announcement of the
vulnerability to the time when the fix is available to the
general user population.&quot;
They had an incredibly simple metric: every day there's a publicly-known
vulnerability, for which there is no patch available from the vendor,
is an unsafe day.
That's a metric anyone can understand: how many days are you vulnerable
to the worst attacks that are (1) known worldwide but
(2) there's nothing you can do about it?
&lt;/p&gt;

&lt;p&gt;
Their results: &lt;b&gt;there were only &lt;i&gt;7 days&lt;/i&gt; Internet Explorer
was safe to use in the entire year of 2004.&lt;/b&gt;
That means that 98% of the year, Internet Explorer
was &lt;i&gt;not&lt;/i&gt; safe to use.
Is it any wonder people like me say &quot;please don't use it?&quot;
&lt;/p&gt;

&lt;p&gt;
Let me quote their study:
&quot;there was only one period in 2004 when there were no publicly
known remote code execution bugs - between the 12th and the 19th of October -
7 days in total.&quot;
That means that someone who diligently kept their installation patched
every day of the year (do &lt;i&gt;you&lt;/i&gt; install the latest patches every day?)
was still known to be vulnerable 98% of the time in 2004.
The rediculous excuse
&quot;well, it wasn't exploitable&quot; doesn't work, either; they found that
for &quot;200 days (that is, 54% of the time) there was a [known] worm or virus
in the wild exploiting one of those unpatched vulnerabilities.&quot;
And that only counts &lt;i&gt;known&lt;/i&gt; attacks.
Frankly, 2004 was a disturbing year for IE;
at the beginning of the year there were two known unpatched vulnerabilities,
and 2004 ended with an
&quot;unpatched HTML Help ActiveX control vulnerability and [the worm]
Trojan.Phel using it to install a backdoor.&quot;
And remember, this is only the publicly-known attacks, of the worst kind.
&lt;/p&gt;

&lt;p&gt;
Now let's not let alternatives off the hook;
Mozilla-based programs and Opera had unsafe days too.
But compared to IE's &quot;98% unsafe&quot; value,
Opera had unsafe days only 17% of the time, and the
Mozilla/Firefox were only unsafe 15% of the time
(and about half of that 15% only affected MacOS users).
Let's look at the details:
&lt;ul&gt;
&lt;li&gt;In 2004 Opera had publicly known unpatched remote code execution
vulnerabilities for 65 days (17%).
It could have been worse, but two different &quot;unpatched periods&quot;
happened to intersect, so it actually faired better by this measure than
it might have otherwise.
&lt;li&gt;Mozilla and the family (including Firefox, Netscape Navigator and the
Camino browsers) has the shortest attack window of opportunity.
There were 56 days (15%) in 2004 when there was a publicly known
remote code execution vulnerability with no publicly-available patch.
There was a 30 day period in May-June for an attack that only affected
MacOS users,
one day in July for a &quot;shell: protocol&quot; vulnerability (with a very
rapid fix),
one day in August for a libPNG vulnerability,
and 24 days in October-November for problems problems found by
Michal Zalewski's mangleme program.
(The shell weakness in Mozilla is a weird case; it might be more
accurately described as a vulnerability in the Windows operating system.
Mozilla ended up creating a Windows workaround; I'm still counting it against
Mozilla since sometimes applications just can't trust the operating system to
&quot;do the right thing&quot;, and the workaround
is the same as Microsoft's own Internet Explorer.)
Note that in several cases, the time between the report and fix was
one day or less.
At no time were any vulnerabilities being actively exploited.
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
On June 28, 2004,
&lt;a href=&quot;http://zdnet.com.com/2100-1105_2-5250003.html&quot;&gt;
Microsoft&amp;#8217;s Bill Gates told Australians that while
other operating system vendors took 90-100 days
to release a security patch, Microsoft had this time
&amp;#8220;down to less than 48 hours.&amp;#8221;&lt;/a&gt;
And Microsoft has clearly stated that IE is part of their operating system.
Yet ZDNet found that
&lt;a href=&quot;http://zdnet.com.com/2100-1105_2-5256297.html&quot;&gt;Microsoft
had failed to fix a critical known IE vulnerability for
nearly nine months&lt;/a&gt;
Things got so bad that in late June 2004,
&lt;a href=&quot;http://www.internetnews.com/security/article.php/3374931&quot;&gt;
the U.S. Department of Homeland Security&amp;#8217;s
Computer Emergency Readiness Team
(CERT) recommended using browsers other than Microsoft Corp.&amp;#8217;s
Internet Explorer (IE) for security reasons.&lt;/a&gt;
(That's not exactly how they officially worded it... but I think
many people &lt;i&gt;correctly&lt;/i&gt; realized that that was the subtext).
And even after all that, IE &lt;i&gt;still&lt;/i&gt; had unpatched vulnerabilities
for the worst kind of vulnerabilities through most of the rest
of the year.
&lt;/p&gt;

&lt;p&gt;
Let me throw in an aside about reporting vulnerabilities.
Some companies try to convince vulnerability reporters
to &quot;keep quiet&quot; until they fix the problem... and then just never fix it.
The vulnerability is still there, though it's officially not publicly known...
and if one person can find it, others will too.
That head-in-the-sand approach used to be common, but our systems
are just too important to allow that to continue.
That's why I think it's a good idea for vulnerability reporters to give
suppliers 14 days to fix the problem, with a few more days if there's
a really good reason to allow unusual delays.
Fourteen days should be more than enough time to fix a critical problem
in the vast number of cases, but it puts the supplier on notice that leaving
its customers permanently vulnerable to a known weakness is unacceptable.
Certainly 30 days should be &lt;i&gt;plenty&lt;/i&gt; for even complex problems.
If your supplier can't normally turn around patches for
critical fixes in 14 days or less -- and certainly by 30 days --
perhaps you need a new supplier.
Gates says 48 hours is enough, half of the Mozilla problems had one-day
turnaround times, and &lt;i&gt;all&lt;/i&gt; the Mozilla problems
(even the complex ones) were fixed within 30 days of a confirming report.
&lt;/p&gt;

&lt;p&gt;
I will say, with relief, that Microsoft is finally going to release
a new version of Internet Explorer, with some attempt at fixing
the security problems.
But the reports worry me.
CERT's July 2, 2004, notification noted some of the major design decisions
that make Internet Explorer so easy to exploit:
&quot;There are a number of significant vulnerabilities in
technologies relating to the IE domain/zone security model,
the DHTML object model, MIME type determination,
and ActiveX.&quot;
Yet everything I've read suggests that they will &lt;i&gt;not&lt;/i&gt; fundamentally
change all of these major design decisions, so at least some of
their fundamental design weaknesses will probably still be there.
Disabling ActiveX completely by default for &lt;i&gt;all&lt;/i&gt; sites
would be a help, for example:
The &quot;zone&quot; model doesn't work (it's too easy to fool),
a massive number of signed or pre-installed ActiveX components are vulnerable,
and people just click &quot;ok&quot; when another ActiveX component is sent that
ActiveX is a synonym for &quot;send me malware&quot;.
I really hope that IE is much more secure, but we'll see.
The past does not necessarily predict the future.. but it's usually
a good way to bet.
&lt;/p&gt;

&lt;p&gt;
And the next version of Internet Explorer will still not support the
Internet standards.
This was reported by
&lt;a href=&quot;http://www.windowsitpro.com/Article/ArticleID/47208/47208.html&quot;&gt;
Paul Thurrott in Windows IT Pro&lt;/a&gt;, among others.
So many standards-compliant web sites will still be
inaccessible to Internet Explorer users.
&lt;/p&gt;

&lt;p&gt;
But even worse... the next version of Internet Explorer is only going to
go to XP Service Pack 2 users.
&lt;a href=&quot;http://blogs.msdn.com/ie/archive/2005/05/27/422721.aspx&quot;&gt;
Microsoft has various excuses for this.&lt;/a&gt;
That's rediculous; why does everyone else, who already
paid for Internet Explorer, have to suffer?
Unless you pirated Windows, Internet Explorer was part of the purchase
price of your machine or included in a separate license; it's actually
possible you paid for Windows several times.
But most Microsoft Windows users don't use XP Service Pack 2;
even many XP users haven't installed Service Pack 2 because of the
legion of incompatible changes and machine lockups it caused many.
A &lt;i&gt;vast&lt;/i&gt; number of people do not have Windows XP; Windows 2000
is in widespread use, and even Windows 98/ME have significant use
(25% by some measures).
It's &lt;i&gt;not&lt;/i&gt; true that a secure browser requires Service Pack 2;
other browser makers manage it.
&lt;/p&gt;

&lt;p&gt;
Don't use the current versions of Internet Explorer normally, and wait
a number of months before thinking about using the new version.
In particular:
&lt;ol&gt;
&lt;li&gt;If you use Windows XP, upgrade to Service Pack 2, and
upgrade Internet Explorer when the new one becomes available.
But for heaven's sake, don't
&lt;i&gt;use&lt;/i&gt; the new version of Internet Explorer in normal operation
until it's been proven to be relatively safe by many months of relatively
safe operation.
You probably shouldn't use Internet Explorer at all
until it adds better standards support, too;
hopefully Internet Explorer version 8 or so will do so.&lt;/li&gt;
&lt;li&gt;If you use any version of Windows
other than Windows XP, or won't use Service Pack 2,
then &lt;b&gt;abandon hope of ever using Internet Explorer&lt;/b&gt;
(except to download a better browser).
For those machines, there doesn't seem to be much hope that you will
every be able to use Internet Explorer safely, it's been just one
problem after another and the vendor will not even offer a replacement that
they hope is safer.&lt;/li&gt;
&lt;li&gt;If you use a site that requires IE, try to change to someone who
accepts alternatives.
If it's a company-internal site, then you could certainly consider
using IE for just that site.
In the meantime, continue to use an alternative (like the freely-available
&lt;a href=&quot;http://www.mozilla.org/products/firefox/&quot;&gt;Firefox&lt;/a&gt;) for
all other browsing.&lt;/li&gt;
&lt;li&gt;If your bank or other security-critical site actually &lt;i&gt;requires&lt;/i&gt; IE,
&lt;b&gt;switch&lt;/b&gt; to a bank that takes the security of your money and identity
seriously, &lt;b&gt;now&lt;/b&gt;, and make sure they know why.
See
&lt;a href=&quot;http://www.bankersonline.com/security/security_browserthreat070204.html&quot;&gt;Can You Bank on IE Security?&lt;/a&gt; from Bankers Online,
a magazine for bankers.
They say, &quot;No longer are the major organizations suggesting that
users merely download the latest patches, check their security settings,
and scan their systems for viruses, this time the advice is -
CHANGE TO A DIFFERENT BROWSER!
And the advice is not coming from any lightweight organization with a bias.
This is coming from the most respected international security watchdog
organizations. [including CERT, SANS, NIPC]&quot;&lt;/li&gt;

&lt;li&gt;If you develop a website, make sure that it's standards-compliant
so that any standards-compliant browser can view it.
&lt;a href=&quot;http://www.dwheeler.com/oss_fs_why.html#browser-marketshare&quot;&gt;Internet Explorer has been losing marketshare to other web browsers (such as Mozilla Firefox) since mid-2004&lt;/a&gt;,
so customers may start avoiding your
site because they will probably increasingly not be using IE.
It really makes no sense to tie your website to any browser;
it's unnecessary, and creates a situation where your customers may be
unable to securely use your website.&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;

&lt;p&gt;
Note: I don't make any money no matter what web browser or operating system
you choose.
I suggest preferring advice about this topic from others who can say the same.
And obviously I'm speaking only for myself, not anyone else, though
it's clear that many, many others have come to the same conclusions.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>E-Password comment deadline (April 4) looms - COMMENT NOW</title>
    <link>http://www.dwheeler.com/blog/2005/03/23#epassword</link>
    <pubDate>Wed, 23 Mar 2005 17:02 GMT</pubDate>
    <!-- date: 2005-03-23 -->
    <description>
&lt;p&gt;
As noted in &lt;a href=&quot;http://www.wired.com/news/privacy/0,1848,66686,00.html?tw=rss.TOP&quot;&gt;a Wired article&lt;/a&gt;,
the U.S. Department of State plans to issue U.S. passports that can be
read wirelessly (remotely), and it won't even encrypt this
extremely personal data.  This plan is absurd; it appears to give
terrorists and organized crime a way to remotely identify U.S. citizens
(for murder or kidnapping) and to provide enough detailed personal
information to significantly aid identity theft.
&lt;/p&gt;
&lt;p&gt;
The Department of State
claims that the new passports can only be read from 10 centimeters and
that fibers will prevent any reading while closed.  However, most security
experts scoff at these claims,
noting that people have to open their passports eventually,
and doubting that the fiber's protection will be perfect anyway
in real life. Lee Tien,
an attorney at the Electronic Frontier Foundation, reports the reading
distance as more like 10-30 feet. Bruce Schneier, who just renewed
his passport to make sure he will not have an unencrypted passport for
another 10 years, says he has yet to hear a good argument as to why the
government is requiring remotely readable chips instead of a contact
chip -- which could hold the same information but would not be skimmable.
&quot;A contact chip would be so much safer.&quot;
&lt;/p&gt;
&lt;p&gt;
I think this Department of State plan is going to kill people.
There are people in this world who want to hurt or kill Americans,
or citizens of some other countries --
now we're giving them an easy tool to help them find Americans (or
citizens of some other countries) in
foreign countries so that they can be murdered, tortured, raped,
or kidnapped for ransom.
The ransom stuff alone would fund &lt;i&gt;huge&lt;/i&gt; efforts to use this
technology in foreign countries to target victims, because it'd
be insanely profitable for the immoral.
&lt;/p&gt;
&lt;p&gt;
In my mind, the real problem is the use of wireless technology.
This is an area where the convenience of wireless is far outweighed
by the disadvantages of getting murdered.
Frankly, for data storage, a 2D barcode (which is MUCH cheaper) would
have all the advantages of permitting quick storage of a lot of data.
If the purpose of the chip is to make forgery harder, then requiring
contact would be sufficient.
&lt;/p&gt;
&lt;p&gt;
Is the lack of encryption a problem? Not necessarily, as long as
contact is required.
After all, if there's no encryption, then it's easier to see exactly
what data is on the passport (e.g., to verify that it's correct for you),
and the data is supposed to be the same as what's already on the
passport.
But it's a disaster if it's wireless, because then people who have no
business getting the data will be able to retrieve it.
Indeed, it's a disaster that this is wireless at all.
&lt;/p&gt;
&lt;p&gt;
Those who wish to protest this plan have until April 4, 2005,
to send their comments to
&lt;a href=&quot;mailto:PassportRules@state.gov&quot;&gt;PassportRules@state.gov&lt;/a&gt;.
I urge you to send in emails asking State to abandon this wireless
approach, and that they instead use a system that requires contact.
Do it, before someone dies.
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>OWASP Legal Project - Secure Software Development Contract Annex</title>
    <link>http://www.dwheeler.com/blog/2005/02/23#owasp-legal</link>
    <pubDate>Wed, 23 Feb 2005 10:41 GMT</pubDate>
    <!-- date: 2005-02-23 -->
    <description>
&lt;p&gt;
The Open Web Application Security Project (OWASP) Legal Project
has just announced the
&lt;a href=&quot;http://www.owasp.org/documentation/legal.html&quot;&gt;
&quot;Secure Software Development Contract Annex&quot;&lt;/a&gt;.
This is basically a starting point for a contract to do software development;
it tries to spell out exactly what's required so that the
results are secure.
&lt;/p&gt;
&lt;p&gt;
I didn't develop this text, but I'm glad to see that some people
are working on it.
In the contracting world, if you don't specifically ask for it, you don't
get it.
Since most contracts today don't specifically say that a secure
result is needed (and what that means), currently
the person paying for the software isn't getting a secure product.
Hopefully this sort of thing will solve the problem.
&lt;/p&gt;
&lt;p&gt;
Personally, I think this is a &quot;first draft&quot;; there are things I'd like
to see made more specific.
For example, I think it should clearly state that in the development
environment it should be possible to determine &lt;i&gt;specifically, by name&lt;/i&gt;,
who wrote any given line of code.
And there are many other issues (like automated examination of code)
that aren't covered.
In particular, there are many more common vulnerabilities than the top ten
list of OWASP.
But this is a very interesting and encouraging
first start, and I'm glad to see it.
&lt;/p&gt;</description>
   </item>
  <item>
    <title>New &quot;Secure Programmer&quot; Article on Calling Components Safely</title>
    <link>http://www.dwheeler.com/blog/2004/12/23#call-safely</link>
    <pubDate>Thu, 23 Dec 2004 21:40 GMT</pubDate>
    <!-- date: 2004-12-23 -->
    <description>
&lt;p&gt;
The latest article in my
&lt;a href=&quot;http://www-106.ibm.com/developerworks/views/linux/articles.jsp?sort_order=desc&amp;amp;sort_by=Date&amp;amp;show_abstract=true&amp;amp;view_by=Search&amp;amp;search_by=secure+programmer%3A&quot;&gt;&quot;Secure Programmer&quot;&lt;/a&gt;
series is now available!
This series is a developerWorks series on secure development for Linux/Unix.
&lt;p&gt;
Article #7 is
&lt;a href=&quot;http://www-106.ibm.com/developerworks/linux/library/l-calls.html&quot;&gt;
&lt;b&gt;Secure programmer: Call Components Safely&lt;/b&gt;&lt;/a&gt;.
The posted date is 16 December 2004, but it's only been available since
around 23 December 2004.
&lt;/p&gt;
&lt;p&gt;
Here's the abstract:
&lt;blockquote&gt;
Application programs typically make calls to other components, such as the
underlying operating system, database systems, reusable libraries, Internet
services (like DNS), Web services, and so on. This article explains how to
prevent attackers from exploiting those calls to other components by
discussing the use of only secure components, passing only valid data, making
sure the data will be correctly interpreted, checking return values and
exceptions, and protecting data as it flows between applications and
components.
&lt;/blockquote&gt;
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>New paper on how to secure Microsoft Windows for home and small business users</title>
    <link>http://www.dwheeler.com/blog/2004/12/14#securing-windows</link>
    <pubDate>Tue, 14 Dec 2004 13:30 GMT</pubDate>
    <!-- date: 2004-12-14 -->
    <description>
As a security expert, I occasionally get asked by Microsoft Windows
users questions like &amp;#8220;I got this strange error message -- do I have spyware?&amp;#8221;
or &amp;#8220;How do I keep my [Windows] computer secure?&amp;#8221;
Large businesses employ people who secure computer systems as a full-time job,
but that doesn&amp;#8217;t help if you&amp;#8217;re a home or small business user.
&quot;Small business&quot; here includes small non-profits, too.
&lt;p&gt;
So, I've posted on my website information on how to secure
your Microsoft Windows system.
It's basically a checklist of things you can do to make things better.
&lt;p&gt;
Get it here:
&lt;font size=&quot;+1&quot;&gt;
&lt;a href=&quot;http://www.dwheeler.com/essays/securing-windows.html&quot;&gt;
Securing Microsoft Windows (for Home and Small Business Users)&lt;/a&gt;
&lt;/font&gt;
</description>
   </item>
  <item>
    <title>Comments on Email Authentication for Countering Spam</title>
    <link>http://www.dwheeler.com/blog/2004/12/02#email-authentication-ftc</link>
    <pubDate>Thu, 02 Dec 2004 17:42 GMT</pubDate>
    <!-- date: 2004-12-02 -->
    <description>
&lt;p&gt;
The Federal Trade Commission (FTC)
and National Institute of Standards and Technology (NIST)
are considering their options for email authentication as
a technique to partially counter spam.
I recommend that they make two fundamental decisions.
First, FTC and NIST should urge lawmakers to make spam illegal,
so that technological measures will have legal standing.
Authentication has little anti-spam value without it.
Second, FTC and NIST should insist that any anti-spam technical standard
must be implementable by all suppliers of email
infrastructure, both proprietary and open source software.
&lt;p&gt;
This essay responded to a Federal Register request supporting the
&lt;a href=&quot;http://www.ftc.gov/bcp/workshops/e-authentication/&quot;&gt;
&amp;#8220;Email Authentication Summit&amp;#8221; of November 9-10, 2004&lt;/a&gt;.
I sent the original version of this essay on September 27, 2004.
Although it was
&lt;a href=&quot;http://www.ftc.gov/os/comments/emailauthentication/index.htm&quot;&gt;
publicly posted&lt;/a&gt;,
and quoted in places such as
&lt;a href=&quot;http://www.groklaw.net/article.php?story=20041109031629840&amp;query=FTC+Wheeler&quot;&gt;Groklaw&amp;#8217;s FTC Email Authentication Summit article&lt;/a&gt;,
it had various formatting problems, a few minor grammatical
mistakes, and it mentioned only NIST and not the FTC.
This version is much easier to read since I converted it to HTML
and had these minor problems fixed.
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
So, for those of you who wanted a nicer copy of this essay -- enjoy!
It's here, at:&lt;br/&gt;
&lt;font size=&quot;+1&quot;&gt;
&lt;a href=&quot;http://www.dwheeler.com/essays/email-authentication-ftc.html&quot;&gt;
Comments on Email Authentication for Countering Spam&lt;/a&gt;
&lt;/font&gt;
&lt;/p&gt;
</description>
   </item>
  <item>
    <title>New Edition: Countering Spam by Using Ham Passwords (Email Passwords)</title>
    <link>http://www.dwheeler.com/blog/2004/11/16#ham-password</link>
    <pubDate>Tue, 16 Nov 2004 21:41 GMT</pubDate>
    <!-- date: 2004-11-16 -->
    <description>

I've released a new version of my article,
&lt;a href=&quot;http://www.dwheeler.com/essays/spam-email-password.html&quot;&gt;
Countering Spam by Using Ham Passwords (Email Passwords)&lt;/a&gt;.
In particular, I've christened the approach with a new name:
&quot;ham passwords&quot;.
I've found that
ham passwords are a simple and effective technique for countering spam;
&lt;a href=&quot;http://www.dwheeler.com/contactme.html&quot;&gt;I use it myself&lt;/a&gt;.
A ham password is a special password you ask strangers, or senders in
general, to include in email they send to you, typically in the subject line.
If the sender wants the receiver to receive an email, then the sender
should send the ham password to prove that they are authorized to
send the email.
This technique is excellent in countering the major weakness of
spam filters: incorrectly labelling ham as spam.
This approach is inexpensive, requires no changes to any software code,
and is simple to understand.
It especially works well when combined with other techniques that
handle non-strangers.
</description>
   </item>
  <item>
    <title>New Security Article on Race Conditions</title>
    <link>http://www.dwheeler.com/blog/2004/10/08#race-conditions</link>
    <pubDate>Fri, 08 Oct 2004 01:07 GMT</pubDate>
    <!-- date: 2004-10-08 -->
    <description>
Well, I'm happy to announce that another one
of my developerworks article on secure development is
now out for the public.
Go take a look at
&lt;a href=&quot;http://www-128.ibm.com/developerworks/library-combined/l-sprace.html&quot;&gt;
Secure programmer: Preventing Race Conditions&lt;/a&gt;.
&lt;p&gt;
This was a trickier article to write, because race conditions are
harder to describe in a simple way.
No matter what, they always involve subtle timing interactions, and
that makes them hard to describe.
Even the conventional definitions are too complicated and don't really
help explain the issue.
So, I ended up writing my own definition:
A &quot;race condition&quot; occurs when a program doesn't work as it's supposed to
because of an unexpected ordering of events that produces contention over the
same resource. Notice that a race condition doesn't need to involve contention
between two parts of the same program; many security problems occur if an
outside attacker can interfere with a program in unexpected ways. 
&lt;p&gt;
And from there, it shows some of those big surprises.
A whole bunch of race conditions have been found over the last few
months, so this is certainly still a serious problem.

</description>
   </item>
  <item>
    <title>Flawfinder version 1.26 released!</title>
    <link>http://www.dwheeler.com/blog/2004/06/15#flawfinder-1.26</link>
    <pubDate>Tue, 15 Jun 2004 20:34 GMT</pubDate>
    <!-- date: 2004-06-15 -->
    <description>
I've released yet another new version of
&lt;a href=&quot;http://www.dwheeler.com/flawfinder&quot;&gt;flawfinder&lt;/a&gt; - now
it's version 1.26.
Flawfinder is a simple program that examines C/C++ source code and
reports on likely security flaws in the program, ranked by risk level.
When I announced
&lt;a href=&quot;http://www.dwheeler.com/blog/2004/05/31#flawfinder-1.25&quot;&gt;
flawfinder version 1.25&lt;/a&gt;, people responded with a flurry of useful
improvements, so I thought I'd incorporate those right away for all
to enjoy.
&lt;p&gt;
You can view the
&lt;a href=&quot;http://www.dwheeler.com/flawfinder/ChangeLog&quot;&gt;Flawfinder
ChangeLog&lt;/a&gt; for the details.
Here are some of the highlights:
&lt;ol&gt;
&lt;li&gt;
Added code to better support Microsoft's approach to internationalization,
based in large part on work by Jared Robinson (thanks!!).
This adds many more functions:
_getts(), vswprintf(), _stprintf(), _vstprintf(), vwprintf(),
vfwprintf(), _vtprintf(), _ftprintf(), _vftprintf(), _sntprintf(),
_vsntprintf(), _ftscanf(), and _gettc().
The macros _T() and _TEXT() are treated like gettext(), to eliminate
spurious warnings.
&lt;li&gt;
Added two new rules for GLib functions,
&quot;g_get_home_dir&quot; and &quot;g_get_tmp_dir&quot;, per a suggestion by
Steve Kemp.
This closes the wishlist item in
&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=250432&quot;&gt;
Debian bug report #250432&lt;/a&gt;.
Contributors - please email wishlist items to me;
I can't monitor every distribution's local bug tracking system.
PLEASE tell upstream developers when there's a bug/wishlist
item, we can't fix it if we don't know.
&lt;li&gt;
I added rules, e.g., for curl_getenv()
(another getenv-like function),
as well as more rules for input functions:
recv, recvfrom, recvmsg, fread, and readv.
&lt;li&gt;
I tightened the false positive test slightly; if a name is
followed by = or - or + it's unlikely to be a function call,
so it'll be quietly discarded.
&lt;li&gt;
I modified the summary report format slightly, to make it nicer.
&lt;li&gt;
I modified the getpass text to remove an extraneous character,
thanks to a bug report from Joerg Beyer (thanks!).
&lt;li&gt;
I modified the installation instructions to clarify how to set
INSTALL_DIR at run-time so it installs elsewhere.
Flawfinder uses the standard GNU conventions, but not everyone
knows about them. By default, flawfinder installs in /usr/local.
Just use normal make overrides to change that, e.g.,
make INSTALL_DIR=/usr INSTALL_DIR_MAN=/usr/share/man install
I do NOT use the ?= macro-setting commands in the makefile,
because that's not standard (e.g., it's not in SUSv3), so
while that would work in GNU make, it wouldn't work in others.
I did this to answer some questions about installation - the flexibility
has always been there, but now it's documented in a clearer way.
&lt;/ol&gt;
&lt;p&gt;
&lt;b&gt;NOTE:&lt;/b&gt;
Due to an error on my part, the tar file
for version 1.25 on my website was for a short period
(between 2004-06-05 and 2004-06-15) actually a functional equivalent of
version 1.26 (without some stuff that only affects me),
incorrectly labelled as 1.25.
This wasn't true for the RPM packages (the 1.25s stayed as 1.25), so
suspicious people could look inside the RPM packages to see if the tar file
within was correct.
In some sense this wasn't a serious problem - tar users got the latest
version of flawfinder a little sooner than I intended.
But I really want version numbers to mean what they say, and I know others
do too; for those folks, my sincere apologies!!
Please upgrade to 1.26, since that way you'll be SURE to get the right version.
If you want to check, here are the md5sum's of various correct files:
&lt;pre&gt;
dcdd0a7a5b9dc8d0ffc85c1a5833bc43  flawfinder-1.25-1.noarch.rpm
744f0cc317c583de6d295860db3c7cbe  flawfinder-1.25-1.src.rpm
fa5b644e00aa4862de5b790f0e1a3ad7  flawfinder-1.25.tar.gz (the real 1.25)
530b11016c52d473ebb7bc9639d4338b  flawfinder-1.26-1.noarch.rpm
cbc61513620bc7b17bcc29f8eb50fb9f  flawfinder-1.26-1.src.rpm
242a90ecf2f21a709a2425c8771ef38e  flawfinder-1.26.tar.gz
&lt;/pre&gt;

Here's the md5sum of the file that was briefly labelled as
flawfinder-1.25.tar.gz, but was actually a functional equivalent of 1.26:
&lt;pre&gt;
e1fa5fcb540b91d27c3ae427595a182e  flawfinder-1.25.tar.gz-actually1.26
&lt;/pre&gt;

&lt;p&gt;
Just go to the 
&lt;a href=&quot;http://www.dwheeler.com/flawfinder&quot;&gt;flawfinder home page&lt;/a&gt;
to get the latest version.

</description>
   </item>
  </channel>
</rss>