<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[[SecurityRatty] tag: debian]]></title>
    <link>http://securityratty.com/tag/debian</link>
    <description></description>
    <pubDate>Sun, 18 May 2008 09:17:44 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Two Years of Broken Crypto: Debian's Dress Rehearsal for a Global PKI Compromise]]></title>
      <link>http://securityratty.com/article/432d2495bf0e8b9c969c9d8efd4895eb</link>
      <guid>http://securityratty.com/article/432d2495bf0e8b9c969c9d8efd4895eb</guid>
      <description><![CDATA[A patch to the OpenSSL package maintained by Debian GNU/Linux (an operating system composed of free and open source software that can be used as a desktop or server OS) submitted in 2006 weakened its...]]></description>
      <content:encoded><![CDATA[A patch to the OpenSSL package maintained by Debian GNU/Linux (an operating system composed of free and open source software that can be used as a desktop or server OS) submitted in 2006 weakened its pseudo-random number generator (PRNG), a critical component for secure key generation. Unnoticed for two years, the weak PRNG created a crypto-implementation nightmare with wide-ranging consequences that are difficult to repair. Putting both servers and users at risk, this vulnerability affected OpenSSH, Apache (mod_ssl), the onion router (TOR), OpenVPN, and other applications. In this article, I'll examine the issue and its consequences.<br style="clear: both;"/>
  <img alt="" style="border: 0; height:1px; width:1px;" border="0" src="http://www.pheedo.com/img.phdo?i=82b45bc2d7e3da625459c51c5bb78bca" height="1" width="1"/>
<img src="http://www.pheedo.com/feeds/tracker.php?i=82b45bc2d7e3da625459c51c5bb78bca" style="display: none;" border="0" height="1" width="1" alt=""/>]]></content:encoded>
      <pubDate>Wed, 08 Oct 2008 00:42:07 +0000</pubDate>
      <category domain="http://securityratty.com/tag/prng">prng</category>
      <category domain="http://securityratty.com/tag/secure key generation">secure key generation</category>
      <category domain="http://securityratty.com/tag/weak prng">weak prng</category>
      <category domain="http://securityratty.com/tag/critical component">critical component</category>
      <category domain="http://securityratty.com/tag/openssl package">openssl package</category>
      <category domain="http://securityratty.com/tag/debian gnulinux">debian gnulinux</category>
      <category domain="http://securityratty.com/tag/onion router">onion router</category>
      <category domain="http://securityratty.com/tag/consequences">consequences</category>
      <category domain="http://securityratty.com/tag/source software">source software</category>
      <source url="http://www.pheedo.com/click.phdo?i=82b45bc2d7e3da625459c51c5bb78bca">Two Years of Broken Crypto: Debian's Dress Rehearsal for a Global PKI Compromise</source>
    </item>
    <item>
      <title><![CDATA[An insecurity in OpenID, not many dead]]></title>
      <link>http://securityratty.com/article/36f416e51d88cd2db5ed822a7ed3835a</link>
      <guid>http://securityratty.com/article/36f416e51d88cd2db5ed822a7ed3835a</guid>
      <description><![CDATA[Back in May it was realised that , thanks to an ill-advised change to some random number generation code, for over 18 months Debian systems had been generating crypto keys chosen from a set of 32,768...]]></description>
      <content:encoded><![CDATA[<p>Back in May <a href="http://www.debian.org/security/2008/dsa-1571">it was realised that</a>, thanks to an ill-advised change to some random number generation code, for over 18 months Debian systems had been generating crypto keys chosen from a set of 32,768 possibilities, rather than from billions and billions. Initial interest centred around the weakness of SSH keys, but in practice lots of different applications were at risk (<a href="http://wiki.debian.org/SSLkeys">see long list here</a>).</p>
<p>In particular, SSL certificates (as used to identify https websites) might contain one of these weak keys &#8212; and so it would be possible for an attacker to successfully impersonate a secure website. Of course the attacker would need to persuade you to mistakenly visit their site &#8212; but it just so happens that one of the more devastating attacks on DNS has <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1447">recently been discovered</a>; so that&#8217;s not as unlikely as it must have seemed back in May.</p>
<p>Anyway, my old friend <a href="http://en.wikipedia.org/wiki/Ben_Laurie">Ben Laurie</a> (who is with Google these days) and I have been trawling the Internet to determine how many certificates there are containing these weak keys &#8212; and there&#8217;s a lot: around 1.5% of the certs we&#8217;ve examined.</p>
<p>But more of that another day! because earlier this week, Ben spotted that one of the weak certs was for Sun&#8217;s &#8220;OpenID&#8221; website, and that two more OpenID sites were weak as well (by weak we mean that a database lookup could reveal the private key!)</p>
<p>OpenID, for those who are unfamiliar with it, is a scheme for allowing you to prove your identity to site A (viz: provide your user name and password) and then use that identity on site B. There&#8217;s a queue of people offering the first bit, but rather less offering the second : because it means you rely on someone else&#8217;s due diligence in knowing who their users are &#8212; where &#8220;who&#8221; is a hard sort of thing to get your head around in an online environment.</p>
<p>The problem that Ben and I have identified (<a href="http://www.links.org/files/openid-advisory.txt">advisory here</a>), is that an attacker can poison a DNS cache so it serves up the wrong IP address for openid.sun.com. Then, even if the victim is really cautious and uses https and checks the cert, their credentials can be phished. Thereafter, anyone who trusts Sun as an identity provider could be very disappointed. There&#8217;s other attacks as well, but you&#8217;ve probably got the general idea by now.</p>
<p>In principle Sun should make a replacement certificate and that should be it (and so they have &#8212; <a href="http://blogs.sun.com/racingsnake/entry/one_factor_trust_multi_factor">read Robin Wilton&#8217;s comments here</a>). Except that they need to put the old certificate onto a Certificate Revocation List (CRL) because otherwise it will still be trusted from now until it expires (a fair while off). Sadly, many web browsers, and most of the OpenID codebases haven&#8217;t bothered with CRLs (or they don&#8217;t enable their checking by default so it&#8217;s as if it wasn&#8217;t there for most users).</p>
<p>One has to conclude that Sun (and the other two providers) should not be trusted by anyone for quite a while to come. But does that matter ? Since OpenID didn&#8217;t promise all that much anyway, does a serious flaw (which does require a certain amount of work to construct an attack) make any difference? At present this looks like the modern equivalent of a <a href="http://www.mantex.co.uk/reviews/oxf-misquot.htm">small earthquake in Chile</a>.</p>
]]></content:encoded>
      <pubDate>Fri, 08 Aug 2008 21:33:39 +0000</pubDate>
      <category domain="http://securityratty.com/tag/openid">openid</category>
      <category domain="http://securityratty.com/tag/openid codebases">openid codebases</category>
      <category domain="http://securityratty.com/tag/certs">certs</category>
      <category domain="http://securityratty.com/tag/weak certs">weak certs</category>
      <category domain="http://securityratty.com/tag/weak">weak</category>
      <category domain="http://securityratty.com/tag/openid sites">openid sites</category>
      <category domain="http://securityratty.com/tag/sun">sun</category>
      <category domain="http://securityratty.com/tag/suns openid website">suns openid website</category>
      <category domain="http://securityratty.com/tag/trusts sun">trusts sun</category>
      <source url="http://www.lightbluetouchpaper.org/2008/08/09/an-insecurity-in-openid-not-many-dead/">An insecurity in OpenID, not many dead</source>
    </item>
    <item>
      <title><![CDATA[Last HOPE Session Videos - Seeded by AoIS]]></title>
      <link>http://securityratty.com/article/75af8ba93084f3c1dbfba377d428d3b6</link>
      <guid>http://securityratty.com/article/75af8ba93084f3c1dbfba377d428d3b6</guid>
      <description><![CDATA[To be honest, 2600s The Last HOPE conference didnt really catch my attention at first. But some of the sessions, especially Crippling Crypto: The Debian OpenSSL Debacle. That presentation, byJacob...]]></description>
      <content:encoded><![CDATA[<p>To be honest, 2600&#8217;s The Last HOPE conference didn&#8217;t really catch my attention at first. But some of the sessions, especially  &#8221;Crippling Crypto: The Debian OpenSSL Debacle&#8221;. That presentation, by Jacob Appelbaum, <a href="http://blog.trailofbits.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://blog.trailofbits.com/');">Dino Dai Zovi</a>, Karsten Nohl is a winner. Not only do they provide a fantastic and detailed description of how OpenSSL&#8217;s random number generator was accidentally lobotomized, they also demonstrate how to leverage cheap cloud computing to generate the set of bad keys that resulted. (All of them!) </p>
<p>At any rate, legit torrents of the video presentations are available from <a href="http://hopetracker.donthax.me/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://hopetracker.donthax.me/');" target="_blank">The Last HOPE Video Tracker</a>. Art of Information Security is seeding torrents, and plans to do so for the next 10 days.</p>
<p>Check &#8216;em out.</p>
<p>Cheers, Erik</p>
<p></p>
<p><a href="http://artofinfosec.com/96/last-hope-video-seeded-by-aois/" >Last HOPE Session Videos - Seeded by AoIS</a></p>
<img src="http://feeds.feedburner.com/~r/artofinfosec/~4/358009088" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 06 Aug 2008 22:57:47 +0000</pubDate>
      <category domain="http://securityratty.com/tag/hope session videos">hope session videos</category>
      <category domain="http://securityratty.com/tag/legit torrents">legit torrents</category>
      <category domain="http://securityratty.com/tag/debian openssl debacle">debian openssl debacle</category>
      <category domain="http://securityratty.com/tag/hope video tracker">hope video tracker</category>
      <category domain="http://securityratty.com/tag/torrents">torrents</category>
      <category domain="http://securityratty.com/tag/dino dai zovi">dino dai zovi</category>
      <category domain="http://securityratty.com/tag/bad keys">bad keys</category>
      <category domain="http://securityratty.com/tag/aois">aois</category>
      <category domain="http://securityratty.com/tag/openssls random">openssls random</category>
      <source url="http://feeds.feedburner.com/~r/artofinfosec/~3/358009088/">Last HOPE Session Videos - Seeded by AoIS</source>
    </item>
    <item>
      <title><![CDATA[Missing the Point]]></title>
      <link>http://securityratty.com/article/1306974e422cef843bed7b475dd96f96</link>
      <guid>http://securityratty.com/article/1306974e422cef843bed7b475dd96f96</guid>
      <description><![CDATA[A co-worker passed along this snapshot taken at the Karsten Nohl, Jake Appelbaum, and Dino Dai Zovi talk at HOPE this past weekend. The context, of course, is that the overzealous Debian developer who...]]></description>
      <content:encoded><![CDATA[<p>A co-worker passed along this snapshot taken at the Karsten Nohl, Jake Appelbaum, and Dino Dai Zovi talk at HOPE this past weekend.  The context, of course, is that the overzealous Debian developer who accidentally <a href="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2008-0166">crippled OpenSSL</a> back in 2006 said he did so because <a href="http://research.swtch.com/2008/05/lessons-from-debianopenssl-fiasco.html">valgrind reported uninitialized memory use</a>.  Click through for the full-size version.</p>
<p><a href='http://www.veracode.com/blog/wp-content/uploads/2008/07/dangerous.jpg'><center><img src="http://www.veracode.com/blog/wp-content/uploads/2008/07/dangerous-300x225.jpg" alt="" title="dangerous" width="300" height="225" class="aligncenter size-medium wp-image-122 photoborder" /></center></a></p>
<p>So automated software review is <i>dangerous</i> now?  Perhaps that bullet should read &#8220;modifying code you don&#8217;t understand is dangerous.&#8221;</p>
]]></content:encoded>
      <pubDate>Mon, 21 Jul 2008 18:19:57 +0000</pubDate>
      <category domain="http://securityratty.com/tag/overzealous debian developer">overzealous debian developer</category>
      <category domain="http://securityratty.com/tag/past weekend">past weekend</category>
      <category domain="http://securityratty.com/tag/dangerous">dangerous</category>
      <category domain="http://securityratty.com/tag/jake appelbaum">jake appelbaum</category>
      <category domain="http://securityratty.com/tag/software review">software review</category>
      <category domain="http://securityratty.com/tag/bullet">bullet</category>
      <category domain="http://securityratty.com/tag/hope">hope</category>
      <category domain="http://securityratty.com/tag/openssl">openssl</category>
      <category domain="http://securityratty.com/tag/context">context</category>
      <source url="http://www.veracode.com/blog/?p=121">Missing the Point</source>
    </item>
    <item>
      <title><![CDATA[Can I just comment out these lines of code?]]></title>
      <link>http://securityratty.com/article/717d487ed36fdf76b3af14a38e454a8a</link>
      <guid>http://securityratty.com/article/717d487ed36fdf76b3af14a38e454a8a</guid>
      <description><![CDATA[Blogger: Ramon Krikken
A seemingly innocent question on a mailing list - which I paraphrased for brevity - set in motion a series of events with dire consequences . The specific code, which was...]]></description>
      <content:encoded><![CDATA[
<div xmlns="http://www.w3.org/1999/xhtml"><p>Blogger: Ramon Krikken</p>

<p>A seemingly innocent question on a <a href="http://marc.info/?l=openssl-dev&amp;m=114651085826293&amp;w=2">mailing list</a> - which I paraphrased for brevity - set in motion a series of events with <a href="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2008-0166">dire consequences</a>. The specific code, which was generating error messages in a <a href="http://www.valgrind.org/">certain software quality assurance tool</a>, happened to be a critical part of the random number generator in a <a href="http://www.openssl.org/">cryptographic library package</a>. By removing this code, the strength of the cryptographic key material was reduced to a point where cracking the key would take minutes instead of decades. The unfortunate thing about cryptography and randomness is that good and bad can be virtually indistinguishable, and in this case the result still looked so random that the problem went unnoticed for about two years. The impact - needing to regenerate two years worth of key material, and casting doubt on encrypted communication and access performed with those keys - has understandably led to some vigorous discussion and finger pointing. Search Google for &quot;debian openssl&quot; for more discussions than I can link to.</p>

<p>The action - making a change without following a standardized process&nbsp; - is certainly not unique to this situation, and &quot;the system was slow so I turned off this feature&quot;, or &quot;I just fiddled around with it and it just started working&quot; are phrases all too commonly heard in many aspects of IT. Some might argue that a commercial development process would likely have prevented this occurrence, but to simply turn this into a comparison of open source and commercial development ignores some very important aspects. There are important lessons to be learned that could benefit any software development process, particularly when process parts are being adapted to encompass ever changing development and security landscapes. In the ideal world, source code would be based on well-documented requirements, consistently structured, well commented, and maintained by easy-to-reach teams that understand the code inside and out. The reality of dealing with the pressure of delivery deadlines, distributed development teams, and code written either long ago or by a third party can make coding a daunting task ... and quality assurance next to impossible, especially if breakdowns in process or communication occur. The myriad of testing tools, sometimes producing output that can run in the hundreds of pages, coupled with a lack of understanding about their testing coverage, doesn't make the task any easier.</p>

<p>Looking at how this specific event unfolded can lead us down many paths of analysis, all of which will provide valuable information in attempting to determine a root cause. Unfortunately - and this is something that is also not unique to any specific kind of environment - not all parties involved are neutral, and there can also be a tendency to fixate on symptoms rather than the cause. One reason for this may be the assumption that it's possible to fix specific process parts without necessarily re-evaluating the process as a whole; another is that risks and the resulting need for assurance, including process assurance, may be underestimated. Looking at the failures in the flaw finding process purportedly followed in the <a href="http://sunnyday.mit.edu/papers/therac.pdf">Therac 25 accidents</a> it's easy to see how this can result in unacceptable consequences. And while likely not resulting in loss of life, the potential economic loss associated with a failure of a cryptographic module suggests that a critical security component can't be treated like just any other piece of software.</p>

<p>How ever unfortunate, this event presents a good opportunity to take a moment and look at our own development processes. Particularly as we start to embrace service orientation, where we loosely couple different business functions while relying on centralized, and often externally developed, security and reliability services, we increase the possibility of creating situations such as this. Using a risk-based process, and testing and revisiting the process itself to ensure it stays current, will be vital in providing appropriate levels of software, system, and information assurance. Building a high-assurance component using a low-assurance process just isn't worth the risk.</p></div>
<img src="http://feeds.feedburner.com/~r/SecurityAndRiskManagementStrategiesBlog/~4/296613857" height="1" width="1"/>]]></content:encoded>
      <pubDate>Fri, 23 May 2008 06:53:20 +0000</pubDate>
      <category domain="http://securityratty.com/tag/process purportedly">process purportedly</category>
      <category domain="http://securityratty.com/tag/process">process</category>
      <category domain="http://securityratty.com/tag/fix specific process">fix specific process</category>
      <category domain="http://securityratty.com/tag/software development process">software development process</category>
      <category domain="http://securityratty.com/tag/commercial development process">commercial development process</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/low-assurance process">low-assurance process</category>
      <category domain="http://securityratty.com/tag/development">development</category>
      <category domain="http://securityratty.com/tag/specific">specific</category>
      <source url="http://feeds.feedburner.com/~r/SecurityAndRiskManagementStrategiesBlog/~3/296613857/can-i-just-comm.html">Can I just comment out these lines of code?</source>
    </item>
    <item>
      <title><![CDATA[Can I just comment out these lines of code?]]></title>
      <link>http://securityratty.com/article/f62f37d74b6cf4806512d61b810cfc97</link>
      <guid>http://securityratty.com/article/f62f37d74b6cf4806512d61b810cfc97</guid>
      <description><![CDATA[Blogger: Ramon Krikken
A seemingly innocent question on a mailing list - which I paraphrased for brevity - set in motion a series of events with dire consequences . The specific code, which was...]]></description>
      <content:encoded><![CDATA[
<div xmlns="http://www.w3.org/1999/xhtml"><p>Blogger: Ramon Krikken</p>

<p>A seemingly innocent question on a <a href="http://marc.info/?l=openssl-dev&amp;m=114651085826293&amp;w=2">mailing list</a> - which I paraphrased for brevity - set in motion a series of events with <a href="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2008-0166">dire consequences</a>. The specific code, which was generating error messages in a <a href="http://www.valgrind.org/">certain software quality assurance tool</a>, happened to be a critical part of the random number generator in a <a href="http://www.openssl.org/">cryptographic library package</a>. By removing this code, the strength of the cryptographic key material was reduced to a point where cracking the key would take minutes instead of decades. The unfortunate thing about cryptography and randomness is that good and bad can be virtually indistinguishable, and in this case the result still looked so random that the problem went unnoticed for about two years. The impact - needing to regenerate two years worth of key material, and casting doubt on encrypted communication and access performed with those keys - has understandably led to some vigorous discussion and finger pointing. Search Google for &quot;debian openssl&quot; for more discussions than I can link to.</p>

<p>The action - making a change without following a standardized process&nbsp; - is certainly not unique to this situation, and &quot;the system was slow so I turned off this feature&quot;, or &quot;I just fiddled around with it and it just started working&quot; are phrases all too commonly heard in many aspects of IT. Some might argue that a commercial development process would likely have prevented this occurrence, but to simply turn this into a comparison of open source and commercial development ignores some very important aspects. There are important lessons to be learned that could benefit any software development process, particularly when process parts are being adapted to encompass ever changing development and security landscapes. In the ideal world, source code would be based on well-documented requirements, consistently structured, well commented, and maintained by easy-to-reach teams that understand the code inside and out. The reality of dealing with the pressure of delivery deadlines, distributed development teams, and code written either long ago or by a third party can make coding a daunting task ... and quality assurance next to impossible, especially if breakdowns in process or communication occur. The myriad of testing tools, sometimes producing output that can run in the hundreds of pages, coupled with a lack of understanding about their testing coverage, doesn't make the task any easier.</p>

<p>Looking at how this specific event unfolded can lead us down many paths of analysis, all of which will provide valuable information in attempting to determine a root cause. Unfortunately - and this is something that is also not unique to any specific kind of environment - not all parties involved are neutral, and there can also be a tendency to fixate on symptoms rather than the cause. One reason for this may be the assumption that it's possible to fix specific process parts without necessarily re-evaluating the process as a whole; another is that risks and the resulting need for assurance, including process assurance, may be underestimated. Looking at the failures in the flaw finding process purportedly followed in the <a href="http://sunnyday.mit.edu/papers/therac.pdf">Therac 25 accidents</a> it's easy to see how this can result in unacceptable consequences. And while likely not resulting in loss of life, the potential economic loss associated with a failure of a cryptographic module suggests that a critical security component can't be treated like just any other piece of software.</p>

<p>How ever unfortunate, this event presents a good opportunity to take a moment and look at our own development processes. Particularly as we start to embrace service orientation, where we loosely couple different business functions while relying on centralized, and often externally developed, security and reliability services, we increase the possibility of creating situations such as this. Using a risk-based process, and testing and revisiting the process itself to ensure it stays current, will be vital in providing appropriate levels of software, system, and information assurance. Building a high-assurance component using a low-assurance process just isn't worth the risk.</p></div>
]]></content:encoded>
      <pubDate>Fri, 23 May 2008 06:53:20 +0000</pubDate>
      <category domain="http://securityratty.com/tag/process purportedly">process purportedly</category>
      <category domain="http://securityratty.com/tag/process">process</category>
      <category domain="http://securityratty.com/tag/fix specific process">fix specific process</category>
      <category domain="http://securityratty.com/tag/software development process">software development process</category>
      <category domain="http://securityratty.com/tag/commercial development process">commercial development process</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/low-assurance process">low-assurance process</category>
      <category domain="http://securityratty.com/tag/development">development</category>
      <category domain="http://securityratty.com/tag/specific">specific</category>
      <source url="http://srmsblog.burtongroup.com/2008/05/can-i-just-comm.html">Can I just comment out these lines of code?</source>
    </item>
    <item>
      <title><![CDATA[Free SSL Certs for Debian Bug Victims from Comodo]]></title>
      <link>http://securityratty.com/article/207f0d3a674587378bb04e27c97189e6</link>
      <guid>http://securityratty.com/article/207f0d3a674587378bb04e27c97189e6</guid>
      <description><![CDATA[Seeking to outdo VeriSign's response to the Debian OpenSSL bug , certificate authority Comodo is offering free replacement SSL certificates to anyone affected , including customers of other CAs....]]></description>
      <content:encoded><![CDATA[Seeking to outdo <a href="http://blogs.eweek.com/cheap_hack/content/servers/free_certificate_reissuance_from_verisign_1.html">VeriSign's response to the Debian OpenSSL bug</a>, certificate authority <a href="http://www.comodo.com/news/press_releases/21_05_08.html">Comodo is offering free replacement SSL certificates to anyone affected</a>, including customers of other CAs.

Comodo customers can just go into their accounts and replace their certificates with a new Certificate Signing Request. Customers of other CAs can <a href="http://www.instantssl.com/ssl-certificate-support/debian/ssl-certificate-contact.html">get their free certificate at this site</a>. Comodo says that the term of the new certificate will be comparable to the old one it is replacing.<br style="clear: both;"/>
  <img alt="" style="border: 0; height:1px; width:1px;" border="0" src="http://www.pheedo.com/img.phdo?i=ff41e543c8336149075a03b823a04ab4" height="1" width="1"/>
<img src="http://www.pheedo.com/feeds/tracker.php?i=ff41e543c8336149075a03b823a04ab4" style="display: none;" border="0" height="1" width="1" alt=""/><img src="http://feeds.ziffdavisenterprise.com/~r/RSS/cheap_hack/~4/295851896" height="1" width="1"/>]]></content:encoded>
      <pubDate>Thu, 22 May 2008 06:12:19 +0000</pubDate>
      <category domain="http://securityratty.com/tag/comodo">comodo</category>
      <category domain="http://securityratty.com/tag/free">free</category>
      <category domain="http://securityratty.com/tag/comodo customers">comodo customers</category>
      <category domain="http://securityratty.com/tag/customers">customers</category>
      <category domain="http://securityratty.com/tag/free replacement ssl">free replacement ssl</category>
      <category domain="http://securityratty.com/tag/authority comodo">authority comodo</category>
      <category domain="http://securityratty.com/tag/debian openssl bug">debian openssl bug</category>
      <category domain="http://securityratty.com/tag/cas">cas</category>
      <category domain="http://securityratty.com/tag/outdo verisign">outdo verisign</category>
      <source url="http://feeds.ziffdavisenterprise.com/~r/RSS/cheap_hack/~3/295851896/free_ssl_certs_for_debian_bug_victims_from_comodo.html">Free SSL Certs for Debian Bug Victims from Comodo</source>
    </item>
    <item>
      <title><![CDATA[True Randomness]]></title>
      <link>http://securityratty.com/article/ff2ff9d806ca80ccb9a8c226a35f4fb6</link>
      <guid>http://securityratty.com/article/ff2ff9d806ca80ccb9a8c226a35f4fb6</guid>
      <description><![CDATA[One more time on the Debian OpenSSL bug. It inspired web developer Bo Allen to look into the randomness of the PHP rand() function. He compared it to the results from random.org , which uses...]]></description>
      <content:encoded><![CDATA[One more time on the Debian OpenSSL bug. <a href="http://www.boallen.com/random-numbers.html">It inspired web developer Bo Allen to look into the randomness of the PHP rand() function.</a> He compared it to the results from <a href="http://random.org/">random.org</a>, which uses atmospheric noise as a random seed. The result is a visually clear example of randomness and not-so-randomness. Read the blog, you'll see what I mean.

Allen's test makes me think that someone (no, I don't have the time) should do the same with other programmatic random number generators.<br style="clear: both;"/>
  <img alt="" style="border: 0; height:1px; width:1px;" border="0" src="http://www.pheedo.com/img.phdo?i=f293038fae6eb9871a875925318c58b3" height="1" width="1"/>
<img src="http://www.pheedo.com/feeds/tracker.php?i=f293038fae6eb9871a875925318c58b3" style="display: none;" border="0" height="1" width="1" alt=""/><img src="http://feeds.ziffdavisenterprise.com/~r/RSS/cheap_hack/~4/295313035" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 21 May 2008 12:36:10 +0000</pubDate>
      <category domain="http://securityratty.com/tag/random">random</category>
      <category domain="http://securityratty.com/tag/random seed">random seed</category>
      <category domain="http://securityratty.com/tag/randomness">randomness</category>
      <category domain="http://securityratty.com/tag/programmatic random">programmatic random</category>
      <category domain="http://securityratty.com/tag/debian openssl bug">debian openssl bug</category>
      <category domain="http://securityratty.com/tag/time">time</category>
      <category domain="http://securityratty.com/tag/atmospheric noise">atmospheric noise</category>
      <category domain="http://securityratty.com/tag/web developer">web developer</category>
      <category domain="http://securityratty.com/tag/php rand">php rand</category>
      <source url="http://feeds.ziffdavisenterprise.com/~r/RSS/cheap_hack/~3/295313035/true_randomness.html">True Randomness</source>
    </item>
    <item>
      <title><![CDATA[Random Number Bug in Debian Linux]]></title>
      <link>http://securityratty.com/article/d97f7c48f785b7b3291ff6888ab149f0</link>
      <guid>http://securityratty.com/article/d97f7c48f785b7b3291ff6888ab149f0</guid>
      <description><![CDATA[This is a big deal : On May 13th, 2008 the Debian project announced that Luciano Bello found an interesting vulnerability in the OpenSSL package they were distributing. The bug in question was caused...]]></description>
      <content:encoded><![CDATA[<p>This is a <a href="http://metasploit.com/users/hdm/tools/debian-openssl/">big deal</a>:</p>

<blockquote>On May 13th, 2008 the Debian project <a href="http://www.debian.org/security/2008/dsa-1571">announced</a> that Luciano Bello found an interesting vulnerability in the OpenSSL package they were distributing. The bug in question was caused by the removal of the following line of code from <i>md_rand.c</i>

<pre>
	MD_Update(&m,buf,j);
	[ .. ]
	MD_Update(&m,buf,j); /* purify complains */
</pre>

<p>These lines were <a href="http://svn.debian.org/viewsvn/pkg-openssl/openssl/trunk/rand/md_rand.c?rev=141&view=diff&r1=141&r2=140&p1=openssl/trunk/rand/md_rand.c&p2=/openssl/trunk/rand/md_rand.c">removed</a> because they caused the <a href="http://valgrind.org/">Valgrind</a> and Purify tools to produce warnings about the use of uninitialized data in any code that was linked to OpenSSL. You can see one such report to the OpenSSL team <a href="http://rt.openssl.org/Ticket/Display.html?id=521&user=guest&pass=guest">here</a>. Removing this code has the side effect of crippling the seeding process for the OpenSSL PRNG. Instead of mixing in random data for the initial seed, the only "random" value that was used was the current process ID. On the Linux platform, the default maximum process ID is 32,768, resulting in a very small number of seed values being used for all PRNG operations.</blockquote></p>

<p>More info, from Debian, <a href="http://www.debian.org/security/2008/dsa-1571">here</a>.  And from the hacker community <a href="http://milw0rm.com/exploits/5622">here</a>.  Seems that the bug was introduced in September 2006.</p>

<p>More <a href="http://blog.sesse.net/blog/tech/2008-05-14-17-21_some_maths.html">analysis</a> <a href="http://taint.org/2008/05/13/153959a.html">here</a>.  And a <a href="http://www.xkcd.com/424/#">cartoon</a>.</p>

<p>Random numbers are used everywhere in cryptography, for both short- and long-term security.  And, as we've seen here, security flaws in random number generators are really easy to accidently create and really hard to discover after the fact.  Back when the NSA was routinely weakening commercial cryptography, their favorite technique was reducing the entropy of the random number generator.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=IxrPYH"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=IxrPYH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=CnBMwH"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=CnBMwH" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Mon, 19 May 2008 02:07:59 +0000</pubDate>
      <category domain="http://securityratty.com/tag/random">random</category>
      <category domain="http://securityratty.com/tag/openssl">openssl</category>
      <category domain="http://securityratty.com/tag/openssl team">openssl team</category>
      <category domain="http://securityratty.com/tag/random data">random data</category>
      <category domain="http://securityratty.com/tag/process">process</category>
      <category domain="http://securityratty.com/tag/debian">debian</category>
      <category domain="http://securityratty.com/tag/current process">current process</category>
      <category domain="http://securityratty.com/tag/openssl package">openssl package</category>
      <category domain="http://securityratty.com/tag/bug">bug</category>
      <source url="http://www.schneier.com/blog/archives/2008/05/random_number_b.html">Random Number Bug in Debian Linux</source>
    </item>
    <item>
      <title><![CDATA[More On The Debian OpenSSL Blunder]]></title>
      <link>http://securityratty.com/article/2e92b042a3ae1126a33e584428c706df</link>
      <guid>http://securityratty.com/article/2e92b042a3ae1126a33e584428c706df</guid>
      <description><![CDATA[From the Tales From The Crypto blog comes a new perspective on the Debian OpenSSL bug that I'm surprised I hadn't seen before. (This is a fun blog and I highly recommend it. And yes, I'm ripping off...]]></description>
      <content:encoded><![CDATA[<p><a href="http://msmvps.com/blogs/alunj/archive/2008/05/15/1623193.aspx">From the Tales From The Crypto blog comes a new perspective on the Debian OpenSSL bug</a> that I'm surprised I hadn't seen before. (This is a fun blog and I highly recommend it. And yes, I'm ripping off his use of the image below.)</p>

<p>As Debian revealed in their disclosure, the bug was created because they removed a line of code based on a warning from the Purify tool that the code, part of the random number generator, was using uninitialized data. <img alt="Warning: Choking Hazard" src="http://www.casino-shop.co.uk/300/dic/113.jpg" align="right" border="0" /></p>

<p>Of course, this was part of the seed for the generator, and the fact that the data was uninitialized was part of its randomness. In fact, <a href="http://rt.openssl.org/Ticket/Display.html?id=521&user=guest&pass=guest">OpenSSL developers had dealt with this issue years before</a> and decided that uninitialized data in this case was a virtue, not a vice. So when they removed the line of code they left the process ID as the only random factor, and it was limited to a 32K range. </p>

<p>Alun Jones, the blogger, them asks the obvious question that I should have asked before, namely why they would leave two weak factors as the random number seed? Actually, it seems that this is how the code works in the absence of an outside randomness source. I thought all you needed for that was a system clock and you mod off the fractions of a second and use that as the seed. Could it be that's not always available?</p>

<p>Jones concludes by saying that these are some of the reasons why he likes the Microsoft Crypto API, and he's got some good points. When a problem is found and Microsoft updates it through Windows Update everyone gets the fix, or at least it's easily available. It's a well-implemented API and pretty well documented as opposed, he says, to OpenSSL.</p><br style="clear: both;"/>
  <img alt="" style="border: 0; height:1px; width:1px;" border="0" src="http://www.pheedo.com/img.phdo?i=7f61fd3d7598981daa4d297efa11a54a" height="1" width="1"/>
<img src="http://www.pheedo.com/feeds/tracker.php?i=7f61fd3d7598981daa4d297efa11a54a" style="display: none;" border="0" height="1" width="1" alt=""/><img src="http://feeds.ziffdavisenterprise.com/~r/RSS/cheap_hack/~4/292944717" height="1" width="1"/>]]></content:encoded>
      <pubDate>Sun, 18 May 2008 09:17:44 +0000</pubDate>
      <category domain="http://securityratty.com/tag/debian">debian</category>
      <category domain="http://securityratty.com/tag/openssl">openssl</category>
      <category domain="http://securityratty.com/tag/debian openssl bug">debian openssl bug</category>
      <category domain="http://securityratty.com/tag/bug">bug</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/code based">code based</category>
      <category domain="http://securityratty.com/tag/microsoft">microsoft</category>
      <category domain="http://securityratty.com/tag/microsoft crypto api">microsoft crypto api</category>
      <category domain="http://securityratty.com/tag/random factor">random factor</category>
      <source url="http://feeds.ziffdavisenterprise.com/~r/RSS/cheap_hack/~3/292944717/more_on_the_debian_openssl_blunder.html">More On The Debian OpenSSL Blunder</source>
    </item>
  </channel>
</rss>
