<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Open Source Security &#187; Quality</title>
	<atom:link href="http://www.ratliff.net/blog/category/quality/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ratliff.net/blog</link>
	<description>A blog about open source and security and open source security</description>
	<lastBuildDate>Tue, 10 Aug 2010 00:22:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Cryptographic Snake Oil</title>
		<link>http://www.ratliff.net/blog/2009/05/27/cryptographic-snake-oil/</link>
		<comments>http://www.ratliff.net/blog/2009/05/27/cryptographic-snake-oil/#comments</comments>
		<pubDate>Wed, 27 May 2009 21:55:18 +0000</pubDate>
		<dc:creator>Bryan Jacobson</dc:creator>
				<category><![CDATA[Planet LTC]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.ratliff.net/blog/?p=184</guid>
		<description><![CDATA[By: Bryan Jacobson (bryan.jacobson@us.ibm.com)    As always, the following are my personal opinions.   &#8220;Product X&#8221;  I recently heard about an authentication product, let&#8217;s call it &#8220;Product X&#8221;.   According to their website: Product X . . . implements the equivalent of a “one-time pad” system – the most secure communication possible. Product X uses applied physics to [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">By: Bryan Jacobson (bryan.jacobson@us.ibm.com)    </span><span style="font-size: small; font-family: Times New Roman;">As always, the following are my personal opinions. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"> </p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="font-size: small;"><span style="font-family: Times New Roman;">&#8220;Product X&#8221; </span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span><span style="font-size: small;"><span style="font-family: Times New Roman;">I recently heard about an authentication product, let&#8217;s call it &#8220;Product X&#8221;.<span style="mso-spacerun: yes;">   </span></span></span><span style="font-size: small; font-family: Times New Roman;">According to their website: </span></p>
<blockquote>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Product X . . . implements the equivalent of a “one-time pad” system – the most secure communication possible.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Product X uses applied physics to defeat all known Internet authentication threats.</span></p>
</blockquote>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Sounds good, maybe <em>too</em> good.<span style="mso-spacerun: yes;">  </span>Can we trust it? </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="font-size: small;"><span style="font-family: Times New Roman;">Cryptographic Snake Oil </span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Serge Hallyn introduced me to the term &#8220;cryptographic snake oil&#8221;, which is explained at <a href="http://www.interhack.net/people/cmcurtin/snake-oil-faq.html" target="_blank">http://www.interhack.net/people/cmcurtin/snake-oil-faq.html</a>: </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"> </p>
<blockquote>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Good cryptography is an excellent and necessary tool for almost anyone. Many good cryptographic products are available commercially, as shareware, or free. However, there are also extremely bad cryptographic products which not only fail to provide security, but also contribute to the many misconceptions and misunderstandings surrounding cryptography and security. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Why &#8220;snake oil&#8221;? The term is used in many fields to denote something sold without consideration of its quality or its ability to fulfill its vendor&#8217;s claims. This term originally applied to elixirs sold in traveling medicine shows. The salesmen would claim their elixir would cure just about any ailment that a potential customer could have. Listening to the claims made by some crypto vendors, &#8220;snake oil&#8221; is a surprisingly apt name. </span></p>
</blockquote>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"> </p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">The snake-oil-faq is a fun website with a lot of information.<span style="mso-spacerun: yes;">  </span>Regarding “one-time-pads” it says:</span><span style="font-size: small; font-family: Times New Roman;"> </span></p>
<blockquote>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">A vendor might claim the system uses a one-time-pad (OTP), which is provably unbreakable.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"> </p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Snake oil vendors will try to capitalize on the known strength of an OTP. But it is important to understand that any variation in the implementation means that it is not an OTP and has nowhere near the security of an OTP.</span></p>
</blockquote>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span><strong><span style="font-size: small;"><span style="font-family: Times New Roman;">What are One-time-pads, and why are they &#8220;unbreakable&#8221;? </span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span><span style="font-size: small;"><span style="font-family: Times New Roman;">A One-time-pad is a key as long as the message.<span style="mso-spacerun: yes;">  </span>Each byte of the OTP is generated with an unpredictable random process.<span style="mso-spacerun: yes;">  </span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span><span style="font-size: small; font-family: Times New Roman;">The sender and receiver each need a copy of the OTP and must insure no one else has a copy. The OTP should be physically exchanged, not transmitted.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span><span style="font-size: small; font-family: Times New Roman;">Each byte of the OTP is only used once &#8211; so there is no &#8220;statistical pattern&#8221; that an adversary could use to crack the message.<span style="mso-spacerun: yes;">  </span>(More info is at: http://en.wikipedia.org/wiki/One-time_pad.) </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">The unbreakability of one-time-pads rests on three factors:</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">1. Every byte in the OTP is generated by a truly random (unpredictable) process. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">2. Every byte in the OTP is used only once. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">3. The sender and recipient insure that no one else could have a copy of the pad. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">When these are true, the OTP is unbreakable &#8211; there is no vulnerability that can be exploited. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"> </p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="font-size: small;"><span style="font-family: Times New Roman;">How Product X works (I think)</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Note: This is not a comprehensive evaluation of “Product X”, but rather my personal quick comparison of the <span style="mso-spacerun: yes;"> </span>information on their website to One-time-pads. <span style="mso-spacerun: yes;"> </span>Their website does not have a complete technical description, so I’ve made some assumptions that could be inaccurate.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span><span style="font-size: small; font-family: Times New Roman;">If I understand correctly, &#8220;Product X&#8221; works like this: </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span><span style="font-size: small; font-family: Times New Roman;">- &#8220;Product X&#8221; uses a USB device and some software to provide secure authentication (login) from the user’s client system to a remote server.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">- The user supplies a User ID and a Password on the client system. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">- The User ID is sent to the server software, which selects an &#8220;index&#8221; that is sent back to the client. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">- The &#8220;index&#8221; and secure information in the USB device create a &#8220;one-time password&#8221;, claimed to be equivalent to a One-time-pad. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">- The &#8220;one-time password&#8221; is used to securely transmit the User&#8217;s password to the server. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="font-size: small;"><span style="font-family: Times New Roman;">Is &#8220;Product X&#8221; the equivalent of a one-time-pad?</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span><span style="font-size: small; font-family: Times New Roman;">Let’s look at the factors that make one-time-pads unbreakable:</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">1. Every byte in the OTP is unpredictable.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">I will assume they got this right.<span style="mso-spacerun: yes;">   </span>You can use random.org, or several other techniques.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">2. Every byte in the OTP is used only once. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">I don’t think this is the case.<span style="mso-spacerun: yes;">  </span>I believe the &#8220;index&#8221; sent back from the server, works with the USB device to “randomly” select a pad.<span style="mso-spacerun: yes;">  </span>If enough logins happen, eventually pads will get re-used.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">The Snake Oil website says:</span></p>
<blockquote>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">OTPs are seriously vulnerable if you ever reuse a pad. For instance, the NSA&#8217;s VENONA project [4], without the benefit of computer assistance, managed to decrypt a series of KGB messages encrypted with faulty pads. It doesn&#8217;t take much work to crack a reused pad.</span></p>
</blockquote>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">How soon are pads reused?<span style="mso-spacerun: yes;">  </span>The “Product X” website mentions “billions”, but doesn’t give specifics.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">3. The sender and recipient insure that no one else could have a copy of the pad. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">I don’t think this is the case.<span style="mso-spacerun: yes;">  </span>I believe all users share the same set of pads (otherwise the remote server would need a huge amount of per-user data). </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">However, I believe the role of the USB Device is to scrambles the pad selection on a per-user basis.<span style="mso-spacerun: yes;">  </span>I think security experts agree &#8211; a device like this (assuming well implemented) with a physically secure secret, provides significant security advantages. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">So, the strength of “Product X” is based on:</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">- Could an adversary detect re-use of a pad?</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">- Could an adversary subvert the secret in the USB device?</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">This is the point of the “Snake Oil” FAQ.<span style="mso-spacerun: yes;">  </span>The strength of “Product X” is based on its own implementation details – not the “unbreakable” strength of one-time-pads.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"> </p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"><em>I hope users of &#8220;Product X&#8221; also understand that it<span style="mso-spacerun: yes;">  </span>*ONLY* provides special security for the authentication step (the communication of the password).<span style="mso-spacerun: yes;">   </span>It does not help with the rest of the communication between the client and the server.</em> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="font-size: small;"><span style="font-family: Times New Roman;">Since One-time-pads are so dang secure, why aren&#8217;t they used for everything? </span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">OTPs have two important limitations: </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">- They must not be reused, and need to have as many bytes as the messages they are encoding.<span style="mso-spacerun: yes;">  </span>This is not practical if you&#8217;ve got gigabytes going back and forth every day. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">- There must be some other secure mechanism to get the pad from one party to the other.<span style="mso-spacerun: yes;">  </span>That&#8217;s hard to do if you&#8217;re communicating with someone you&#8217;ve never met before (common on the web). </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">The <a href="http://www.interhack.net/people/cmcurtin/snake-oil-faq.html" target="_blank">Snake Oil FAQ</a> lists many other things to watch out for, such as:</span></p>
<ul>
<li>
<div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Secret Algorithms </span></div>
</li>
<li>
<div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Revolutionary Breakthroughs </span></div>
</li>
<li>
<div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Times New Roman;">Experienced Security Experts, Rave Reviews, and Other Useless Certificates </span></div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ratliff.net/blog/2009/05/27/cryptographic-snake-oil/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The path to sanity</title>
		<link>http://www.ratliff.net/blog/2007/10/11/the-path-to-sanity/</link>
		<comments>http://www.ratliff.net/blog/2007/10/11/the-path-to-sanity/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 22:26:01 +0000</pubDate>
		<dc:creator>Emily Ratliff</dc:creator>
				<category><![CDATA[Quality]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.ratliff.net/blog/index.php/2007/10/11/the-path-to-sanity/</guid>
		<description><![CDATA[If you are interested in security and security metrics, I highly recommend reading Dan Geer&#8217;s chart deck on &#8220;Measuring Security&#8221;. It weighs in at a hefty 426 pages, but it made me laugh out loud in parts and go hmmm. Highlights include p. 108 on &#8220;Decision Making&#8221; says &#8220;*Rational decisions are not enough, *Need to [...]]]></description>
			<content:encoded><![CDATA[<p>If you are interested in security and security metrics, I highly recommend reading Dan Geer&#8217;s chart deck on &#8220;Measuring Security&#8221;. It weighs in at a hefty 426 pages, but it made me laugh out loud in parts and go hmmm. Highlights include p. 108 on &#8220;Decision Making&#8221; says &#8220;*Rational decisions are not enough, *Need to also allow for your preferences&#8221;. I really like the model for &#8220;Tracking Performance&#8221; that he shows for selected security software on pages 154-156, but caution still needs to be applied and meta-information about the numbers is important for full understanding &#8211; did the product undergo extensive review one year? are the CVE&#8217;s equivalent to each other in severity? etc. Well worth a read and on my list for more more comprehensive study.</p>
<p>[1] Dan Geer, <a href="http://geer.tinho.net/usenix/measuringsecurity.tutorialv2.pdf">Measuring Security</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ratliff.net/blog/2007/10/11/the-path-to-sanity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Kernel Summit</title>
		<link>http://www.ratliff.net/blog/2007/09/05/linux-kernel-summit/</link>
		<comments>http://www.ratliff.net/blog/2007/09/05/linux-kernel-summit/#comments</comments>
		<pubDate>Wed, 05 Sep 2007 17:28:24 +0000</pubDate>
		<dc:creator>Emily Ratliff</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Quality]]></category>

		<guid isPermaLink="false">http://www.ratliff.net/blog/?p=7</guid>
		<description><![CDATA[Gerrit is blogging the Linux Kernel Summit this week and his blog entrys are well worth reading, if just for the use of the word kerfuffle. Seriously, there is good stuff there &#8211; Andrew Morton on Linux Kernel Quality is especially interesting to me. I had heard that Andrew was tossing around the idea of [...]]]></description>
			<content:encoded><![CDATA[<p>Gerrit is blogging the Linux Kernel Summit this week and his blog entrys are well worth reading, if just for the use of the word kerfuffle. Seriously, there is good stuff there &#8211; Andrew Morton on <a href="http://gh-linux.blogspot.com/2007/09/andrew-morton-on-kernel-quality.html">Linux Kernel Quality</a> is especially interesting to me. I had heard that Andrew was tossing around the idea of requiring test cases for patch submissions. That would greatly increase test code coverage and reduce regressions, but based on the discussion in Gerrit&#8217;s blog posting, it looks like it would have been dismissed out of hand for requiring to much additional work, if it had even been brought up at the kernel summit. A related topic was brought up during the <a href="http://gh-linux.blogspot.com/2007/09/greater-kernel-ecosystem-and.html">Documentation session</a> with a proposal to pull LTP tests into Linus&#8217; git tree.<br />
Off the topic of quality, this cracked me up: &#8220;The running joke was that long explanations of x86 functionality requested by the s390 people was usually ended with the comment &#8220;oh, I understand now, we have an instruction that does that&#8221; <img src='http://www.ratliff.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> &#8221;<br />
I love this coverage of the Kernel Summit, along with <a href="http://lwn.net/Articles/247788/">LWN&#8217;s coverage</a>, it is better than actually being there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ratliff.net/blog/2007/09/05/linux-kernel-summit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
